Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/EditTextU.dfm
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/EditTextU.dfm	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/EditTextU.dfm	(revision 541)
@@ -0,0 +1,148 @@
+object EditTextForm: TEditTextForm
+  Left = 281
+  Top = 207
+  Width = 675
+  Height = 480
+  Caption = 'Edit Text'
+  Color = clBtnFace
+  Font.Charset = DEFAULT_CHARSET
+  Font.Color = clWindowText
+  Font.Height = -11
+  Font.Name = 'MS Sans Serif'
+  Font.Style = []
+  OldCreateOrder = False
+  Position = poScreenCenter
+  OnClose = FormClose
+  OnCreate = FormCreate
+  OnDestroy = FormDestroy
+  OnHide = FormHide
+  PixelsPerInch = 96
+  TextHeight = 13
+  object Panel1: TPanel
+    Left = 0
+    Top = 408
+    Width = 667
+    Height = 38
+    Align = alBottom
+    TabOrder = 0
+    DesignSize = (
+      667
+      38)
+    object RevertBtn: TBitBtn
+      Left = 408
+      Top = 8
+      Width = 75
+      Height = 25
+      Anchors = [akRight, akBottom]
+      Caption = '&Revert'
+      Enabled = False
+      TabOrder = 0
+      OnClick = RevertBtnClick
+      Glyph.Data = {
+        36030000424D3603000000000000360000002800000010000000100000000100
+        18000000000000030000120B0000120B00000000000000000000FF00FFFF00FF
+        FF00FFFF00FFFF00FF000288010893010B99010C99010893000389FF00FFFF00
+        FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF000186010D9D021CAF021FB402
+        1FB5021FB5021FB2021CB0010F9F000287FF00FFFF00FFFF00FFFF00FFFF00FF
+        00038A0118B2021FB7021EB1021DB1021DB1021DB1021DB1021EB2021FB40219
+        AC00048EFF00FFFF00FFFF00FF0001830118BB0220CC011CBF0015B4011AB002
+        1DB1021DB1011CB00015AD011BB0021FB4021AAC000287FF00FFFF00FF010CA7
+        0121E0011CD30726CC4966D70B28BC0018B00019AF0622B44A66CE0D2BB7011B
+        B0021FB5010F9FFF00FF000187011CDC0120ED0017DC3655E2FFFFFFA4B4ED05
+        20BB0119B28B9EE1FFFFFF4E6ACF0014AC021EB2021CB000038900069A0120F8
+        011FF6001DE9031FE1738BEEFFFFFFA0B1ED93A5E7FFFFFF91A4E20823B4011B
+        B0021DB1021FB4010895020CAA0A2EFE0323FB011FF6001CEB0018E1788FF0FF
+        FFFFFFFFFF96A7EA021BB50019AF021DB1021DB10220B5010C99040EAC294DFE
+        0D30FB011FFA001CF7011CEE8EA1F4FFFFFFFFFFFFA6B6EE0520C20018B6021D
+        B1021DB10220B5010B980208A04162FB2F51FC001EFA0725FA8AA0FEFFFFFF8E
+        A3F67991F2FFFFFFA3B4EE0C29C6011BB8021DB4021FB2000793000189314FEF
+        7690FF0F2DFA3354FBFFFFFF91A5FE021EF30017E7738BF3FFFFFF4765E00016
+        C2021FBD021CB2000288FF00FF0C1BBC819AFF728BFE1134FA3456FB0526FA00
+        1CFA001CF40220ED3353ED0625DA011DD00220CB010DA1FF00FFFF00FF000189
+        2943E6A5B7FF849AFC2341FB0323FA011FFA011FFA001EF7011BEE021FE50121
+        E20118BF000184FF00FFFF00FFFF00FF01038F2A45E693A9FFABBBFF758FFE49
+        69FC3658FB3153FC2346FC092CF70118CB00038BFF00FFFF00FFFF00FFFF00FF
+        FF00FF0001890F1DBF3E5BF36B87FE728CFF5E7BFE395BFB1231EB010FB50001
+        84FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF000189030AA306
+        11B2050FB10107A0000188FF00FFFF00FFFF00FFFF00FFFF00FF}
+    end
+    object ApplyBtn: TBitBtn
+      Left = 492
+      Top = 8
+      Width = 75
+      Height = 25
+      Anchors = [akRight, akBottom]
+      Caption = '&Apply'
+      Enabled = False
+      TabOrder = 1
+      OnClick = ApplyBtnClick
+      Glyph.Data = {
+        36030000424D3603000000000000360000002800000010000000100000000100
+        18000000000000030000120B0000120B00000000000000000000FF00FF0274AC
+        0274AC0274AC0274AC0274AC0274AC0274AC0274AC0274AC0274AC0274AC0274
+        AC0274ACFF00FFFF00FF0274AC48BCF60274AC8CD8FA4BBFF74ABFF64ABFF74A
+        BFF74ABFF64ABFF74ABFF64BBFF62398CC97E0F20274ACFF00FF0274AC4FC4F7
+        0274AC92DDFB54C7F854C7F753C7F854C7F754C7F854C7F854C7F853C7F7279D
+        CE9DE3F20274ACFF00FF0274AC57CAF80274AC99E3FB5ED1FA5ED1FA5ED1FA5E
+        D1FA5ED1FA5FD1FA5ED1F85ED1F82CA1CEA3E9F30274ACFF00FF0274AC5ED3FA
+        0274ACA1E9FC69DCFA2C9D6703690804740A2C9C675ED0E269DCFA6ADDFB2FA6
+        CFA9EEF30274ACFF00FF0274AC67D9F70274ABA7EFFC74E5FB74E5FB39AC7E05
+        7F0B04800B157F2E70E2F674E5FB33A9CFACF0F40274ACFF00FF0274AC6FE3FA
+        0274ABFFFFFFBAF4FEB8F4FEBAF4FE58B27E05860D047E0A1E812DB8F4FE83C9
+        E0D4F7FA0274ACFF00FF0274AC7AEBFE0274AC0274AC0274AC0274AC0274AC02
+        6C7005830C06910D03681102709A0274AC0274AC0274ACFF00FF0274AC83F2FE
+        82F3FE82F3FE83F2FC83F3FE82F3FE5BC7B00A80140A9A14047B0B49B591036F
+        A7FF00FFFF00FFFF00FF0274ACFEFEFE89FAFF89FAFE89FAFE8AF8FE8AFAFE6C
+        D9C90F871F13A926098E122D9754036FA7FF00FFFF00FFFF00FFFF00FF0274AC
+        FEFEFE8FFEFF046B0B046B0B046B0B046B0B15932A1FB53812A123046B0B046B
+        0B046B0B046B0BFF00FFFF00FFFF00FF0274AC0274AC027399046B0B107D1D36
+        CE6032C95A27BC471DB03614A527098713046B0BFF00FFFF00FFFF00FFFF00FF
+        FF00FFFF00FFFF00FFFF00FF046B0B1D993541DE7535CC5D2BC24D1AA732046B
+        0BFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF04
+        6B0B27AC4546E37A35CA5C046B0BFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+        FF00FFFF00FFFF00FFFF00FFFF00FFFF00FF046B0B2DB851046B0BFF00FFFF00
+        FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+        00FFFF00FF046B0BFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF}
+    end
+    object DoneBtn: TBitBtn
+      Left = 574
+      Top = 8
+      Width = 75
+      Height = 25
+      Anchors = [akRight, akBottom]
+      Caption = '&Done'
+      TabOrder = 2
+      OnClick = DoneBtnClick
+      Glyph.Data = {
+        76010000424D7601000000000000760000002800000020000000100000000100
+        0400000000000001000000000000000000001000000000000000000000000000
+        8000008000000080800080000000800080008080000080808000C0C0C0000000
+        FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00555555555555
+        5555555555555555555555555555555555555555555555555555555555555555
+        5555555555555555555555555555555555555555555555555555555555055555
+        5555555555555555555555555000555555555555555555555555555500000555
+        5555555555555555555555550050005555555555555555555555555505550005
+        5555555555555555555555555555500555555555555555555555555555555505
+        5555555555555555555555555555555555555555555555555555555555555555
+        5555555555555555555555555555555555555555555555555555555555555555
+        5555555555555555555555555555555555555555555555555555}
+      NumGlyphs = 2
+    end
+  end
+  object Memo: TMemo
+    Left = 0
+    Top = 0
+    Width = 667
+    Height = 408
+    Align = alClient
+    Font.Charset = ANSI_CHARSET
+    Font.Color = clWindowText
+    Font.Height = -12
+    Font.Name = 'Fixedsys'
+    Font.Style = []
+    ParentFont = False
+    ScrollBars = ssBoth
+    TabOrder = 1
+    OnChange = MemoChange
+  end
+end
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/EditTextU.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/EditTextU.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/EditTextU.pas	(revision 541)
@@ -0,0 +1,189 @@
+unit EditTextU;
+   (* 
+   WorldVistA Configuration Utility
+   (c) 8/2008 Kevin Toppenberg
+   Programmed by Kevin Toppenberg, Eddie Hagood  
+   
+   Family Physicians of Greeneville, PC
+   1410 Tusculum Blvd, Suite 2600
+   Greeneville, TN 37745
+   kdtop@yahoo.com
+                                                 
+   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 Street, Fifth Floor, Boston, MA  02110-1301  USA
+  *)   
+
+interface
+
+uses
+  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+  Dialogs, StdCtrls, Buttons, ExtCtrls;
+
+type
+  TEditTextForm = class(TForm)
+    Panel1: TPanel;
+    Memo: TMemo;
+    RevertBtn: TBitBtn;
+    ApplyBtn: TBitBtn;
+    DoneBtn: TBitBtn;
+    procedure FormCreate(Sender: TObject);
+    procedure FormDestroy(Sender: TObject);
+    procedure RevertBtnClick(Sender: TObject);
+    procedure ApplyBtnClick(Sender: TObject);
+    procedure DoneBtnClick(Sender: TObject);
+    procedure MemoChange(Sender: TObject);
+    procedure FormHide(Sender: TObject);
+    procedure FormClose(Sender: TObject; var Action: TCloseAction);
+  private
+    { Private declarations }
+    FCachedText : TStringList;
+    FFileNum,FFieldNum,FIENS : String;
+    function GetWPField(FileNum,FieldNum,IENS : string) : TStringList;
+    procedure PostWPField(Lines: TStrings; FileNum,FieldNum,IENS : string);
+  public
+    { Public declarations }
+    procedure PrepForm(FileNum,FieldNum,IENS : string);
+  end;
+
+var
+  EditTextForm: TEditTextForm;
+
+implementation
+
+uses FMErrorU, ORNet, ORFn,
+     Trpcb ;  //needed for .ptype types
+
+{$R *.dfm}
+
+  procedure TEditTextForm.PrepForm(FileNum,FieldNum,IENS : string);
+  begin
+    FFileNum := FileNum;
+    FFieldNum := FieldNum;
+    FIENS := IENS;
+    Memo.Lines.Clear;
+    Memo.Lines.Assign(GetWPField(FileNum,FieldNum,IENS));
+    ApplyBtn.Enabled := false;
+    RevertBtn.Enabled := false;
+  end;
+
+  procedure TEditTextForm.FormCreate(Sender: TObject);
+  begin
+    FCachedText := TStringList.Create;
+
+  end;
+
+  procedure TEditTextForm.FormDestroy(Sender: TObject);
+  begin
+    FCachedText.Free;
+  end;
+
+
+  function TEditTextForm.GetWPField(FileNum,FieldNum,IENS : string) : TStringList;
+  var   RPCResult: string;
+        cmd : string;
+        lastLine : string;
+  begin
+    FCachedText.clear;
+    RPCBrokerV.Results.Clear;
+    RPCBrokerV.remoteprocedure := 'TMG CHANNEL';
+    RPCBrokerV.param[0].ptype := list;
+    cmd := 'GET ONE WP FIELD^' + FileNum + '^' + FieldNum + '^' + IENS;
+    RPCBrokerV.Param[0].Mult['"REQUEST"'] := cmd; 
+    RPCBrokerV.Call;
+    RPCResult := RPCBrokerV.Results[0];    //returns:  error: -1;  success=1
+    if piece(RPCResult,'^',1)='-1' then begin
+      FMErrorForm.Memo.Lines.Assign(RPCBrokerV.Results);
+      FMErrorForm.PrepMessage;
+      FMErrorForm.ShowModal;
+    end else begin
+      FCachedText.Assign(RPCBrokerV.Results);
+      FCachedText.Delete(0);
+      lastLine := FCachedText.Strings[FCachedText.Count-1];
+      //I can't figure out where these are coming from...
+      if (lastLine='WORD-PROCESSING') or (lastLine = 'POINTER') 
+      or (lastLine='FREE TEXT') then begin
+        FCachedText.Delete(FCachedText.Count-1);
+      end;
+    end;
+    result := FCachedText;
+  end;
+
+
+  procedure TEditTextForm.PostWPField(Lines: TStrings; FileNum,FieldNum,IENS : string);
+  var   RPCResult: string;
+        cmd : string;
+        lastLine : string;
+        i : integer;
+  begin
+    RPCBrokerV.Results.Clear;
+    RPCBrokerV.remoteprocedure := 'TMG CHANNEL';
+    RPCBrokerV.param[0].ptype := list;
+    cmd := 'POST WP FIELD^' + FileNum + '^' + FieldNum + '^' + IENS;
+    RPCBrokerV.Param[0].Mult['"REQUEST"'] := cmd; 
+    for i := 0 to Lines.Count-1 do begin
+      RPCBrokerV.Param[0].Mult['"' + IntToStr(i+1) + '"'] := Lines.Strings[i]; 
+    end;
+    RPCBrokerV.Call;
+    RPCResult := RPCBrokerV.Results[0];    //returns:  error: -1;  success=1
+    if piece(RPCResult,'^',1)='-1' then begin
+      FMErrorForm.Memo.Lines.Assign(RPCBrokerV.Results);
+      FMErrorForm.PrepMessage;
+      FMErrorForm.ShowModal;
+    end else begin
+      FCachedText.Assign(Lines);
+    end;
+  end;
+  
+  
+  procedure TEditTextForm.RevertBtnClick(Sender: TObject);
+  begin
+    if MessageDlg('Abort editing changes and revert to original?',mtWarning,mbOKCancel,0) = mrOK then begin
+      Memo.Lines.Assign(FCachedText);
+    end;
+  end;
+
+  procedure TEditTextForm.ApplyBtnClick(Sender: TObject);
+  begin
+    if FCachedText.Text <> Memo.Lines.Text then begin
+      //MessageDlg('Here I will post changes',mtInformation,[mbOK],0);
+      PostWPField(Memo.Lines,FFileNum,FFieldNum,FIENS);     
+    end;
+    ApplyBtn.Enabled := false;
+    RevertBtn.Enabled := false;
+  end;
+
+  procedure TEditTextForm.DoneBtnClick(Sender: TObject);
+  begin
+    ApplyBtnClick(self);
+    ModalResult := mrOK;
+  end;
+
+  procedure TEditTextForm.MemoChange(Sender: TObject);
+  begin
+    ApplyBtn.Enabled := true;
+    RevertBtn.Enabled := true;
+  end;
+
+  procedure TEditTextForm.FormHide(Sender: TObject);
+  begin
+    ApplyBtnClick(self);
+  end;
+
+  procedure TEditTextForm.FormClose(Sender: TObject; var Action: TCloseAction);
+  begin
+    ApplyBtnClick(self);
+  end;
+
+end.
+
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/FMErrorU.dfm
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/FMErrorU.dfm	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/FMErrorU.dfm	(revision 541)
@@ -0,0 +1,45 @@
+object FMErrorForm: TFMErrorForm
+  Left = 1217
+  Top = 320
+  Width = 482
+  Height = 417
+  Caption = '- Database Error Log- '
+  Color = clBtnFace
+  Font.Charset = DEFAULT_CHARSET
+  Font.Color = clWindowText
+  Font.Height = -11
+  Font.Name = 'MS Sans Serif'
+  Font.Style = []
+  OldCreateOrder = False
+  DesignSize = (
+    474
+    383)
+  PixelsPerInch = 96
+  TextHeight = 13
+  object Memo: TMemo
+    Left = 0
+    Top = 0
+    Width = 474
+    Height = 350
+    Align = alTop
+    Anchors = [akLeft, akTop, akRight, akBottom]
+    Font.Charset = ANSI_CHARSET
+    Font.Color = clMaroon
+    Font.Height = -15
+    Font.Name = 'Times New Roman'
+    Font.Style = [fsBold]
+    ParentFont = False
+    ScrollBars = ssBoth
+    TabOrder = 0
+  end
+  object OKBtn: TButton
+    Left = 393
+    Top = 353
+    Width = 75
+    Height = 25
+    Anchors = [akRight, akBottom]
+    Caption = '&OK'
+    ModalResult = 1
+    TabOrder = 1
+  end
+end
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/FMErrorU.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/FMErrorU.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/FMErrorU.pas	(revision 541)
@@ -0,0 +1,75 @@
+unit FMErrorU;
+   (* 
+   WorldVistA Configuration Utility
+   (c) 8/2008 Kevin Toppenberg
+   Programmed by Kevin Toppenberg, Eddie Hagood  
+   
+   Family Physicians of Greeneville, PC
+   1410 Tusculum Blvd, Suite 2600
+   Greeneville, TN 37745
+   kdtop@yahoo.com
+                                                 
+   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 Street, Fifth Floor, Boston, MA  02110-1301  USA
+  *)   
+
+interface
+
+uses
+  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+  Dialogs, StdCtrls;
+
+type
+  TFMErrorForm = class(TForm)
+    Memo: TMemo;
+    OKBtn: TButton;
+  private
+    { Private declarations }
+  public
+    { Public declarations }
+    procedure PrepMessage;
+  end;
+
+var
+  FMErrorForm: TFMErrorForm;
+
+implementation
+
+{$R *.dfm}
+
+uses
+  ORFn, StrUtils;
+  
+  procedure TFMErrorForm.PrepMessage;
+  var
+    text : string;
+  begin
+  
+    if Memo.Lines.Count=1 then begin
+      if piece(Memo.Lines.Strings[0],'^',1)='-1' then begin
+        Memo.Lines.Strings[0] := piece(Memo.Lines.Strings[0],'^',2);
+      end;
+    end else if Memo.Lines.Count>1 then begin
+      if piece(Memo.Lines.Strings[0],'^',1)='-1' then begin
+        Memo.Lines.Delete(0);
+        text := Memo.Lines.Text;
+        text := AnsiReplaceStr(text, ' [', #13+'[');
+        text := AnsiReplaceStr(text, 'Fileman says:', 'Database error message:'+#13);
+        Memo.Lines.Text := text;
+      end;
+    end;  
+  end;  
+
+end.
+
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EWB.inc
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EWB.inc	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EWB.inc	(revision 541)
@@ -0,0 +1,117 @@
+//*************************************************************
+//      EWB.inc - Embedded Webbrowser definitions             *
+//                                                            *
+//               For Delphi 5, 6, 7 , 2005, 2006 & Turbo,     *
+//                          2007, 2009                        *
+//                     Freeware unit                          *
+//                            by                              *
+//                     Eran Bodankin (bsalsa)                 *
+//                     bsalsa@bsalsa.com                      *
+//                                                            *
+//     Documentation and updated versions:                    *
+//               http://www.bsalsa.com                        *
+//*************************************************************
+{*******************************************************************************}
+{
+
+LICENSE:
+
+THIS SOFTWARE IS PROVIDED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND,
+EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE APPLIED
+WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
+YOU ASSUME THE ENTIRE RISK AS TO THE ACCURACY AND THE USE OF THE SOFTWARE
+AND ALL OTHER RISK ARISING OUT OF THE USE OR PERFORMANCE OF THIS SOFTWARE
+AND DOCUMENTATION. [YOUR NAME] DOES NOT WARRANT THAT THE SOFTWARE IS ERROR-FREE
+OR WILL OPERATE WITHOUT INTERRUPTION. THE SOFTWARE IS NOT DESIGNED, INTENDED
+OR LICENSED FOR USE IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE CONTROLS,
+INCLUDING WITHOUT LIMITATION, THE DESIGN, CONSTRUCTION, MAINTENANCE OR
+OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS,
+AIR TRAFFIC CONTROL, AND LIFE SUPPORT OR WEAPONS SYSTEMS. VSOFT SPECIFICALLY
+DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR SUCH PURPOSE.
+
+You may use, change or modify the component under 4 conditions:
+1. In your website, add a link to "http://www.bsalsa.com"
+2. In your application, add credits to "Embedded Web Browser"
+3. Mail me  (bsalsa@bsalsa.com) any code change in the unit
+   for the benefit of the other users.
+4. Please, consider donation in our web site!  
+ 
+{*******************************************************************************}
+{$A+,B-,C-,E-,F-,G+,H+,I+,J+,K-,L+,M-,N+,O+,P+,Q-,R-,S-,T-,U-,V+,W+,X+,Y+,Z1}
+
+
+{$I EWB_jedi.inc}
+
+// Specify the modules to include:
+// To remove the extras, just put a dot in front of the $DEFINE. E.g. "{.$DEFINE USE_EwbTools}"
+// To include an extra, remove the dot.
+// Then re-compile the package.
+
+
+//---- EmbeddedWB.pas: ---------------------------------------------------------
+
+// ** Activated by default:
+
+// Use functions from EwbTools.pas as methods in EmbeddedWB
+{$DEFINE USE_EwbTools}
+
+// Enable Subclassing of TEmbeddedWB Child windows (focus issues, ActiveControl, TAB and ActiveControl)
+{$DEFINE Enable_SubClassChildWindows}
+
+// Enable Mouse Hook to catch WM_MOUSEWHEEL and set Focus on TEmbeddedWB while not active
+{$DEFINE Enable_AutoMouseWheelFix}
+
+// Enable FocusControl to catch CM_ACTIVATE (EWB focus issue when switching back to the application)
+{$DEFINE Enable_AutoFocusControl}
+
+// Enable FormWndProc "Hooking" to handle Dialog Boxes / Popups
+{$DEFINE Enable_HookParentFormWndProc}
+
+
+// ** Deactivated by default:
+
+
+// Enable DDE Support EwbDDE.pas
+{.$DEFINE USE_EwbDDE}
+
+// Enable MSHTML events (MSHTMLEvents.pas)
+{.$DEFINE Enable_EwbMSHTMLEvents}
+
+// Enable Mouse (OnEnter, OnLeave) Events  in TEmbeddedWB (D5, D6, D7 only)
+{.$DEFINE Enable_MouseEnterLeaveEvents}
+
+// Enable OleCtrls Fix (experimental)
+{.$DEFINE USE_OleCtrlsFix}
+
+// Enable Debugging
+{.$DEFINE Enable_Debug}
+
+
+//---- EwbCore.pas ---------------------------------------------------------
+
+{$DEFINE USE_IOLECOMMANDTARGET}
+
+{.$DEFINE GETKEYPATH_HANDLERS}
+
+{.$DEFINE RESEARCH_MODE}
+
+//-------------------------------------------------------------------------
+
+
+//---- TEwbControl (EwbControlComponent.pas)-------------------------------
+
+  // Enable Property InternetFeatures in the Object Inspector.
+  {$DEFINE Enable_InternetFeatures}
+
+//-------------------------------------------------------------------------
+
+
+// Do not change:
+
+{$IFDEF Enable_AutoFocusControl}
+  {$DEFINE AutoUse_EwbControl}
+{$ENDIF Enable_AutoFocusControl}
+
+{$IFDEF Enable_AutoMouseWheelFix}
+  {$DEFINE AutoUse_EwbControl}
+{$ENDIF Enable_AutoMouseWheelFix}
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EWBTools.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EWBTools.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EWBTools.pas	(revision 541)
@@ -0,0 +1,3907 @@
+//***********************************************************
+//                        EwbTools                          *
+//                                                          *
+//                       For Delphi                         *
+//                     Freeware unit                        *
+//                            by                            *
+//                      bsalsa, Smot,                       *
+//                  per lindso larsen                       *
+//                                                          *
+//  Documentation and updated versions:                     *
+//               http://www.bsalsa.com                      *
+//***********************************************************
+
+{*******************************************************************************}
+{LICENSE:
+THIS SOFTWARE IS PROVIDED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND,
+EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE APPLIED
+WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
+YOU ASSUME THE ENTIRE RISK AS TO THE ACCURACY AND THE USE OF THE SOFTWARE
+AND ALL OTHER RISK ARISING OUT OF THE USE OR PERFORMANCE OF THIS SOFTWARE
+AND DOCUMENTATION. BSALSA PRODUCTIONS DOES NOT WARRANT THAT THE SOFTWARE IS ERROR-FREE
+OR WILL OPERATE WITHOUT INTERRUPTION. THE SOFTWARE IS NOT DESIGNED, INTENDED
+OR LICENSED FOR USE IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE CONTROLS,
+INCLUDING WITHOUT LIMITATION, THE DESIGN, CONSTRUCTION, MAINTENANCE OR
+OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS,
+AIR TRAFFIC CONTROL, AND LIFE SUPPORT OR WEAPONS SYSTEMS. BSALSA PRODUCTIONS SPECIFICALLY
+DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR SUCH PURPOSE.
+
+You may use, change or modify the component under 4 conditions:
+1. In your website, add a link to "http://www.bsalsa.com"
+2. In your application, add credits to "Embedded Web Browser"
+3. Mail me  (bsalsa@gmail.com) any code change in the unit
+   for the benefit of the other users.
+4. Please,  consider donation in our web site!
+{*******************************************************************************}
+
+unit EwbTools;
+
+interface
+
+{$I EWB.inc}
+
+uses
+  EwbAcc, Windows, Classes, ExtCtrls, ShlObj, Graphics, Dialogs, ActiveX,
+{$IFDEF DELPHI6_UP}Variants, {$ENDIF}
+  MSHTML_EWB, SHDocVw_EWB, EmbeddedWB, URLMon;
+
+var
+  PrintingWithOptions: Boolean;
+
+//Document and Frame
+function DocumentLoaded(Document: IDispatch): Boolean;
+procedure AssignEmptyDocument(WebBrowser: TEmbeddedWB);
+
+//Html
+function AddHtmlToAboutBlank(WebBrowser: TEmbeddedWB; StringToHtml: string): Boolean;
+function DocumentSourceText(OleObject: Variant; Document: IDispatch): string;
+function DocumentSource(OleObject: Variant): string;
+function GetWordAtCursor(const X, Y: Integer; WebBrowser: TEmbeddedWB): string;
+
+//frames
+function GetFrame(Document: IDispatch; FrameNo: Integer): IWebBrowser2;
+function GetFrameFromDocument(SourceDoc: IHTMLDocument2; FrameNo: Integer): IWebBrowser2; //By Aladin
+function FrameCount(Document: IDispatch): Longint;
+function FrameCountFromDocument(SourceDoc: IHTMLDocument2): Integer; //By Aladin
+
+//Document Operations
+procedure SetFocusToDoc(WebBrowser: TEmbeddedWB; Dispatch, Document: IDispatch);
+function CMD_Copy(Document: IDispatch): Boolean;
+function Cmd_Paste(Document: IDispatch): Boolean;
+function Cmd_Cut(Document: IDispatch): Boolean;
+function SelectAll(Document: IDispatch): Boolean;
+function UnSelectAll(Document: IDispatch): Boolean;
+
+//scroll
+procedure ScrollToTop(OleObject: Variant);
+procedure ScrollToPosition(OleObject: Variant; X, Y: Integer);
+procedure ScrollToBottom(Document: IDispatch);
+procedure ScrollToID(ID: Integer; WebBrowser: TEmbeddedWB);
+procedure ScrollToIDEx(ID: string; WebBrowser: TEmbeddedWB);
+procedure GetScrollBarVisibility(WebBrowser: TEmbeddedWB; var HScroll, VScroll: Boolean);
+function GetScrollBarPosition(WebBrowser: TEmbeddedWB; var ScrollPos: TPoint): Boolean;
+
+// zoom
+function Zoom(Document: IDispatch; ZoomValue: Integer): Boolean;
+function ZoomValue(Document: IDispatch): Integer;
+function ZoomRangeHigh(Document: IDispatch): Integer;
+function ZoomRangeLow(Document: IDispatch): Integer;
+
+function SetCharartersSet(WebBrowser: TEmbeddedWB; Document: IDispatch; const ACharactersSet: string; Refresh: Boolean = True): Boolean;
+procedure GetThumbnail(Dispatch: IDispatch; var Image: TImage);
+function GetBmpFromBrowser(Document: IDispatch; Handle: THandle; Width, Height: Integer; FileName: string): Boolean;
+function GetJPEGfromBrowser(Document: IDispatch; ControlInterface: IWebBrowser2; FileName: string; SourceHeight, SourceWidth, TargetHeight, TargetWidth: Integer): Boolean;
+
+//View Document Fields/Properties/Images
+procedure ViewPageLinksToStrings(OleObject: Variant; LinksList: TStrings);
+procedure ViewPageSourceHTMLToStrings(OleObject: Variant; Document: IDispatch; HtmlList: TStrings);
+procedure ViewPageSourceTextToStrings(OleObject: Variant; Document: IDispatch; TextList: TStrings);
+procedure ViewPageSourceText(OleObject: Variant; Document: IDispatch);
+
+//Save
+function SaveDocToStrings(Document: IDispatch; var AStrings: TStrings): HRESULT;
+function SaveDocToStream(Document: IDispatch; var AStream: TStream): HRESULT;
+function SaveDocToFile(Document: IDispatch; const Fname: string): HRESULT;
+
+//Printing
+procedure Print(ControlInterface: IWebBrowser2; bHideSetup: Boolean = False; bCustomHeaderFooter: Boolean = False; Header: string = ''; Footer: string = '');
+procedure PrintWithOptions(ControlInterface: IWebBrowser2; Document: IDispatch; UsePrintOptions, PrintOptionsEnabled, HideSetup: Boolean; var InvokingPageSetup: Boolean);
+procedure PrintPreview(Webbrowser: IWebBrowser2);
+procedure PrintPreviewExtended(ControlInterface: IWebBrowser2; nCMDShow: Integer; HideSetup: Boolean);
+procedure PrintPreviewFromTemplate(const TemplateFileName: string; Document: IDispatch);
+function PageSetup(Document: IDispatch; UsePrintOptions, PrintOptionsEnabled: Boolean; var InvokingPageSetup: Boolean): Boolean;
+procedure PrintSetup(ControlInterface: IWebBrowser2; HideSetup: Boolean);
+procedure GetPrintValues(WebBrowser: TEmbeddedWB; PrintOptions: TPrintOptions; Measure: TMeasure);
+function PrintMarginStr(Measure, RuntimeMeasure: TMeasure; M: Real): string;
+procedure RestorePrintValues;
+
+//Dialogs
+function OpenDialog(WebBrowser: TEmbeddedWB; AOwner: TComponent): Boolean;
+function SaveDialog(Document: IDispatch): Boolean; overload;
+function SaveDialog(WebBrowser: TEmbeddedWB; AOwner: TComponent; ATitle: string = ''; AFilter: string = ''): string; overload;
+
+function ShowInternetOptions(Document: IDispatch): Boolean;
+function ShowPageProperties(Document: IDispatch): Boolean;
+function ShowOrganizeFavorites(Handle: THandle): Boolean;
+procedure ShowImportExportFavoritesAndCookies(Handle: THandle);
+function ShowFindDialog(Document: IDispatch): Boolean;
+procedure SaveImagesDialog(OleObject: Variant; Document: IDispatch);
+function ViewPageSourceHtml(Document: IDispatch): Boolean;
+procedure SavePageTextDialog(AOwner: TComponent; OleObject: Variant; Document: IDispatch);
+
+//Open external programs
+procedure OpenAddressBook;
+procedure OpenEudoraMail;
+procedure OpenOutlookExpressMail;
+procedure OpenOutlookMail;
+procedure OpenRegistryEditor;
+function OpenCalendar: Boolean;
+function OpenClient(Client: string): Boolean;
+function OpenNetMeeting: Boolean;
+function OpenNewsClient: Boolean;
+procedure DoExploreFolder(Handle: THandle; Path: string);
+procedure OpenIEBrowserWithAddress(Handle: THandle);
+
+//Open specific webpages
+function OpenHotmailMail(WebBrowser: TEmbeddedWB): Boolean;
+function OpenYahooMail(WebBrowser: TEmbeddedWB): Boolean;
+function OpenGoogleMail(WebBrowser: TEmbeddedWB): Boolean;
+procedure GoSearchInGoogle(WebBrowser: TEmbeddedWB; SearchTerm: string);
+procedure GoSearchInMSN(WebBrowser: TEmbeddedWB; SearchTerm: string);
+procedure GoSearchInYahoo(WebBrowser: TEmbeddedWB; SearchTerm: string);
+
+//Navigate & Download
+procedure Go(WebBrowser: TEmbeddedWB; Url: string);
+procedure GoWithQueryDetails(WebBrowser: TEmbeddedWB; Url, Query: string);
+procedure GoNoHistory(WebBrowser: TEmbeddedWB; const URL: string);
+procedure NavigatePidl(WebBrowser: TEmbeddedWB; pidl: PItemIdList);
+procedure GoAboutBlank(WebBrowser: TEmbeddedWB);
+procedure GoDownloadFile(WebBrowser: TEmbeddedWB; URL: string);
+function DownloadFile(SourceFile, TargetFile: string): Boolean;
+procedure GoDownloadMaskedFile(SourceFile, TargetFile: string; Notify: Boolean);
+
+//Get Special Folders/URL paths etc.
+function GetSpecialFolderPath(CallerHandle: THandle; CSIDL: Integer): PChar;
+function GetShellFolderPath(FolderName: Widestring): string;
+function GetIEHomePage: string;
+function GetCachePath: string;
+function GetCachedFileFromURL(ItemUrl: string): string;
+function GetDefaultBrowserFromRegistry: string;
+function GetIPAndHostName(var HostName, IPaddr, WSAErr: string): Boolean;
+
+
+//E-Mail functions
+procedure SendPageInMailAsAttachment(WebBrowser: TEmbeddedWB; AOwner: TComponent; Document: IDispatch; mFileName, mSubject, mBody: string);
+function CreateNewMail: Boolean;
+procedure SendUrlInMail(LocationURL, LocationName: WideString);
+
+//Search in Document & Fill Forms
+function SearchString(Webbrowser: TEmbeddedWB; const strText: string): Boolean;
+//function SearchText(WebBrowser: TEmbeddedWB; Document: IDispatch; const Value: string; const iPos: Integer = 1): IHTMLTxtRange;
+function SearchText(WebBrowser: TEmbeddedWB; Document: IDispatch; const Value: string; aTypeSearch: Integer; const iPos: Integer = 1): IHTMLTxtRange;
+
+procedure SearchAndHighlight(Document: IDispatch;
+  AText: string; const ACaption, APrompt: string; Flags: TSearchFlags = [];
+  cbackColor: string = 'yellow'; cForeColor: string = '';
+  ScrollIntoView: TScrollIntoView = sivNoScroll; ShowInputQuery: Boolean = True); overload;
+
+procedure SearchAndHighlight(Document: IDispatch; aText: string; Flags: TSearchFlags = [];
+ cbackColor: string = 'yellow'; cForeColor: string = '';
+  ScrollIntoView: TScrollIntoView = sivNoScroll); overload;
+
+procedure SetTextAreaValue(Document: IDispatch; sName, sValue: string; Options: TFindOptions);
+function FillForm(WebBrowser: TEmbeddedWB; FieldName, FieldValue: string; ElementNr: Integer = -1): Boolean; overload;
+function FillForm(Document: IDispatch; FieldName: string; FieldValue: string; ElementNr: Integer = -1): Boolean; overload;
+
+function FillForm(WebBrowser: TEmbeddedWB; FieldName: string; FieldValue: string; Value: Boolean): Boolean; overload;
+
+
+function GetFieldValue(OleObject: Variant; FieldName: string): string;
+procedure ClickInputImage(WebBrowser: TEmbeddedWB; ImageURL: string);
+
+procedure FillIEFormAndExcecute;
+
+//Clearing
+procedure ClearCache;
+procedure ClearTypedUrls;
+
+//Online Status
+function CheckOnlineStatus: Boolean;
+function IsGlobalOffline: Boolean;
+procedure WorkOffline();
+procedure WorkOnline();
+
+//Restricted & Trusted Lists
+function CheckIfInRestricredList(const Host: string; SecureSite: Boolean): Boolean;
+function CheckIfInTrustedList(const Host: string; SecureSite: Boolean): Boolean;
+procedure AddToTrustedSiteList(WebBrowser: TEmbeddedWB; const URL: string);
+procedure AddToRestrictedSiteList(WebBrowser: TEmbeddedWB; const URL: string);
+
+//Zone Icon, Security Zone, SSL Status
+procedure GetZoneIcon(IconPath: string; var Icon: TIcon);
+function GetZoneIconToForm(LocationURL: string; Caption, Hint: string): Boolean;
+function GetZoneAttributes(const URL: string): TZoneAttributes;
+function GetSSLStatus(OleObject: Variant; LocationURL: string; var SSLName, SSLDescription: string): Boolean;
+function GetUrlSecurityZone(LocationURL: string; var ZoneName, ZoneDescription: string; var Icon: TIcon): Boolean;
+
+//Proxy & User agent
+function SetProxy(UserAgent, Address: string): Boolean; overload;
+function SetProxy(UserAgent, Address, UserName, Password: string; Port: Integer): Boolean; overload;
+function SetProxyFromPAC(UserAgent, PACFile: string): Boolean;
+
+function RemoveProxy(): Boolean;
+procedure RemoveUserAgent(UserAgent: string);
+
+//MIME Filter & NameSpace
+function RegisterMIMEFilter(clsid: TGUID; MIME: PWideChar): HRESULT;
+function UnregisterMIMEFilter(MIME: PWideChar): HRESULT;
+function RegisterNameSpace(clsid: TGUID): HRESULT;
+function UnregisterNameSpace: HRESULT;
+
+//Cookies
+function GetCookiesPath: string;
+procedure ClearSessionCookies;
+
+//Favorites
+function OrganizeFavorite(h: THandle; Path: PAnsiChar): Boolean; stdcall; overload;
+{$IFDEF UNICODE}
+function OrganizeFavorite(h: THandle; Path: PWideChar): Boolean; overload;
+{$ENDIF UNICODE}
+
+function URLFromFavorites(const dotURL: string): string;
+function GetFavoritesPath: string;
+procedure AddToFavorites(URL, Title: string);
+
+//History
+function GetHistoryPath: string;
+function UrlFromHistory(ShellFolder: IShellFolder; pidl: PItemIDList): string;
+procedure ClearHistory;
+
+//Pages
+procedure SetNewHomePage(HomePage: string);
+function GetLastVisitedPage(var LastVisitedPage: string): Boolean;
+function SaveLastVisitedPage(WebBrowser: TEmbeddedWB; LocationURL: string): Boolean;
+
+//Code accessories
+procedure Wait(WebBrowser: TEmbeddedWB);
+function InvokeCMD(Document: IDispatch; InvokeIE: Boolean; Value1, Value2: Integer; var vaIn, vaOut: OleVariant): HRESULT;
+function GetIEHandle(WebBrowser: TEmbeddedWB; ClassName: string): HWND;
+
+//Execute Script
+procedure ExecScript(WebBrowser: TEmbeddedWB; sExpression, sLanguage: string);
+function ExecScriptEx(WebBrowser: TEmbeddedWB; MethodName: string; ParamValues: array of const): OleVariant;
+function WBExecScript(TargetObj: IDispatch; MethodName: string; ParamValues: array of const): OleVariant;
+
+//Miscellaneous
+procedure RestoreApplicationFormSize(WebBrowser: TEmbeddedWB);
+procedure SaveApplicationFormSize(WebBrowser: TEmbeddedWB);
+procedure ShowIEVersionInfo(Handle: THandle);
+procedure CreateDesktopShortcut(Handle: THandle);
+procedure DisableNavSound(bDisable: Boolean);
+
+//----- add to ewb-------------------------------------------------------
+function ConcatPIDLs(IDList1, IDList2: PItemIDList): PItemIDList;
+function CopyITEMID(Malloc: IMalloc; ID: PItemIDList): PItemIDList;
+function CopyPIDL(IDList: PItemIDList): PItemIDList;
+function CreatePIDL(Size: Integer): PItemIDList;
+function DeleteUrl(Url: PWideChar): HResult;
+function Encode(const S: string): string;
+function ExtractUrl(ShellFolder: IShellFolder; pidl: PItemIDList): string;
+function GetDisplayName(Folder: IShellFolder; pidl: PItemIDList): string;
+function GetFileName(Folder: IShellFolder; pidl: PItemIDList): string;
+function GetIEVersion: string;
+function GetIEVersionMajor: Integer;
+function GetImageIndex(pidl: PItemIDList): Integer;
+function GetMailClients: TStrings;
+function GetPIDLSize(IDList: PItemIDList): Integer;
+function IE5_Installed: Boolean;
+function IsChannel(ChannelShortcut: string; ShellFolder: IShellFolder; ID: PItemIDList): Boolean;
+function IsFolder(ShellFolder: IShellFolder; ID: PItemIDList): Boolean;
+function IsFolderEx(ChannelShortcut: string; ShellFolder: IShellFolder; ID: PItemIDList): Boolean;
+
+
+
+
+function NextPIDL(IDList: PItemIDList): PItemIDList;
+function ResolveChannel(pFolder: IShellFolder; pidl: PItemIDList; var lpszURL: string): HRESULT;
+function ResolveLink(const Path: string): string;
+function ResolveUrlIni(FileName: string): string;
+function ResolveUrlIntShCut(FileName: string): string;
+function StringToVarArray(const S: string): Variant;
+function URLFromShortcut(const dotURL: string): string;
+function VarArrayToString(const V: Variant): string;
+procedure DisposePIDL(ID: PItemIDList);
+procedure StripLastID(IDList: PItemIDList);
+function IsWinXPSP2OrLater(): Boolean;
+function EncodeUrl(const InputStr: string; const bQueryStr: Boolean): string;
+function DecodeURL(const InputStr: string): string;
+function IsValidProtocol(URL: string): Boolean;
+function ImportCertFile(AFileName, AStoreType: string): Boolean;
+//--end of add to ewb---------------------------------
+
+implementation
+
+uses
+  Registry, ShellAPI, Controls, Messages, Forms, SysUtils,
+  OleCtrls, WinInet, SendMail_For_EWB, ComObj, IEConst, IniFiles, JPEG, WinSock,
+  Wcrypt2, Browse4Folder, EWBCoreTools;
+
+type
+  OSVERSIONINFOEX = packed record
+    dwOSVersionInfoSize: DWORD;
+    dwMajorVersion: DWORD;
+    dwMinorVersion: DWORD;
+    dwBuildNumber: DWORD;
+    dwPlatformId: DWORD;
+    szCSDVersion: array[0..127] of Char;
+    wServicePackMajor: WORD;
+    wServicePackMinor: WORD;
+    wSuiteMask: WORD;
+    wProductType: BYTE;
+    wReserved: BYTE;
+  end;
+  TOSVersionInfoEx = OSVERSIONINFOEX;
+  POSVersionInfoEx = ^TOSVersionInfoEx;
+
+
+type
+  fn_VerifyVersionInfo = function(var VersionInformation: OSVERSIONINFOEX;
+    dwTypeMask: DWORD; dwlConditionMask: LONGLONG): BOOL; stdcall;
+  fn_VerSetConditionMask = function(ConditionMask: LONGLONG; TypeMask: DWORD;
+    Condition: Byte): LONGLONG; stdcall;
+
+function ImportCertFile(AFileName, AStoreType: string): Boolean;
+var
+  f: file; //by Ray
+  encCert: PByte;
+  encCertLen: DWORD;
+  store: HCERTSTORE;
+  context: PCCERT_CONTEXT;
+  n: PCCERT_CONTEXT;
+  encType: DWORD;
+begin
+  Result := False;
+  if FileExists(AFileName) then
+  begin
+    AssignFile(f, AFileName);
+    Reset(f, 1);
+    encCertLen := FileSize(f);
+    GetMem(encCert, encCertLen);
+    BlockRead(f, encCert^, encCertLen);
+    CloseFile(f);
+    try
+      encType := PKCS_7_ASN_ENCODING or X509_ASN_ENCODING;
+      context := CertCreateCertificateContext(encType, encCert, encCertLen);
+      if context <> nil then
+      begin
+        store := CertOpenSystemStore(0, PChar(AStoreType));
+        if store <> nil then
+        begin
+          n := nil;
+          Result := CertAddCertificateContextToStore(store, context,
+            CERT_STORE_ADD_REPLACE_EXISTING, n);
+          CertCloseStore(store, 0);
+          CertFreeCertificateContext(context);
+        end;
+      end;
+    finally
+      FreeMem(encCert, encCertLen);
+    end;
+  end;
+end;
+
+function IsWinXPSP2OrLater(): Boolean;
+var
+  osvi: TOSVersionInfoEx;
+  dwlConditionMask: LONGLONG;
+  op: Integer;
+  hlib: THandle;
+  VerifyVersionInfo: fn_VerifyVersionInfo;
+  VerSetConditionMask: fn_VerSetConditionMask;
+begin
+  Result := False;
+  hLib := LoadLibrary('kernel32.dll');
+  if (hLib <> 0) then
+  begin
+    @VerifyVersionInfo := GetProcAddress(hLib, 'VerifyVersionInfoA');
+    @VerSetConditionMask := GetProcAddress(hLib, 'VerSetConditionMask');
+    if ((@VerifyVersionInfo = nil) or (@VerSetConditionMask = nil)) then
+      Exit;
+
+    dwlConditionMask := 0;
+    op := VER_GREATER_EQUAL;
+
+    // Initialize the OSVERSIONINFOEX structure.
+    ZeroMemory(@osvi, SizeOf(OSVERSIONINFOEX));
+    osvi.dwOSVersionInfoSize := SizeOf(OSVERSIONINFOEX);
+    osvi.dwMajorVersion := 5;
+    osvi.dwMinorVersion := 1;
+    osvi.wServicePackMajor := 2;
+    osvi.wServicePackMinor := 0;
+
+    // Initialize the condition mask.
+    dwlConditionMask := VerSetConditionMask(dwlConditionMask, VER_MAJORVERSION, op);
+    dwlConditionMask := VerSetConditionMask(dwlConditionMask, VER_MINORVERSION, op);
+    dwlConditionMask := VerSetConditionMask(dwlConditionMask, VER_SERVICEPACKMAJOR, op);
+    dwlConditionMask := VerSetConditionMask(dwlConditionMask, VER_SERVICEPACKMINOR, op);
+
+    // Perform the test.
+    Result := VerifyVersionInfo(osvi, VER_MAJORVERSION or VER_MINORVERSION or
+      VER_SERVICEPACKMAJOR or VER_SERVICEPACKMINOR, dwlConditionMask);
+  end;
+end;
+
+function EncodeURL(const InputStr: string; const bQueryStr: Boolean): string;
+var
+  Idx: Integer;
+begin
+  Result := '';
+  for Idx := 1 to Length(InputStr) do
+  begin
+    case InputStr[Idx] of
+      'A'..'Z', 'a'..'z', '0'..'9', '-', '_', '.':
+        Result := Result + InputStr[Idx];
+      ' ':
+        if bQueryStr then
+          Result := Result + '+'
+        else
+          Result := Result + '%20';
+    else
+      Result := Result + '%' + SysUtils.IntToHex(Ord(InputStr[Idx]), 2);
+    end;
+  end;
+end;
+
+function DecodeURL(const InputStr: string): string;
+var
+  Idx: Integer;
+  Hex: string;
+  Code: Integer;
+begin
+  Result := '';
+  Idx := 1;
+  while Idx <= Length(InputStr) do
+  begin
+    case InputStr[Idx] of
+      '%':
+        begin
+          if Idx <= Length(InputStr) - 2 then
+          begin
+            Hex := InputStr[Idx + 1] + InputStr[Idx + 2];
+            Code := SysUtils.StrToIntDef('$' + Hex, -1);
+            Inc(Idx, 2);
+          end
+          else
+            Code := -1;
+          if Code = -1 then
+            raise SysUtils.EConvertError.Create('Invalid HEX digit in URL');
+          Result := Result + Chr(Code);
+        end;
+      '+':
+        Result := Result + ' '
+    else
+      Result := Result + InputStr[Idx];
+    end;
+    Inc(Idx);
+  end;
+end;
+
+function IsValidProtocol(URL: string): Boolean;
+const
+  Protocols: array[1..11] of string = ('ftp://', 'http://', 'https://',
+    'gopher://', 'mailto:', 'news:', 'nntp://', 'telnet://', 'wais://',
+    'file://', 'prospero://');
+var
+  I: Integer;
+begin
+  Result := False;
+  URL := SysUtils.LowerCase(URL);
+  for I := Low(Protocols) to High(Protocols) do
+    if Pos(Protocols[I], URL) <> 0 then
+    begin
+      Result := True;
+      Break;
+    end;
+end;
+
+function DocumentLoaded(Document: IDispatch): Boolean;
+var
+  iDoc: IHTMLDocument2;
+begin
+  Result := False;
+  if Assigned(Document) then
+  begin
+    Document.QueryInterface(IHTMLDocument2, iDoc);
+    Result := Assigned(iDoc);
+  end;
+end;
+
+procedure AssignEmptyDocument(WebBrowser: TEmbeddedWB);
+begin
+  WebBrowser.Go('about:blank');
+end;
+
+function AddHtmlToAboutBlank(WebBrowser: TEmbeddedWB; StringToHtml: string): Boolean;
+var
+  Flags, TargetFrameName, PostData, Headers: OleVariant;
+begin
+  WebBrowser.Navigate('about:' + StringToHtml, Flags, TargetFrameName, PostData, Headers);
+  Result := True;
+end;
+
+function GetWordAtCursor(const X, Y: Integer; WebBrowser: TEmbeddedWB): string;
+var
+  Doc: IHTMLDocument2;
+  Selection: IHTMLSelectionObject;
+  Range: IHTMLTxtRange;
+begin
+  Result := '';
+  if WebBrowser.DocumentLoaded(Doc) then
+  begin
+    Selection := (Doc as IHTMLDocument2).selection;
+    if Assigned(Selection) then
+    begin
+      Range := Selection.createRange as IHTMLTxtRange;
+      Range.moveToPoint(X, Y);
+      Range.moveStart('word', -1);
+      Range.moveEnd('word', 1);
+      Result := Trim(Range.text);
+    end;
+  end;
+end;
+
+procedure PrintPreviewFromTemplate(const TemplateFileName: string; Document: IDispatch);
+var
+  OleCommandTarget: IOleCommandTarget;
+  ParamIn, EmptyParam: OleVariant;
+begin
+  if Assigned(Document) then
+  begin
+    EmptyParam := EmptyStr;
+    Document.QueryInterface(IID_IoleCommandTarget, OLECOMMANDTARGET);
+    ParamIn := TemplateFileName;
+    OleCommandTarget.Exec(
+      nil,
+      OLECMDID_PRINTPREVIEW,
+      OLECMDEXECOPT_PROMPTUSER,
+      ParamIn, EmptyParam);
+  end;
+end;
+
+procedure ScrollToIDEx(ID: string; WebBrowser: TEmbeddedWB);
+var
+  Doc3: IHTMLDocument3;
+  Elem: IHTMLElement;
+  RV: IHTMLRect;
+begin
+  Doc3 := WebBrowser.Doc3;
+  if Assigned(Doc3) then
+  begin
+    Elem := Doc3.getElementById(ID);
+    if Assigned(Elem) then
+    begin
+      RV := (Elem as IHTMLElement2).getBoundingClientRect;
+      Webbrowser.Doc2.parentWindow.scrollBy(RV.left, RV.top);
+    end;
+  end;
+end;
+
+procedure ScrollToID(ID: Integer; WebBrowser: TEmbeddedWB);
+var
+  Doc: IHTMLDocument2;
+  ACollection: IHTMLElementCollection;
+  Elem: IHTMLElement;
+  Match: IHTMLElement2;
+  I: Integer;
+  S: string;
+  RV: IHTMLRect;
+begin
+  if WebBrowser.DocumentLoaded(Doc) then
+  begin
+    ACollection := Doc.all;
+    if Assigned(ACollection) then
+    begin
+      Match := nil;
+      S := IntToStr(ID);
+      for I := 0 to ACollection.length - 1 do
+      begin
+        Elem := ACollection.item(I, '') as IHTMLElement;
+        if Assigned(Elem) and (Elem.id = S) then
+        begin
+          Match := Elem as IHTMLElement2;
+          Break;
+        end;
+      end;
+      if Assigned(Match) then
+      begin
+        RV := Match.getBoundingClientRect;
+        WebBrowser.Doc2.parentWindow.scrollBy(RV.left, RV.top);
+      end;
+    end;
+  end;
+end;
+
+// Get SysListView32 Child from the Webbrowser Control
+
+function GetWBLV(WBHandle: HWND): HWND;
+var
+  WND: HWND;
+begin
+  Result := 0;
+  Wnd := GetNextWindow(WBHandle, GW_CHILD);
+  while (Result = 0) and (WND <> 0) do
+  begin
+    Result := FindWindowEx(Wnd, 0, 'SysListView32', nil);
+    Wnd := GetNextWindow(Wnd, GW_CHILD)
+  end;
+end;
+
+// Check if the horizontal / vertical Scrollbars are visible
+
+procedure GetScrollBarVisibility(WebBrowser: TEmbeddedWB; var HScroll, VScroll: Boolean);
+var
+  WndLV: HWND;
+  IDoc: IHTMLDocument2;
+begin
+  VScroll := False;
+  HScroll := False;
+  WndLV := GetWBLV(WebBrowser.Handle);
+  if WndLV = 0 then
+  begin
+    if Assigned(WebBrowser.Document) and (Succeeded(WebBrowser.Document.QueryInterface(IHTMLDocument2, IDoc))) then
+    begin
+      IDoc := WebBrowser.Document as IHTMLDocument2;
+      if Assigned(IDoc) and Assigned((IHTMLDocument2(IDoc).Body)) then
+      begin
+        VScroll := WebBrowser.OleObject.Document.body.ScrollHeight > WebBrowser.OleObject.Document.Body.ClientHeight;
+        HScroll := (WebBrowser.OleObject.Document.body.ScrollWidth > WebBrowser.OleObject.Document.Body.ClientWidth);
+      end;
+    end;
+  end else
+  begin
+    // if the WB is in "ListView" mode:
+    VScroll := ((GetWindowLong(WndLV, GWL_STYLE) and WS_VSCROLL) <> 0);
+    HScroll := ((GetWindowLong(WndLV, GWL_STYLE) and WS_HSCROLL) <> 0)
+  end;
+end;
+
+// Get TEmbeddedWB Scrollbar X,Y Position
+
+function GetScrollBarPosition(WebBrowser: TEmbeddedWB; var ScrollPos: TPoint): Boolean;
+
+  // Get Scrollbar X,Y Position of the ListView
+  function WB_GetLVScrollPosition(WebBrowser: TEmbeddedWB; var ScrollPos: TPoint): Boolean;
+  var
+    lpsi: TScrollInfo;
+    WndLV: HWND;
+  begin
+    Result := False;
+    // Retrieve SysListView32 Child of TEmbeddedWB
+    WndLV := GetWBLV(WebBrowser.Handle);
+    if WndLV <> 0 then // SysListView32 found
+    begin
+    // initialize TScrollInfo
+      FillChar(lpsi, SizeOf(lpsi), 0);
+      with lpsi do
+      begin
+        cbSize := SizeOf(lpsi);
+        fMask := SIF_POS;
+      end;
+      // Get ScrollInfos from the vertical Scrollbar
+      if GetScrollInfo(WndLV, SB_VERT, lpsi) then
+      begin
+        ScrollPos.Y := lpsi.nPos;
+        // Get ScrollInfos from the horizontal Scrollbar
+        if GetScrollInfo(WndLV, SB_HORZ, lpsi) then
+        begin
+          ScrollPos.X := lpsi.nPos;
+          Result := True;
+        end;
+      end;
+    end;
+  end;
+
+  // Get Scrollbar X,Y Position of the HTML Document
+  function WB_GetDOCScrollPosition(WB: TEmbeddedWB; var ScrollPos: TPoint): Boolean;
+  var
+    IDoc: IHTMLDocument2;
+    IDoc3: IHTMLDocument3;
+    IElement: IHTMLElement;
+  begin
+    ScrollPos := Point(-1, -1);
+    Result := False;
+    if Assigned(WebBrowser.Document) and (Succeeded(WebBrowser.Document.QueryInterface(IHTMLDocument2, IDoc))) then
+    begin
+      IDoc := WebBrowser.Document as IHTMLDocument2;
+      if Assigned(IDoc) and Assigned((IHTMLDocument2(IDoc).Body)) then
+      begin
+        if (IDoc.QueryInterface(IHTMLDocument3, IDoc3) = S_OK) then
+          if Assigned(IDoc3) then
+            IElement := IDoc3.get_documentElement;
+        if (Assigned(IElement)) and (Variant(IDoc).DocumentElement.scrollTop = 0) then
+          ScrollPos.Y := IHTMLDocument2(IDoc).Body.getAttribute('ScrollTop', 0)
+        else
+          ScrollPos.Y := Variant(IDoc).DocumentElement.scrollTop;
+        if Assigned(IElement) and (Variant(IDoc).DocumentElement.scrollLeft = 0) then
+          ScrollPos.X := IHTMLDocument2(IDoc).Body.getAttribute('ScrollLeft', 0)
+        else
+          ScrollPos.X := Variant(IDoc).DocumentElement.scrollLeft
+      end;
+      Result := (ScrollPos.X <> -1) and (ScrollPos.Y <> -1)
+    end;
+  end;
+
+begin
+  Result := WB_GetDOCScrollPosition(WebBrowser, ScrollPos);
+  if not Result then
+    Result := WB_GetLVScrollPosition(WebBrowser, ScrollPos);
+end;
+
+function DocumentSource(OleObject: Variant): string;
+var
+  Strings: TStringList;
+begin
+  Strings := TStringList.Create;
+  try
+    ViewPageSourceHTMLToStrings(OleObject, OleObject.Document, Strings);
+    Result := Strings.Text;
+  finally
+    FreeAndNil(Strings);
+  end;
+end;
+
+function DocumentSourceText(OleObject: Variant; Document: IDispatch): string;
+var
+  Strings: TStringList;
+begin
+  Strings := TStringList.Create;
+  try
+    EwbTools.ViewPageSourceTextToStrings(OleObject, Document, Strings);
+    Result := Strings.Text;
+  finally
+    FreeAndNil(Strings);
+  end;
+end;
+
+function GetFrame(Document: IDispatch; FrameNo: Integer): IWebBrowser2;
+var
+  OleContainer: IOleContainer;
+  enum: ActiveX.IEnumUnknown;
+  unk: IUnknown;
+  Fetched: PLongint;
+begin
+  if Assigned(Document) then
+  begin
+    Fetched := nil;
+    OleContainer := Document as IOleContainer;
+    if OleContainer.EnumObjects(OLECONTF_EMBEDDINGS, Enum) = S_OK then
+    begin
+      Enum.Skip(FrameNo);
+      Enum.Next(1, Unk, Fetched);
+      Result := Unk as IWebBrowser2;
+    end else
+      Result := nil;
+  end
+  else
+    Result := nil;
+end;
+
+function FrameCount(Document: IDispatch): LongInt;
+var //fix by Aladin
+  OleContainer: IOleContainer;
+  enum: ActiveX.IEnumUnknown;
+  FetchedContrs: LongInt;
+  Unknown: IUnknown;
+  IWeb: IWebBrowser2;
+begin
+  Result := 0; //bsalsa
+  if not DocumentLoaded(Document) then Exit;
+  OleContainer := Document as IOleContainer;
+  if OleContainer.EnumObjects(OLECONTF_EMBEDDINGS, Enum) = S_OK then
+  begin
+    while Enum.Next(1, Unknown, @FetchedContrs) = S_OK do
+    begin
+      if Unknown.QueryInterface(IID_IWebBrowser2, IWeb) = S_OK then //check if it is frame
+        Inc(Result);
+    end;
+  end;
+end;
+
+function FrameCountFromDocument(SourceDoc: IHTMLDocument2): Integer;
+var //by Aladin
+  OleContainer: IOleContainer;
+  enum: ActiveX.IEnumUnknown;
+  unk: array[0..99] of IUnknown; // CHANGED from "unk: IUnknown;"
+  EnumResult: HRESULT;
+begin
+  Result := 0;
+  if not DocumentLoaded(SourceDoc) then Exit;
+  OleContainer := SourceDoc as IOleContainer;
+  EnumResult := OleContainer.EnumObjects(OLECONTF_EMBEDDINGS, Enum);
+  if EnumResult = S_OK then
+       // Added per OLE help
+    Enum.Next(100, Unk, @Result)
+  else // Added per OLE help
+    Enum := nil;
+end;
+
+procedure SetFocusToDoc(WebBrowser: TEmbeddedWB; Dispatch, Document: IDispatch);
+begin
+  if DocumentLoaded(Document) then
+    with (Dispatch as IOleObject) do
+      DoVerb(OLEIVERB_UIACTIVATE, nil, WebBrowser, 0, WebBrowser.Handle, WebBrowser.ClientRect);
+end;
+
+function CMD_Copy(Document: IDispatch): Boolean;
+var
+  vaIn, vaOut: OleVariant;
+begin
+  Result := InvokeCmd(Document, False, OLECMDID_COPY, OLECMDEXECOPT_DODEFAULT, vaIn, vaOut) = S_OK;
+end;
+
+function CMD_Paste(Document: IDispatch): Boolean;
+var
+  vaIn, vaOut: OleVariant;
+begin
+  Result := InvokeCmd(Document, False, OLECMDID_PASTE, OLECMDEXECOPT_DODEFAULT, vaIn, vaOut) = S_OK;
+end;
+
+function CMD_Cut(Document: IDispatch): Boolean;
+var
+  vaIn, vaOut: OleVariant;
+begin
+  Result := InvokeCmd(Document, False, OLECMDID_CUT, OLECMDEXECOPT_DODEFAULT, vaIn, vaOut) = S_OK;
+end;
+
+function SelectAll(Document: IDispatch): Boolean;
+var
+  vaIn, vaOut: OleVariant;
+begin
+  Result := InvokeCmd(Document, False, OLECMDID_SELECTALL, OLECMDEXECOPT_DODEFAULT, vaIn, vaOut) = S_OK;
+end;
+
+function UnSelectAll(Document: IDispatch): Boolean;
+var
+  vaIn, vaOut: OleVariant;
+begin
+  Result := InvokeCmd(Document, False, OLECMDID_CLEARSELECTION, OLECMDEXECOPT_DODEFAULT, vaIn, vaOut) = S_OK;
+end;
+
+procedure ScrollToTop(OleObject: Variant);
+begin
+  try
+    if DocumentLoaded(OleObject.Document) then
+      OleObject.Document.ParentWindow.ScrollTo(0, 0);
+  except
+  end;
+end;
+
+procedure ScrollToPosition(OleObject: Variant; X, Y: Integer);
+begin
+  try
+    if DocumentLoaded(OleObject.Document) then
+      OleObject.Document.ParentWindow.ScrollTo(X, Y);
+  except
+  end;
+end;
+
+procedure ScrollToBottom(Document: IDispatch);
+var
+  HTMLParentWin: IHTMLWindow2;
+  Doc2: IHTMLDocument2;
+begin
+  try
+    if Supports(Document, IHTMLDocument2, Doc2) then
+    begin
+      // OleObject.Document.ParentWindow.ScrollTo(0, MaxInt); doesn't work in IE8
+      HTMLParentWin := IHTMLWindow2((Doc2 as IHTMLDocument2).parentWindow);
+      HTMLParentWin.scrollBy(0, (Doc2.body as IHTMLElement2).scrollHeight);
+    end;
+  except
+  end;
+end;
+
+function Zoom(Document: IDispatch; ZoomValue: Integer): Boolean;
+var
+  vaIn, vaOut: OleVariant;
+begin
+  if ZoomValue < ZoomRangeLow(Document) then
+    vaIn := ZoomRangeLow(Document)
+  else
+    if ZoomValue > ZoomRangeHigh(Document) then
+      vaIn := ZoomRangeHigh(Document)
+    else
+      vaIn := ZoomValue;
+  Result := InvokeCmd(Document, False, OLECMDID_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, vaIn, vaOut) = S_OK;
+end;
+
+function ZoomValue(Document: IDispatch): Integer;
+var
+  vaIn, vaOut: OleVariant;
+begin
+  vaIn := null;
+  InvokeCmd(Document, False, OLECMDID_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, vaIn, vaOut);
+  Result := vaOut;
+end;
+
+function ZoomRangeHigh(Document: IDispatch): Integer;
+var
+  vaIn, vaOut: OleVariant;
+begin
+  InvokeCmd(Document, False, OLECMDID_GETZOOMRANGE, OLECMDEXECOPT_DONTPROMPTUSER, vaIn, vaOut);
+  Result := HiWord(DWORD(vaOut));
+end;
+
+function ZoomRangeLow(Document: IDispatch): Integer;
+var
+  vaIn, vaOut: OleVariant;
+begin
+  InvokeCmd(Document, False, OLECMDID_GETZOOMRANGE, OLECMDEXECOPT_DONTPROMPTUSER, vaIn, vaOut);
+  Result := LoWord(DWORD(vaOut));
+end;
+
+function SetCharartersSet(WebBrowser: TEmbeddedWB; Document: IDispatch; const ACharactersSet: string; Refresh: Boolean = True): Boolean;
+var
+  RefreshLevel: OleVariant;
+begin
+  Wait(WebBrowser);
+  Result := False;
+  if DocumentLoaded(Document) then
+  begin
+    try
+      WebBrowser.Doc2.Set_CharSet(ACharactersSet);
+      Result := True;
+      if Refresh then
+      begin
+        RefreshLevel := 7;
+        WebBrowser.Refresh2(RefreshLevel);
+      end;
+    except
+    end;
+  end;
+end;
+
+{
+function GetCookie(OleObject: Variant): string;
+begin
+  Result := '';
+  if DocumentLoaded(OleObject.Document) then
+  try
+    Result := OleObject.Document.Cookie;
+  except
+  end;
+end;    }
+
+procedure ClearSessionCookies;
+begin
+  InternetSetOption(nil, INTERNET_OPTION_END_BROWSER_SESSION, nil, 0);
+end;
+
+procedure GetThumbnail(Dispatch: IDispatch; var Image: TImage);
+var
+  DrawRect: TRect;
+begin
+  if Image = nil then
+    Exit;
+  DrawRect := Rect(0, 0, Image.Height, Image.Width);
+  Image.Picture.Bitmap.Height := Image.Height;
+  Image.Picture.Bitmap.Width := Image.Width;
+  (Dispatch as IViewObject).Draw(DVASPECT_DOCPRINT, 0, nil, nil, 0,
+    Image.Canvas.Handle, @DrawRect, nil, nil, 0);
+  Image.Refresh;
+end;
+
+function GetBmpFromBrowser(Document: IDispatch; Handle: THandle; Width, Height: Integer; FileName: string): Boolean;
+var
+  ViewObject: IViewObject;
+  sourceDrawRect: TRect;
+  ScreenImg: Graphics.TBitmap;
+begin
+  Result := False;
+  if DocumentLoaded(Document) then
+  try
+    Document.QueryInterface(IViewObject, ViewObject);
+    if Assigned(ViewObject) then
+    try
+      ScreenImg := TBitmap.Create;
+      ScreenImg.Height := Height;
+      ScreenImg.Width := Width;
+      sourceDrawRect := Rect(0, 0, ScreenImg.Width, ScreenImg.Height);
+      ViewObject.Draw(DVASPECT_CONTENT, 1, nil, nil, Handle,
+        ScreenImg.Canvas.Handle, @sourceDrawRect, nil, nil, 0);
+      ScreenImg.SaveToFile(FileName);
+      Result := True;
+    finally
+      ViewObject._Release;
+    end;
+  except
+    Result := False;
+  end;
+end;
+
+function GetJPEGfromBrowser(Document: IDispatch; ControlInterface: IWebBrowser2; FileName: string; SourceHeight, SourceWidth,
+  TargetHeight, TargetWidth: Integer): Boolean;
+var
+  sourceDrawRect: TRect;
+  targetDrawRect: TRect;
+  sourceBitmap: Graphics.TBitmap;
+  targetBitmap: Graphics.TBitmap;
+  aJPG: TJPEGImage;
+  aViewObject: IViewObject;
+  IWeb: IWebBrowser2;
+begin
+  Result := False;
+  sourceBitmap := Graphics.TBitmap.Create;
+  targetBitmap := Graphics.TBitmap.Create;
+  aJPG := TJPEGImage.Create;
+  IWeb := ControlInterface;
+  try
+    try
+      sourceDrawRect := Rect(0, 0, SourceWidth, SourceHeight);
+      sourceBitmap.Width := SourceWidth;
+      sourceBitmap.Height := SourceHeight;
+      aViewObject := IWeb as IViewObject;
+      if aViewObject = nil then
+        Exit;
+      OleCheck(aViewObject.Draw(DVASPECT_CONTENT, 1, nil, nil,
+        Forms.Application.Handle,
+        sourceBitmap.Canvas.Handle,
+        @sourceDrawRect, nil, nil, 0));
+      targetDrawRect := Rect(0, 0, TargetWidth, TargetHeight);
+      targetBitmap.Height := TargetHeight;
+      targetBitmap.Width := TargetWidth;
+      targetBitmap.Canvas.StretchDraw(targetDrawRect, sourceBitmap);
+      aJPG.Assign(targetBitmap);
+      aJPG.SaveToFile(FileName);
+      Result := True;
+    finally
+      aJPG.Free;
+      sourceBitmap.Free;
+      targetBitmap.Free;
+    end;
+  except
+    Result := False;
+  end;
+end;
+
+procedure ViewPageLinksToStrings(OleObject: Variant; LinksList: TStrings);
+var //by smot
+  UNum: Variant;
+  s: string;
+
+  procedure RecurseLinks(htmlDoc: Variant);
+  var
+    BodyElement, ElementCo, HTMLFrames, HTMLWnd, doc: OleVariant;
+    j, i: Integer;
+  begin
+    if VarIsEmpty(htmlDoc) then Exit;
+    BodyElement := htmlDoc.body;
+    if BodyElement.tagName = 'BODY' then
+    begin
+      ElementCo := htmlDoc.links;
+      j := ElementCo.Length - 1;
+      for i := 0 to j do
+      begin
+        UNum := ElementCo.item(i);
+        s := UNum.href;
+        if j = 0 then
+          s := 'No Links found in the page body';
+        LinksList.Add(s);
+      end;
+    end;
+    HTMLFrames := htmlDoc.Frames;
+    j := HTMLFrames.Length - 1;
+    for i := 0 to j do
+    begin
+      HTMLWnd := HTMLFrames.Item(i);
+      try
+        doc := HTMLWnd.Document;
+        RecurseLinks(doc);
+      except
+        Continue;
+      end;
+    end;
+  end;
+begin
+  LinksList.Clear;
+  if not DocumentLoaded(OleObject.Document) then
+    Exit;
+  RecurseLinks(OleObject.Document);
+end;
+
+procedure ViewPageSourceHTMLToStrings(OleObject: Variant; Document: IDispatch; HtmlList: TStrings);
+begin
+  HtmlList.Clear;
+  if DocumentLoaded(Document) then
+  begin
+    try
+      HtmlList.Add(VarToStr(OleObject.Document.documentElement.innerHTML));
+    except
+    end;
+  end;
+end;
+
+procedure ViewPageSourceTextToStrings(OleObject: Variant; Document: IDispatch; TextList: TStrings);
+begin
+  TextList.Clear;
+  if DocumentLoaded(Document) then
+  begin
+    try
+      TextList.Add(VarToStr(OleObject.Document.documentElement.innerText));
+    except
+    end;
+  end;
+end;
+
+procedure ViewPageSourceText(OleObject: Variant; Document: IDispatch);
+var
+  TextLst: TStringList;
+begin
+  TextLst := TStringList.Create;
+  try
+    if DocumentLoaded(Document) then
+    begin
+      TextLst.Add(VarToStr(OleObject.Document.documentElement.innerText));
+      MessageDlg(TextLst.Text, mtCustom, [mbOK], 0);
+    end;
+  finally
+    TextLst.Free;
+  end;
+end;
+
+function SaveDocToStrings(Document: IDispatch; var AStrings: TStrings): HResult;
+var
+  IpStream: IPersistStreamInit;
+  AStream: TMemoryStream;
+begin
+  Result := S_FALSE;
+  if not DocumentLoaded(Document) then
+    Exit;
+  AStream := TMemoryStream.Create;
+  try
+    IpStream := Document as IPersistStreamInit;
+    if not Assigned(IpStream) then
+      Result := S_FALSE
+    else
+      if Succeeded(IpStream.save(TStreamadapter.Create(AStream), True))
+        then
+      begin
+        AStream.Seek(0, 0);
+        AStrings.LoadFromStream(AStream);
+        Result := S_OK;
+      end;
+  except
+  end;
+  AStream.Free;
+end;
+
+function SaveDocToStream(Document: IDispatch; var AStream: TStream): HResult;
+var
+  IpStream: IPersistStreamInit;
+begin
+  if DocumentLoaded(Document) then
+  begin
+    IpStream := Document as IPersistStreamInit;
+    Result := IpStream.Save(TStreamAdapter.Create(AStream), True);
+  end
+  else
+    Result := S_FALSE;
+end;
+
+function SaveDocToFile(Document: IDispatch; const Fname: string): HResult;
+var
+  PFile: IPersistFile;
+begin
+  Result := S_FALSE;
+  if DocumentLoaded(Document) then
+  begin
+    PFile := Document as IPersistFile;
+    Result := PFile.Save(StringToOleStr(FName), False);
+  end;
+end;
+
+procedure PrintWithHeaderFooter(ControlInterface: IWebBrowser2; Header, Footer: PWideChar; Options: OLECMDEXECOPT);
+var
+  saBound: TSafeArrayBound;
+  psaHeadFoot: PSafeArray;
+  vaIn, vaOut: TVariantArg;
+  vHeadStr, vFootStr: TVariantArg;
+  rgIndex: LongInt;
+begin
+  try
+    saBound.lLbound := 0;
+    saBound.cElements := 2;
+    psaHeadFoot := SafeArrayCreate(VT_VARIANT, 1, saBound);
+    vHeadStr.vt := VT_BSTR;
+    vHeadStr.bstrVal := SysAllocString(Header);
+    vFootStr.vt := VT_BSTR;
+    vFootStr.bstrVal := SysAllocString(Footer);
+    rgIndex := 0;
+    OleCheck(SafeArrayPutElement(psaHeadFoot, rgIndex, vHeadStr));
+    rgIndex := 1;
+    OleCheck(SafeArrayPutElement(psaHeadFoot, rgIndex, vFootStr));
+    vaIn.vt := VT_ARRAY or VT_BYREF;
+    vaIn.parray := psaHeadFoot;
+    ControlInterFace.ExecWB(OLECMDID_PRINT, Options,
+      OleVariant(vaIn), OleVariant(vaOut));
+    if vHeadStr.bstrVal <> nil then
+      SysFreeString(vHeadStr.bstrVal);
+    if vFootStr.bstrVal <> nil then
+      SysFreeString(vFootStr.bstrVal);
+  except
+  end;
+end;
+
+procedure Print(ControlInterface: IWebBrowser2; bHideSetup: Boolean = False; bCustomHeaderFooter: Boolean = False; Header: string = ''; Footer: string = '');
+var
+  vaIn, vaOut: OleVariant;
+begin
+  if DocumentLoaded(ControlInterface.Document) then
+  begin
+    if bCustomHeaderFooter then
+    begin
+      if bHideSetup then
+        PrintWithHeaderFooter(ControlInterface, TaskAllocWideString(Header), TaskAllocWideString(Footer), OLECMDEXECOPT_DONTPROMPTUSER)
+      else
+        PrintWithHeaderFooter(ControlInterface, TaskAllocWideString(Header), TaskAllocWideString(Footer), OLECMDEXECOPT_PROMPTUSER);
+    end
+    else
+      if bHideSetup then
+        ControlInterface.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER, vaIn, vaOut)
+      else
+        ControlInterface.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_PROMPTUSER, vaIn, vaOut)
+  end;
+end;
+
+procedure PrintWithOptions(ControlInterface: IWebBrowser2; Document: IDispatch; UsePrintOptions, PrintOptionsEnabled, HideSetup: Boolean; var InvokingPageSetup: Boolean);
+begin
+  PrintingWithOptions := True;
+  PageSetup(Document, UsePrintOptions, PrintOptionsEnabled, InvokingPagesetup);
+  Print(ControlInterface, HideSetup);
+end;
+
+procedure PrintPreview(Webbrowser: IWebBrowser2);
+// IE 5.5 only
+var
+  vaIn, vaOut: Olevariant;
+begin
+  if DocumentLoaded(Webbrowser.Document) then
+    Webbrowser.ExecWB(OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_DONTPROMPTUSER, vaIn, vaOut);
+end;
+
+function OpenClient(Client: string): Boolean;
+var
+  s, params, Exec: string;
+begin
+  Result := False;
+  with TRegistry.Create do
+  try
+    RootKey := HKEY_LOCAL_MACHINE;
+    OpenKey('Software\Clients\' + Client, False);
+    S := ReadString('');
+    CloseKey;
+    OpenKey('Software\Clients\' + Client + '\' + S + '\shell\open\command', False);
+    S := ReadString('');
+    CloseKey;
+    if S <> '' then
+    begin
+      if Pos('/', S) > 0 then
+      begin
+        Exec := system.Copy(S, 1, Pos('/', S) - 2);
+        Params := system.Copy(s, Length(exec) + 1, length(S));
+      end
+      else
+      begin
+        Exec := S;
+        Params := '';
+      end;
+      Result := True;
+      ShellExecute(Application.handle, 'open', PChar(Exec), PChar(Params), '', SW_SHOW);
+    end;
+  finally
+    Free;
+  end;
+end;
+
+procedure PrintPreviewExtended(ControlInterface: IWebBrowser2; nCMDShow: Integer; HideSetup: Boolean);
+var
+  Preview_HWND, App_HWND: THandle;
+  ClassName: array[0..255] of Char;
+  StartTime, EndTime: DWORD; //Smot
+  vaIn, vaOut: OleVariant;
+begin
+  if DocumentLoaded(ControlInterface.Document) then
+  begin
+    if HideSetup then
+      ControlInterface.ExecWB(OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_DONTPROMPTUSER, vaIn, vaOut) //jerzy
+    else
+      ControlInterface.ExecWB(OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_PROMPTUSER, vaIn, vaOut);
+    Preview_HWND := 0;
+    StartTime := GetTickCount;
+    repeat
+      App_HWND := GetForegroundWindow();
+      GetClassName(App_HWND, ClassName, SizeOf(ClassName));
+      if lstrcmp(@ClassName[0], @IE_PPREVIEWCLASS[1]) = 0 then
+        Preview_HWND := App_HWND;
+      Forms.Application.ProcessMessages;
+      EndTime := GetTickCount;
+    until (Preview_HWND <> 0) or (EndTime - StartTime > 7000);
+    if Preview_HWND <> 0 then
+      ShowWindow(Preview_HWND, nCmdShow);
+  end;
+end;
+
+function PageSetup(Document: IDispatch; UsePrintOptions, PrintOptionsEnabled: Boolean; var InvokingPageSetup: Boolean): Boolean;
+var
+  vaIn, vaOut: OleVariant;
+begin
+  Result := False;
+  if DocumentLoaded(Document) then
+  begin
+    if PrintOptionsEnabled and UsePrintOptions then
+      InvokingPageSetup := True;
+    Result := InvokeCmd(Document, False, OLECMDID_PAGESETUP, OLECMDEXECOPT_DODEFAULT, vaIn, vaOut) = S_OK
+  end;
+end;
+
+procedure PrintSetup(ControlInterface: IWebBrowser2; HideSetup: Boolean);
+var
+  vaIn, vaOut: OleVariant;
+begin
+  if DocumentLoaded(ControlInterface.Document) then
+  begin
+    if HideSetup then
+      ControlInterface.ExecWB(OLECMDID_PAGESETUP, OLECMDEXECOPT_DONTPROMPTUSER, vaIn, vaOut)
+    else
+      ControlInterface.ExecWB(OLECMDID_PAGESETUP, OLECMDEXECOPT_PROMPTUSER, vaIn, vaOut)
+  end;
+end;
+
+procedure GetPrintValues(WebBrowser: TEmbeddedWB; PrintOptions: TPrintOptions; Measure: TMeasure);
+var
+  S: string;
+  Registry: TRegistry;
+
+  function ReadMargin(key: string): Real;
+  begin
+    S := Registry.ReadString(key);
+    if S = '' then
+      S := '0.750000'; // <-- default margin value  by takeru_tk_81
+    S := StringReplace(S, ' ', '', [rfReplaceAll]);
+    if DecimalSeparator <> '.' then
+      S := StringReplace(S, '.', DecimalSeparator, []);
+    if Measure = mMetric then
+      Result := StrToFloat(S) * InchToMetric
+    else
+      Result := StrToFloat(S);
+  end;
+
+begin
+  Registry := TRegistry.Create;
+  try
+    with Registry do
+    begin
+      RootKey := HKEY_CURRENT_USER;
+      if OpenKey('Software\Microsoft\Internet Explorer\PageSetup', False) then
+      begin
+        with PrintOptions do
+        begin
+          Header := ReadString('header');
+          Footer := ReadString('footer');
+          Margins.Left := ReadMargin('margin_left');
+          Margins.Right := ReadMargin('margin_right');
+          Margins.Top := ReadMargin('margin_top');
+          Margins.Bottom := ReadMargin('margin_bottom');
+        end;
+      end;
+      Registry.Free;
+    end;
+  except
+
+  end;
+end;
+
+function PrintMarginStr(Measure, RuntimeMeasure: TMeasure; M: Real): string;
+begin
+  if Measure <> RuntimeMeasure then
+  begin
+    if RuntimeMeasure = mMetric then
+      Result := FloatToStr(M * InchToMetric)
+    else
+      Result := FloatToStr(M / InchToMetric);
+  end
+  else
+    Result := FloatToStr(M);
+end;
+
+procedure RestorePrintValues;
+var
+  Reg: TRegistry;
+begin
+  Reg := TRegistry.Create;
+  try
+    with Reg do
+    begin
+      RootKey := HKEY_CURRENT_USER;
+      if OpenKey('Software\Microsoft\Internet Explorer\PageSetup', True) then
+      begin
+        WriteString('header', '&w&bPage &p of &P');
+        WriteString('footer', '&u&b&d');
+        WriteString('margin_left', '0.750000');
+        WriteString('margin_right', '0.750000');
+        WriteString('margin_top', '0.750000');
+        WriteString('margin_bottom', '0.750000');
+      end;
+      Reg.Free;
+    end;
+  except
+    MessageDlg('Error while writing page print values to the registry!', mtError, [mbOK], 0);
+  end;
+end;
+
+function OpenDialog(WebBrowser: TEmbeddedWB; AOwner: TComponent): Boolean;
+var
+  OD: TOpenDialog;
+begin
+  OD := TOpenDialog.Create(AOwner);
+  try
+    with OD do
+    begin
+      Filter := 'Internet Files|*.htm; *.html; *.url; *.mht; *.mhtml; *.php *.asp'
+        + #10 + #13 + '|Image Files| *.gif;*.bmp;*.ico;*.jpg;*.png;*.wmf; *.emf; '
+        + #10 + #13 + '|Text & Documents Files| *.txt;*.doc;*.xls;*.dot;'
+        + #10 + #13 + '|Compressed Files| *.zip;'
+        + #10 + #13 + '|XML Files| *.xml;'
+        + #10 + #13 + '|Any Files|*.*';
+      Options := Options + [ofShowHelp, ofEnableSizing];
+      Title := 'Browser - Open Dialog';
+      HelpContext := 0;
+      Result := Execute;
+      if Result then
+        WebBrowser.Go(OD.FileName);
+    end;
+  finally
+    OD.Free;
+  end;
+end;
+
+function SaveDialog(WebBrowser: TEmbeddedWB; AOwner: TComponent; ATitle: string = ''; AFilter: string = ''): string;
+var
+  SD: TSaveDialog;
+begin
+  SD := TSaveDialog.Create(AOwner);
+  try
+    with SD do
+    begin
+      if AFilter = '' then
+        Filter := 'Internet Files|*.htm; *.html;*.mht; *.mhtml; *.php *.asp'
+          + #10 + #13 + '|Text & Documents Files| *.txt;*.doc;*.xls;*.dot;'
+          + #10 + #13 + '|XML Files| *.xml;'
+          + #10 + #13 + '|Any Files|*.*'
+      else
+        Filter := AFilter;
+      Options := Options + [ofShowHelp, ofEnableSizing];
+      if ATitle = '' then
+        Title := 'Browser - Save Dialog';
+      HelpContext := 0;
+      if Execute then
+        Result := SD.FileName;
+      if SD.FileName <> '' then
+        WebBrowser.SaveToFile(SD.FileName);
+    end;
+  finally
+    SD.Free;
+  end;
+end;
+
+function SaveDialog(Document: IDispatch): Boolean;
+var
+  vaIn, vaOut: OleVariant;
+begin
+  Result := InvokeCmd(Document, False, OLECMDID_SAVEAS, OLECMDEXECOPT_DODEFAULT, vaIn, vaOut) = S_OK;
+end;
+
+function ShowInternetOptions(Document: IDispatch): Boolean;
+var
+  vaIn, vaOut: OleVariant;
+begin
+  Result := InvokeCmd(Document, True, HTMLID_OPTIONS, 0, vaIn, vaOut) = S_OK;
+end;
+
+function ShowPageProperties(Document: IDispatch): Boolean;
+var
+  vaIn, vaOut: OleVariant;
+begin // OLECMDID_SHOWPAGEACTIONMENU
+  Result := InvokeCmd(Document, False, OLECMDID_PROPERTIES, OLECMDEXECOPT_DODEFAULT, vaIn, vaOut) = S_OK;
+end;
+
+function ShowOrganizeFavorites(Handle: THandle): Boolean;
+begin
+  Result := OrganizeFavorite(Handle, GetSpecialFolderPath(Handle, CSIDL_FAVORITES));
+end;
+
+procedure ShowImportExportFavoritesAndCookies(Handle: THandle);
+begin
+  SendMessage(Handle, WM_COMMAND, ID_IE_FILE_IMPORTEXPORT, 0);
+end;
+
+function ShowFindDialog(Document: IDispatch): Boolean;
+var
+  vaIn, vaOut: OleVariant;
+begin
+  Result := InvokeCmd(Document, True, HTMLID_FIND, 0, vaIn, vaOut) = S_OK;
+end;
+
+procedure SaveImagesDialog(OleObject: Variant; Document: IDispatch);
+var
+  k, p: Integer;
+  path, Source, dest, ext: string;
+begin
+  if DocumentLoaded(Document) then
+  begin
+ //        path := TBrowse4Folder.('Web Browser - Please select a destination folder' + #10 + #13
+  //          + 'for the images', 'Desktop');
+    MessageDlg(Path, mtCustom, [mbYes, mbAll, mbCancel], 0);
+    begin
+      for k := 0 to OleObject.Document.Images.Length - 1 do
+      begin
+        Source := OleObject.Document.Images.Item(k).Src;
+        p := LastDelimiter('.', Source);
+        ext := UpperCase(System.Copy(Source, p + 1, Length(Source)));
+        if (ext = 'GIF') or (ext = 'JPG') or (ext = 'BMP') or (ext = 'PNG') then
+        begin
+          p := LastDelimiter('/', Source);
+          dest := path + '/Images' + System.Copy(Source, p + 1, Length(Source));
+          DownloadFile(Source, dest);
+        end;
+      end;
+    end;
+  end;
+end;
+
+function ViewPageSourceHtml(Document: IDispatch): Boolean;
+var
+  vaIn, vaOut: OleVariant;
+begin
+  Result := InvokeCmd(Document, True, HTMLID_VIEWSOURCE, 0, vaIn, vaOut) = S_OK;
+end;
+
+procedure SavePageTextDialog(AOwner: TComponent; OleObject: Variant; Document: IDispatch);
+var
+  sd: TSaveDialog;
+  textStr: TStringList;
+begin
+  if not DocumentLoaded(Document) then Exit;
+  textstr := TStringList.Create;
+  try
+    textStr.Add(VarToStr(OleObject.Document.documentElement.innerText));
+    begin
+      sd := TSaveDialog.Create(AOwner);
+      try
+        sd.Filter := 'Text file|*.txt|Word file|*.doc';
+        sd.DefaultExt := 'txt';
+        sd.FilterIndex := 1;
+        sd.FileName := 'WebSiteText.txt';
+        sd.Title := 'Web Site Text';
+        if sd.Execute then
+        begin
+          textStr.SaveToFile(sd.FileName);
+        end;
+      finally
+        sd.Free;
+      end;
+    end;
+  finally
+    textStr.Free;
+  end;
+end;
+
+procedure ShellExecuteOpen(const sApplication: string);
+begin
+  ShellExecute(Application.Handle, 'open', PChar(sApplication), nil, nil, SW_SHOW);
+end;
+
+procedure OpenOutlookMail;
+begin
+  ShellExecuteOpen('outlook.exe');
+end;
+
+procedure OpenOutlookExpressMail;
+begin
+  ShellExecuteOpen('msimn.exe');
+end;
+
+procedure OpenEudoraMail;
+begin
+  ShellExecuteOpen('eudora.exe');
+end;
+
+procedure OpenRegistryEditor;
+begin
+  ShellExecuteOpen('regedit.exe');
+end;
+
+function OpenNewsClient: Boolean;
+begin
+  Result := OpenClient('News');
+end;
+
+procedure OpenAddressBook;
+begin
+  ShellExecuteOpen('wab.exe');
+end;
+
+function OpenCalendar: Boolean;
+begin
+  Result := OpenClient('Calendar');
+end;
+
+function OpenNetMeeting: Boolean;
+begin
+  Result := OpenClient('Internet Call');
+end;
+
+procedure DoExploreFolder(Handle: THandle; Path: string);
+begin
+  ShellExecute(handle, 'explore', PChar(Path), nil, nil, SW_SHOWNORMAL);
+end;
+
+procedure OpenIEBrowserWithAddress(Handle: THandle);
+begin
+  SendMessage(Handle, WM_COMMAND, ID_IE_FILE_NEWWINDOW, 0);
+end;
+
+function OpenHotmailMail(WebBrowser: TEmbeddedWB): Boolean;
+begin
+  Result := True;
+  Go(WebBrowser, 'http://lc1.law5.hotmail.passport.com/cgi-bin/login');
+end;
+
+function OpenGoogleMail(WebBrowser: TEmbeddedWB): Boolean;
+begin
+  Result := True;
+  Go(WebBrowser, 'http://mail.google.com/mail/');
+end;
+
+function OpenYahooMail(WebBrowser: TEmbeddedWB): Boolean;
+begin
+  Result := True;
+  Go(WebBrowser, 'http://mail.yahoo.com/');
+end;
+
+procedure GoSearchInGoogle(WebBrowser: TEmbeddedWB; SearchTerm: string);
+const
+  GOOGLE_QUERY = 'http://www.google.com/search?ie=ISO-8859-1&q=';
+var
+  sQuery: string;
+begin
+  sQuery := GOOGLE_QUERY + SearchTerm;
+  Go(WebBrowser, sQuery);
+end;
+
+procedure GoSearchInMSN(WebBrowser: TEmbeddedWB; SearchTerm: string);
+const
+  MSN_QUERY = 'http://search.live.com/results.aspx?q=';
+  MSN_Const = '&FORM=CBPW&first=1&noredir=1';
+var
+  sQuery: string;
+begin
+  sQuery := MSN_QUERY + SearchTerm + MSN_Const;
+  Go(WebBrowser, sQuery);
+end;
+
+procedure GoSearchInYahoo(WebBrowser: TEmbeddedWB; SearchTerm: string);
+const
+  YAHOO_QUERY = 'http://search.yahoo.com/bin/search?p=';
+var
+  sQuery: string;
+begin
+  sQuery := YAHOO_QUERY + SearchTerm;
+  WebBrowser.Go(sQuery);
+end;
+
+procedure Go(WebBrowser: TEmbeddedWB; Url: string);
+var
+  _URL, Flags, TargetFrameName, PostData, Headers: OleVariant;
+begin
+  _URL := Url;
+  Flags := 0;
+  TargetFrameName := 0;
+  Postdata := 0;
+  Headers := 0;
+  if (Trim(_URL) <> '') then
+    WebBrowser.Navigate2(_URL, Flags, TargetFrameName, PostData, Headers);
+end;
+
+procedure GoWithQueryDetails(WebBrowser: TEmbeddedWB; Url, Query: string);
+var
+  _URL, Flags, TargetFrameName, PostData, Headers: OleVariant;
+begin
+  _URL := Url + Query;
+  TargetFrameName := 0;
+  headers := StringtoVarArray('Content-Type:application/x-www-form-urlencoded'#13#10);
+  Postdata := StringToVarArray('version=current&name=myname' + #13#10);
+  Flags := 0;
+  WebBrowser.Navigate2(_URL, Flags, TargetFrameName, PostData, Headers);
+end;
+
+procedure GoNoHistory(WebBrowser: TEmbeddedWB; const URL: string);
+
+  function StrToChr(Str: string; Pos: Integer): Char;
+  begin
+    Result := Str[Pos];
+  end;
+
+var
+  Flags: OleVariant;
+  HistoryStg: IUrlHistoryStg;
+begin
+  Flags := navNoHistory;
+  WebBrowser.Navigate(WideString(URL), Flags);
+  Wait(WebBrowser);
+  HistoryStg := CreateComObject(CLSID_CUrlHistory) as IUrlHistoryStg;
+  HistoryStg.DeleteUrl(PWideChar(StrToChr(URL, 0)), 0);
+end;
+
+procedure NavigatePidl(WebBrowser: TEmbeddedWB; pidl: PItemIdList);
+var
+  VaEmpty, vaPidl: OleVariant;
+  psa: PSafeArray;
+  cbData: UINT;
+begin
+  cbdata := GetPIDLSize(pidl);
+  psa := SafeArrayCreateVector(VT_UI1, 0, cbData);
+  if (psa <> nil) then
+  begin
+    CopyMemory(psa.pvData, pidl, cbData);
+    VariantInit(vaPidl);
+    TVariantArg(vaPidl).vt := VT_ARRAY or VT_UI1;
+    TVariantArg(vaPidl).parray := psa;
+    WebBrowser.Navigate2(vaPidl, vaEmpty, vaEmpty, vaEmpty, vaEmpty);
+    VariantClear(vaPidl);
+  end;
+end;
+
+function GetFrameFromDocument(SourceDoc: IHTMLDocument2; FrameNo: Integer): IWebBrowser2;
+var //by Aladin
+  OleContainer: IOleContainer;
+  enum: ActiveX.IEnumUnknown;
+  unk: IUnknown;
+  Fetched: PLongint;
+begin
+  Result := nil;
+  Fetched := nil;
+  if DocumentLoaded(SourceDoc) then
+  begin
+    OleContainer := SourceDoc as IOleContainer;
+    OleContainer.EnumObjects(OLECONTF_EMBEDDINGS or OLECONTF_OTHERS, Enum);
+    Enum.Skip(FrameNo);
+    Enum.Next(1, Unk, Fetched);
+    if Supports(Unk, IWebBrowser2, Result) then //perva 2008/12/10
+      Result := Unk as IWebBrowser2;
+  end;
+end;
+
+procedure GoAboutBlank(WebBrowser: TEmbeddedWB);
+begin
+  WebBrowser.Go('about:blank');
+  Wait(WebBrowser);
+end;
+
+procedure SendPageInMailAsAttachment(WebBrowser: TEmbeddedWB; AOwner: TComponent; Document: IDispatch; mFileName, mSubject, mBody: string);
+begin
+  WebBrowser.SaveToFile(mFileName);
+  Sleep(800);
+  with TEwbMapiMail.Create(AOwner) do
+  begin
+    try
+      Subject := mSubject;
+      Body := mBody;
+      Attachments.Add(mFileName);
+      EditDialog := True;
+      Send;
+    finally
+      // Free;
+    end;
+  end;
+end;
+
+procedure GoDownloadFile(WebBrowser: TEmbeddedWB; URL: string);
+var
+  Flags: OleVariant;
+begin
+  Flags := navNoHistory or navNoReadFromCache or navNoWriteToCache
+    or navAllowAutosearch or navBrowserBar;
+  WebBrowser.Navigate(URL, Flags);
+end;
+
+function DownloadFile(SourceFile, TargetFile: string): Boolean;
+begin
+  try
+    Result := UrlDownloadToFile(nil, PChar(SourceFile), PChar(TargetFile), 0, nil) = 0;
+  except
+    Result := False;
+  end;
+end;
+
+procedure GoDownloadMaskedFile(SourceFile, TargetFile: string; Notify: Boolean);
+begin
+  if Notify then
+  begin
+    if DownloadFile(SourceFile, TargetFile) then
+      MessageBox(0, PChar('Downloading: ' + SourceFile + #10 + #13 +
+        'To: ' + TargetFile + #10 + #13 + 'was successfully finished.'),
+        PChar('Download successful.'), MB_OK)
+    else
+      MessageBox(0, PChar(
+        'An error ocurred while downloading the file.' + SourceFile),
+        PChar('Downloading Error!!'), MB_ICONERROR or MB_OK);
+  end
+  else
+    DownloadFile(SourceFile, TargetFile);
+end;
+
+procedure AddToFavorites(URL, Title: string);
+// The URL parameter must specify a valid URL using HTTP, Secure Hypertext Transfer Protocol (HTTPS),
+// or File Transfer Protocol (FTP) protocols only. Calling the IShellUIHelper::AddFavorite method with a
+// file:// or javascript: URL returns E_ACCESSDENIED.
+const
+  CLSID_ShellUIHelper: TGUID = '{64AB4BB7-111E-11D1-8F79-00C04FC2FBE1}';
+var
+  ShellUIHelper: ISHellUIHelper;
+  Url1, Title1: OleVariant;
+begin
+  if (Trim(URL) <> '') and (Trim(Title) <> '') then
+  begin
+    Title1 := Title;
+    Url1 := Url;
+    CoCreateInstance(CLSID_SHELLUIHELPER, nil, CLSCTX_INPROC_SERVER, IID_IShellUIHelper, ShellUIHelper);
+    try
+      ShellUIHelper.AddFavorite(URL1, Title1);
+    except
+    end;
+  end;
+end;
+
+function GetFavoritesPath: string;
+begin
+  Result := GetShellFolderPath('Favorites');
+end;
+
+function GetCookiesPath: string;
+begin
+  Result := GetShellFolderPath('Cookies');
+end;
+
+function GetHistoryPath: string;
+begin
+  Result := GetShellFolderPath('History');
+end;
+
+function GetCachePath: string;
+begin
+  Result := GetShellFolderPath('Cache');
+end;
+
+function GetShellFolderPath(FolderName: Widestring): string;
+const
+  REG_PATH = 'SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders';
+var
+  Reg: TRegistry;
+begin
+  Result := '';
+  Reg := TRegistry.Create(KEY_READ);
+  with Reg do
+  try
+    Rootkey := HKEY_CURRENT_USER;
+    OpenKey(REG_PATH, False);
+    if (ValueExists(FolderName)) and not (length(trim(ReadString(FolderName))) = 0) then
+      Result := ReadString(FolderName);
+  finally
+    CloseKey;
+    Free;
+  end;
+end;
+
+function GetSpecialFolderPath(CallerHandle: THandle; CSIDL: Integer): PChar;
+var
+  exInfo: TShellExecuteInfo;
+  Buf: PChar;
+begin
+  FillChar(exInfo, SizeOf(exInfo), 0);
+  with exInfo do
+  begin
+    cbSize := SizeOf(exInfo);
+    fMask := SEE_MASK_FLAG_DDEWAIT or SEE_MASK_IDLIST;
+    Wnd := CallerHandle;
+    nShow := SW_SHOWNORMAL;
+    Buf := StrAlloc(MAX_PATH);
+    try
+{$IFDEF UNICODE}
+      FillChar(Buf^, MAX_PATH * SizeOf(Char), 0);
+{$ELSE}
+      FillChar(Buf^, MAX_PATH, 0);
+{$ENDIF UNICODE}
+      if SHGetSpecialFolderPath(wnd, Buf, CSIDL, True) then
+        Result := Buf
+      else
+        Result := '';
+    finally
+      StrDispose(Buf);
+    end;
+  end;
+end;
+
+
+
+function GetIEHomePage: string;
+var
+  HomePage: string;
+begin
+  HomePage := '';
+  with TRegistry.Create do
+  try
+    RootKey := HKEY_CURRENT_USER;
+    OpenKey('\Software\Microsoft\Internet Explorer\Main', False);
+    HomePage := ReadString('Start Page');
+    CloseKey;
+  finally
+    Free;
+  end;
+  Result := HomePage;
+end;
+
+function GetCachedFileFromURL(ItemUrl: string): string;
+var
+  IntCacheInfo: PInternetCacheEntryInfo;
+  CacheEntry, dwEntrySize, dwLastError: LongWord;
+begin
+  dwEntrySize := 0;
+  FindFirstUrlCacheEntry(nil, TInternetCacheEntryInfo(nil^), dwEntrySize);
+  GetMem(IntCacheInfo, dwEntrySize);
+  CacheEntry := FindFirstUrlCacheEntry(nil, IntCacheInfo^, dwEntrySize);
+  if (CacheEntry <> 0) and (ItemUrl = IntCacheInfo^.lpszSourceUrlName) then
+    Result := IntCacheInfo^.lpszLocalFileName;
+  FreeMem(IntCacheInfo);
+  if Result = '' then
+    repeat
+      dwEntrySize := 0;
+      FindNextUrlCacheEntry(CacheEntry, TInternetCacheEntryInfo(nil^), dwEntrySize);
+      dwLastError := GetLastError();
+      if (GetLastError = ERROR_INSUFFICIENT_BUFFER) then
+      begin
+        GetMem(IntCacheInfo, dwEntrySize);
+        if (FindNextUrlCacheEntry(CacheEntry, IntCacheInfo^, dwEntrySize)) then
+        begin
+          if ItemUrl = IntCacheInfo^.lpszSourceUrlName then
+          begin
+            Result := IntCacheInfo^.lpszLocalFileName;
+            Break;
+          end;
+        end;
+        FreeMem(IntCacheInfo);
+      end;
+    until (dwLastError = ERROR_NO_MORE_ITEMS);
+end;
+
+function OrganizeFavorite(h: THandle; Path: PAnsiChar): Boolean; stdcall;
+  external 'shdocvw.dll' name 'DoOrganizeFavDlg'; overload;
+
+{$IFDEF UNICODE}
+
+function OrganizeFavorite(h: THandle; Path: PWideChar): Boolean;
+begin
+  Result := OrganizeFavorite(h, PAnsiChar(AnsiString(UnicodeString(Path))));
+end;
+
+{$ENDIF UNICODE}
+
+function URLFromFavorites(const dotURL: string): string;
+begin
+  Result := '';
+  with TIniFile.Create(dotURL) do
+  try
+    try
+      Result := ReadString('InternetShortcut', 'URL', '');
+    except;
+    end;
+  finally
+    Free;
+  end;
+end;
+
+function UrlFromHistory(ShellFolder: IShellFolder; pidl: PItemIDList): string;
+var
+  Handle: THandle;
+  Info: IQueryInfo;
+  W: PWideChar;
+begin
+  Result := '';
+  Handle := 0;
+  Info := nil;
+  ShellFolder.GetUIObjectOf(Handle, 1, pidl, IID_IQUERYINFO, nil, Pointer(Info));
+  if Assigned(Info) then
+  begin
+    Info.GetInfoTip(0, w);
+    Result := W;
+  end;
+  Result := Trim(System.Copy(Result, Pos(#10, Result) + 1, length(Result)));
+end;
+
+function GetDefaultBrowserFromRegistry: string;
+var
+  Reg: TRegistry;
+  KeyName: string;
+begin
+  Reg := TRegistry.Create;
+  try
+    Reg.RootKey := HKEY_CLASSES_ROOT;
+    KeyName := 'htmlfile\shell\open\command';
+    if Reg.OpenKey(KeyName, False) then
+    begin
+      Result := Reg.ReadString('');
+      Reg.CloseKey;
+    end
+    else
+      Result := 'No default browser found.';
+  finally
+    Reg.Free;
+  end;
+end;
+
+function GetIPAndHostName(var HostName, IPaddr, WSAErr: string): Boolean;
+var
+  WSAResult: Integer;
+  WSAData: TWSAData;
+  HostEnt: PHostEnt;
+  Host: AnsiString;
+  SockAddr: TSockAddrIn;
+begin
+  Result := False;
+  WSAResult := WSAStartup(MakeWord(1, 1), WSAData);
+  if WSAResult <> 0 then
+  begin
+    WSAErr := 'Winsock is not responding."';
+  end else
+  try
+    if Host = '' then
+    begin
+      SetLength(Host, MAX_PATH);
+      GetHostName(PAnsiChar(Host), MAX_PATH);
+    end;
+    HostEnt := GetHostByName(PAnsiChar(Host));
+    if HostEnt <> nil then
+    begin
+      HostName := string(AnsiString(Host));
+      SetLength(HostName, StrLen(PChar(HostName)));
+      SockAddr.sin_addr.S_addr := Longint(PLongint(HostEnt^.h_addr_list^)^);
+      IPaddr := string(AnsiString(inet_ntoa(SockAddr.sin_addr)));
+      Result := True;
+    end else
+    begin
+      begin
+        case WSAGetLastError of
+          WSANOTINITIALISED: WSAErr := 'WSANotInitialised';
+          WSAENETDOWN: WSAErr := 'WSAENetDown';
+          WSAEINPROGRESS: WSAErr := 'WSAEInProgress';
+        end;
+      end;
+    end;
+  finally
+    WSACleanup;
+  end;
+end;
+
+function CreateNewMail: Boolean;
+var
+  em_subject, em_body, em_mail: string;
+begin
+  em_subject := '';
+  em_body := '';
+  em_mail := 'mailto:?subject=' + em_subject + '&body=' + em_body;
+  Result := ShellExecute(0, 'open', PChar(em_mail), nil, nil, SW_SHOWNORMAL) > 32;
+end;
+
+procedure SendUrlInMail(LocationURL, LocationName: WideString);
+begin
+  with TEwbMapiMail.Create(nil) do
+  begin
+    try
+      Subject := LocationName;
+      Body := LocationURL;
+      EditDialog := True;
+      Send;
+    finally
+    end;
+  end;
+end;
+
+
+function SearchText(WebBrowser: TEmbeddedWB; Document: IDispatch; const Value: string; aTypeSearch: Integer; const iPos: Integer = 1): IHTMLTxtRange;
+//by JJM
+{ aTypeSearch can have the following values
+(*
+0 Default. Match partial words.
+1 Match backwards.
+2 Match whole words only.
+4 Match case.
+*)
+}
+var
+  B: Boolean;
+begin
+  Wait(WebBrowser);
+  Result := nil;
+  try
+    if DocumentLoaded(Document) then
+      if Assigned((Document as IHTMLDocument2).body) then
+      begin
+        Result := ((Document as IHTMLDocument2).body as IHTMLBodyElement).CreateTextRange;
+        if Result.moveStart('character', ipos) = S_OK then
+          B := Result.findText(Value, 1, aTypeSearch)
+        else
+          B := Result.findText(Value, iPos, aTypeSearch);
+        if B then
+          Result.ScrollIntoView(True)
+        else
+          Result := nil;
+      end;
+  except
+    on e: Exception do ;
+  end;
+end;
+
+function SearchString(Webbrowser: TEmbeddedWB; const strText: string): Boolean;
+var
+  tr: IHTMLTxtRange;
+begin
+  Wait(WebBrowser);
+  Result := False;
+  try
+    if Assigned(Webbrowser.Document) then
+    begin
+      tr := ((Webbrowser.Document as IHTMLDocument2).body as IHTMLBodyElement).createTextRange;
+      Result := tr.findText(strText, 1, 0);
+    end;
+  except
+    on e: Exception do
+      ;
+  end;
+end;
+
+function DoSearchAndHighlight(Document: IDispatch; sFind: string;
+  Flags: TSearchFlags = []; cbackColor: string = 'yellow'; cForeColor: string = '';
+  ScrollIntoView: TScrollIntoView = sivNoScroll): Integer;
+var
+  Doc2: IHTMLDocument2;
+  pElem: IHTMLElement;
+  pBodyelem: IHTMLBodyElement;
+  pTxtRange: IHTMLTxtRange;
+  searchdir, searchcase, iMatches: Integer;
+begin
+  iMatches := 0;
+  if (Length(sFind) <> 0) and
+    Supports(Document, IHTMLDocument2, Doc2) then
+  begin
+    searchdir := 1;
+    searchcase := 0;
+    //Set up search case
+    if (sfMatchWholeWord in Flags) and (sfMatchCase in Flags) then
+      searchcase := 6
+    else if sfMatchWholeWord in Flags then
+      searchcase := 2
+    else if sfMatchCase in Flags then
+      searchcase := 4;
+
+    pElem := Doc2.body;
+    if (pElem <> nil) then
+    begin
+      pBodyelem := pElem as IHTMLBodyElement;
+      if (pBodyelem <> nil) then
+      begin
+        pTxtRange := pBodyelem.createTextRange();
+        if (pTxtRange <> nil) then
+        begin
+          while (pTxtRange.findText(sFind, searchdir, searchcase)) do
+          begin
+            if (cbackColor <> '') then
+              pTxtRange.execCommand('BackColor', False, cbackColor);
+            if (cForeColor <> '') then
+              pTxtRange.execCommand('ForeColor', False, cForeColor);
+            pTxtRange.moveStart('Character', 1);
+            pTxtRange.moveEnd('Textedit', 1);
+            iMatches := iMatches + 1;
+            if (iMatches = 1) and (ScrollIntoView = sivFirstMatch) then
+             pTxtRange.scrollIntoView(True);
+          end;
+          if (iMatches > 1) and (ScrollIntoView = sivLastMatch) then
+             pTxtRange.scrollIntoView(True);
+        end;
+      end;
+    end;
+  end;
+  Result := iMatches;
+end;
+
+procedure SearchAndHighlight(Document: IDispatch;
+  AText: string; const ACaption, APrompt: string; Flags: TSearchFlags = [];
+   cbackColor: string = 'yellow'; cForeColor: string = '';
+  ScrollIntoView: TScrollIntoView = sivNoScroll; ShowInputQuery: Boolean = True); overload;
+var
+// tr: IHTMLTxtRange;
+  FrameCount, i: Integer;
+  Wb2: IWebBrowser2;
+begin
+  if DocumentLoaded(Document) then
+  begin
+    if ShowInputQuery then
+      if not InputQuery(ACaption, APrompt, AText) then Exit;
+
+    if Length(aText) = 0 then Exit;
+    try
+      FrameCount := FrameCountFromDocument(Document as IHTMLDocument2);
+      if FrameCount > 0 then
+      begin
+        for i := 0 to Pred(FrameCount) do
+        begin
+          Wb2 := GetFrameFromDocument(Document as IHTMLDocument2, i);
+          if Assigned(Wb2) then
+            SearchAndHighlight(Wb2.Document, AText, ACaption, APrompt, Flags,
+             cbackColor, cForeColor, ScrollIntoView, False);
+        end;
+      end
+      else
+      begin
+        DoSearchAndHighlight(Document, AText, Flags,
+          cbackColor, cForeColor, ScrollIntoView);
+      {  tr := ((Document as IHTMLDocument2).body as IHTMLBodyElement).createTextRange;
+        while tr.findText(aText, 1, 0) do
+        begin
+          tr.pasteHTML('<span style="background-color: ' + aColor + '; font-weight: bolder;">' +
+            tr.htmlText + '</span>');
+          tr.scrollIntoView(True);
+        end; }
+      end;
+    except
+    end;
+  end;
+end;
+
+procedure SearchAndHighlight(Document: IDispatch; aText: string; Flags: TSearchFlags = [];
+  cbackColor: string = 'yellow'; cForeColor: string = '';
+  ScrollIntoView: TScrollIntoView = sivNoScroll); overload;
+begin
+  SearchAndHighlight(Document, '', '', aText, Flags, cbackColor, cForeColor, ScrollIntoView, False);
+end;
+
+{function FillForm(OleObject: Variant; FieldName: string; Value: string): Boolean;
+var
+  I, j: Integer;
+  FormItem: Variant;
+begin
+  Result := False;
+  if not DocumentLoaded(OleObject.Document) or OleObject.Document.all.tags('FORM').Length = 0 then
+    Exit;
+  for I := 0 to OleObject.Document.forms.Length - 1 do
+  begin
+    FormItem := OleObject.Document.forms.Item(I);
+    for j := 0 to FormItem.Length - 1 do
+    begin
+      try
+        if (FormItem.Item(j).Name = FieldName) and
+          (FormItem.Item(j).Name <> 'length') then
+        begin
+          FormItem.Item(j).Value := Value;
+          Result := True;
+        end;
+      except
+        Exit;
+      end;
+    end;
+  end;
+end;  }
+
+procedure SetTextAreaValue(Document: IDispatch; sName, sValue: string; Options: TFindOptions);
+var
+  Doc2: IHTMLDocument2;
+  i: Integer;
+  field: IHTMLElement;
+  textarea: IHTMLTextAreaElement;
+begin
+  if Supports(Document, IHTMLDocument2, Doc2) then
+    for i := 0 to Doc2.all.length - 1 do
+    begin
+      field := Doc2.all.item(i, '') as IHTMLElement;
+      if Assigned(field) then
+      begin
+        if SameText(field.tagName, 'TEXTAREA') then
+        begin
+          textarea := field as IHTMLTextAreaElement;
+          if Assigned(textarea) then
+          begin
+            if ((frWholeWord in Options) and (sName = textarea.Name))
+              or ((Options = []) and (AnsiPos(sName, textarea.Name) <> 0)) then
+              textarea.Value := sValue;
+          end;
+        end;
+      end;
+    end;
+end;
+
+function FillForm(Document: IDispatch; FieldName: string; FieldValue: string; ElementNr: Integer = -1): Boolean; overload;
+var
+  Inputs: IHTMLElementCollection;
+  HTMLElement: IHTMLElement;
+  TagName: string;
+  k, iItemNr, iInputCount: Integer;
+begin
+  Result := False;
+  Inputs := IHTMLDocument3(Document).getElementsByName(FieldName);
+  if Assigned(Inputs) then
+  begin
+    try
+      if ElementNr = -1 then
+        iInputCount := Inputs.Length
+      else
+        iInputCount := ElementNr;
+
+      if iInputCount = -1 then iInputCount := 0;
+
+      for k := 0 to iInputCount - 1 do
+      begin
+        if ElementNr = -1 then
+          iItemNr := k
+        else
+          iItemNr := ElementNr;
+
+        HTMLElement := Inputs.item(iItemNr, '') as IHTMLElement;
+        if Assigned(HTMLElement) then
+        begin
+          TagName := AnsiUpperCase(HTMLElement.tagName);
+          if TagName = 'INPUT' then
+          begin
+            (HTMLElement as IHTMLInputElement).Value := FieldValue;
+            Result := True;
+            Exit;
+          end
+          else if TagName = 'SELECT' then
+          begin
+            (HTMLElement as IHTMLSelectElement).Value := FieldValue;
+            Result := True;
+            Exit;
+          end
+          else if TagName = 'TEXTAREA' then
+          begin
+            (HTMLElement as IHTMLTextAreaElement).Value := FieldValue;
+            Result := True;
+            Exit;
+          end;
+        end;
+        if ElementNr <> -1 then Exit;
+      end;
+    except
+    end;
+  end;
+end;
+
+function FillForm(WebBrowser: TEmbeddedWB; FieldName: string; FieldValue: string; ElementNr: Integer = -1): Boolean; overload;
+var
+  Doc3: IHTMLDocument3;
+begin
+  Result := False;
+  if Assigned(WebBrowser.Document) and
+    (Succeeded(WebBrowser.Document.QueryInterface(IHTMLDocument3, Doc3))) then
+  begin
+    FillForm(Doc3, FieldName, FieldValue, ElementNr)
+  end;
+end;
+
+
+function FillForm(WebBrowser: TEmbeddedWB; FieldName: string; FieldValue: string; Value: Boolean): Boolean;
+var
+  I, j: Integer;
+  FormItem: Variant;
+begin
+  Result := False;
+  if not DocumentLoaded(WebBrowser.Document) then
+    if WebBrowser.OleObject.Document.all.tags('FORM').Length = 0 then
+      if (FieldName = '') and (FieldValue = '') then
+        for I := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do
+        begin
+          FormItem := WebBrowser.OleObject.Document.forms.Item(I);
+          for j := 0 to FormItem.Length - 1 do
+          begin
+            try
+              if (FormItem.Item(j).Name = FieldName) or (Fieldname = '') then
+                if (FormItem.Item(j).Value = FieldValue) or (Fieldvalue = '') then
+                begin
+                  FormItem.Item(j).checked := Value;
+                  Result := True;
+                end;
+            except
+              Continue;
+            end;
+          end;
+        end;
+end;
+
+procedure ClickInputImage(WebBrowser: TEmbeddedWB; ImageURL: string);
+var
+  iDoc: IHTMLDocument2;
+  iDisp: IDispatch;
+  iColl: IHTMLElementCollection;
+  InputImage: htmlInputImage;
+  i: Integer;
+begin
+  if WebBrowser.DocumentLoaded then
+  begin
+    if Supports(WebBrowser.Document, IHTMLDocument2, iDoc) then
+    begin
+      iDisp := iDoc.all.tags('INPUT');
+      if Assigned(iDisp) then
+      begin
+        if Supports(iDisp, IHTMLElementCollection, iColl) then
+        begin
+          ImageURL := AnsiUpperCase(ImageURL);
+          for i := 1 to iColl.Get_length do
+          begin
+            iDisp := iColl.item(Pred(i), 0);
+            if Supports(iDisp, HTMLInputImage, ImageURL) then
+            begin
+              if Pos(ImageURL, AnsiUpperCase(InputImage.src)) <> 0 then
+              begin
+                InputImage.Click;
+              end;
+            end;
+          end;
+        end;
+      end;
+    end;
+  end;
+end;
+
+function GetFieldValue(OleObject: Variant; FieldName: string): string;
+var
+  I, j: Integer;
+  FormItem: Variant;
+begin
+  Result := '';
+  if DocumentLoaded(OleObject.Document) then
+    if OleObject.Document.all.tags('FORM').Length = 0 then
+      for I := 0 to OleObject.Document.forms.Length - 1 do
+      begin
+        FormItem := OleObject.Document.forms.Item(I);
+        for j := 0 to FormItem.Length - 1 do
+        begin
+          try
+            if FormItem.Item(j).Name = FieldName then
+              Result := FormItem.Item(j).Value;
+          except
+            Continue;
+          end;
+        end;
+      end;
+end;
+
+procedure FillIEFormAndExcecute;
+var
+  ShellWindow: IShellWindows;
+  IWeb: IWebBrowser2;
+  spDisp: IDispatch;
+  IDoc1: IHTMLDocument2;
+  Document: Variant;
+  k, m: Integer;
+  ovElements: OleVariant;
+  i: Integer;
+begin
+  ShellWindow := CoShellWindows.Create;
+  // get the running instance of Internet Explorer
+  for k := 0 to ShellWindow.Count do
+  begin
+    spDisp := ShellWindow.Item(k);
+    if spDisp = nil then
+      Continue;
+    // QueryInterface determines if an interface can be used with an object
+    spDisp.QueryInterface(IWebBrowser2, IWeb);
+
+    if IWeb <> nil then
+    begin
+      IWeb.Document.QueryInterface(IHTMLDocument2, iDoc1);
+      if iDoc1 <> nil then
+      begin
+        IWeb := ShellWindow.Item(k) as IWebBrowser2;
+        begin
+          Document := IWeb.Document;
+            // count forms on document and iterate through its forms
+          for m := 0 to Document.Forms.Length - 1 do
+          begin
+            ovElements := Document.Forms.Item(m).Elements;
+            // iterate through elements
+            for i := 0 to ovElements.Length - 1 do
+            begin
+              // when input fieldname is found, try to fill out
+              try
+                if (CompareText(ovElements.Item(i).tagName, 'INPUT') = 0) and
+                  (CompareText(ovElements.Item(i).type, 'text') = 0) then
+                begin
+                  ovElements.Item(i).Value := 'FindWindow';
+                end;
+              except
+              end;
+              // when Submit button is found, try to click
+              try
+                if (CompareText(ovElements.Item(i).tagName, 'INPUT') = 0) and
+                  (CompareText(ovElements.Item(i).type, 'SUBMIT') = 0) and
+                  (ovElements.Item(i).Value = 'Search') then // Suchen for German
+                begin
+                  ovElements.Item(i).Click;
+                end;
+              except
+              end;
+            end;
+          end;
+        end;
+      end;
+    end;
+  end;
+end;
+
+procedure ClearHistory;
+var
+  HistoryStg: IUrlHistoryStg2;
+begin
+  HistoryStg := CreateComObject(CLSID_CUrlHistory) as IUrlHistoryStg2;
+  HistoryStg.ClearHistory;
+end;
+
+function DeleteFirstCacheEntry(var H: THandle): DWORD;
+var
+  T: PInternetCacheEntryInfo;
+  D: DWord;
+begin
+  Result := S_OK;
+  H := 0;
+  D := 0;
+  FindFirstUrlCacheEntryEx(nil, 0, URLCACHE_FIND_DEFAULT_FILTER, 0, nil, @D, nil, nil, nil);
+  GetMem(T, D);
+  try
+    H := FindFirstUrlCacheEntryEx(nil, 0, URLCACHE_FIND_DEFAULT_FILTER, 0, T, @D, nil, nil, nil);
+    if (H = 0) then
+      Result := GetLastError
+    else
+      DeleteUrlCacheEntry(T^.lpszSourceUrlname);
+  finally
+    FreeMem(T, D)
+  end;
+end;
+
+function DeleteNextCacheEntry(H: THandle): DWORD;
+var
+  T: PInternetCacheEntryInfo;
+  D: DWORD;
+begin
+  Result := S_OK;
+  D := 0;
+  FindnextUrlCacheEntryEx(H, nil, @D, nil, nil, nil);
+  GetMem(T, D);
+  try
+    if not FindNextUrlCacheEntryEx(H, T, @D, nil, nil, nil) then
+      Result := GetLastError
+    else
+      DeleteUrlCacheEntry(T^.lpszSourceUrlname);
+  finally
+    FreeMem(T, D)
+  end;
+end;
+
+procedure ClearCache;
+var
+  H: THandle;
+begin
+  if DeleteFirstCacheEntry(H) = S_OK then
+    repeat
+    until DeleteNextCacheEntry(H) = ERROR_NO_MORE_ITEMS;
+  FindCloseUrlCache(H);
+end;
+
+procedure ClearTypedUrls;
+begin
+  with TRegistry.Create do
+  try
+    RootKey := HKEY_CURRENT_USER;
+    DeleteKey('Software\Microsoft\Internet Explorer\TypedURLs');
+  finally
+    Free;
+  end;
+end;
+
+function CheckOnlineStatus: Boolean;
+var
+  dwConnectionTypes: Integer;
+begin
+  Result := False;
+  try
+    dwConnectionTypes := INTERNET_CONNECTION_MODEM + INTERNET_CONNECTION_LAN + INTERNET_CONNECTION_PROXY;
+    Result := InternetGetConnectedState(@dwConnectionTypes, 0);
+  except
+  end;
+end;
+
+procedure SetGlobalOffline(Value: Boolean);
+const
+  INTERNET_STATE_DISCONNECTED_BY_USER = $10;
+  ISO_FORCE_DISCONNECTED = $1;
+  INTERNET_STATE_CONNECTED = $1;
+var
+  ci: TInternetConnectedInfo;
+  dwSize: DWORD;
+begin
+  dwSize := SizeOf(ci);
+  if Value then
+  begin
+    ci.dwConnectedState := INTERNET_STATE_DISCONNECTED_BY_USER;
+    ci.dwFlags := ISO_FORCE_DISCONNECTED;
+  end else
+  begin
+    ci.dwFlags := 0;
+    ci.dwConnectedState := INTERNET_STATE_CONNECTED;
+  end;
+  InternetSetOption(nil, INTERNET_OPTION_CONNECTED_STATE, @ci, dwSize);
+end;
+
+procedure WorkOffline();
+begin
+  SetGlobalOffline(False);
+end;
+
+procedure WorkOnline();
+begin
+  SetGlobalOffline(True);
+end;
+
+function IsGlobalOffline: Boolean;
+var
+  dwState: DWORD;
+  dwSize: DWORD;
+begin
+  dwState := 0;
+  dwSize := SizeOf(dwState);
+  Result := False;
+  if (InternetQueryOption(nil, INTERNET_OPTION_CONNECTED_STATE, @dwState, dwSize)) then
+    Result := ((dwState and INTERNET_STATE_DISCONNECTED_BY_USER) <> 0);
+end;
+
+function GetTLDFromHost(Host: string): string;
+var
+  i, Dots: Integer;
+begin
+  Dots := 0;
+  for i := Length(Host) downto 1 do
+  begin
+    if Copy(Host, i, 1) = '.' then
+      Inc(Dots);
+    if Dots = 2 then
+      break;
+    Result := Copy(Host, i, 1) + Result;
+  end;
+end;
+
+function CheckIfInRestricredList(const Host: string; SecureSite: Boolean): Boolean;
+const
+  Path = '\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\';
+var
+  TLD: string;
+begin // todo: check for IPs IN RANGES
+  Result := False;
+  TLD := GetTLDFromHost(Host);
+  with TRegistry.Create(KEY_READ) do
+  begin
+    try
+      RootKey := HKEY_CURRENT_USER;
+      if not OpenKey(Path + 'Domains' + '\' + TLD + '\' +
+        Copy(Host, 1, Length(Host) - Length(TLD) - 1), False) then
+      begin
+        CloseKey;
+        if not OpenKey(Path + 'EscDomains' + '\' + TLD + '\' +
+          Copy(Host, 1, Length(Host) - Length(TLD) - 1), False) then // found on IE6, W2003
+        begin
+          CloseKey;
+          Exit;
+        end;
+      end;
+      if SecureSite then
+        Result := ReadInteger('https') = 4
+      else
+        Result := ReadInteger('http') = 4
+    finally
+      CloseKey;
+      Free;
+    end;
+  end;
+end;
+
+function CheckIfInTrustedList(const Host: string; SecureSite: Boolean): Boolean;
+const
+  Path = '\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\';
+var
+  TLD: string;
+begin // todo: check for IPs in RANGES
+  Result := False;
+  TLD := GetTLDFromHost(Host);
+  with TRegistry.Create(KEY_READ) do
+  begin
+    try
+      RootKey := HKEY_CURRENT_USER;
+      if not OpenKey(Path + 'Domains' + '\' + TLD + '\' +
+        Copy(Host, 1, Length(Host) - Length(TLD) - 1), False) then
+      begin
+        CloseKey;
+        if not OpenKey(Path + 'EscDomains' + '\' + TLD + '\' +
+          Copy(Host, 1, Length(Host) - Length(TLD) - 1), False) then // found on IE6, W2003
+        begin
+          CloseKey;
+          Exit;
+        end;
+      end;
+      if SecureSite then
+        Result := ReadInteger('https') = 2
+      else
+        Result := ReadInteger('http') = 2
+    finally
+      CloseKey;
+      Free;
+    end;
+  end;
+end;
+
+procedure AddToTrustedSiteList(WebBrowser: TEmbeddedWB; const URL: string);
+const
+  REG_PATH = '\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains';
+var
+  Reg: TRegistryIniFile;
+begin
+  if AnsiPos('HTTPS', AnsiUpperCase(URL)) = 0 then
+    MessageDlg('Only sites with https:// prefix (secured sites) can be added to the trusted sites list zone!', mtError, [mbOK], 0)
+  else
+  begin
+    try
+      Reg := TRegistryIniFile.Create(REG_PATH);
+      try
+        Reg.WriteInteger(URL, 'https', (2));
+      finally
+        Reg.Free;
+      end;
+    except
+    end;
+  end;
+end;
+
+procedure AddToRestrictedSiteList(WebBrowser: TEmbeddedWB; const URL: string);
+const
+  REG_PATH = '\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains';
+var
+  st: string;
+  I: Integer;
+  Reg: TRegistryIniFile;
+begin
+  I := LastDelimiter(':', Url) + 2;
+  st := Copy(Url, I + 1, MaxInt);
+  if AnsiPos('www', st) > 0 then
+  begin
+    I := 4;
+    st := Copy(st, I + 1, MaxInt);
+  end;
+  try
+    Reg := TRegistryIniFile.Create(REG_PATH);
+    try
+      Reg.WriteInteger(st, '*', (4));
+    finally
+      Reg.Free;
+    end;
+  except
+  end;
+end;
+
+
+function GetZoneAttributes(const URL: string): TZoneAttributes;
+var
+  dwZone: Cardinal;
+  ZoneAttr: TZoneAttributes;
+var
+  ZoneManager: IInternetZoneManager;
+  SecManager: IInternetSecurityManager;
+begin
+  ZeroMemory(@ZoneAttr, SizeOf(TZoneAttributes));
+  if CoInternetCreateSecuritymanager(nil, SecManager, 0) = S_OK then
+    if CoInternetCreateZoneManager(nil, ZoneManager, 0) = S_OK then
+    begin
+      SecManager.MapUrlToZone(PWideChar(WideString(URL)), dwZone, 0);
+      ZoneManager.GetZoneAttributes(dwZone, Result);
+    end;
+end;
+
+function GetZoneIconToForm(LocationURL: string; Caption, Hint: string): Boolean;
+var
+  ZoneAttr: TZoneAttributes;
+  ZoneIcon: TIcon;
+begin
+  ZoneAttr := GetZoneAttributes(LocationURL);
+  ZoneIcon := TIcon.Create;
+  try
+    GetZoneIcon(ZoneAttr.szIconPath, ZoneIcon);
+    Caption := ZoneAttr.szDisplayName;
+    Hint := ZoneAttr.szDisplayName;
+    Forms.Application.Icon := ZoneIcon;
+  finally
+    ZoneIcon.Free;
+  end;
+  Result := True;
+end;
+
+procedure GetZoneIcon(IconPath: string; var Icon: TIcon);
+var
+  FName, ImageName: string;
+  h: hInst;
+begin
+  FName := Copy(IconPath, 1, Pos('#', IconPath) - 1);
+  ImageName := Copy(IconPath, Pos('#', IconPath), Length(IconPath));
+  h := LoadLibrary(PChar(FName));
+  try
+    if h <> 0 then
+      Icon.Handle := LoadImage(h, PChar(ImageName), IMAGE_ICON, 16, 16, 0);
+  finally
+    FreeLibrary(h);
+  end;
+end;
+
+function GetUrlSecurityZone(LocationURL: string; var ZoneName, ZoneDescription: string; var Icon: TIcon): Boolean;
+var
+  ZoneAttr: TZoneAttributes;
+begin
+  Assert(Icon <> nil);
+  ZoneAttr := GetZoneAttributes(LocationURL);
+  try
+    try
+      GetZoneIcon(ZoneAttr.szIconPath, Icon);
+      ZoneName := ZoneAttr.szDisplayName;
+      ZoneDescription := ZoneAttr.szDescription;
+      Result := True;
+    except
+      Result := False;
+    end;
+  finally
+  end;
+end;
+
+function GetSSLStatus(OleObject: Variant; LocationURL: string; var SSLName, SSLDescription: string): Boolean;
+begin
+  Result := False;
+  if (Pos('https://', LocationURL) > 0) then
+  begin
+    if OleObject.Document.Location.Protocol = 'https:' then
+    begin
+      SSLName := 'SSL';
+      SSLDescription := 'It is a secure web page.';
+      Result := True;
+    end;
+  end
+  else
+  begin
+    SSLName := 'None';
+    SSLDescription := 'The page is not secured.';
+    Result := False;
+  end
+end;
+
+function SetProxy(UserAgent, Address: string): Boolean; // mladen
+var
+  list: INTERNET_PER_CONN_OPTION_LIST;
+  dwBufSize: DWORD;
+  hInternet: Pointer;
+  Options: array[1..3] of INTERNET_PER_CONN_OPTION;
+begin
+  Result := False;
+  dwBufSize := SizeOf(list);
+  list.dwSize := SizeOf(list);
+  list.pszConnection := nil;
+  list.dwOptionCount := High(Options); // the highest index of the array (in this case 3)
+  Options[1].dwOption := INTERNET_PER_CONN_FLAGS;
+  Options[1].Value.dwValue := PROXY_TYPE_DIRECT or PROXY_TYPE_PROXY;
+  Options[2].dwOption := INTERNET_PER_CONN_PROXY_SERVER;
+  Options[2].Value.pszValue := PAnsiChar(AnsiString(Address));
+  Options[3].dwOption := INTERNET_PER_CONN_PROXY_BYPASS;
+  Options[3].Value.pszValue := '<local>';
+  list.pOptions := @Options;
+  hInternet := InternetOpen(PChar(UserAgent), INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0);
+  if hInternet <> nil then
+  try
+    Result := InternetSetOption(hInternet, INTERNET_OPTION_PER_CONNECTION_OPTION, @list, dwBufSize);
+    Result := Result and InternetSetOption(hInternet, INTERNET_OPTION_REFRESH, nil, 0);
+  finally
+    InternetCloseHandle(hInternet)
+  end;
+end;
+
+function SetProxy(UserAgent, Address, UserName, Password: string; Port: Integer): Boolean;
+var
+  list: INTERNET_PER_CONN_OPTION_LIST;
+  dwBufSize: DWORD;
+  hInternet, hInternetConnect: Pointer;
+  Options: array[1..3] of INTERNET_PER_CONN_OPTION;
+begin
+  Result := False;
+  dwBufSize := SizeOf(list);
+  list.dwSize := SizeOf(list);
+  list.pszConnection := nil;
+  list.dwOptionCount := High(Options);
+  Options[1].dwOption := INTERNET_PER_CONN_FLAGS;
+  Options[1].Value.dwValue := PROXY_TYPE_DIRECT or PROXY_TYPE_PROXY;
+  Options[2].dwOption := INTERNET_PER_CONN_PROXY_SERVER;
+  Options[2].Value.pszValue := PAnsiChar(AnsiString(Address));
+  Options[3].dwOption := INTERNET_PER_CONN_PROXY_BYPASS;
+  Options[3].Value.pszValue := '<local>';
+  list.pOptions := @Options;
+  hInternet := InternetOpen(PChar(UserAgent), INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0);
+  if hInternet <> nil then
+  try
+    hInternetConnect := InternetConnect(hInternet, PChar(Address), Port, PChar(UserName), PChar(Password),
+      INTERNET_SERVICE_HTTP, 0, 0);
+    if hInternetConnect <> nil then
+    begin
+      Result := InternetSetOption(hInternet, INTERNET_OPTION_PER_CONNECTION_OPTION, @list, dwBufSize);
+      Result := Result and InternetSetOption(hInternet, INTERNET_OPTION_REFRESH, nil, 0);
+    end;
+  finally
+    InternetCloseHandle(hInternet)
+  end;
+end;
+
+function SetProxyFromPAC(UserAgent, PACFile: string): Boolean;
+var
+  list: INTERNET_PER_CONN_OPTION_LIST;
+  dwBufSize: DWORD;
+  hInternet: Pointer;
+  Options: array[1..2] of INTERNET_PER_CONN_OPTION;
+begin
+  Result := False;
+  dwBufSize := SizeOf(list);
+  list.dwSize := SizeOf(list);
+  list.pszConnection := nil;
+  list.dwOptionCount := High(Options);
+  Options[1].dwOption := INTERNET_PER_CONN_AUTOCONFIG_URL;
+  Options[1].Value.pszValue := PAnsiChar(AnsiString(PacFile));
+  Options[2].dwOption := INTERNET_PER_CONN_FLAGS;
+  Options[2].Value.dwValue := PROXY_TYPE_AUTO_PROXY_URL;
+  list.dwOptionCount := 2;
+  list.dwOptionError := 0;
+  list.pOptions := @Options;
+  hInternet := InternetOpen(PChar(UserAgent), INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0);
+  if hInternet <> nil then
+  try
+    Result := InternetSetOption(hInternet, INTERNET_OPTION_PER_CONNECTION_OPTION, @list, dwBufSize);
+    Result := Result and InternetSetOption(hInternet, INTERNET_OPTION_REFRESH, nil, 0);
+  finally
+    InternetCloseHandle(hInternet)
+  end;
+end;
+
+function RemoveProxy(): Boolean;
+var
+  list: INTERNET_PER_CONN_OPTION_LIST;
+  dwBufSize: DWORD;
+  hInternet: Pointer;
+  Options: array[1..3] of INTERNET_PER_CONN_OPTION;
+begin
+  Result := False;
+  dwBufSize := SizeOf(list);
+  list.dwSize := SizeOf(list);
+  list.pszConnection := nil;
+  list.dwOptionCount := High(Options);
+  Options[1].dwOption := INTERNET_PER_CONN_FLAGS;
+  Options[1].Value.dwValue := PROXY_TYPE_DIRECT or PROXY_TYPE_PROXY;
+  Options[2].dwOption := INTERNET_PER_CONN_PROXY_SERVER;
+  Options[2].Value.pszValue := PAnsiChar('');
+  Options[3].dwOption := INTERNET_PER_CONN_PROXY_BYPASS;
+  Options[3].Value.pszValue := '<local>';
+  list.pOptions := @Options;
+  hInternet := InternetOpen(PChar(''), INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0);
+  if hInternet <> nil then
+  try
+    InternetSetOption(hInternet, INTERNET_OPTION_PER_CONNECTION_OPTION, @list, dwBufSize);
+    InternetSetOption(hInternet, INTERNET_OPTION_REFRESH, nil, 0);
+    Result := True;
+  finally
+    InternetCloseHandle(hInternet)
+  end;
+end;
+
+procedure RemoveUserAgent(UserAgent: string);
+var
+  reg: TRegistry;
+begin
+  Reg := TRegistry.Create;
+  with Reg do
+  begin
+    RootKey := HKEY_CURRENT_USER;
+    try
+      if OpenKey(USER_AGENT_PATH, False)
+        then
+        DeleteValue(UserAgent);
+    finally
+      CloseKey;
+      Free;
+    end;
+  end;
+end;
+
+var
+  MimeFactory, NSFactory: IClassFactory;
+  MimeInternetSession, NSInternetSession: IInternetSession;
+
+function RegisterMIMEFilter(clsid: TGUID; MIME: PWideChar): HRESULT;
+begin
+  CoGetClassObject(Clsid, CLSCTX_SERVER, nil, IClassFactory, MimeFactory);
+  CoInternetGetSession(0, MimeInternetSession, 0);
+  Result := MIMEInternetSession.RegisterMimeFilter(MimeFactory, Clsid, MIME);
+end;
+
+function UnregisterMIMEFilter(MIME: PWideChar): HRESULT;
+begin
+  Result := MIMEInternetSession.UnregisterMimeFilter(MIMEFactory, MIME);
+end;
+
+function RegisterNameSpace(clsid: TGUID): HRESULT;
+begin
+  CoGetClassObject(Clsid, CLSCTX_SERVER, nil, IClassFactory, NSFactory);
+  CoInternetGetSession(0, NSInternetSession, 0);
+  Result := NSInternetSession.RegisterNameSpace(NSFactory, Clsid, 'http', 0, nil, 0);
+end;
+
+function UnregisterNameSpace: HRESULT;
+begin
+  Result := NSInternetSession.UnregisterNameSpace(NSFactory, 'http');
+end;
+
+procedure RestoreApplicationFormSize(WebBrowser: TEmbeddedWB);
+var
+  ws: Integer;
+  RegPath: string;
+begin
+  with TRegistry.Create do
+  begin
+    RootKey := HKEY_LOCAL_MACHINE;
+    RegPath := 'SOFTWARE\' + Forms.Application.Title + '\FormSize';
+    if OpenKey(RegPath, False) then
+    try
+      with Forms.Application.MainForm do
+      begin
+        Left := ReadInteger('Left');
+        Top := ReadInteger('Top');
+        Width := ReadInteger('Width');
+        Height := ReadInteger('Height');
+        ws := ReadInteger('WindowState');
+        case ws of
+          0: WindowState := wsNormal;
+          1: WindowState := wsMinimized;
+          2: WindowState := wsMaximized;
+        end;
+      end;
+    except
+    end;
+    CloseKey;
+    Free;
+  end;
+end;
+
+procedure SaveApplicationFormSize(WebBrowser: TEmbeddedWB);
+var
+  RegPath: string;
+begin
+  with TRegistry.Create do
+  begin
+    RootKey := HKEY_LOCAL_MACHINE;
+    RegPath := 'SOFTWARE\' + Forms.Application.Title + '\FormSize';
+    if OpenKey(RegPath, True) then
+    try
+      with Forms.Application.MainForm do
+      begin
+        WriteInteger('Top', Top);
+        WriteInteger('Left', Left);
+        WriteInteger('Width', Width);
+        WriteInteger('Height', Height);
+        with Forms.Application.MainForm do
+          case WindowState of
+            wsNormal: WriteInteger('WindowState', 0);
+            wsMinimized: WriteInteger('WindowState', 0);
+            wsMaximized: WriteInteger('WindowState', 0);
+          end;
+      end;
+      CloseKey;
+      Free;
+    except
+    end;
+  end;
+end;
+
+procedure Wait(WebBrowser: TEmbeddedWB);
+begin
+  WebBrowser.Wait;
+end;
+
+function InvokeCMD(Document: IDispatch; InvokeIE: Boolean; Value1, Value2: Integer; var vaIn, vaOut: OleVariant): HRESULT;
+var
+  CmdTarget: IOleCommandTarget;
+  PtrGUID: PGUID;
+begin
+ //  New(PtrGUID);
+  Result := S_FALSE;
+  if InvokeIE then
+  begin
+    New(PtrGUID);
+    PtrGUID^ := CLSID_WebBrowser;
+  end
+  else
+    PtrGuid := PGUID(nil);
+  if DocumentLoaded(Document) then
+  try
+    Document.QueryInterface(IOleCommandTarget, CmdTarget);
+    if CmdTarget <> nil then
+    try
+      Result := CmdTarget.Exec(PtrGuid, Value1, Value2, vaIn, vaOut);
+    finally
+      CmdTarget._Release;
+    end;
+  except
+  end;
+  Dispose(PtrGUID);
+end;
+
+function GetIEHandle(WebBrowser: TEmbeddedWB; ClassName: string): HWND;
+begin
+  Result := WebBrowser.GetIEHandle(WebBrowser, ClassName);
+end;
+
+procedure ShowIEVersionInfo(Handle: THandle);
+begin
+  SendMessage(Handle, WM_COMMAND, ID_IE_HELP_VERSIONINFO, 0);
+end;
+
+procedure SetNewHomePage(HomePage: string);
+begin
+  with TRegistry.Create do
+  begin
+    try
+      OpenKey('\Software\Microsoft\Internet Explorer\Main', True);
+      WriteString('Start Page', HomePage);
+      CloseKey;
+    finally
+      Free;
+    end;
+  end;
+end;
+
+function GetLastVisitedPage(var LastVisitedPage: string): Boolean;
+begin
+  Result := False;
+  with TRegistry.Create do
+  begin
+    LastVisitedPage := '';
+    RootKey := HKEY_LOCAL_MACHINE;
+    try
+      if OpenKey('SOFTWARE\' + Forms.Application.Title + '\WebPages', False) then
+      begin
+        LastVisitedPage := ReadString('LastVisitedPage');
+        CloseKey;
+        Result := (LastVisitedPage <> '') and (AnsiPos('.', LastVisitedPage) > 0);
+      end;
+    finally
+      Free;
+    end;
+  end;
+end;
+
+function SaveLastVisitedPage(WebBrowser: TEmbeddedWB; LocationURL: string): Boolean;
+var
+  RegPath: string;
+begin
+  Result := False;
+  with TRegistry.Create do
+  begin
+    RootKey := HKEY_LOCAL_MACHINE;
+    RegPath := 'SOFTWARE\' + Forms.Application.Title + '\WebPages';
+    if OpenKey(RegPath, False) then
+    try
+      DeleteKey('LastVisitedPage');
+    except
+    end;
+    Free;
+  end;
+  with TRegIniFile.Create do
+  begin
+    RootKey := HKEY_LOCAL_MACHINE;
+    RegPath := 'SOFTWARE\' + Forms.Application.Title;
+    if OpenKey(RegPath, True) then
+    begin
+      try
+        WriteString('WebPages', 'LastVisitedPage', LocationURL);
+        Result := True;
+      except
+      end;
+      CloseKey;
+    end;
+    Free;
+  end;
+end;
+
+procedure CreateDesktopShortcut(Handle: THandle);
+begin
+  SendMessage(Handle, WM_COMMAND, ID_IE_FILE_SENDDESKTOPSHORTCUT, 0);
+end;
+
+procedure DisableNavSound(bDisable: Boolean);
+const
+  REG_PATH = 'AppEvents\Schemes\Apps\Explorer\Navigating\';
+var
+  Reg: TRegIniFile;
+begin
+  Reg := TRegIniFile.Create;
+  with Reg do
+  begin
+    RootKey := HKEY_CURRENT_USER;
+    try
+      if bDisable then
+      begin
+        if KeyExists(REG_PATH + '.Current') then
+          if OpenKey(REG_PATH, True) then
+            MoveKey('.Current', 'Old_Current', True);
+      end
+      else
+      begin
+        if KeyExists(REG_PATH + 'Old_Current') then
+          if OpenKey(REG_PATH, False) then
+            MoveKey('Old_Current', '.Current', True);
+      end;
+    finally
+      CloseKey;
+      Free;
+    end;
+  end;
+end;
+
+function WBExecScript(
+  TargetObj: IDispatch;
+  MethodName: string;
+  ParamValues: array of const): OleVariant;
+var
+  wide: WideString;
+  disps: TDispIDList;
+  panswer: ^OleVariant;
+  answer: OleVariant;
+  dispParams: TDispParams;
+  aexception: TExcepInfo;
+  pVarArg: PVariantArgList;
+  res: HRESULT;
+  ParamCount, i: Integer;
+begin
+  Result := False;
+
+  // prepare for function call
+  ParamCount := High(ParamValues) + 1;
+  wide := MethodName;
+  pVarArg := nil;
+  if ParamCount > 0 then
+    GetMem(pVarArg, ParamCount * sizeof(TVariantArg));
+
+  try
+    // get dispid of requested method
+    if not Succeeded(TargetObj.GetIDsOfNames(GUID_NULL, @wide, 1, 0, @disps)) then
+      raise Exception.Create('This object does not support this method');
+    pAnswer := @answer;
+
+    // prepare parameters
+    for i := 0 to Pred(ParamCount) do
+    begin
+      case ParamValues[ParamCount - 1 - i].VType of
+        vtBoolean: begin
+            pVarArg^[i].vt := VT_BOOL;
+            pVarArg^[i].vbool := ParamValues[ParamCount - 1 - i].VBoolean;
+          end;
+        vtCurrency: begin
+            pVarArg^[i].vt := VT_CY;
+            pVarArg^[i].cyVal := ParamValues[ParamCount - 1 - i].VCurrency^;
+          end;
+        vtInt64: begin
+            pVarArg^[i].vt := VT_I8;
+            PInt64(@pVarArg^[i].cyVal)^ := ParamValues[ParamCount - 1 - i].VInt64^;
+          end;
+        vtInteger: begin
+            pVarArg^[i].vt := VT_I4;
+            pVarArg^[i].lVal := ParamValues[ParamCount - 1 - i].VInteger;
+          end;
+        vtExtended: begin
+            pVarArg^[i].vt := VT_R8;
+            pVarArg^[i].dblVal := ParamValues[ParamCount - 1 - i].VExtended^;
+          end;
+        vtVariant: begin
+            pVarArg^[i].vt := VT_BYREF or VT_VARIANT;
+            pVarArg^[i].pvarVal := ParamValues[ParamCount - 1 - i].VVariant;
+          end;
+        vtChar: begin
+            {pVarArg^[i].vt := VT_I1;
+            pVarArg^[i].cVal := ParamValues[ParamCount - 1 - i].VChar;}
+            pVarArg^[i].vt := VT_BSTR;
+            pVarArg^[i].bstrVal := PWideChar(WideString(ParamValues[ParamCount - 1 - i].VChar));
+          end;
+        vtWideChar: begin
+            pVarArg^[i].vt := VT_BSTR;
+            pVarArg^[i].bstrVal := PWideChar(WideString(ParamValues[ParamCount - 1 - i].VWideChar));
+          end;
+        vtPChar: begin
+            pVarArg^[i].vt := VT_BSTR;
+            pVarArg^[i].bstrVal := PWideChar(WideString(ParamValues[ParamCount - 1 - i].VPChar));
+          end;
+        vtPWideChar: begin
+            pVarArg^[i].vt := VT_BSTR;
+            pVarArg^[i].bstrVal := ParamValues[ParamCount - 1 - i].VPWideChar;
+          end;
+        vtAnsiString: begin
+            pVarArg^[i].vt := VT_BSTR;
+            pVarArg^[i].bstrVal := PWideChar(WideString(PAnsiChar(ParamValues[ParamCount - 1 - i].VAnsiString)));
+          end;
+        vtWideString: begin
+            pVarArg^[i].vt := VT_BSTR;
+            pVarArg^[i].bstrVal := PWideChar(WideString(ParamValues[ParamCount - 1 - i].VWideString));
+          end;
+        vtString: begin
+            pVarArg^[i].vt := VT_BSTR;
+            pVarArg^[i].bstrVal := PWideChar(WideString(PAnsiChar(ParamValues[ParamCount - 1 - i].VString)));
+          end;
+{$IFDEF UNICODE}
+        vtUnicodeString: begin
+            pVarArg^[i].vt := VT_BSTR;
+            pVarArg^[i].bstrVal := PWideChar(UnicodeString(ParamValues[ParamCount - 1 - i].VUnicodeString));
+          end;
+{$ENDIF UNICODE}
+      else
+        raise Exception.CreateFmt('Unsupported type for Parameter with Index %d', [i]);
+      end;
+    end;
+
+    // prepare dispatch parameters
+    dispparams.rgvarg := pVarArg;
+    dispparams.rgdispidNamedArgs := nil;
+    dispparams.cArgs := ParamCount;
+    dispparams.cNamedArgs := 0;
+
+    // make IDispatch call
+    res := TargetObj.Invoke(disps[0],
+      GUID_NULL, 0, DISPATCH_METHOD or DISPATCH_PROPERTYGET,
+      dispParams, pAnswer, @aexception, nil);
+
+    // check the Result
+    if res <> 0 then
+      raise Exception.CreateFmt(
+        'Method call unsuccessful. %s (%s).',
+        [string(aexception.bstrDescription), string(aexception.bstrSource)]);
+
+    // return the Result
+    Result := answer;
+  finally
+    if ParamCount > 0 then
+      FreeMem(pVarArg, ParamCount * sizeof(TVariantArg));
+  end;
+end;
+
+function ExecScriptEx(WebBrowser: TEmbeddedWB; MethodName: string; ParamValues: array of const): OleVariant;
+var
+  doc: IHTMLDocument2;
+  dScript: IDispatch;
+begin
+  if WebBrowser.DocumentLoaded(Doc) then
+  begin
+    dScript := doc.Script;
+    if Assigned(dScript) then
+      Result := WBExecScript(DScript, MethodName, ParamValues);
+  end;
+end;
+
+procedure ExecScript(WebBrowser: TEmbeddedWB; sExpression, sLanguage: string);
+// e.g. sLanguage = 'JavaScript';
+var
+  Doc: IHTMLDocument2; // current HTML document
+  HTMLWin: IHTMLWindow2; // parent window of current HTML document
+begin
+  if WebBrowser.DocumentLoaded(Doc) then
+  begin
+    HTMLWin := Doc.parentWindow;
+    if Assigned(HTMLWin) then
+    begin
+      try
+        HTMLWin.execScript(sExpression, sLanguage);
+      except
+      end;
+    end;
+  end;
+end;
+
+//To Add--------------------------------------------------
+
+function URLFromShortcut(const dotURL: string): string;
+begin
+  Result := '';
+  with TIniFile.Create(dotURL) do
+  try
+    Result := ReadString('InternetShortcut', 'URL', '');
+  finally
+    Free;
+  end;
+end;
+
+function ExtractUrl(ShellFolder: IShellFolder; pidl: PItemIDList): string;
+var
+  Handle: THandle;
+  Info: IQueryInfo;
+  W: PWideChar;
+begin
+  Handle := 0;
+  Info := nil;
+  Result := '';
+  ShellFolder.GetUIObjectOf(Handle, 1, pidl, IID_IQUERYINFO, nil, Pointer(Info));
+  if Assigned(Info) then
+  begin
+    Info.GetInfoTip(0, w);
+    Result := W;
+  end;
+  Result := Trim(Copy(Result, Pos(#10, Result) + 1, length(Result)));
+end;
+
+function StringToVarArray(const S: string): Variant;
+begin
+  Result := Unassigned;
+  if S <> '' then
+  begin
+    Result := VarArrayCreate([0, Length(S) - 1], varByte);
+    Move(Pointer(S)^, VarArrayLock(Result)^, Length(S));
+    VarArrayUnlock(Result);
+  end;
+end;
+
+function VarArrayToString(const V: Variant): string;
+var
+  i, j: Integer;
+begin
+  if VarIsArray(V) then
+    for i := 0 to VarArrayHighBound(V, 1) do
+    begin
+      j := V[i];
+      Result := Result + chr(j);
+    end;
+end;
+
+function Encode(const S: string): string;
+var
+  I: Integer;
+  Hex: string;
+begin
+  for I := 1 to Length(S) do
+    case S[i] of
+      ' ': Result := Result + '+';
+      'A'..'Z', 'a'..'z', '*', '@', '.', '_', '-',
+        '0'..'9', '$', '!', '''', '(', ')':
+        Result := Result + s[i];
+    else
+      begin
+        Hex := IntToHex(ord(S[i]), 2);
+        if Length(Hex) = 2 then
+          Result := Result + '%' + Hex
+        else
+          Result := Result + '%0' + hex;
+      end;
+    end;
+end;
+
+function IE5_Installed: Boolean;
+var
+  Reg: TRegistry;
+  S: string;
+begin
+  Reg := TRegistry.Create;
+  with Reg do
+  begin
+    RootKey := HKEY_LOCAL_MACHINE;
+    OpenKey('Software\Microsoft\Internet Explorer', False);
+    if ValueExists('Version') then
+      S := ReadString('Version')
+    else
+      S := '0';
+    CloseKey;
+    Free;
+  end;
+  Result := (StrToInt(S[1]) > 4);
+end;
+
+function GetIEVersionMajor: Integer;
+var
+  i: Integer;
+  s: string;
+begin
+  s := GetIEVersion;
+  i := Pos('.', s);
+  Result := -1;
+  if i <> 0 then
+  begin
+    try
+      Result := StrToInt(Copy(s, 1, Pos('.', s) - 1));
+    except
+      Result := -1;
+    end;
+  end;
+end;
+
+function GetIEVersion: string;
+var
+  SysDir: PChar;
+  Info: Pointer;
+  InfoData: Pointer;
+  InfoSize: LongInt;
+  Len: DWORD;
+  FName: Pchar;
+  SystemDir, Infotype: string;
+  LangPtr: Pointer;
+begin
+  Len := MAX_PATH + 1;
+  GetMem(SysDir, Len);
+  try
+    if Windows.GetSystemDirectory(SysDir, Len) <> 0 then
+      SystemDir := SysDir;
+  finally
+    FreeMem(SysDir);
+  end;
+  Result := '';
+  InfoType := 'FileVersion';
+  if FileExists(SystemDir + '\ieframe.dll') then
+    FName := PChar(SystemDir + '\ieframe.dll')
+  else
+    FName := PChar(SystemDir + '\shdocvw.dll');
+  InfoSize := GetFileVersionInfoSize(Fname, Len);
+  if (InfoSize > 0) then
+  begin
+    GetMem(Info, InfoSize);
+    try
+      if GetFileVersionInfo(FName, Len, InfoSize, Info) then
+      begin
+        Len := 255;
+        if VerQueryValue(Info, '\VarFileInfo\Translation', LangPtr, Len) then
+          InfoType := Format('\StringFileInfo\%0.4x%0.4x\%s'#0, [LoWord(LongInt(LangPtr^)),
+            HiWord(LongInt(LangPtr^)), InfoType]);
+        if VerQueryValue(Info, Pchar(InfoType), InfoData, len) then
+{$IFDEF UNICODE}
+          Result := Trim(PWideChar(InfoData));
+{$ELSE}
+          Result := StrPas(PAnsiChar(InfoData));
+{$ENDIF UNICODE}
+      end;
+    finally
+      FreeMem(Info, InfoSize);
+    end;
+  end;
+end;
+
+function ResolveUrlIni(Filename: string): string;
+var
+  ini: TiniFile;
+begin
+  Result := '';
+  ini := TIniFile.Create(Filename);
+  try
+    Result := ini.ReadString('InternetShortcut', 'URL', '');
+  finally
+    ini.Free;
+  end;
+end;
+
+function ResolveUrlIntShCut(Filename: string): string;
+var
+  IURL: IUniformResourceLocator;
+  PersistFile: IPersistfile;
+  FName: array[0..MAX_PATH] of WideChar;
+  p: PChar;
+begin
+  if Succeeded(CoCreateInstance(CLSID_InternetShortcut, nil, CLSCTX_INPROC_SERVER,
+    IID_IUniformResourceLocator, IURL)) then
+  begin
+    Persistfile := IUrl as IPersistFile;
+    StringToWideChar(FileName, FName, MAX_PATH);
+    PersistFile.Load(FName, STGM_READ);
+    IUrl.GetUrl(@P);
+    Result := P;
+  end;
+end;
+
+function ResolveChannel(pFolder: IShellFolder; pidl: PItemIDList; var lpszURL: string): HRESULT;
+var
+  pidlChannel: PItemIDList;
+  psfDesktop: IShellFolder;
+  pShellLink: IShellLink;
+begin
+  Result := S_FALSE;
+  if Succeeded(pFolder.GetUIObjectOf(0, 1, pidl, IShellLink, nil, Pointer(pShellLink)))
+    then
+    if Succeeded(pShellLink.GetIDList(pidlChannel)) then
+      if Succeeded(SHGetDesktopFolder(psfDesktop)) then
+      begin
+        lpszURL := getDisplayName(psfDesktop, PidlChannel);
+        Result := S_OK;
+      end;
+  DisposePidl(PidlChannel);
+end;
+
+function ResolveLink(const Path: string): string;
+var
+  link: IShellLink;
+  storage: IPersistFile;
+  filedata: TWin32FindData;
+  buf: array[0..MAX_PATH] of Char;
+  widepath: WideString;
+begin
+  OleCheck(CoCreateInstance(CLSID_ShellLink, nil, CLSCTX_INPROC_SERVER, IShellLink, link));
+  OleCheck(link.QueryInterface(IPersistFile, storage));
+  widepath := path;
+  Result := '';
+  if Succeeded(storage.Load(@widepath[1], STGM_READ)) then
+    if Succeeded(link.Resolve(GetActiveWindow, SLR_NOUPDATE)) then
+      if Succeeded(link.GetPath(buf, SizeOf(buf), filedata, SLGP_UNCPRIORITY)) then
+        Result := buf;
+  storage := nil;
+  link := nil;
+end;
+
+function IsFolder(ShellFolder: IShellFolder; ID: PItemIDList): Boolean;
+var
+  Flags: UINT;
+begin
+  Flags := SFGAO_FOLDER;
+  ShellFolder.GetAttributesOf(1, ID, Flags);
+  Result := SFGAO_FOLDER and Flags <> 0;
+end;
+
+function IsChannel(ChannelShortcut: string; ShellFolder: IShellFolder; ID: PItemIDList): Boolean;
+var
+  FileInfo: TShFileInfo;
+begin
+  SHGetFileInfo(Pchar(ID), 0, FileInfo, SizeOf(TSHFileInfo), SHGFI_PIDL or SHGFI_TYPENAME);
+  Result := BOOL(fileinfo.szTypeName = ChannelShortcut);
+end;
+
+function IsFolderEx(ChannelShortcut: string; ShellFolder: IShellFolder; ID: PItemIDList): Boolean;
+var
+  Flags: UINT;
+begin
+  Flags := SFGAO_FOLDER;
+  ShellFolder.GetAttributesOf(1, ID, Flags);
+  if SFGAO_FOLDER and Flags <> 0 then
+    Result := not isChannel(ChannelShortcut, Shellfolder, id)
+  else
+    Result := False;
+end;
+
+function GetImageIndex(pidl: PItemIDList): Integer;
+var
+  Flags: UINT;
+  FileInfo: TSHFileInfo;
+begin
+  Flags := SHGFI_PIDL or SHGFI_SYSICONINDEX or SHGFI_ICON or SHGFI_SMALLICON;
+  if SHGetFileInfo(PChar(pidl), 0, FileInfo, SizeOf(TSHFileInfo), Flags) = 0 then
+    Result := -1
+  else
+    Result := FileInfo.iIcon;
+end;
+
+{function GetDisplayName(Folder: IShellFolder; pidl: PItemIDList): string;
+var
+  StrRet: TStrRet;
+begin
+  Result := '';
+  Folder.GetDisplayNameOf(pidl, SHGDN_NORMAL, StrRet);
+  case StrRet.uType of
+    STRRET_CSTR:
+      SetString(Result, StrRet.cStr, lStrLen(StrRet.cStr));
+    STRRET_OFFSET:
+      Result := Pchar(@pidl.mkid.abID[StrRet.uOffset - SizeOf(pidl.mkid.cb)]);
+    STRRET_WSTR:
+      Result := StrRet.pOleStr;
+  end;
+end; }
+
+function GetDisplayName(Folder: IShellFolder; PIDL: PItemIDList): string;
+var
+  StrRet: TStrRet;
+  P: PChar;
+  Flags: Integer;
+begin
+  Result := '';
+  Flags := SHGDN_NORMAL;
+  Folder.GetDisplayNameOf(PIDL, Flags, StrRet);
+  case StrRet.uType of
+    STRRET_CSTR:
+      SetString(Result, StrRet.cStr, lStrLenA(StrRet.cStr));
+    STRRET_OFFSET:
+      begin
+        P := @PIDL.mkid.abID[StrRet.uOffset - SizeOf(PIDL.mkid.cb)];
+        SetString(Result, P, PIDL.mkid.cb - StrRet.uOffset);
+      end;
+    STRRET_WSTR:
+      Result := StrRet.pOleStr;
+  end;
+end;
+
+{function GetFileName(Folder: IShellFolder; pidl: PItemIDList): string;
+var
+  StrRet: TStrRet;
+begin
+  Folder.GetDisplayNameOf(pidl, SHGDN_FORPARSING, StrRet);
+  case StrRet.uType of
+    STRRET_CSTR:
+      SetString(Result, StrRet.cStr, lStrLen(StrRet.cStr));
+    STRRET_OFFSET:
+      Result := Pchar(@pidl.mkid.abID[StrRet.uOffset - SizeOf(pidl.mkid.cb)]);
+    STRRET_WSTR:
+      Result := StrRet.pOleStr;
+  end;
+end;   }
+
+function GetFileName(Folder: IShellFolder; pidl: PItemIDList): string;
+var
+  StrRet: TStrRet;
+  P: PChar;
+begin
+  Result := '';
+  Folder.GetDisplayNameOf(PIDL, SHGDN_FORPARSING, StrRet);
+  case StrRet.uType of
+    STRRET_CSTR:
+      SetString(Result, StrRet.cStr, lStrLenA(StrRet.cStr));
+    STRRET_OFFSET:
+      begin
+        P := @PIDL.mkid.abID[StrRet.uOffset - SizeOf(PIDL.mkid.cb)];
+        SetString(Result, P, PIDL.mkid.cb - StrRet.uOffset);
+      end;
+    STRRET_WSTR:
+      Result := StrRet.pOleStr;
+  end;
+end;
+
+procedure DisposePIDL(ID: PItemIDList);
+var
+  Malloc: IMalloc;
+begin
+  if ID <> nil then
+  begin
+    OLECheck(SHGetMalloc(Malloc));
+    Malloc.Free(ID);
+  end;
+end;
+
+function CopyITEMID(Malloc: IMalloc; ID: PItemIDList): PItemIDList;
+begin
+  Result := Malloc.Alloc(ID^.mkid.cb + SizeOf(ID^.mkid.cb));
+  CopyMemory(Result, ID, ID^.mkid.cb + SizeOf(ID^.mkid.cb));
+end;
+
+function NextPIDL(IDList: PItemIDList): PItemIDList;
+begin
+  Result := IDList;
+  Inc(PAnsiChar(Result), IDList^.mkid.cb);
+end;
+
+function GetPIDLSize(IDList: PItemIDList): Integer;
+begin
+  Result := 0;
+  if Assigned(IDList) then
+  begin
+    Result := SizeOf(IDList^.mkid.cb);
+    while IDList^.mkid.cb <> 0 do
+    begin
+      Result := Result + IDList^.mkid.cb;
+      IDList := NextPIDL(IDList);
+    end;
+  end;
+end;
+
+procedure StripLastID(IDList: PItemIDList);
+var
+  MarkerID: PItemIDList;
+begin
+  MarkerID := IDList;
+  if Assigned(IDList) then
+  begin
+    while IDList.mkid.cb <> 0 do
+    begin
+      MarkerID := IDList;
+      IDList := NextPIDL(IDList);
+    end;
+    MarkerID.mkid.cb := 0;
+  end;
+end;
+
+function CreatePIDL(Size: Integer): PItemIDList;
+var
+  Malloc: IMalloc;
+  HR: HResult;
+begin
+  Result := nil;
+  HR := SHGetMalloc(Malloc);
+  if Failed(HR) then
+    Exit;
+  try
+    Result := Malloc.Alloc(Size);
+    if Assigned(Result) then
+      FillChar(Result^, Size, 0);
+  finally
+  end;
+end;
+
+function CopyPIDL(IDList: PItemIDList): PItemIDList;
+var
+  Size: Integer;
+begin
+  Size := GetPIDLSize(IDList);
+  Result := CreatePIDL(Size);
+  if Assigned(Result) then
+    CopyMemory(Result, IDList, Size);
+end;
+
+function ConcatPIDLs(IDList1, IDList2: PItemIDList): PItemIDList;
+var
+  cb1, cb2: Integer;
+begin
+  if Assigned(IDList1) then
+    cb1 := GetPIDLSize(IDList1) - SizeOf(IDList1^.mkid.cb)
+  else
+    cb1 := 0;
+  cb2 := GetPIDLSize(IDList2);
+  Result := CreatePIDL(cb1 + cb2);
+  if Assigned(Result) then
+  begin
+    if Assigned(IDList1) then
+      CopyMemory(Result, IDList1, cb1);
+    CopyMemory(PAnsiChar(Result) + cb1, IDList2, cb2);
+  end;
+end;
+
+function DeleteUrl(Url: PWideChar): HResult;
+begin
+  Result := DeleteUrl(Url);
+end;
+
+function GetMailClients: TStrings;
+var
+  Reg: TRegistry;
+  ts: TStrings;
+  i: Integer;
+begin
+  ts := TStringList.Create;
+  Reg := TRegistry.Create;
+  with Reg do
+  begin
+    RootKey := HKEY_CURRENT_USER;
+    try
+      OpenKey(RegMail, False);
+      if HasSubKeys then
+      begin
+        GetKeyNames(ts);
+        CloseKey;
+        for i := 0 to ts.Count - 1 do
+          OpenKey(RegMail + ts.Strings[i], False);
+      end;
+      Result := ts;
+    finally
+      CloseKey;
+      Free;
+    end;
+  end;
+end;
+
+
+
+end.
+
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EWB_jedi.inc
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EWB_jedi.inc	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EWB_jedi.inc	(revision 541)
@@ -0,0 +1,1203 @@
+{$IFNDEF JEDI_INC}
+{$DEFINE JEDI_INC}
+
+{**************************************************************************************************}
+{                                                                                                  }
+{  The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License");}
+{  you may not use this file except in compliance with the License. You may obtain a copy of the   }
+{  License at http://www.mozilla.org/MPL/                                                          }
+{                                                                                                  }
+{  Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF  }
+{  ANY KIND, either express or implied. See the License for the specific language governing rights }
+{  and limitations under the License.                                                              }
+{                                                                                                  }
+{  The Original Code is: jedi.inc.                                                                 }
+{  The Initial Developer of the Original Code is Project JEDI http://www.delphi-jedi.org           }
+{                                                                                                  }
+{  Alternatively, the contents of this file may be used under the terms of the GNU Lesser General  }
+{  Public License (the  "LGPL License"), in which case the provisions of the LGPL License are      }
+{  applicable instead of those above. If you wish to allow use of your version of this file only   }
+{  under the terms of the LGPL License and not to allow others to use your version of this file    }
+{  under the MPL, indicate your decision by deleting the provisions above and replace them with    }
+{  the notice and other provisions required by the LGPL License. If you do not delete the          }
+{  provisions above, a recipient may use your version of this file under either the MPL or the     }
+{  LGPL License.                                                                                   }
+{                                                                                                  }
+{  For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html                    }
+{                                                                                                  }
+{**************************************************************************************************}
+{                                                                                                  }
+{  This file defines various generic compiler directives used in different libraries, e.g. in the  }
+{  JEDI Code Library (JCL) and JEDI Visual Component Library Library (JVCL). The directives in     }
+{  this file are of generic nature and consist mostly of mappings from the VERXXX directives       }
+{  defined by Delphi, C++Builder and FPC to friendly names such as DELPHI5 and                     }
+{  SUPPORTS_WIDESTRING. These friendly names are subsequently used in the libraries to test for    }
+{  compiler versions and/or whether the compiler supports certain features (such as widestrings or }
+{  64 bit integers. The libraries provide an additional, library specific, include file. For the   }
+{  JCL e.g. this is jcl.inc. These files should be included in source files instead of this file   }
+{  (which is pulled in automatically).                                                             }
+{                                                                                                  }
+{**************************************************************************************************}
+{                                                                                                  }
+{ Last modified: $Date:: 2008-12-28 22:55:28 +0100 (dim. 28 déc. 2008)                          $ }
+{ Revision:      $Rev:: 2580                                                                     $ }
+{ Author:        $Author:: uschuster                                                             $ }
+{                                                                                                  }
+{**************************************************************************************************}
+
+(*
+
+- Development environment directives
+
+  This file defines two directives to indicate which development environment the
+  library is being compiled with. Currently this can either be Delphi, Kylix,
+  C++Builder or FPC.
+
+  Directive           Description
+  ------------------------------------------------------------------------------
+  DELPHI              Defined if compiled with Delphi
+  KYLIX               Defined if compiled with Kylix
+  DELPHICOMPILER      Defined if compiled with Delphi or Kylix/Delphi
+  BCB                 Defined if compiled with C++Builder
+  CPPBUILDER          Defined if compiled with C++Builder (alias for BCB)
+  BCBCOMPILER         Defined if compiled with C++Builder or Kylix/C++
+  DELPHILANGUAGE      Defined if compiled with Delphi, Kylix or C++Builder
+  BORLAND             Defined if compiled with Delphi, Kylix or C++Builder
+  FPC                 Defined if compiled with FPC
+
+- Platform Directives
+
+  Platform directives are not all explicitly defined in this file, some are
+  defined by the compiler itself. They are listed here only for completeness.
+
+  Directive           Description
+  ------------------------------------------------------------------------------
+  WIN32               Defined when target platform is 32 bit Windows
+  WIN64               Defined when target platform is 64 bit Windows
+  MSWINDOWS           Defined when target platform is 32 bit Windows
+  LINUX               Defined when target platform is Linux
+  UNIX                Defined when target platform is Unix-like (including Linux)
+  CLR                 Defined when target platform is .NET
+
+- Architecture directives. These are auto-defined by FPC
+  CPU32 and CPU64 are mostly for generic pointer size dependant differences rather
+  than for a specific architecture.
+
+  CPU386              Defined when target platform is native x86 (win32)
+  CPUx86_64           Defined when target platform is native x86_64 (win64)
+  CPU32               Defined when target is 32-bit
+  CPU64	              Defined when target is 64-bit
+
+- Visual library Directives
+
+  The following directives indicate for a visual library. In a Delphi/BCB
+  (Win32) application you need to define the VisualCLX symbol in the project
+  options, if  you want to use the VisualCLX library. Alternatively you can use
+  the IDE expert, which is distributed with the JCL to do this automatically.
+
+  Directive           Description
+  ------------------------------------------------------------------------------
+  VCL                 Defined for Delphi/BCB (Win32) exactly if VisualCLX is not defined
+  VisualCLX           Defined for Kylix; needs to be defined for Delphi/BCB to
+                      use JCL with VisualCLX applications.
+
+
+- Other cross-platform related defines
+
+  These symbols are intended to help in writing portable code.
+
+  Directive           Description
+  ------------------------------------------------------------------------------
+  PUREPASCAL          Code is machine-independent (as opposed to assembler code)
+  Win32API            Code is specific for the Win32 API;
+                      use instead of "{$IFNDEF CLR} {$IFDEF MSWINDOWS}" constructs
+
+
+- Delphi Versions
+
+  The following directives are direct mappings from the VERXXX directives to a
+  friendly name of the associated compiler. These directives are only defined if
+  the compiler is Delphi (ie DELPHI is defined).
+
+  Directive           Description
+  ------------------------------------------------------------------------------
+  DELPHI1             Defined when compiling with Delphi 1 (Codename WASABI/MANGO)
+  DELPHI2             Defined when compiling with Delphi 2 (Codename POLARIS)
+  DELPHI3             Defined when compiling with Delphi 3 (Codename IVORY)
+  DELPHI4             Defined when compiling with Delphi 4 (Codename ALLEGRO)
+  DELPHI5             Defined when compiling with Delphi 5 (Codename ARGUS)
+  DELPHI6             Defined when compiling with Delphi 6 (Codename ILLIAD)
+  DELPHI7             Defined when compiling with Delphi 7 (Codename AURORA)
+  DELPHI8             Defined when compiling with Delphi 8 (Codename OCTANE)
+  DELPHI2005          Defined when compiling with Delphi 2005 (Codename DIAMONDBACK)
+  DELPHI9             Alias for DELPHI2005
+  DELPHI10            Defined when compiling with Delphi 2006 (Codename DEXTER)
+  DELPHI2006          Alias for DELPHI10
+  DELPHI11            Defined when compiling with Delphi 2007 for Win32 (Codename SPACELY)
+  DELPHI2007          Alias for DELPHI11
+  DELPHI12            Defined when compiling with Delphi 2009 for Win32 (Codename TIBURON)
+  DELPHI2009          Alias for DELPHI12
+  DELPHI1_UP          Defined when compiling with Delphi 1 or higher
+  DELPHI2_UP          Defined when compiling with Delphi 2 or higher
+  DELPHI3_UP          Defined when compiling with Delphi 3 or higher
+  DELPHI4_UP          Defined when compiling with Delphi 4 or higher
+  DELPHI5_UP          Defined when compiling with Delphi 5 or higher
+  DELPHI6_UP          Defined when compiling with Delphi 6 or higher
+  DELPHI7_UP          Defined when compiling with Delphi 7 or higher
+  DELPHI8_UP          Defined when compiling with Delphi 8 or higher
+  DELPHI2005_UP       Defined when compiling with Delphi 2005 or higher
+  DELPHI9_UP          Alias for DELPHI2005_UP
+  DELPHI10_UP         Defined when compiling with Delphi 2006 or higher
+  DELPHI2006_UP       Alias for DELPHI10_UP
+  DELPHI11_UP         Defined when compiling with Delphi 2007 for Win32 or higher
+  DELPHI2007_UP       Alias for DELPHI11_UP
+  DELPHI12_UP         Defined when compiling with Delphi 2009 for Win32 or higher
+  DELPHI2009_UP       Alias for DELPHI12_UP
+
+
+- Kylix Versions
+
+  The following directives are direct mappings from the VERXXX directives to a
+  friendly name of the associated compiler. These directives are only defined if
+  the compiler is Kylix (ie KYLIX is defined).
+
+  Directive           Description
+  ------------------------------------------------------------------------------
+  KYLIX1              Defined when compiling with Kylix 1
+  KYLIX2              Defined when compiling with Kylix 2
+  KYLIX3              Defined when compiling with Kylix 3 (Codename CORTEZ)
+  KYLIX1_UP           Defined when compiling with Kylix 1 or higher
+  KYLIX2_UP           Defined when compiling with Kylix 2 or higher
+  KYLIX3_UP           Defined when compiling with Kylix 3 or higher
+
+
+- Delphi Compiler Versions (Delphi / Kylix, not in BCB mode)
+
+  Directive           Description
+  ------------------------------------------------------------------------------
+  DELPHICOMPILER1      Defined when compiling with Delphi 1
+  DELPHICOMPILER2      Defined when compiling with Delphi 2
+  DELPHICOMPILER3      Defined when compiling with Delphi 3
+  DELPHICOMPILER4      Defined when compiling with Delphi 4
+  DELPHICOMPILER5      Defined when compiling with Delphi 5
+  DELPHICOMPILER6      Defined when compiling with Delphi 6 or Kylix 1, 2 or 3
+  DELPHICOMPILER7      Defined when compiling with Delphi 7
+  DELPHICOMPILER8      Defined when compiling with Delphi 8
+  DELPHICOMPILER9      Defined when compiling with Delphi 2005
+  DELPHICOMPILER10     Defined when compiling with Delphi Personality of BDS 4.0
+  DELPHICOMPILER11     Defined when compiling with Delphi 2007 for Win32
+  DELPHICOMPILER12     Defined when compiling with Delphi Personality of BDS 6.0
+  DELPHICOMPILER1_UP   Defined when compiling with Delphi 1 or higher
+  DELPHICOMPILER2_UP   Defined when compiling with Delphi 2 or higher
+  DELPHICOMPILER3_UP   Defined when compiling with Delphi 3 or higher
+  DELPHICOMPILER4_UP   Defined when compiling with Delphi 4 or higher
+  DELPHICOMPILER5_UP   Defined when compiling with Delphi 5 or higher
+  DELPHICOMPILER6_UP   Defined when compiling with Delphi 6 or Kylix 1, 2 or 3 or higher
+  DELPHICOMPILER7_UP   Defined when compiling with Delphi 7 or higher
+  DELPHICOMPILER8_UP   Defined when compiling with Delphi 8 or higher
+  DELPHICOMPILER9_UP   Defined when compiling with Delphi 2005
+  DELPHICOMPILER10_UP  Defined when compiling with Delphi 2006 or higher
+  DELPHICOMPILER11_UP  Defined when compiling with Delphi 2007 for Win32 or higher
+  DELPHICOMPILER12_UP  Defined when compiling with Delphi 2009 for Win32 or higher
+
+
+- C++Builder Versions
+
+  The following directives are direct mappings from the VERXXX directives to a
+  friendly name of the associated compiler. These directives are only defined if
+  the compiler is C++Builder (ie BCB is defined).
+
+  Directive    Description
+  ------------------------------------------------------------------------------
+  BCB1         Defined when compiling with C++Builder 1
+  BCB3         Defined when compiling with C++Builder 3
+  BCB4         Defined when compiling with C++Builder 4
+  BCB5         Defined when compiling with C++Builder 5 (Codename RAMPAGE)
+  BCB6         Defined when compiling with C++Builder 6 (Codename RIPTIDE)
+  BCB10        Defined when compiling with C++Builder Personality of BDS 4.0 (also known as C++Builder 2006) (Codename DEXTER)
+  BCB11        Defined when compiling with C++Builder Personality of RAD Studio 2007 (also known as C++Builder 2007) (Codename COGSWELL)
+  BCB12        Defined when compiling with C++Builder Personality of RAD Studio 2009 (also known as C++Builder 2009) (Codename TIBURON)
+  BCB1_UP      Defined when compiling with C++Builder 1 or higher
+  BCB3_UP      Defined when compiling with C++Builder 3 or higher
+  BCB4_UP      Defined when compiling with C++Builder 4 or higher
+  BCB5_UP      Defined when compiling with C++Builder 5 or higher
+  BCB6_UP      Defined when compiling with C++Builder 6 or higher
+  BCB10_UP     Defined when compiling with C++Builder Personality of BDS 4.0 or higher
+  BCB11_UP     Defined when compiling with C++Builder Personality of RAD Studio 2007 or higher
+  BCB12_UP     Defined when compiling with C++Builder Personality of RAD Studio 2009 or higher
+
+
+- CodeGear RAD Studio / Borland Developer Studio Versions
+
+  The following directives are direct mappings from the VERXXX directives to a
+  friendly name of the associated IDE. These directives are only defined if
+  the IDE is Borland Developer Studio Version 2 or above.
+
+  Note: Borland Developer Studio 2006 is marketed as Delphi 2006 or C++Builder 2006,
+  but those provide only different labels for identical content.
+
+  Directive    Description
+  ------------------------------------------------------------------------------
+  BDS          Defined when compiling with BDS version of dcc32.exe (Codename SIDEWINDER)
+  BDS2         Defined when compiling with BDS 2.0 (Delphi 8) (Codename OCTANE)
+  BDS3         Defined when compiling with BDS 3.0 (Delphi 2005) (Codename DIAMONDBACK)
+  BDS4         Defined when compiling with BDS 4.0 (Borland Developer Studio 2006) (Codename DEXTER)
+  BDS5         Defined when compiling with BDS 5.0 (CodeGear RAD Studio 2007) (Codename HIGHLANDER)
+  BDS6         Defined when compiling with BDS 6.0 (CodeGear RAD Studio 2009) (Codename TIBURON)
+  BDS2_UP      Defined when compiling with BDS 2.0 or higher
+  BDS3_UP      Defined when compiling with BDS 3.0 or higher
+  BDS4_UP      Defined when compiling with BDS 4.0 or higher
+  BDS5_UP      Defined when compiling with BDS 5.0 or higher
+  BDS6_UP      Defined when compiling with BDS 6.0 or higher
+
+- Compiler Versions
+
+  The following directives are direct mappings from the VERXXX directives to a
+  friendly name of the associated compiler. Unlike the DELPHI_X and BCB_X
+  directives, these directives are indepedent of the development environment.
+  That is, they are defined regardless of whether compilation takes place using
+  Delphi or C++Builder.
+
+  Directive     Description
+  ------------------------------------------------------------------------------
+  COMPILER1      Defined when compiling with Delphi 1
+  COMPILER2      Defined when compiling with Delphi 2 or C++Builder 1
+  COMPILER3      Defined when compiling with Delphi 3
+  COMPILER35     Defined when compiling with C++Builder 3
+  COMPILER4      Defined when compiling with Delphi 4 or C++Builder 4
+  COMPILER5      Defined when compiling with Delphi 5 or C++Builder 5
+  COMPILER6      Defined when compiling with Delphi 6 or C++Builder 6
+  COMPILER7      Defined when compiling with Delphi 7
+  COMPILER8      Defined when compiling with Delphi 8
+  COMPILER9      Defined when compiling with Delphi 9
+  COMPILER10     Defined when compiling with Delphi or C++Builder Personalities of BDS 4.0
+  COMPILER11     Defined when compiling with Delphi or C++Builder Personalities of BDS 5.0
+  COMPILER12     Defined when compiling with Delphi or C++Builder Personalities of BDS 6.0
+  COMPILER1_UP   Defined when compiling with Delphi 1 or higher
+  COMPILER2_UP   Defined when compiling with Delphi 2 or C++Builder 1 or higher
+  COMPILER3_UP   Defined when compiling with Delphi 3 or higher
+  COMPILER35_UP  Defined when compiling with C++Builder 3 or higher
+  COMPILER4_UP   Defined when compiling with Delphi 4 or C++Builder 4 or higher
+  COMPILER5_UP   Defined when compiling with Delphi 5 or C++Builder 5 or higher
+  COMPILER6_UP   Defined when compiling with Delphi 6 or C++Builder 6 or higher
+  COMPILER7_UP   Defined when compiling with Delphi 7
+  COMPILER8_UP   Defined when compiling with Delphi 8
+  COMPILER9_UP   Defined when compiling with Delphi Personalities of BDS 3.0
+  COMPILER10_UP  Defined when compiling with Delphi or C++Builder Personalities of BDS 4.0 or higher
+  COMPILER11_UP  Defined when compiling with Delphi or C++Builder Personalities of BDS 5.0 or higher
+  COMPILER12_UP  Defined when compiling with Delphi or C++Builder Personalities of BDS 6.0 or higher
+
+
+- RTL Versions
+
+  Use e.g. following to determine the exact RTL version since version 14.0:
+    {$IFDEF CONDITIONALEXPRESSIONS}
+      {$IF Declared(RTLVersion) and (RTLVersion >= 14.2)}
+        // code for Delphi 6.02 or higher, Kylix 2 or higher, C++Builder 6 or higher
+        ...
+      {$IFEND}
+    {$ENDIF}
+
+  Directive     Description
+  ------------------------------------------------------------------------------
+  RTL80_UP      Defined when compiling with Delphi 1 or higher
+  RTL90_UP      Defined when compiling with Delphi 2 or higher
+  RTL93_UP      Defined when compiling with C++Builder 1 or higher
+  RTL100_UP     Defined when compiling with Delphi 3 or higher
+  RTL110_UP     Defined when compiling with C++Builder 3 or higher
+  RTL120_UP     Defined when compiling with Delphi 4 or higher
+  RTL125_UP     Defined when compiling with C++Builder 4 or higher
+  RTL130_UP     Defined when compiling with Delphi 5 or C++Builder 5 or higher
+  RTL140_UP     Defined when compiling with Delphi 6, Kylix 1, 2 or 3 or C++Builder 6 or higher
+  RTL150_UP     Defined when compiling with Delphi 7 or higher
+  RTL160_UP     Defined when compiling with Delphi 8 or higher
+  RTL170_UP     Defined when compiling with Delphi Personalities of BDS 3.0 or higher
+  RTL180_UP     Defined when compiling with Delphi or C++Builder Personalities of BDS 4.0 or higher
+  RTL185_UP     Defined when compiling with Delphi or C++Builder Personalities of BDS 5.0 or higher
+  RTL190_UP     Defined when compiling with Delphi.NET of BDS 5.0 or higher
+  RTL200_UP     Defined when compiling with Delphi or C++Builder Personalities of BDS 6.0 or higher
+
+
+- CLR Versions
+
+  Directive     Description
+  ------------------------------------------------------------------------------
+  CLR            Defined when compiling for .NET
+  CLR10          Defined when compiling for .NET 1.0 (may be overriden by FORCE_CLR10)
+  CLR10_UP       Defined when compiling for .NET 1.0 or higher
+  CLR11          Defined when compiling for .NET 1.1 (may be overriden by FORCE_CLR11)
+  CLR11_UP       Defined when compiling for .NET 1.1 or higher
+  CLR20          Defined when compiling for .NET 2.0 (may be overriden by FORCE_CLR20)
+  CLR20_UP       Defined when compiling for .NET 2.0 or higher
+
+
+- Feature Directives
+
+  The features directives are used to test if the compiler supports specific
+  features, such as method overloading, and adjust the sources accordingly. Use
+  of these directives is preferred over the use of the DELPHI and COMPILER
+  directives.
+
+  Directive              Description
+  ------------------------------------------------------------------------------
+  SUPPORTS_CONSTPARAMS           Compiler supports const parameters (D1+)
+  SUPPORTS_SINGLE                Compiler supports the Single type (D1+)
+  SUPPORTS_DOUBLE                Compiler supports the Double type (D1+)
+  SUPPORTS_EXTENDED              Compiler supports the Extended type (D1+)
+  SUPPORTS_CURRENCY              Compiler supports the Currency type (D2+)
+  SUPPORTS_THREADVAR             Compiler supports threadvar declarations (D2+)
+  SUPPORTS_OUTPARAMS             Compiler supports out parameters (D3+)
+  SUPPORTS_VARIANT               Compiler supports variant (D2+)
+  SUPPORTS_WIDECHAR              Compiler supports the WideChar type (D2+)
+  SUPPORTS_WIDESTRING            Compiler supports the WideString type (D3+/BCB3+)
+  SUPPORTS_INTERFACE             Compiler supports interfaces (D3+/BCB3+)
+  SUPPORTS_DISPINTERFACE         Compiler supports dispatch interfaces (D3+/BCB3+)
+  SUPPORTS_DISPID                Compiler supports dispatch ids (D3+/BCB3+/FPC)
+  SUPPORTS_EXTSYM                Compiler supports the $EXTERNALSYM directive (D4+/BCB3+)
+  SUPPORTS_NODEFINE              Compiler supports the $NODEFINE directive (D4+/BCB3+)
+  SUPPORTS_LONGWORD              Compiler supports the LongWord type (unsigned 32 bit) (D4+/BCB4+)
+  SUPPORTS_INT64                 Compiler supports the Int64 type (D4+/BCB4+)
+  SUPPORTS_DYNAMICARRAYS         Compiler supports dynamic arrays (D4+/BCB4+)
+  SUPPORTS_DEFAULTPARAMS         Compiler supports default parameters (D4+/BCB4+)
+  SUPPORTS_OVERLOAD              Compiler supports overloading (D4+/BCB4+)
+  SUPPORTS_IMPLEMENTS            Compiler supports implements (D4+/BCB4+)
+  SUPPORTS_DEPRECATED            Compiler supports the deprecated directive (D6+/BCB6+)
+  SUPPORTS_PLATFORM              Compiler supports the platform directive (D6+/BCB6+)
+  SUPPORTS_LIBRARY               Compiler supports the library directive (D6+/BCB6+/FPC)
+  SUPPORTS_LOCAL                 Compiler supports the local directive (D6+/BCB6+)
+  SUPPORTS_SETPEFLAGS            Compiler supports the SetPEFlags directive (D6+/BCB6+)
+  SUPPORTS_EXPERIMENTAL_WARNINGS Compiler supports the WARN SYMBOL_EXPERIMENTAL and WARN UNIT_EXPERIMENTAL directives (D6+/BCB6+)
+  SUPPORTS_INLINE                Compiler supports the inline directive (D9+/FPC)
+  SUPPORTS_FOR_IN                Compiler supports for in loops (D9+)
+  SUPPORTS_NESTED_CONSTANTS      Compiler supports nested constants (D9+)
+  SUPPORTS_NESTED_TYPES          Compiler supports nested types (D9+)
+  SUPPORTS_REGION                Compiler supports the REGION and ENDREGION directives (D9+)
+  SUPPORTS_ENHANCED_RECORDS      Compiler supports class [operator|function|procedure] for record types (D9.NET, D10+)
+  SUPPORTS_CLASS_FIELDS          Compiler supports class fields (D9.NET, D10+)
+  SUPPORTS_CLASS_HELPERS         Compiler supports class helpers (D9.NET, D10+)
+  SUPPORTS_CLASS_OPERATORS       Compiler supports class operators (D9.NET, D10+)
+  SUPPORTS_STRICT                Compiler supports strict keyword (D9.NET, D10+)
+  SUPPORTS_STATIC                Compiler supports static keyword (D9.NET, D10+)
+  SUPPORTS_FINAL                 Compiler supports final keyword (D9.NET, D10+)
+  SUPPORTS_METHODINFO            Compiler supports the METHODINFO directives (D10+)
+  SUPPORTS_GENERICS              Compiler supports generic implementations (D11.NET, D12+)
+  SUPPORTS_DEPRECATED_DETAILS    Compiler supports additional text for the deprecated directive (D11.NET, D12+)
+  ACCEPT_DEPRECATED              Compiler supports or ignores the deprecated directive (D6+/BCB6+/FPC)
+  ACCEPT_PLATFORM                Compiler supports or ignores the platform directive (D6+/BCB6+/FPC)
+  ACCEPT_LIBRARY                 Compiler supports or ignores the library directive (D6+/BCB6+)
+  SUPPORTS_CUSTOMVARIANTS        Compiler supports custom variants (D6+/BCB6+)
+  SUPPORTS_VARARGS               Compiler supports varargs (D6+/BCB6+)
+  SUPPORTS_ENUMVALUE             Compiler supports assigning ordinalities to values of enums (D6+/BCB6+)
+  SUPPORTS_DEPRECATED_WARNINGS   Compiler supports deprecated warnings (D6+/BCB6+)
+  SUPPORTS_LIBRARY_WARNINGS      Compiler supports library warnings (D6+/BCB6+)
+  SUPPORTS_PLATFORM_WARNINGS     Compiler supports platform warnings (D6+/BCB6+)
+  SUPPORTS_UNSAFE_WARNINGS       Compiler supports unsafe warnings (D7)
+  SUPPORTS_WEAKPACKAGEUNIT       Compiler supports the WEAKPACKAGEUNIT directive
+  SUPPORTS_COMPILETIME_MESSAGES  Compiler supports the MESSAGE directive
+  SUPPORTS_PACKAGES              Compiler supports Packages
+  HAS_UNIT_LIBC                  Unit Libc exists (Kylix, FPC on Linux/x86)
+  HAS_UNIT_RTLCONSTS             Unit RTLConsts exists (D6+/BCB6+/FPC)
+  HAS_UNIT_TYPES                 Unit Types exists (D6+/BCB6+/FPC)
+  HAS_UNIT_VARIANTS              Unit Variants exists (D6+/BCB6+/FPC)
+  HAS_UNIT_STRUTILS              Unit StrUtils exists (D6+/BCB6+/FPC)
+  HAS_UNIT_DATEUTILS             Unit DateUtils exists (D6+/BCB6+/FPC)
+  HAS_UNIT_CONTNRS               Unit contnrs exists (D6+/BCB6+/FPC)
+  HAS_UNIT_HTTPPROD              Unit HTTPProd exists (D9+)
+  HAS_UNIT_ANSISTRINGS           Unit AnsiStrings exists (D12+)
+  HAS_UNIT_PNGIMAGE              Unit PngImage exists (D12+)
+  XPLATFORM_RTL                  The RTL supports crossplatform function names (e.g. RaiseLastOSError) (D6+/BCB6+/FPC)
+  SUPPORTS_UNICODE               string type is aliased to an unicode string (WideString or UnicodeString) (DX.NET, D12+)
+  SUPPORTS_UNICODE_STRING        Compiler supports UnicodeString (D12+)
+
+
+- Compiler Settings
+
+  The compiler settings directives indicate whether a specific compiler setting
+  is in effect. This facilitates changing compiler settings locally in a more
+  compact and readible manner.
+
+  Directive              Description
+  ------------------------------------------------------------------------------
+  ALIGN_ON               Compiling in the A+ state (no alignment)
+  BOOLEVAL_ON            Compiling in the B+ state (complete boolean evaluation)
+  ASSERTIONS_ON          Compiling in the C+ state (assertions on)
+  DEBUGINFO_ON           Compiling in the D+ state (debug info generation on)
+  IMPORTEDDATA_ON        Compiling in the G+ state (creation of imported data references)
+  LONGSTRINGS_ON         Compiling in the H+ state (string defined as AnsiString)
+  IOCHECKS_ON            Compiling in the I+ state (I/O checking enabled)
+  WRITEABLECONST_ON      Compiling in the J+ state (typed constants can be modified)
+  LOCALSYMBOLS           Compiling in the L+ state (local symbol generation)
+  TYPEINFO_ON            Compiling in the M+ state (RTTI generation on)
+  OPTIMIZATION_ON        Compiling in the O+ state (code optimization on)
+  OPENSTRINGS_ON         Compiling in the P+ state (variable string parameters are openstrings)
+  OVERFLOWCHECKS_ON      Compiling in the Q+ state (overflow checing on)
+  RANGECHECKS_ON         Compiling in the R+ state (range checking on)
+  TYPEDADDRESS_ON        Compiling in the T+ state (pointers obtained using the @ operator are typed)
+  SAFEDIVIDE_ON          Compiling in the U+ state (save FDIV instruction through RTL emulation)
+  VARSTRINGCHECKS_ON     Compiling in the V+ state (type checking of shortstrings)
+  STACKFRAMES_ON         Compiling in the W+ state (generation of stack frames)
+  EXTENDEDSYNTAX_ON      Compiling in the X+ state (Delphi extended syntax enabled)
+*)
+
+{$DEFINE BORLAND}
+
+{ Set FreePascal to Delphi mode }
+{$IFDEF FPC}
+  {$MODE DELPHI}
+  {$ASMMODE Intel}
+  {$UNDEF BORLAND}
+   // FPC defines CPU* and Unix automatically
+{$ENDIF}
+
+{$IFDEF BORLAND}
+  {$IFDEF LINUX}
+    {$DEFINE KYLIX}
+  {$ENDIF LINUX}
+  {$IFNDEF CLR}
+    {$DEFINE CPU386}  // For Borland compilers select the x86 compat assembler by default
+    {$DEFINE CPU32}   // Assume Borland compilers are 32-bit (rather than 64-bit)
+  {$ENDIF ~CLR}
+{$ENDIF BORLAND}
+
+{------------------------------------------------------------------------------}
+{ VERXXX to COMPILERX, DELPHIX and BCBX mappings                               }
+{------------------------------------------------------------------------------}
+
+{$IFDEF BORLAND}
+  {$IFDEF KYLIX}
+    {$I kylix.inc} // FPC incompatible stuff
+  {$ELSE ~KYLIX}
+
+    {$DEFINE UNKNOWN_COMPILER_VERSION}
+
+    {$IFDEF VER80}
+      {$DEFINE COMPILER1}
+      {$DEFINE DELPHI1}
+      {$DEFINE DELPHICOMPILER1}
+      {$DEFINE RTL80_UP}
+      {$UNDEF UNKNOWN_COMPILER_VERSION}
+    {$ENDIF}
+
+    {$IFDEF VER90}
+      {$DEFINE COMPILER2}
+      {$DEFINE DELPHI2}
+      {$DEFINE DELPHICOMPILER2}
+      {$DEFINE RTL90_UP}
+      {$UNDEF UNKNOWN_COMPILER_VERSION}
+    {$ENDIF}
+
+    {$IFDEF VER93}
+      {$DEFINE COMPILER2}
+      {$DEFINE BCB1}
+      {$DEFINE BCB}
+      {$DEFINE RTL93_UP}
+      {$UNDEF UNKNOWN_COMPILER_VERSION}
+    {$ENDIF}
+
+    {$IFDEF VER100}
+      {$DEFINE COMPILER3}
+      {$DEFINE DELPHI3}
+      {$DEFINE DELPHICOMPILER3}
+      {$DEFINE RTL100_UP}
+      {$UNDEF UNKNOWN_COMPILER_VERSION}
+    {$ENDIF}
+
+    {$IFDEF VER110}
+      {$DEFINE COMPILER35}
+      {$DEFINE BCB3}
+      {$DEFINE RTL110_UP}
+      {$UNDEF UNKNOWN_COMPILER_VERSION}
+    {$ENDIF}
+
+    {$IFDEF VER120}
+      {$DEFINE COMPILER4}
+      {$DEFINE DELPHI4}
+      {$DEFINE DELPHICOMPILER4}
+      {$DEFINE RTL120_UP}
+      {$UNDEF UNKNOWN_COMPILER_VERSION}
+    {$ENDIF}
+
+    {$IFDEF VER125}
+      {$DEFINE COMPILER4}
+      {$DEFINE BCB4}
+      {$DEFINE BCB}
+      {$DEFINE RTL125_UP}
+      {$UNDEF UNKNOWN_COMPILER_VERSION}
+    {$ENDIF}
+
+    {$IFDEF VER130}
+      {$DEFINE COMPILER5}
+      {$IFDEF BCB}
+        {$DEFINE BCB5}
+      {$ELSE}
+        {$DEFINE DELPHI5}
+        {$DEFINE DELPHICOMPILER5}
+      {$ENDIF}
+      {$DEFINE RTL130_UP}
+      {$UNDEF UNKNOWN_COMPILER_VERSION}
+    {$ENDIF}
+
+    {$IFDEF VER140}
+      {$DEFINE COMPILER6}
+      {$IFDEF BCB}
+        {$DEFINE BCB6}
+      {$ELSE}
+        {$DEFINE DELPHI6}
+        {$DEFINE DELPHICOMPILER6}
+      {$ENDIF}
+      {$DEFINE RTL140_UP}
+      {$UNDEF UNKNOWN_COMPILER_VERSION}
+    {$ENDIF}
+
+    {$IFDEF VER150}
+      {$DEFINE COMPILER7}
+      {$DEFINE DELPHI7}
+      {$DEFINE DELPHICOMPILER7}
+      {$DEFINE RTL150_UP}
+      {$UNDEF UNKNOWN_COMPILER_VERSION}
+    {$ENDIF}
+
+    {$IFDEF VER160}
+      {$DEFINE BDS2}
+      {$DEFINE BDS}
+      {$IFDEF CLR}
+        {$DEFINE CLR10}
+      {$ENDIF CLR}
+      {$DEFINE COMPILER8}
+      {$DEFINE DELPHI8}
+      {$DEFINE DELPHICOMPILER8}
+      {$DEFINE RTL160_UP}
+      {$UNDEF UNKNOWN_COMPILER_VERSION}
+    {$ENDIF}
+
+    {$IFDEF VER170}
+      {$DEFINE BDS3}
+      {$DEFINE BDS}
+      {$IFDEF CLR}
+        {$DEFINE CLR11}
+      {$ENDIF CLR}
+      {$DEFINE COMPILER9}
+      {$DEFINE DELPHI9}
+      {$DEFINE DELPHI2005} // synonym to DELPHI9
+      {$DEFINE DELPHICOMPILER9}
+      {$DEFINE RTL170_UP}
+      {$UNDEF UNKNOWN_COMPILER_VERSION}
+    {$ENDIF}
+
+    {$IFDEF VER180}
+      {$DEFINE BDS}
+      {$IFDEF CLR}
+        {$DEFINE CLR11}
+      {$ENDIF CLR}
+      {$IFDEF VER185}
+        {$DEFINE BDS5}
+        {$DEFINE COMPILER11}
+        {$IFDEF BCB}
+          {$DEFINE BCB11}
+        {$ELSE}
+          {$DEFINE DELPHI11}
+          {$DEFINE DELPHI2007} // synonym to DELPHI11
+          {$DEFINE DELPHICOMPILER11}
+        {$ENDIF}
+        {$DEFINE RTL185_UP}
+      {$ELSE ~~VER185}
+        {$DEFINE BDS4}
+        {$DEFINE COMPILER10}
+        {$IFDEF BCB}
+          {$DEFINE BCB10}
+        {$ELSE}
+          {$DEFINE DELPHI10}
+          {$DEFINE DELPHI2006} // synonym to DELPHI10
+          {$DEFINE DELPHICOMPILER10}
+        {$ENDIF}
+        {$DEFINE RTL180_UP}
+      {$ENDIF ~VER185}
+      {$UNDEF UNKNOWN_COMPILER_VERSION}
+    {$ENDIF}
+
+    {$IFDEF VER190} // Delphi 2007 for .NET
+      {$DEFINE BDS}
+      {$DEFINE BDS5}
+      {$IFDEF CLR}
+        {$DEFINE CLR20}
+      {$ENDIF CLR}
+      {$DEFINE COMPILER11}
+      {$DEFINE DELPHI11}
+      {$DEFINE DELPHI2007} // synonym to DELPHI11
+      {$DEFINE DELPHICOMPILER11}
+      {$DEFINE RTL190_UP}
+      {$UNDEF UNKNOWN_COMPILER_VERSION}
+    {$ENDIF VER190}
+
+    {$IFDEF VER200} // RAD Studio 2009
+      {$DEFINE BDS}
+      {$DEFINE BDS6}
+      {$IFDEF CLR}
+        {$DEFINE CLR20}
+      {$ENDIF CLR}
+      {$DEFINE COMPILER12}
+      {$IFDEF BCB}
+        {$DEFINE BCB12}
+      {$ELSE}
+        {$DEFINE DELPHI12}
+        {$DEFINE DELPHI2009} // synonym to DELPHI12
+        {$DEFINE DELPHICOMPILER12}
+      {$ENDIF BCB}
+      {$IFDEF CLR}
+        {$DEFINE RTL190_UP}
+      {$ELSE}
+        {$DEFINE RTL200_UP}
+      {$ENDIF}
+      {$UNDEF UNKNOWN_COMPILER_VERSION}
+    {$ENDIF VER200}
+
+    {$IFDEF UNKNOWN_COMPILER_VERSION} // adjust for newer version (always use latest version)
+      {$DEFINE BDS}
+      {$DEFINE BDS6}
+      {$DEFINE COMPILER12}
+      {$IFDEF BCB}
+        {$DEFINE BCB12}
+      {$ELSE}
+        {$DEFINE DELPHI12}
+        {$DEFINE DELPHI2009} // synonym to DELPHI12
+        {$DEFINE DELPHICOMPILER12}
+      {$ENDIF BCB}
+      {$IFDEF CLR}
+        {$DEFINE RTL190_UP}
+      {$ELSE}
+        {$DEFINE RTL200_UP}
+      {$ENDIF}
+      {$UNDEF UNKNOWN_COMPILER_VERSION}
+    {$ENDIF}
+
+  {$ENDIF ~KYLIX}
+
+  {$IFDEF BCB}
+    {$DEFINE CPPBUILDER}
+    {$DEFINE BCBCOMPILER}
+  {$ELSE ~BCB}
+    {$DEFINE DELPHI}
+    {$DEFINE DELPHICOMPILER}
+  {$ENDIF ~BCB}
+
+{$ENDIF BORLAND}
+
+{------------------------------------------------------------------------------}
+{ DELPHIX_UP from DELPHIX mappings                                             }
+{------------------------------------------------------------------------------}
+
+{$IFDEF DELPHI12} {$DEFINE DELPHI12_UP} {$ENDIF}
+{$IFDEF DELPHI11} {$DEFINE DELPHI11_UP} {$ENDIF}
+{$IFDEF DELPHI10} {$DEFINE DELPHI10_UP} {$ENDIF}
+{$IFDEF DELPHI9}  {$DEFINE DELPHI9_UP}  {$ENDIF}
+{$IFDEF DELPHI8}  {$DEFINE DELPHI8_UP}  {$ENDIF}
+{$IFDEF DELPHI7}  {$DEFINE DELPHI7_UP}  {$ENDIF}
+{$IFDEF DELPHI6}  {$DEFINE DELPHI6_UP}  {$ENDIF}
+{$IFDEF DELPHI5}  {$DEFINE DELPHI5_UP}  {$ENDIF}
+{$IFDEF DELPHI4}  {$DEFINE DELPHI4_UP}  {$ENDIF}
+{$IFDEF DELPHI3}  {$DEFINE DELPHI3_UP}  {$ENDIF}
+{$IFDEF DELPHI2}  {$DEFINE DELPHI2_UP}  {$ENDIF}
+{$IFDEF DELPHI1}  {$DEFINE DELPHI1_UP}  {$ENDIF}
+
+{------------------------------------------------------------------------------}
+{ DELPHIX_UP from DELPHIX_UP mappings                                          }
+{------------------------------------------------------------------------------}
+
+{$IFDEF DELPHI12_UP}
+  {$DEFINE DELPHI2009_UP} // synonym to DELPHI12_UP
+  {$DEFINE DELPHI11_UP}
+{$ENDIF}
+
+{$IFDEF DELPHI11_UP}
+  {$DEFINE DELPHI2007_UP} // synonym to DELPHI11_UP
+  {$DEFINE DELPHI10_UP}
+{$ENDIF}
+
+{$IFDEF DELPHI10_UP}
+  {$DEFINE DELPHI2006_UP} // synonym to DELPHI10_UP
+  {$DEFINE DELPHI9_UP}
+{$ENDIF}
+
+{$IFDEF DELPHI9_UP}
+  {$DEFINE DELPHI2005_UP} // synonym to DELPHI9_UP
+  {$DEFINE DELPHI8_UP}
+{$ENDIF}
+
+{$IFDEF DELPHI8_UP} {$DEFINE DELPHI7_UP} {$ENDIF}
+{$IFDEF DELPHI7_UP} {$DEFINE DELPHI6_UP} {$ENDIF}
+{$IFDEF DELPHI6_UP} {$DEFINE DELPHI5_UP} {$ENDIF}
+{$IFDEF DELPHI5_UP} {$DEFINE DELPHI4_UP} {$ENDIF}
+{$IFDEF DELPHI4_UP} {$DEFINE DELPHI3_UP} {$ENDIF}
+{$IFDEF DELPHI3_UP} {$DEFINE DELPHI2_UP} {$ENDIF}
+{$IFDEF DELPHI2_UP} {$DEFINE DELPHI1_UP} {$ENDIF}
+
+{------------------------------------------------------------------------------}
+{ BCBX_UP from BCBX mappings                                                   }
+{------------------------------------------------------------------------------}
+
+{$IFDEF BCB12} {$DEFINE BCB12_UP} {$ENDIF}
+{$IFDEF BCB11} {$DEFINE BCB11_UP} {$ENDIF}
+{$IFDEF BCB10} {$DEFINE BCB10_UP} {$ENDIF}
+{$IFDEF BCB6}  {$DEFINE BCB6_UP}  {$ENDIF}
+{$IFDEF BCB5}  {$DEFINE BCB5_UP}  {$ENDIF}
+{$IFDEF BCB4}  {$DEFINE BCB4_UP}  {$ENDIF}
+{$IFDEF BCB3}  {$DEFINE BCB3_UP}  {$ENDIF}
+{$IFDEF BCB1}  {$DEFINE BCB1_UP}  {$ENDIF}
+
+{------------------------------------------------------------------------------}
+{ BCBX_UP from BCBX_UP mappings                                                }
+{------------------------------------------------------------------------------}
+
+{$IFDEF BCB12_UP} {$DEFINE BCB11_UP} {$ENDIF}
+{$IFDEF BCB11_UP} {$DEFINE BCB10_UP} {$ENDIF}
+{$IFDEF BCB10_UP} {$DEFINE BCB6_UP}  {$ENDIF}
+{$IFDEF BCB6_UP}  {$DEFINE BCB5_UP}  {$ENDIF}
+{$IFDEF BCB5_UP}  {$DEFINE BCB4_UP}  {$ENDIF}
+{$IFDEF BCB4_UP}  {$DEFINE BCB3_UP}  {$ENDIF}
+{$IFDEF BCB3_UP}  {$DEFINE BCB1_UP}  {$ENDIF}
+
+{------------------------------------------------------------------------------}
+{ BDSX_UP from BDSX mappings                                                   }
+{------------------------------------------------------------------------------}
+
+{$IFDEF BDS6} {$DEFINE BDS6_UP} {$ENDIF}
+{$IFDEF BDS5} {$DEFINE BDS5_UP} {$ENDIF}
+{$IFDEF BDS4} {$DEFINE BDS4_UP} {$ENDIF}
+{$IFDEF BDS3} {$DEFINE BDS3_UP} {$ENDIF}
+{$IFDEF BDS2} {$DEFINE BDS2_UP} {$ENDIF}
+
+{------------------------------------------------------------------------------}
+{ BDSX_UP from BDSX_UP mappings                                                }
+{------------------------------------------------------------------------------}
+
+{$IFDEF BDS6_UP} {$DEFINE BDS5_UP} {$ENDIF}
+{$IFDEF BDS5_UP} {$DEFINE BDS4_UP} {$ENDIF}
+{$IFDEF BDS4_UP} {$DEFINE BDS3_UP} {$ENDIF}
+{$IFDEF BDS3_UP} {$DEFINE BDS2_UP} {$ENDIF}
+
+{------------------------------------------------------------------------------}
+{ DELPHICOMPILERX_UP from DELPHICOMPILERX mappings                             }
+{------------------------------------------------------------------------------}
+
+{$IFDEF DELPHICOMPILER12} {$DEFINE DELPHICOMPILER12_UP} {$ENDIF}
+{$IFDEF DELPHICOMPILER11} {$DEFINE DELPHICOMPILER11_UP} {$ENDIF}
+{$IFDEF DELPHICOMPILER10} {$DEFINE DELPHICOMPILER10_UP} {$ENDIF}
+{$IFDEF DELPHICOMPILER9}  {$DEFINE DELPHICOMPILER9_UP}  {$ENDIF}
+{$IFDEF DELPHICOMPILER8}  {$DEFINE DELPHICOMPILER8_UP}  {$ENDIF}
+{$IFDEF DELPHICOMPILER7}  {$DEFINE DELPHICOMPILER7_UP}  {$ENDIF}
+{$IFDEF DELPHICOMPILER6}  {$DEFINE DELPHICOMPILER6_UP}  {$ENDIF}
+{$IFDEF DELPHICOMPILER5}  {$DEFINE DELPHICOMPILER5_UP}  {$ENDIF}
+{$IFDEF DELPHICOMPILER4}  {$DEFINE DELPHICOMPILER4_UP}  {$ENDIF}
+{$IFDEF DELPHICOMPILER3}  {$DEFINE DELPHICOMPILER3_UP}  {$ENDIF}
+{$IFDEF DELPHICOMPILER2}  {$DEFINE DELPHICOMPILER2_UP}  {$ENDIF}
+{$IFDEF DELPHICOMPILER1}  {$DEFINE DELPHICOMPILER1_UP}  {$ENDIF}
+
+{------------------------------------------------------------------------------}
+{ DELPHICOMPILERX_UP from DELPHICOMPILERX_UP mappings                          }
+{------------------------------------------------------------------------------}
+
+{$IFDEF DELPHICOMPILER12_UP} {$DEFINE DELPHICOMPILER11_UP} {$ENDIF}
+{$IFDEF DELPHICOMPILER11_UP} {$DEFINE DELPHICOMPILER10_UP} {$ENDIF}
+{$IFDEF DELPHICOMPILER10_UP} {$DEFINE DELPHICOMPILER9_UP}  {$ENDIF}
+{$IFDEF DELPHICOMPILER9_UP}  {$DEFINE DELPHICOMPILER8_UP}  {$ENDIF}
+{$IFDEF DELPHICOMPILER8_UP}  {$DEFINE DELPHICOMPILER7_UP}  {$ENDIF}
+{$IFDEF DELPHICOMPILER8_UP}  {$DEFINE DELPHICOMPILER7_UP}  {$ENDIF}
+{$IFDEF DELPHICOMPILER7_UP}  {$DEFINE DELPHICOMPILER6_UP}  {$ENDIF}
+{$IFDEF DELPHICOMPILER6_UP}  {$DEFINE DELPHICOMPILER5_UP}  {$ENDIF}
+{$IFDEF DELPHICOMPILER5_UP}  {$DEFINE DELPHICOMPILER4_UP}  {$ENDIF}
+{$IFDEF DELPHICOMPILER4_UP}  {$DEFINE DELPHICOMPILER3_UP}  {$ENDIF}
+{$IFDEF DELPHICOMPILER3_UP}  {$DEFINE DELPHICOMPILER2_UP}  {$ENDIF}
+{$IFDEF DELPHICOMPILER2_UP}  {$DEFINE DELPHICOMPILER1_UP}  {$ENDIF}
+
+{------------------------------------------------------------------------------}
+{ COMPILERX_UP from COMPILERX mappings                                         }
+{------------------------------------------------------------------------------}
+
+{$IFDEF COMPILER12} {$DEFINE COMPILER12_UP} {$ENDIF}
+{$IFDEF COMPILER11} {$DEFINE COMPILER11_UP} {$ENDIF}
+{$IFDEF COMPILER10} {$DEFINE COMPILER10_UP} {$ENDIF}
+{$IFDEF COMPILER9}  {$DEFINE COMPILER9_UP}  {$ENDIF}
+{$IFDEF COMPILER8}  {$DEFINE COMPILER8_UP}  {$ENDIF}
+{$IFDEF COMPILER7}  {$DEFINE COMPILER7_UP}  {$ENDIF}
+{$IFDEF COMPILER6}  {$DEFINE COMPILER6_UP}  {$ENDIF}
+{$IFDEF COMPILER5}  {$DEFINE COMPILER5_UP}  {$ENDIF}
+{$IFDEF COMPILER4}  {$DEFINE COMPILER4_UP}  {$ENDIF}
+{$IFDEF COMPILER35} {$DEFINE COMPILER35_UP} {$ENDIF}
+{$IFDEF COMPILER3}  {$DEFINE COMPILER3_UP}  {$ENDIF}
+{$IFDEF COMPILER2}  {$DEFINE COMPILER2_UP}  {$ENDIF}
+{$IFDEF COMPILER1}  {$DEFINE COMPILER1_UP}  {$ENDIF}
+
+{------------------------------------------------------------------------------}
+{ COMPILERX_UP from COMPILERX_UP mappings                                      }
+{------------------------------------------------------------------------------}
+
+{$IFDEF COMPILER12_UP} {$DEFINE COMPILER11_UP} {$ENDIF}
+{$IFDEF COMPILER11_UP} {$DEFINE COMPILER10_UP} {$ENDIF}
+{$IFDEF COMPILER10_UP} {$DEFINE COMPILER9_UP}  {$ENDIF}
+{$IFDEF COMPILER9_UP}  {$DEFINE COMPILER8_UP}  {$ENDIF}
+{$IFDEF COMPILER8_UP}  {$DEFINE COMPILER7_UP}  {$ENDIF}
+{$IFDEF COMPILER7_UP}  {$DEFINE COMPILER6_UP}  {$ENDIF}
+{$IFDEF COMPILER6_UP}  {$DEFINE COMPILER5_UP}  {$ENDIF}
+{$IFDEF COMPILER5_UP}  {$DEFINE COMPILER4_UP}  {$ENDIF}
+{$IFDEF COMPILER4_UP}  {$DEFINE COMPILER35_UP} {$ENDIF}
+{$IFDEF COMPILER35_UP} {$DEFINE COMPILER3_UP}  {$ENDIF}
+{$IFDEF COMPILER3_UP}  {$DEFINE COMPILER2_UP}  {$ENDIF}
+{$IFDEF COMPILER2_UP}  {$DEFINE COMPILER1_UP}  {$ENDIF}
+
+{------------------------------------------------------------------------------}
+{ RTLX_UP from RTLX_UP mappings                                                }
+{------------------------------------------------------------------------------}
+
+{$IFDEF RTL200_UP} {$DEFINE RTL190_UP} {$ENDIF}
+{$IFDEF RTL190_UP} {$DEFINE RTL185_UP} {$ENDIF}
+{$IFDEF RTL185_UP} {$DEFINE RTL180_UP} {$ENDIF}
+{$IFDEF RTL180_UP} {$DEFINE RTL170_UP} {$ENDIF}
+{$IFDEF RTL170_UP} {$DEFINE RTL160_UP} {$ENDIF}
+{$IFDEF RTL160_UP} {$DEFINE RTL150_UP} {$ENDIF}
+{$IFDEF RTL150_UP} {$DEFINE RTL145_UP} {$ENDIF}
+{$IFDEF RTL145_UP} {$DEFINE RTL142_UP} {$ENDIF}
+{$IFDEF RTL142_UP} {$DEFINE RTL140_UP} {$ENDIF}
+{$IFDEF RTL140_UP} {$DEFINE RTL130_UP} {$ENDIF}
+{$IFDEF RTL130_UP} {$DEFINE RTL125_UP} {$ENDIF}
+{$IFDEF RTL125_UP} {$DEFINE RTL120_UP} {$ENDIF}
+{$IFDEF RTL120_UP} {$DEFINE RTL110_UP} {$ENDIF}
+{$IFDEF RTL110_UP} {$DEFINE RTL100_UP} {$ENDIF}
+{$IFDEF RTL100_UP} {$DEFINE RTL93_UP}  {$ENDIF}
+{$IFDEF RTL93_UP}  {$DEFINE RTL90_UP}  {$ENDIF}
+{$IFDEF RTL90_UP}  {$DEFINE RTL80_UP}  {$ENDIF}
+
+{------------------------------------------------------------------------------}
+{ Check for CLR overrides of default detection                                 }
+{------------------------------------------------------------------------------}
+
+{$IFDEF CLR}
+  {$IFDEF FORCE_CLR10}
+    {$DEFINE CLR10}
+    {$UNDEF CLR11}
+    {$UNDEF CLR20}
+  {$ENDIF FORCE_CLR10}
+
+  {$IFDEF FORCE_CLR11}
+    {$UNDEF CLR10}
+    {$DEFINE CLR11}
+    {$UNDEF CLR20}
+  {$ENDIF FORCE_CLR11}
+
+  {$IFDEF FORCE_CLR20}
+    {$UNDEF CLR10}
+    {$UNDEF CLR11}
+    {$DEFINE CLR20}
+  {$ENDIF FORCE_CLR20}
+{$ENDIF CLR}
+
+{------------------------------------------------------------------------------}
+{ CLRX from CLRX_UP mappings                                                   }
+{------------------------------------------------------------------------------}
+
+{$IFDEF CLR10} {$DEFINE CLR10_UP} {$ENDIF}
+{$IFDEF CLR11} {$DEFINE CLR11_UP} {$ENDIF}
+{$IFDEF CLR20} {$DEFINE CLR20_UP} {$ENDIF}
+
+{------------------------------------------------------------------------------}
+{ CLRX_UP from CLRX_UP mappings                                                }
+{------------------------------------------------------------------------------}
+
+{$IFDEF CLR20_UP} {$DEFINE CLR11_UP} {$ENDIF}
+{$IFDEF CLR11_UP} {$DEFINE CLR10_UP} {$ENDIF}
+
+{------------------------------------------------------------------------------}
+
+{$IFDEF DELPHICOMPILER}
+  {$DEFINE DELPHILANGUAGE}
+{$ENDIF}
+
+{$IFDEF BCBCOMPILER}
+  {$DEFINE DELPHILANGUAGE}
+{$ENDIF}
+
+{------------------------------------------------------------------------------}
+{ KYLIXX_UP from KYLIXX mappings                                               }
+{------------------------------------------------------------------------------}
+
+{$IFDEF KYLIX3} {$DEFINE KYLIX3_UP} {$ENDIF}
+{$IFDEF KYLIX2} {$DEFINE KYLIX2_UP} {$ENDIF}
+{$IFDEF KYLIX1} {$DEFINE KYLIX1_UP} {$ENDIF}
+
+{------------------------------------------------------------------------------}
+{ KYLIXX_UP from KYLIXX_UP mappings                                            }
+{------------------------------------------------------------------------------}
+
+{$IFDEF KYLIX3_UP} {$DEFINE KYLIX2_UP} {$ENDIF}
+{$IFDEF KYLIX2_UP} {$DEFINE KYLIX1_UP} {$ENDIF}
+
+{------------------------------------------------------------------------------}
+{ Map COMPILERX_UP to friendly feature names                                   }
+{------------------------------------------------------------------------------}
+
+{$IFDEF FPC}
+  {$IFDEF  VER1_0}
+     Please use FPC 2.0 or higher to compile this.
+  {$ELSE}
+    {$DEFINE SUPPORTS_OUTPARAMS}
+    {$DEFINE SUPPORTS_WIDECHAR}
+    {$DEFINE SUPPORTS_WIDESTRING}
+    {$IFDEF HASINTF}
+      {$DEFINE SUPPORTS_INTERFACE}
+    {$ENDIF}
+    {$IFDEF HASVARIANT}
+      {$DEFINE SUPPORTS_VARIANT}
+    {$ENDIF}
+    {$IFDEF FPC_HAS_TYPE_SINGLE}
+      {$DEFINE SUPPORTS_SINGLE}
+    {$ENDIF}
+    {$IFDEF FPC_HAS_TYPE_DOUBLE}
+      {$DEFINE SUPPORTS_DOUBLE}
+    {$ENDIF}
+    {$IFDEF FPC_HAS_TYPE_EXTENDED}
+      {$DEFINE SUPPORTS_EXTENDED}
+    {$ENDIF}
+    {$IFDEF HASCURRENCY}
+      {$DEFINE SUPPORTS_CURRENCY}
+    {$ENDIF}
+    {$DEFINE SUPPORTS_THREADVAR}
+    {$DEFINE SUPPORTS_CONSTPARAMS}
+    {$DEFINE SUPPORTS_LONGWORD}
+    {$DEFINE SUPPORTS_INT64}
+    {$DEFINE SUPPORTS_DYNAMICARRAYS}
+    {$DEFINE SUPPORTS_DEFAULTPARAMS}
+    {$DEFINE SUPPORTS_OVERLOAD}
+    {$DEFINE ACCEPT_DEPRECATED}  // 2.2 also gives warnings
+    {$DEFINE ACCEPT_PLATFORM}    // 2.2 also gives warnings
+    {$DEFINE ACCEPT_LIBRARY}
+    {$DEFINE SUPPORTS_EXTSYM}
+    {$DEFINE SUPPORTS_NODEFINE}
+
+    {$DEFINE SUPPORTS_CUSTOMVARIANTS}
+    {$DEFINE SUPPORTS_VARARGS}
+    {$DEFINE SUPPORTS_ENUMVALUE}
+    {$IFDEF LINUX}
+      {$DEFINE HAS_UNIT_LIBC}
+    {$ENDIF LINUX}
+    {$DEFINE HAS_UNIT_CONTNRS}
+    {$DEFINE HAS_UNIT_TYPES}
+    {$DEFINE HAS_UNIT_VARIANTS}
+    {$DEFINE HAS_UNIT_STRUTILS}
+    {$DEFINE HAS_UNIT_DATEUTILS}
+    {$DEFINE HAS_UNIT_RTLCONSTS}
+
+    {$DEFINE XPLATFORM_RTL}
+
+    {$IFDEF VER2_2}
+      {$DEFINE SUPPORTS_DISPINTERFACE}
+      {$DEFINE SUPPORTS_IMPLEMENTS}
+      {$DEFINE SUPPORTS_DISPID}
+    {$ELSE}
+      {$UNDEF SUPPORTS_DISPINTERFACE}
+      {$UNDEF SUPPORTS_IMPLEMENTS}
+    {$endif}
+    {$UNDEF SUPPORTS_UNSAFE_WARNINGS}
+  {$ENDIF}
+{$ENDIF FPC}
+
+{$IFDEF CLR}
+  {$DEFINE SUPPORTS_UNICODE}
+{$ENDIF CLR}
+
+{$IFDEF COMPILER1_UP}
+  {$DEFINE SUPPORTS_CONSTPARAMS}
+  {$DEFINE SUPPORTS_SINGLE}
+  {$DEFINE SUPPORTS_DOUBLE}
+  {$DEFINE SUPPORTS_EXTENDED}
+  {$DEFINE SUPPORTS_PACKAGES} 
+{$ENDIF COMPILER1_UP}
+
+{$IFDEF COMPILER2_UP}
+  {$DEFINE SUPPORTS_CURRENCY}
+  {$DEFINE SUPPORTS_THREADVAR}
+  {$DEFINE SUPPORTS_VARIANT}
+  {$DEFINE SUPPORTS_WIDECHAR}
+{$ENDIF COMPILER2_UP}
+
+{$IFDEF COMPILER3_UP}
+  {$DEFINE SUPPORTS_OUTPARAMS}
+  {$DEFINE SUPPORTS_WIDESTRING}
+  {$DEFINE SUPPORTS_INTERFACE}
+  {$DEFINE SUPPORTS_DISPINTERFACE}
+  {$DEFINE SUPPORTS_DISPID}
+  {$DEFINE SUPPORTS_WEAKPACKAGEUNIT}
+{$ENDIF COMPILER3_UP}
+
+{$IFDEF COMPILER35_UP}
+  {$DEFINE SUPPORTS_EXTSYM}
+  {$DEFINE SUPPORTS_NODEFINE}
+{$ENDIF COMPILER35_UP}
+
+{$IFDEF COMPILER4_UP}
+  {$DEFINE SUPPORTS_LONGWORD}
+  {$DEFINE SUPPORTS_INT64}
+  {$DEFINE SUPPORTS_DYNAMICARRAYS}
+  {$DEFINE SUPPORTS_DEFAULTPARAMS}
+  {$DEFINE SUPPORTS_OVERLOAD}
+  {$DEFINE SUPPORTS_IMPLEMENTS}
+{$ENDIF COMPILER4_UP}
+
+{$IFDEF COMPILER6_UP}
+  {$DEFINE SUPPORTS_DEPRECATED}
+  {$DEFINE SUPPORTS_LIBRARY}
+  {$DEFINE SUPPORTS_PLATFORM}
+  {$DEFINE SUPPORTS_LOCAL}
+  {$DEFINE SUPPORTS_SETPEFLAGS}
+  {$DEFINE SUPPORTS_EXPERIMENTAL_WARNINGS}
+  {$DEFINE ACCEPT_DEPRECATED}
+  {$DEFINE ACCEPT_PLATFORM}
+  {$DEFINE ACCEPT_LIBRARY}
+  {$DEFINE SUPPORTS_DEPRECATED_WARNINGS}
+  {$DEFINE SUPPORTS_LIBRARY_WARNINGS}
+  {$DEFINE SUPPORTS_PLATFORM_WARNINGS}
+  {$DEFINE SUPPORTS_CUSTOMVARIANTS}
+  {$DEFINE SUPPORTS_VARARGS}
+  {$DEFINE SUPPORTS_ENUMVALUE}
+  {$DEFINE SUPPORTS_COMPILETIME_MESSAGES}
+{$ENDIF COMPILER6_UP}
+
+{$IFDEF COMPILER7_UP}
+  {$DEFINE SUPPORTS_UNSAFE_WARNINGS}
+{$ENDIF COMPILER7_UP}
+
+{$IFDEF COMPILER9_UP}
+  {$DEFINE SUPPORTS_FOR_IN}
+  {$DEFINE SUPPORTS_INLINE}
+  {$DEFINE SUPPORTS_NESTED_CONSTANTS}
+  {$DEFINE SUPPORTS_NESTED_TYPES}
+  {$DEFINE SUPPORTS_REGION}
+  {$IFDEF CLR}
+    {$DEFINE SUPPORTS_ENHANCED_RECORDS}
+    {$DEFINE SUPPORTS_CLASS_FIELDS}
+    {$DEFINE SUPPORTS_CLASS_HELPERS}
+    {$DEFINE SUPPORTS_CLASS_OPERATORS}
+    {$DEFINE SUPPORTS_STRICT}
+    {$DEFINE SUPPORTS_STATIC}
+    {$DEFINE SUPPORTS_FINAL}
+  {$ENDIF CLR}
+{$ENDIF COMPILER9_UP}
+
+{$IFDEF COMPILER10_UP}
+  {$DEFINE SUPPORTS_ENHANCED_RECORDS}
+  {$DEFINE SUPPORTS_CLASS_FIELDS}
+  {$DEFINE SUPPORTS_CLASS_HELPERS}
+  {$DEFINE SUPPORTS_CLASS_OPERATORS}
+  {$DEFINE SUPPORTS_STRICT}
+  {$DEFINE SUPPORTS_STATIC}
+  {$DEFINE SUPPORTS_FINAL}
+  {$DEFINE SUPPORTS_METHODINFO}
+{$ENDIF COMPILER10_UP}
+
+{$IFDEF COMPILER11_UP}
+  {$IFDEF CLR}
+    {$DEFINE SUPPORTS_GENERICS}
+    {$DEFINE SUPPORTS_DEPRECATED_DETAILS}
+  {$ENDIF CLR}
+{$ENDIF COMPILER11_UP}
+
+{$IFDEF COMPILER12_UP}
+  {$DEFINE SUPPORTS_GENERICS}
+  {$DEFINE SUPPORTS_DEPRECATED_DETAILS}
+  {$IFNDEF CLR}
+    {$DEFINE SUPPORTS_UNICODE}
+    {$DEFINE SUPPORTS_UNICODE_STRING}
+  {$ENDIF  CLR}
+{$ENDIF COMPILER12_UP}
+
+{$IFDEF RTL130_UP}
+  {$DEFINE HAS_UNIT_CONTNRS}
+{$ENDIF RTL130_UP}
+
+{$IFDEF RTL140_UP}
+  {$IFDEF LINUX}
+    {$DEFINE HAS_UNIT_LIBC}
+  {$ENDIF LINUX}
+  {$DEFINE HAS_UNIT_RTLCONSTS}
+  {$DEFINE HAS_UNIT_TYPES}
+  {$DEFINE HAS_UNIT_VARIANTS}
+  {$DEFINE HAS_UNIT_STRUTILS}
+  {$DEFINE HAS_UNIT_DATEUTILS}
+  {$DEFINE XPLATFORM_RTL}
+{$ENDIF RTL140_UP}
+
+{$IFDEF RTL170_UP}
+  {$DEFINE HAS_UNIT_HTTPPROD}
+{$ENDIF RTL170_UP}
+
+{$IFDEF RTL200_UP}
+  {$DEFINE HAS_UNIT_ANSISTRINGS}
+  {$DEFINE HAS_UNIT_PNGIMAGE}
+{$ENDIF RTL200_UP}
+
+{------------------------------------------------------------------------------}
+{ Cross-platform related defines                                               }
+{------------------------------------------------------------------------------}
+
+{$IFNDEF CPU386}
+  {$DEFINE PUREPASCAL}
+{$ENDIF}
+
+{$IFDEF WIN32}
+  {$DEFINE MSWINDOWS} // predefined for D6+/BCB6+
+  {$DEFINE Win32API}
+{$ENDIF}
+
+{$IFDEF DELPHILANGUAGE}
+  {$IFDEF LINUX}
+    {$DEFINE UNIX}
+  {$ENDIF}
+
+  {$IFNDEF CONSOLE}
+    {$IFDEF LINUX}
+      {$DEFINE VisualCLX}
+    {$ENDIF}
+    {$IFNDEF VisualCLX}
+      {$DEFINE VCL}
+    {$ENDIF}
+  {$ENDIF ~CONSOLE}
+{$ENDIF DELPHILANGUAGE}
+
+{------------------------------------------------------------------------------}
+{ Compiler settings                                                            }
+{------------------------------------------------------------------------------}
+
+{$IFOPT A+} {$DEFINE ALIGN_ON} {$ENDIF}
+{$IFOPT B+} {$DEFINE BOOLEVAL_ON} {$ENDIF}
+{$IFDEF COMPILER2_UP}
+  {$IFOPT C+} {$DEFINE ASSERTIONS_ON} {$ENDIF}
+{$ENDIF}
+{$IFOPT D+} {$DEFINE DEBUGINFO_ON} {$ENDIF}
+{$IFOPT G+} {$DEFINE IMPORTEDDATA_ON} {$ENDIF}
+{$IFDEF COMPILER2_UP}
+  {$IFOPT H+} {$DEFINE LONGSTRINGS_ON} {$ENDIF}
+{$ENDIF}
+
+// Hints
+{$IFOPT I+} {$DEFINE IOCHECKS_ON} {$ENDIF}
+{$IFDEF COMPILER2_UP}
+  {$IFOPT J+} {$DEFINE WRITEABLECONST_ON} {$ENDIF}
+{$ENDIF}
+{$IFOPT L+} {$DEFINE LOCALSYMBOLS} {$ENDIF}
+{$IFOPT M+} {$DEFINE TYPEINFO_ON} {$ENDIF}
+{$IFOPT O+} {$DEFINE OPTIMIZATION_ON} {$ENDIF}
+{$IFOPT P+} {$DEFINE OPENSTRINGS_ON} {$ENDIF}
+{$IFOPT Q+} {$DEFINE OVERFLOWCHECKS_ON} {$ENDIF}
+{$IFOPT R+} {$DEFINE RANGECHECKS_ON} {$ENDIF}
+
+// Real compatibility
+{$IFOPT T+} {$DEFINE TYPEDADDRESS_ON} {$ENDIF}
+{$IFOPT U+} {$DEFINE SAFEDIVIDE_ON} {$ENDIF}
+{$IFOPT V+} {$DEFINE VARSTRINGCHECKS_ON} {$ENDIF}
+{$IFOPT W+} {$DEFINE STACKFRAMES_ON} {$ENDIF}
+
+// Warnings
+{$IFOPT X+} {$DEFINE EXTENDEDSYNTAX_ON} {$ENDIF}
+
+// for Delphi/BCB trial versions remove the point from the line below
+{.$UNDEF SUPPORTS_WEAKPACKAGEUNIT}
+
+{$ENDIF ~JEDI_INC}
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/DHMLEditor.cfg
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/DHMLEditor.cfg	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/DHMLEditor.cfg	(revision 541)
@@ -0,0 +1,41 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-LE"c:\program files\borland\delphi7\Projects\Bpl"
+-LN"c:\program files\borland\delphi7\Projects\Bpl"
+-U"P:\vista\CPRS-1.0.23.15\CPRS-Chart\TMG_Extra"
+-O"P:\vista\CPRS-1.0.23.15\CPRS-Chart\TMG_Extra"
+-I"P:\vista\CPRS-1.0.23.15\CPRS-Chart\TMG_Extra"
+-R"P:\vista\CPRS-1.0.23.15\CPRS-Chart\TMG_Extra"
+-Z
+-w-UNSAFE_TYPE
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/DHMLEditor.dof
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/DHMLEditor.dof	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/DHMLEditor.dof	(revision 541)
@@ -0,0 +1,142 @@
+[FileVersion]
+Version=7.0
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=1
+SymbolLibrary=1
+SymbolPlatform=1
+UnitLibrary=1
+UnitPlatform=1
+UnitDeprecated=1
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=1
+UnsafeCast=1
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=
+[Directories]
+OutputDir=
+UnitOutputDir=
+PackageDLLOutputDir=
+PackageDCPOutputDir=
+SearchPath=P:\vista\CPRS-1.0.23.15\CPRS-Chart\TMG_Extra
+Packages=vcl;rtl;vclx;vclie;xmlrtl;inetdbbde;inet;inetdbxpress;dbrtl;soaprtl;dsnap;VclSmp;dbexpress;vcldb;dbxcds;inetdb;bdertl;vcldbx;adortl;teeui;teedb;tee;ibxpress;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP;TMSD7;Vcwd7;tmsxlsd7;aspd7;VaComm7;importActiveX;IndySystem70;IndyProtocols70;IndySuperCore70;CEToolsPkgd7
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+[Parameters]
+RunParams=/Geral
+HostApplication=
+Launcher=
+UseLauncher=0
+DebugCWD=
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=C:\Programas\Borland\Delphi7\Bin\
+[Version Info]
+IncludeVerInfo=1
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=2070
+CodePage=1252
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+[HistoryLists\hlUnitAliases]
+Count=1
+Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+[HistoryLists\hlSearchPath]
+Count=1
+Item0=P:\vista\CPRS-1.0.23.15\CPRS-Chart\TMG_Extra
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/DHMLEditor.dpk
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/DHMLEditor.dpk	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/DHMLEditor.dpk	(revision 541)
@@ -0,0 +1,46 @@
+package DHMLEditor;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$IMPLICITBUILD OFF}
+
+requires
+  rtl,
+  vcl,
+  vclx,
+  vclie;
+
+contains
+  UEditHost in 'UEditHost.pas',
+  EmbeddedED in 'EmbeddedED.pas',
+  EmbedEDconst in 'EmbedEDconst.pas',
+  Ieconst in 'Ieconst.pas',
+  IEDispConst in 'IEdispConst.pas',
+  KS_lib in 'KS_Lib.pas',
+  KS_Procs2 in 'KS_procs2.pas',
+  KS_Procs in 'KS_procs.pas',
+  RegFuncs in 'regfuncs.pas',
+  MSHTML_EWB in 'Mshtml_Ewb.pas',
+  MSHTMLEvents in 'MSHTMLEvents.pas';
+
+end.
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/DHMLEditor.dsk
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/DHMLEditor.dsk	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/DHMLEditor.dsk	(revision 541)
@@ -0,0 +1,469 @@
+[Closed Files]
+File_0=SourceModule,'C:\Program Files\Borland\Delphi7\Projects\EmbeddedED\EmbeddedED\EmbeddedED.pas',0,1,752,14,752,0,0
+File_1=SourceModule,'C:\Program Files\Borland\Delphi7\Projects\EmbeddedED\EmbeddedED\UEditHost.pas',0,1,125,4,135,0,0
+File_2=SourceModule,'C:\Program Files\Borland\Delphi7\Projects\EmbeddedED\EmbeddedED\KS_Lib.pas',0,1,29,31,33,0,0
+File_3=SourceModule,'C:\Program Files\Borland\Delphi7\Projects\EmbeddedED\EmbeddedED\Mshtml_Ewb.pas',0,1,1,1,1,0,0
+File_4=SourceModule,'C:\Program Files\Borland\Delphi7\Projects\EmbeddedED\EmbeddedED\MSHTMLEvents.pas',0,1,1,1,1,0,0
+File_5=SourceModule,'C:\Program Files\Borland\Delphi7\Projects\EmbeddedED\EmbeddedED\TMG_Extra\Mshtml_Ewb.pas',0,1,43,27,10,0,0
+File_6=SourceModule,'P:\vista\CPRS-1.0.23.15\CPRS-Lib\ORCtrls.pas',0,1,2531,1,2540,0,0
+File_7=SourceModule,'P:\vista\CPRS-1.0.23.15\CPRS-Chart\TMG_Extra\MSHTML_EWB.pas',0,1,20461,19,20464,0,0
+File_8=SourceModule,'P:\vista\CPRS-1.0.23.15\CPRS-Chart\TMG_Extra\MSHTMLEvents.pas',0,1,11911,25,11922,0,0
+File_9=SourceModule,'P:\vista\CPRS-1.0.23.15\CPRS-Chart\TMG_Extra\TMGHTML.pas',0,1,599,39,608,0,0
+
+[Modules]
+Module0=C:\Program Files\Borland\Delphi7\Projects\Unit1.pas
+Count=1
+EditWindowCount=1
+PackageWindowCount=1
+
+[C:\Program Files\Borland\Delphi7\Projects\Unit1.pas]
+ModuleType=SourceModule
+FormState=1
+FormOnTop=0
+
+[C:\Program Files\Borland\Delphi7\Projects\EmbeddedED\EmbeddedED\DHMLEditor.dpk]
+FormState=0
+FormOnTop=1
+
+[C:\Program Files\Borland\Delphi7\Projects\ProjectGroup1.bpg]
+FormState=0
+FormOnTop=0
+
+[C:\Program Files\Borland\Delphi7\Projects\Project1.dpr]
+FormState=0
+FormOnTop=0
+
+[EditWindow0]
+ViewCount=1
+CurrentView=0
+View0=0
+CodeExplorer=CodeExplorer@EditWindow0
+MessageView=MessageView@EditWindow0
+Create=1
+Visible=1
+State=0
+Left=295
+Top=199
+Width=694
+Height=485
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=686
+ClientHeight=451
+LeftPanelSize=0
+LeftPanelClients=CodeExplorer@EditWindow0
+LeftPanelData=00000400010000000C000000436F64654578706C6F72657200000000000000000000000000000000000100000000000000000C000000436F64654578706C6F726572FFFFFFFF
+RightPanelSize=0
+BottomPanelSize=0
+BottomPanelClients=MessageView@EditWindow0
+BottomPanelData=00000400010000000B0000004D657373616765566965770000000000000000000000000000000000FFFFFFFF
+
+[View0]
+Module=C:\Program Files\Borland\Delphi7\Projects\Unit1.pas
+CursorX=28
+CursorY=29
+TopLine=27
+LeftCol=1
+
+[PackageWindow0]
+Create=1
+Visible=1
+State=0
+Left=252
+Top=241
+Width=501
+Height=244
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=493
+ClientHeight=218
+TBDockHeight=244
+LRDockWidth=501
+Dockable=1
+StatusBar=0
+TextLabels=1
+Toolbar=1
+SectionWidth0=202
+SectionWidth1=343
+Module=C:\Program Files\Borland\Delphi7\Projects\EmbeddedED\EmbeddedED\DHMLEditor.dpk
+
+[Watches]
+Count=0
+
+[WatchWindow]
+WatchColumnWidth=152
+WatchShowColumnHeaders=1
+Create=1
+Visible=1
+State=0
+Left=0
+Top=0
+Width=830
+Height=281
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=830
+ClientHeight=281
+TBDockHeight=264
+LRDockWidth=421
+Dockable=1
+
+[Breakpoints]
+Count=0
+
+[AddressBreakpoints]
+Count=0
+
+[Main Window]
+Create=1
+Visible=1
+State=0
+Left=9
+Top=7
+Width=992
+Height=112
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=984
+ClientHeight=78
+
+[ProjectManager]
+Create=1
+Visible=0
+State=0
+Left=198
+Top=142
+Width=631
+Height=561
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=623
+ClientHeight=535
+TBDockHeight=408
+LRDockWidth=623
+Dockable=1
+
+[Components]
+Left=308
+Top=167
+Width=183
+Height=266
+Create=1
+Visible=0
+State=0
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=175
+ClientHeight=240
+TBDockHeight=235
+LRDockWidth=183
+Dockable=1
+
+[CPUWindow]
+Create=1
+Visible=0
+State=0
+Left=78
+Top=201
+Width=731
+Height=488
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=723
+ClientHeight=454
+DumpPane=79
+DisassemblyPane=187
+RegisterPane=231
+FlagPane=64
+
+[AlignmentPalette]
+Create=1
+Visible=0
+State=0
+Left=98
+Top=122
+Width=156
+Height=84
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=150
+ClientHeight=60
+
+[PropertyInspector]
+Create=1
+Visible=1
+State=0
+Left=0
+Top=0
+Width=227
+Height=543
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=227
+ClientHeight=543
+TBDockHeight=492
+LRDockWidth=190
+Dockable=1
+SplitPos=114
+ArrangeBy=Name
+SelectedItem=Caption
+ExpandedItems=CalColors,Options
+HiddenCategories=Legacy
+
+[BreakpointWindow]
+Create=1
+Visible=0
+State=0
+Left=20
+Top=265
+Width=737
+Height=350
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=729
+ClientHeight=324
+TBDockHeight=197
+LRDockWidth=737
+Dockable=1
+Column0Width=100
+Column1Width=75
+Column2Width=200
+Column3Width=200
+Column4Width=75
+Column5Width=75
+
+[CallStackWindow]
+Create=1
+Visible=0
+State=0
+Left=524
+Top=363
+Width=405
+Height=401
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=397
+ClientHeight=375
+TBDockHeight=355
+LRDockWidth=155
+Dockable=1
+
+[ThreadStatusWindow]
+Create=1
+Visible=0
+State=0
+Left=0
+Top=0
+Width=800
+Height=600
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=792
+ClientHeight=574
+TBDockHeight=152
+LRDockWidth=624
+Dockable=1
+Column0Width=145
+Column1Width=100
+Column2Width=115
+Column3Width=250
+
+[ObjectTree]
+Create=1
+Visible=1
+State=0
+Left=0
+Top=0
+Width=227
+Height=543
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=227
+ClientHeight=543
+TBDockHeight=175
+LRDockWidth=108
+Dockable=1
+
+[DebugLogView]
+Create=1
+Visible=1
+State=0
+Left=0
+Top=0
+Width=830
+Height=281
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=830
+ClientHeight=281
+TBDockHeight=291
+LRDockWidth=417
+Dockable=1
+
+[LocalVarsWindow]
+Create=1
+Visible=0
+State=0
+Left=441
+Top=447
+Width=421
+Height=192
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=413
+ClientHeight=166
+TBDockHeight=192
+LRDockWidth=421
+Dockable=1
+
+[ToDo List]
+Create=1
+Visible=0
+State=0
+Left=268
+Top=585
+Width=787
+Height=145
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=779
+ClientHeight=119
+TBDockHeight=250
+LRDockWidth=470
+Dockable=1
+Column0Width=355
+Column1Width=30
+Column2Width=100
+Column3Width=70
+Column4Width=70
+SortOrder=0
+ShowHints=1
+ShowChecked=0
+
+[FPUWindow]
+Create=1
+Visible=0
+State=0
+Left=307
+Top=281
+Width=457
+Height=250
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=449
+ClientHeight=216
+RegisterPane=121
+FlagPane=59
+
+[ModuleWindow]
+Create=1
+Visible=0
+State=0
+Left=63
+Top=224
+Width=638
+Height=355
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=630
+ClientHeight=329
+TBDockHeight=355
+LRDockWidth=638
+Dockable=1
+Column0Width=125
+Column1Width=100
+Column2Width=155
+EntryPointPane=225
+CompUnitPane=104
+
+[MessageHintFrm]
+Create=1
+Visible=0
+State=0
+Left=481
+Top=423
+Width=383
+Height=195
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=375
+ClientHeight=169
+TBDockHeight=195
+LRDockWidth=383
+Dockable=1
+
+[CodeExplorer@EditWindow0]
+Create=1
+Visible=0
+State=0
+Left=0
+Top=12
+Width=248
+Height=439
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=248
+ClientHeight=439
+TBDockHeight=305
+LRDockWidth=248
+Dockable=1
+
+[MessageView@EditWindow0]
+Create=1
+Visible=0
+State=0
+Left=-73
+Top=-521
+Width=443
+Height=85
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=443
+ClientHeight=85
+TBDockHeight=85
+LRDockWidth=443
+Dockable=1
+
+[DockHosts]
+DockHostCount=2
+
+[DockSite0]
+DockSiteType=1
+Create=1
+Visible=1
+State=0
+Left=14
+Top=127
+Width=243
+Height=598
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=235
+ClientHeight=572
+TBDockHeight=395
+LRDockWidth=245
+Dockable=1
+TabPosition=0
+ActiveTab=Object Inspector
+TabDockClients=PropertyInspector,ObjectTree
+
+[DockSite1]
+DockSiteType=1
+Create=1
+Visible=0
+State=0
+Left=107
+Top=638
+Width=846
+Height=336
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=838
+ClientHeight=310
+TBDockHeight=88
+LRDockWidth=283
+Dockable=1
+TabPosition=0
+ActiveTab=Event Log
+TabDockClients=DebugLogView,WatchWindow
+
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/DHMLEditor.~dpk
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/DHMLEditor.~dpk	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/DHMLEditor.~dpk	(revision 541)
@@ -0,0 +1,44 @@
+package DHMLEditor;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$IMPLICITBUILD OFF}
+
+requires
+  rtl,
+  vcl,
+  vclx,
+  vclie;
+
+contains
+  UEditHost in 'UEditHost.pas',
+  EmbeddedED in 'EmbeddedED.pas',
+  EmbedEDconst in 'EmbedEDconst.pas',
+  Ieconst in 'Ieconst.pas',
+  IEDispConst in 'IEdispConst.pas',
+  KS_lib in 'KS_Lib.pas',
+  KS_Procs2 in 'KS_procs2.pas',
+  KS_Procs in 'KS_procs.pas',
+  RegFuncs in 'regfuncs.pas';
+
+end.
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/EmbedEDconst.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/EmbedEDconst.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/EmbedEDconst.pas	(revision 541)
@@ -0,0 +1,72 @@
+{ ******************************************** }
+{       EmbedEDconst ver 1.1 (Jan. 16, 2004)   }
+{                                              }
+{       For Delphi 4, 5 and 6                  }
+{                                              }
+{       Copyright (C) 1999-2003, Kurt Senfer.  }
+{       All Rights Reserved.                   }
+{                                              }
+{       Support@ks.helpware.net                }
+{                                              }
+{       Documentation and updated versions:    }
+{                                              }
+{       http://KS.helpware.net                 }
+{                                              }
+{ ******************************************** }
+{
+    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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+}
+
+unit EmbedEDconst;
+
+interface
+  uses windows, messages;
+
+const
+
+  {the old DECMD_... comands starts with
+    DECMD_BOLD              = IDM_BOLD;     //5000
+
+  and ends with
+    DECMD_PROPERTIES        = $000013BC;    //5052
+
+  most MS constants is defined in the area from 0 to 24..
+  and the suddenly some in the 37.. rang.
+  There is a few 60.. and 32...
+
+  It seems safe to continue the old 5000 series a bit }
+
+  //start special IDM_... commands
+  IDM_NUDGE_ELEMENT       = 5053;
+  IDM_CONSTRAIN           = 5055;
+
+  KS_TEST                 = 5056;
+  IDM_LocalUndoManager    = 5057;
+
+  IDM_SHOW_BOOKMARKS      = 5058;
+  IDM_SHOW_PAGEBRKS       = 5059;
+  IDM_SHOW_REVISIONS      = 5060;
+  IDM_DROP_UNDO_PACKAGE   = 5061;
+  IDM_DROP_ReDO_PACKAGE   = 5062;
+  IDM_STRIPCELLFORMAT     = 5063;
+  IDM_RestoreSystemCursor = 5064;
+
+
+  WaitAsync_MESSAGE = WM_USER + 210;
+
+implementation
+
+//------------------------------------------------------------------------------
+end.
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/EmbeddedED.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/EmbeddedED.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/EmbeddedED.pas	(revision 541)
@@ -0,0 +1,5287 @@
+{       EmbeddedED ver 1.21 (Jan. 19, 2004)      }
+{                                               }
+{       For Delphi 4, 5, 6 and 7                }
+{                                               }
+{       Copyright (C) 1999-2004, Kurt Senfer.   }
+{       All Rights Reserved.                    }
+{                                               }
+{       Support@ks.helpware.net                 }
+{                                               }
+{       Documentation and updated versions:     }
+{                                               }
+{       http://KS.helpware.net                  }
+{                                               }
+{ ********************************************* }
+
+{
+
+    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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+This unit forms the basic core of a MSHTML Edit component witch can be used
+as the starting point for a full blown WYSIWYG HTML Editor.
+
+Don't change this unit, but subclass it in order to build your own advanced
+HTML Editor on top of it. If you change the unit you'll run into unnecessary
+troubles when official updates of this unit is released. If you build a
+subclassed editor you can benefit from new versions of the EmbeddedED unit
+without the need of changing your own code.
+
+If you find bugs or have ideas / wishes for new features that either should be
+incorporated into the EmbeddedED unit or cant be placed in a subclassed unit,
+then please let me know and I'll try to keep EmbeddedED updated at any time.
+
+----------------------------------------------------------------------
+
+Once I tried to get an HTML editor written as OSP. When it didn't succeeded
+I tried to get different groups of people to share the workload of
+writing a good HTML editor around the MSHTML engine - no succeed either.
+
+Then I finally had to do everything myself and finally I decided only to make
+parts of my source public.
+
+If you ever need to do more than the basic editing that the EmbeddedED unit
+will give you, you need to write some code yourself, or you might chose to acquire
+some of the code I wrote - check out my site at http://KS.helpware.net.
+
+The power of all units are compiled into the KsDHTMLEDLib.ocx witch you can use
+free of charge. }
+
+(*
+NOTE: Modified by K. Toppenberg (marked by //kt)
+*)
+
+
+
+unit EmbeddedED;          //core VCL HTML edit component
+{.$DEFINE EDOCX}          //unit not included
+{.$DEFINE EDTABLE}        //unit not included
+{.$DEFINE EDUNDO}         //unit not included
+{.$DEFINE EDMONIKER}      //unit not included
+{.$DEFINE EDGLYPHS}       //unit not included
+{.$DEFINE EDLIB}          //unit not included
+{.$DEFINE EDPARSER}       //unit not included
+{.$DEFINE EDDRAGDROP}     //unit not included
+{.$DEFINE EDZINDEX}       //unit not included
+{.$DEFINE EDDESIGNER}     //unit not included
+{.$DEFINE EDPRINT}        //unit not included
+
+
+{ $DEFINE DEBUG }  //kt removed.
+
+
+
+ {$I KSED.INC} //Compiler version directives
+
+interface
+
+uses
+  Windows, Classes, ActiveX, Forms, 
+  //ktMSHTML_TLB,
+  MSHTML_EWB, //kt
+  AXCtrls, menus, Controls, messages, URLMon,
+  {$IFDEF D6D7} Variants, {$ENDIF}
+  {$IFDEF EDPRINT} EDPrint, {$ENDIF}
+  IEConst, EmbedEDconst, KS_Lib, SHDocVw;
+
+type
+  TDHTMLEDITAPPEARANCE = (DEAPPEARANCE_FLAT, DEAPPEARANCE_3D);
+
+  TUserInterfaceOption = (NoBorder, NoScrollBar, FlatScrollBar, DivBlockOnReturn);
+  TUserInterfaceOptions = set of TUserInterfaceOption;
+
+  TDHTMLEditShowContextMenu = procedure(Sender: TObject; xPos: Integer; yPos: Integer) of object;
+  TDHTMLEditContextMenuAction = procedure(Sender: TObject; itemIndex: Integer) of object;
+  TQueryServiceEvent = function(const rsid, iid: TGuid; out Obj: IUnknown): HResult of object;
+  TShowContextMenuEvent = function(const dwID: DWORD; const ppt: PPOINT; const pcmdtReserved: IUnknown; const pdispReserved: IDispatch): HRESULT of object;
+  TShowContextMenuEventEx = procedure(Sender: TObject; xPos, yPos: Integer) of object;
+  TTranslateURLEvent = procedure(Sender: TObject; var URL: string; var Changed: Boolean) of object;
+  TMessageEventEx = procedure(Sender: TObject; var msg: LongWord; var wParam: SYSINT; var lParam: SYSINT; var Result: SYSINT) of object;
+  TEditDesignerEvent = procedure(Sender: TObject; inEvtDispId: Integer; const pIEventObj: IHTMLEventObj; var Result: HResult) of object;
+  TNotifyEventEx2 = procedure(Sender: TObject; NewFile: String) of object;
+  TNotifyEventEx4 = procedure(Sender: TObject; var S: String) of object;
+
+//kt  TSnapRect = procedure(Sender: TObject; const pIElement: IHTMLElement; var prcNew: tagRECT; eHandle: _ELEMENT_CORNER; var Result: HResult) of object;
+  TNotifyEventEx = procedure(Sender: TObject; var Cancel: Boolean) of object;
+
+  TNotifyEventEx8 = procedure(Sender: TObject; var Key: Integer; const pEvtObj: IHTMLEventObj) of object;
+  TNotifyProcedureEvent = procedure of object;
+
+  TRefreshEvent = procedure(Sender: TObject; CmdID: Integer; var Cancel: Boolean) of object;
+  TMouseEventEx = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj; X, Y: Integer; var Cancel: Boolean) of object;
+
+  {$IFNDEF EDPRINT}
+     TPrintSetup = array[0..8] of string;  //Dummy type - if EDPRINT is undefines
+  {$ENDIF}
+
+
+  TEmbeddedED = class(TWebbrowser,
+                      IDocHostUIHandler,
+                      IDispatch,          //invoke ~ general event sink
+                      IServiceProvider,
+                      IOleControlSite,
+                      IPropertyNotifySink,
+                      {$IFDEF EDDRAGDROP}
+                         IDropTarget,
+                      {$ENDIF}
+                      IOleCommandTarget,
+                      ISimpleFrameSite
+                      )
+  private
+    FOnQueryService: TQueryServiceEvent;
+    FOnDisplayChanged: TNotifyEvent;
+    FOnShowContextMenu: TShowcontextmenuEvent;
+    FOnShowContextmenuEx:  TShowContextMenuEventEx;
+    FOnTranslateURL: TTranslateURLEvent;
+    FOnDocumentComplete: TNotifyEvent;
+    FWaitMessage: Boolean;
+    DWEBbrowserEvents2Cookie: Integer; //event sink stuff
+    FReadyState: Integer;
+    FShowDetails: Boolean;
+    FIEVersion: String;
+    FIE6: boolean;
+    FMSHTMLDropTarget: IDropTarget;
+    FInternalStyles: String;
+    FExternalStyles: String;
+    FStylesRefreshed: Boolean;
+    FStyles: TStringList;
+    FFonts: TStringList;
+    FHTMLImage: String;   //Source image of the current page as opened / last saved
+    FDebug: Boolean;
+    DebugBool: Boolean;   //used to test any Boolean value
+    DebugString: String;  //used to test any string value
+    DebugElement: IHTMLElement;
+    DummyString: String;
+    FSetInitialFocus: Boolean;
+    FEDMessageHandler: TMessageEvent;
+    FMessageHandler: TMessageEventEx;
+    FUserInterfaceValue: DWORD;
+    FDownloadControlValue: Integer;
+    FPrintFinished: Boolean;
+    // IHTMLEditHost
+    FSnapEnabled: Boolean;
+    FGridX: Integer;
+    FGridY: Integer;
+    //ktFExtSnapRect: TSnapRect;
+    FOnPreDrag: TNotifyEventEx;
+    FPreHandleEvent: TEditDesignerEvent;
+    FPostHandleEvent: TEditDesignerEvent;
+    FEDTranslateAccelerator: TEditDesignerEvent;
+    FPostEditorEventNotify: TEditDesignerEvent;
+    FOleInPlaceActiveObject: IOleInPlaceActiveObject;
+    //kt .. moved to protected section ..   FmsHTMLwinHandle: Hwnd;
+    FLocalUndo: WordBool; //we handle UNDO and REDO ourselves
+    FTUndo: Pointer;      //we cant use TUndo heir, it will cause a Circular reference
+    FTZindex: pointer;    //we cant use TZindex ........
+    FTtable: pointer;     //we cant use TTable ........
+    FEdit: pointer;       //we cant use TEditDesigner ........
+    FEditHost: pointer;   //we cant use TEditHost ........
+    FDestroyng: Boolean;
+    FContextMenu: TPopupMenu;
+    FCreateBakUp: Boolean;
+    FActualTxtRange: IHTMLTxtRange;
+    FActualControlRange: IHTMLControlRange;
+    FSelectionType: string;
+    FActualElement: IHTMLElement;
+    FActualRangeIsText: Boolean;
+    FSelection: Boolean;    //There is a selection
+    FHighlight: IHighlightRenderingServices;
+    FHighlightSegment: IHighlightSegment;
+    FRenderStyle: IHTMLRenderStyle;
+    FDisplayPointerStart: IDisplayPointer;
+    FDisplayPointerEnd: IDisplayPointer;
+    FLoadFromString: Boolean;
+    FParamLoad: Boolean;
+    FRefreshing: Boolean;
+    FUserInterfaceOptions: TUserInterfaceOptions;
+    FBeforeSaveFile: TNotifyEvent;
+    FAfterSaveFile: TNotifyEvent;
+    FAfterSaveFileAs: TNotifyEvent;
+    FAfterLoadFile: TNotifyEventEx2;
+    FonAfterPrint: TNotifyEventEx;
+    FonBeforePrint: TNotifyEventEx;
+    FOnUnloadDoc: TNotifyEventEx;
+    FOnRefreshBegin: TRefreshEvent;
+    FOnRefreshEnd: TNotifyEvent;
+    FBaseURL: String;
+    {$IFNDEF EDMONIKER}
+       FDummyString: String;
+    {$ENDIF}
+    FBaseTagInDoc: Boolean;
+    FLiveResize: Boolean;
+    F2DPosition: Boolean;
+    FShowZeroBorderAtDesignTime: Boolean;
+    FConstrain : boolean;
+    EDMessageHandlerPtr: Pointer;
+    FOnMouseUp: TMouseEventEx;
+    FOnMouseDown: TMouseEventEx; 
+    FOnDblClick: TNotifyEvent;
+    FOnClick: TNotifyEvent;
+    FOnKeyUp: TNotifyEventEx8;
+    FOnKeyDown: TNotifyEventEx8;
+    FOnKeyPress: TKeyPressEvent;
+    FOnMouseMove: TMouseEventEx;
+    FOnmouseout: TNotifyEvent;
+    FOnmouseover: TNotifyEvent;
+    FOnBlur: TNotifyEvent;
+    FAbsoluteDropMode: Boolean;
+    FShowBorders: Boolean;
+    FCurrentDocumentPath: String;
+    FOnReadystatechange: TNotifyEvent;
+    KeepLI: boolean;
+    FLength: Integer; //number of selected elements
+    FFirstElement: Integer;
+    FLastElement: Integer;
+    FStartElementSourceIndex: Integer;
+    FEndElementSourceIndex: Integer;
+    FElementCollection: IHTMLElementCollection;
+    FTagNumber: Integer;  //actual tagnumber in a GetFirts GetNext sequence
+    FMarkUpServices: IMarkupServices;
+    FMarkupPointerStart: IMarkupPointer;
+    FMarkupPointerEnd: IMarkupPointer;    
+    FOnInitialize: TNotifyEventEx4;
+    FAXCtrl: Pointer;   //  pointer to TActiveXControl (KsDHTMLEDLib.ocx)
+    FGenerator: String;
+    FSkipDirtyCheck: Boolean;
+    FWarmingUp: Boolean; //true while MSHTML is initialised
+    FSettingBaseURL: Boolean;
+    FkeepPath: Boolean;
+    FOnContextMenuAction: TDHTMLEditContextMenuAction;
+    // IDOCHOSTUIHANDLER
+    function ShowContextMenu(const dwID: DWORD; const ppt: PPOINT; const pcmdtReserved: IUnknown; const pdispReserved: IDispatch): HRESULT; stdcall;
+    function GetHostInfo(var pInfo: TDOCHOSTUIINFO): HRESULT; stdcall;
+    function ShowUI(const dwID: DWORD; const pActiveObject: IOleInPlaceActiveObject; const pCommandTarget: IOleCommandTarget; const pFrame: IOleInPlaceFrame; const pDoc: IOleInPlaceUIWindow): HRESULT; stdcall;
+    function HideUI: HRESULT; stdcall;
+    function UpdateUI: HRESULT; stdcall;
+    function EnableModeless(const fEnable: BOOL): HRESULT; stdcall;
+    function OnDocWindowActivate(const fActivate: BOOL): HRESULT; stdcall;
+    function OnFrameWindowActivate(const fActivate: BOOL): HRESULT; stdcall;
+    function ResizeBorder(const prcBorder: PRECT; const pUIWindow: IOleInPlaceUIWindow; const FrameWindow: BOOL): HRESULT; stdcall;
+    function TranslateAccelerator(const lpMsg: PMSG; const pguidCmdGroup: PGUID; const nCmdID: DWORD): HRESULT; stdcall;
+    function GetOptionKeyPath(var pchKey: POLESTR; const dw: DWORD): HRESULT; stdcall;
+    function GetDropTarget(const pDropTarget: IDropTarget; out ppDropTarget: IDropTarget): HRESULT; stdcall;
+    function GetExternal(out ppDispatch: IDispatch): HRESULT; stdcall;
+    function TranslateUrl(const dwTranslate: DWORD; const pchURLIn: POLESTR; var ppchURLOut: POLESTR): HRESULT; stdcall;
+    function FilterDataObject(const pDO: IDataObject; out ppDORet: IDataObject): HRESULT; stdcall;
+    // IDOCHOSTUIHANDLER END
+    // IDispatch
+    function GetTypeInfoCount(out Count: Integer): HResult; stdcall;
+    function GetTypeInfo(Index, LocaleID: Integer; out TypeInfo): HResult; stdcall;
+    function GetIDsOfNames(const IID: TGUID; Names: Pointer; NameCount, LocaleID: Integer; DispIDs: Pointer): HResult; stdcall;
+    function Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer; Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HResult; stdcall;
+    // IServiceProvider
+    function QueryService(const rsid, iid: TGuid; out Obj): HResult; stdcall;
+    // IServiceProvider END
+    // IOleControlSite
+    function OnControlInfoChanged: HResult; stdcall;
+    function LockInPlaceActive(fLock: BOOL): HResult; stdcall;
+    function GetExtendedControl(out disp: IDispatch): HResult; stdcall;
+    function TransformCoords(var ptlHimetric: TPoint; var ptfContainer: TPointF; flags: Longint): HResult; stdcall;
+    function IOleControlSite.TranslateAccelerator = OleControlSite_TranslateAccelerator;
+    function OleControlSite_TranslateAccelerator(msg: PMsg; grfModifiers: Longint): HResult; stdcall;
+    function OnFocus(fGotFocus: BOOL): HResult; stdcall;
+    function ShowPropertyFrame: HResult; stdcall;
+    // IOleControlSite  END
+    {$IFDEF EDDRAGDROP}
+       // IDropTarget
+       function DragEnter(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HResult; stdcall;
+       function IDropTarget.DragOver = _DragOver;
+       function _DragOver(grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HResult; stdcall;
+       function DragLeave: HResult; stdcall;
+       function Drop(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HResult; stdcall;
+       // IDropTarget END
+    {$ENDIF}
+    // IOleCommandTarget
+    function IOleCommandTarget.QueryStatus = _QueryStatus;
+    function _QueryStatus(CmdGroup: PGUID; cCmds: Cardinal; prgCmds: POleCmd; CmdText: POleCmdText): HResult; stdcall;
+    function Exec(CmdGroup: PGUID; nCmdID, nCmdexecopt: DWORD; const vaIn: OleVariant; var vaOut: OleVariant): HResult; stdcall;
+    // IOleCommandTarget END
+    function GetOleobject: IOleobject;
+    function GetBaseURL: String;
+    procedure SetBaseURL(const Value: String);
+    {$IFNDEF EDMONIKER}
+       function LoadFromIStream(aIStream: IStream): HResult;
+    {$ENDIF}
+    Procedure GetSourceSnapShot;
+    function GetCharset: string;
+    function EmptyDoc: String;
+    procedure SubClassMsHTML;
+    procedure UnSubClassMsHTML;
+    function GetWebBrowserConnectionPoint(var CP: ICOnnectionPoint): boolean;
+    procedure EDOnMouseOver(const pEvtObj: IHTMLEventObj);
+    procedure WaitAsyncMessage(var Msg: Tmessage); message WaitAsync_MESSAGE;
+    function OpenChangeLog: HResult;
+    function LoadFromStrings(aStrings: TStrings): HResult;
+    function LoadFromString(aString: String): HResult;
+    function Get_Busy: Boolean;
+    procedure SetShowDetails(vIn: Boolean);
+    Function GetBackup: Boolean;
+    function CreateBackUp: Boolean;
+    procedure SetDocumentHTML(NewHTML: String);
+    procedure EDOnDownloadComplete(Sender: TObject);
+    procedure HookEvents;
+    function GetActualAppName: string;
+    procedure SetActualAppName(const Value: string);
+    procedure SetBrowseMode(const Value: WordBool);
+    function GetBrowseMode: WordBool;
+    procedure SetDirty(_dirty: boolean);
+    function GetDirty: boolean;
+    function GetDocTitle: String;
+    procedure SetDocTitle(NewTitle: string);
+    function GetDOC: IHTMLDocument2;
+    function GetCmdTarget: IOleCommandTarget;
+    function GetPersistStream: IPersistStreamInit;
+    function GetPersistFile: IPersistFile;
+    procedure SetLiveResize(const Value: Boolean);
+    procedure Set2DPosition(const Value: Boolean);
+    function GetBaseElement(var aBaseElement: IHTMLBaseElement): boolean;
+    function GetActualElement: IHTMLElement;
+    function GetActualTxtRange: IHTMLTxtRange;
+    function GetActualControlRange: IHTMLControlRange;
+    function GetSelLength: Integer;
+    Procedure GetSelStartElement;
+    Procedure GetSelEndElement;
+    function GetElementNr(ElementNumber: Integer): IHTMLElement;
+    function _GetNextItem(const aTag: String = ''): IHTMLElement;
+    procedure EDBeforePrint(Sender: TObject; const pEvtObj: IHTMLEventObj);
+    procedure EDAfterPrint(Sender: TObject; const pEvtObj: IHTMLEventObj);
+    procedure EDOnUnloadDoc(Sender: TObject; const pEvtObj: IHTMLEventObj);
+    procedure EDOnDocBlur(Sender: TObject; const pEvtObj: IHTMLEventObj);
+    procedure EDBeforeDragStart(Sender: TObject; const pEvtObj: IHTMLEventObj);
+    function GetLastError: string;
+    function KSTEst(var pInVar, pOutVar: OleVariant): HResult;
+    function Get_AbsoluteDropMode: Boolean;
+    function Get_Scrollbars: WordBool;
+    function Get_ShowBorders: WordBool;
+    procedure Set_AbsoluteDropMode(const Value: Boolean);
+    procedure Set_Appearance(const Value: TDHTMLEDITAPPEARANCE);
+    function GetAppearance(aType: TUserInterfaceOption): TDHTMLEDITAPPEARANCE;
+    function Get_Appearance: TDHTMLEDITAPPEARANCE;
+    procedure Set_ScrollbarAppearance(const Value: TDHTMLEDITAPPEARANCE);
+    function Get_ScrollbarAppearance: TDHTMLEDITAPPEARANCE;
+    procedure Set_Scrollbars(const Value: WordBool);
+    procedure Set_ShowBorders(const Value: WordBool);
+    function Get_UseDivOnCarriageReturn: WordBool;
+    procedure Set_UseDivOnCarriageReturn(const Value: WordBool);
+    procedure FContextMenuClicked(Sender: TObject);
+    procedure SetGridX(const Value: integer);
+    procedure SetGridY(const Value: integer);
+    procedure SetSnapEnabled(const Value: Boolean);
+    procedure SetUserInterfaceValue;
+    procedure Accept(const URL:String;var Accept:Boolean);
+    procedure Set_LocalUndo(const Value: WordBool);
+    function GetPrintFileName: String;
+    function ISEmptyParam(value: Olevariant): Boolean;
+  protected
+    KeyPressTime : FILETIME; //kt
+    FEditMode: Boolean;
+    FmsHTMLwinPtr: Pointer; //saved pointer to a subclassed MSHTML window
+    FmsHTMLwinHandle: Hwnd; //kt moved here from private section.
+    FMainWinHandle: Hwnd; //the "Shell Embedding" window
+    FScrollTop: Integer;  //saved WYSIWYG scroll position
+    FBeforeCloseFile: TNotifyEventEx2;
+    FCurBackFile: String;
+    FCaret: IHTMLCaret;  //kt moved from Private --> protected section
+    FTMGDisplayPointer: IDisplayPointer; //kt
+    // IPropertyNotifySink
+    function OnChanged(dispid: TDispID): HResult; override; stdcall;
+    function OnRequestEdit(dispid: TDispID): HResult; override; stdcall;
+    // IPropertyNotifySink END
+    procedure SubMessageHandler(var Message: TMessage); Virtual;
+    function SubFocusHandler(fGotFocus: BOOL): HResult; virtual; //kt
+    procedure EDMessageHandler(var Message: TMessage);
+    procedure OpenPointers; //kt added
+    procedure DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant; var HandlingComplete: Boolean); virtual;
+    function _DoSaveFile: HResult; Virtual;
+    function DoSaveFile: HResult;
+    function DoSaveFileAs(aFile: String): HResult; Virtual;
+    procedure AfterFileSaved; Virtual;
+    procedure loaded; override;
+    procedure Set_Generator(const Value: String); Virtual;
+    procedure _UpdateUI; //back door for derived component
+    function GetDocumentHTML: string;
+    function ComponentInDesignMode: Boolean; Virtual;
+    function EndCurrentDocDialog(var mr: Integer; CancelPosible: Boolean = False; SkipDirtyCheck: Boolean = False): HResult;
+    function DocIsPersist: boolean;
+    function _LoadFile(aFileName: String): HResult; Virtual;
+    function _CurDir: string;
+    function _CurFileName: string;
+    procedure NotImplemented(S: String);
+    procedure _GetBuildInStyles;
+    procedure EditInitialize;
+    function GetSelStartEnd(Var SelStart, SelEnd: Integer): boolean;
+    function SetSelStartEnd(SelStart, SelEnd: Integer): boolean;
+  public
+    property Onmouseover: TNotifyEvent read FOnmouseover write FOnmouseover;
+    property OnReadystatechange: TNotifyEvent read FOnReadystatechange write FOnReadystatechange;
+    {$IFDEF EDOCX}
+        property AXCtrl: Pointer read FAXCtrl write FAXCtrl;
+    {$ENDIF}
+    // the folowing is for internal use (but need to be public),
+    constructor Create(Owner: TComponent); override;
+    destructor Destroy; override;
+    procedure ShowHighlight(pIRange: IHTMLTxtRange = nil);
+    procedure HideHighlight;
+    function GetInPlaceActiveObject: IOleInPlaceActiveObject;
+    function DocumentIsAssigned: Boolean;
+    procedure ShowCaret;
+    procedure _CheckGenerator(MainCheck: Boolean = true); Virtual;
+    procedure GetBaseTag(var BaseTagInDoc: Boolean; var BaseUrl: String);
+    property Debug: Boolean read FDebug;
+    property EDReadyState: Integer read FReadyState write FReadyState;
+    property CurrentDocumentPath: string read FCurrentDocumentPath;
+    property ExternalStyles: String read FExternalStyles write FExternalStyles;
+    property Styles: TStringlist read FStyles;
+    property MSHTMLDropTarget: IDropTarget read FMSHTMLDropTarget write FMSHTMLDropTarget;
+    property LocalUndo: WordBool read FLocalUndo write FLocalUndo;
+    property CmdTarget: IOleCommandTarget read GetCmdTarget;
+    property PersistStream: IPersistStreamInit read GetPersistStream;
+    property ScrollTop: Integer write FScrollTop;
+    property PrintFinished: Boolean read FPrintFinished write FPrintFinished;
+    property PersistFile: IPersistFile read GetPersistFile;
+    property HTMLImage: String read FHTMLImage;
+    function EndUndoBlock(aResult: HResult): HResult;
+    function ClearUndoStack: HResult;
+    procedure WaitAsync;
+    function GetGenerator: string; virtual;
+    function CmdSet(cmdID: CMDID; var pInVar: OleVariant): HResult; overload; virtual;
+    //VCL versions that isn't exposed by the OCX
+    function DoCommand(cmdID: CMDID): HResult; overload;
+    function DoCommand(cmdID: CMDID; cmdexecopt: OLECMDEXECOPT): HResult; overload;
+    function DoCommand(cmdID: CMDID; cmdexecopt: OLECMDEXECOPT; var pInVar: OleVariant): HResult; overload;
+    function DoCommand(cmdID: CMDID; cmdexecopt: OLECMDEXECOPT; var pInVar, pOutVar: OleVariant): HResult; overload;
+    function CmdSet(cmdID: CMDID): HResult;  overload; virtual;
+    function CmdGet(cmdID: CMDID): OleVariant; overload;
+    function GetSaveFileName(var aFile: string): HResult;
+    function SaveFile: HResult; virtual;
+    function SaveFileAs(aFile: string = ''): HResult; virtual;
+    property CurDir: string read _CurDir;
+    property CurFileName: string read _CurFileName;
+    function WaitForDocComplete: Boolean;
+    property DocumentTitle: string read GetDocTitle Write SetDocTitle;
+    procedure ScrollDoc(Pos: Integer);
+    procedure SetFocusToDoc;
+    function GetMSHTMLwinHandle: Hwnd;
+    Function CaretIsVisible: Boolean;
+    procedure SetMouseElement(P: Tpoint; aWinHandle: Hwnd = 0);
+    procedure MakeSelElementVisible(Show: boolean);
+    Function RemoveElementID(const TagID: String): Boolean;
+    Procedure SetDebug(value: Boolean);
+    property CreateBakUp: Boolean read FCreateBakUp write FCreateBakUp;
+    property LastError: string read GetLastError;
+    property SkipDirtyCheck: Boolean read FSkipDirtyCheck write FSkipDirtyCheck;
+    //Old DHTMLEdit stuff
+    function ExecCommand(cmdID: CMDID; cmdexecopt: OLECMDEXECOPT; var pInVar: OleVariant): OleVariant;
+    procedure SetContextMenu(var menuStrings: OleVariant; var menuStates: OleVariant);
+    procedure LoadDocument(var pathIn: OleVariant; var promptUser: OleVariant);
+    procedure SaveDocument(var pathIn: OleVariant; var promptUser: OleVariant);
+    property ShowBorders: WordBool read Get_ShowBorders write Set_ShowBorders;
+    property ActualTextRange: IHTMLTxtRange read  FActualTxtRange;
+    //this is the general interface
+    function NewDocument: HResult; virtual;
+    procedure AssignDocument;
+    procedure LoadURL(url: String);
+    function Go(Url: String): HResult;
+    function LoadFile(var aFileName: String; PromptUser: Boolean): HResult; overload; virtual;
+    function LoadFile(var aFileName: String): HResult; overload; virtual;
+    function EndCurrentDoc(CancelPosible: Boolean = False; SkipDirtyCheck: Boolean = False): HResult; virtual;
+    Function GetPersistedFile: String;
+    property IsDirty: Boolean read GetDirty write SetDirty;
+    property DOC: IHTMLDocument2 read GetDOC;
+    property DOM: IHTMLDocument2 read GetDOC;   //just to enable old coding style
+    function CmdGet(cmdID: CMDID; pInVar: OleVariant): OleVariant; overload;
+    function CmdSet_B(cmdID: CMDID; pIn: Boolean): HResult; overload; virtual;
+    function CmdSet_S(cmdID: CMDID; pIn: String): HResult; overload; virtual;
+    function CmdSet_I(cmdID: CMDID; pIn: Integer): HResult; overload; virtual;
+    function QueryStatus(cmdID: CMDID): OLECMDF; virtual;
+    function QueryEnabled(cmdID: CMDID): Boolean; virtual;
+    function QueryLatched(cmdID: CMDID): Boolean;
+    function BeginUndoUnit(aTitle: String = 'Default'): HResult;
+    function EndUndoUnit: HResult;
+    procedure Refresh;
+    property DocumentHTML: String read GetDocumentHTML write SetDocumentHTML;
+    property Busy: Boolean read Get_Busy;
+    function GetStyles: String;
+    function GetBuildInStyles: String;
+    function GetExternalStyles: String;
+    function SetStyle(aStyleName: string): HResult; safecall;
+    function GetStylesIndex: Integer; overload; safecall;
+    function GetStylesIndex(aList: String): Integer; overload; safecall;
+    function GetFonts: String;
+    function GetFontSizeIndex(const aList: String; var Changed: String): Integer; safecall;
+    function GetFontNameIndex(aList: String): Integer; safecall;
+    function GetCurrentFontName: string;
+    function SelectedDocumentHTML(var SelStart, SelEnd: Integer): String;
+    procedure SyncDOC(HTML: string; SelStart, SelEnd: Integer);
+    function Print(value: TPrintSetup; Showdlg: boolean = false): Boolean;
+    function PrintEx(value: Olevariant; Showdlg: boolean): HResult; overload;
+    function PrintPreview(value: Olevariant): HResult; overload;
+    function PrintPreview(value: TPrintSetup): Boolean; overload;
+    procedure PrintDocument(var withUI: OleVariant);
+    property ActualAppName: string read GetActualAppName write SetActualAppName;
+    property ActualTxtRange: IHTMLTxtRange read GetActualTxtRange;
+    property ActualControlRange: IHTMLControlRange read GetActualControlRange;
+    property ActualElement: IHTMLElement read GetActualElement;
+    property ActualRangeIsText: Boolean read FActualRangeIsText;
+    function IsSelElementLocked: boolean;
+    Function GetFirstSelElement(const aTag: String = ''): IHTMLElement;
+    Function GetNextSelElement(const aTag: String = ''): IHTMLElement;
+    procedure GetSelParentElement;
+    function GetSelParentElementType(const aType: string; aMessage: string = ''): IHTMLElement;
+    Function IsSelType(aType: string): boolean;
+    Function IsSelElementID(const ID: String): Boolean;
+    Function IsSelElementClassName(const ClassName: String): Boolean;
+    Function IsSelElementTagName(const TagName: String): Boolean;
+    Function IsSelElementInVisible: Boolean;
+    function IsSelElementAbsolute: boolean;
+    Function GetSelText: String;
+    procedure TrimSelection;
+    procedure SelectActualTextrange;
+    procedure SelectElement(aElement: IhtmlElement);
+    function SetCursorAtElement(aElement: IhtmlElement; ADJACENCY:_ELEMENT_ADJACENCY): Boolean;
+    procedure CollapseActualTextrange(Start: boolean);
+    procedure KeepSelectionVisible;
+    procedure GetElementUnderCaret;// Refresh Selection
+    function MovePointersToRange(const aRange: IHTMLTxtRange): HResult;
+    function MovePointersToSel: HResult;
+    function CreateElement(const tagID: _ELEMENT_TAG_ID; var NewElement: IHTMLElement; const aTxtRange: IHTMLTxtRange = nil; const Attributes: string = ''): HResult;
+    function InsertElementAtCursor(var aElement: IHTMLElement; const aTxtRange: IHTMLTxtRange = nil): HResult;
+    function MoveTextRangeToPointer(aTxtRange: IHTMLTxtRange = nil): IHTMLTxtRange ;
+    function CreateMetaTag(var aMetaElement: IHTMLMetaElement): HResult;
+    property SelNumberOfElements: Integer read GetSelLength;
+    property Selection: Boolean read FSelection;
+  published
+    // EditDesigner
+    property OnPreHandleEvent: TEditDesignerEvent read FPreHandleEvent write FPreHandleEvent;
+    property OnPostHandleEvent: TEditDesignerEvent read FPostHandleEvent write FPostHandleEvent;
+    property OnPostEditorEventNotify: TEditDesignerEvent read FPostEditorEventNotify write FPostEditorEventNotify;
+    property OnTranslateAccelerator: TEditDesignerEvent read FEDTranslateAccelerator write FEDTranslateAccelerator;
+    property OnKeyDown: TNotifyEventEx8 read FOnKeyDown write FOnKeyDown;
+    property OnKeyPress: TKeyPressEvent read FOnKeyPress write FOnKeyPress;
+    property OnKeyUp: TNotifyEventEx8 read FOnKeyUp write FOnKeyUp;
+    property OnClick: TNotifyEvent read FOnClick write FOnClick;
+    property OnDblClick: TNotifyEvent read FOnDblClick write FOnDblClick;
+    property OnMouseDown: TMouseEventEx read FOnMouseDown write FOnMouseDown;
+    property OnMouseMove: TMouseEventEx read FOnMouseMove write FOnMouseMove;
+    property OnMouseUp: TMouseEventEx read FOnMouseUp write FOnMouseUp;
+    property Onmouseout: TNotifyEvent read FOnmouseout write FOnmouseout;
+    property LocalUndoManager: WordBool read FLocalUndo write Set_LocalUndo;
+    property Generator: String read GetGenerator write Set_Generator;
+    //grid stuff
+    property SnapToGridX: Integer read FGridX write SetGridX default 50;
+    property SnapToGridY: Integer read FGridY write SetGridY default 50;
+    property SnapToGrid: Boolean read FSnapEnabled write SetSnapEnabled Default true;
+    //ktproperty OnSnapRect: TSnapRect read FExtSnapRect write FExtSnapRect;
+    property BrowseMode: WordBool read GetBrowseMode write SetBrowseMode;
+    property ShowDetails: boolean read FShowDetails write SetShowDetails;
+    property UseDivOnCarriageReturn: WordBool read Get_UseDivOnCarriageReturn write Set_UseDivOnCarriageReturn;
+    property OnContextMenuAction: TDHTMLEditContextMenuAction read FOnContextMenuAction write FOnContextMenuAction;
+    property OnDisplayChanged: TNotifyEvent read FOnDisplayChanged write FOnDisplayChanged;
+    // IDOCHOSTUIHANDLER
+    property OnShowContextMenu: TShowContextMenuEvent read FOnShowContextmenu write FOnShowContextmenu;
+    property OnShowContextMenuEx: TShowContextMenuEventEx read FOnShowContextmenuEx write FOnShowContextmenuEx;
+    property OnQueryService: TQueryServiceEvent read FOnQueryService write FOnQueryService;
+    property OnPreDrag: TNotifyEventEx read FOnPreDrag write FOnPreDrag;
+    property OnTranslateURL: TTranslateURLEvent read FOnTranslateURL write FOnTranslateURL;
+    property OnBeforeCloseFile: TNotifyEventEx2 read FBeforeCloseFile write FBeforeCloseFile;
+    property OnBeforeSaveFile: TNotifyEvent read FBeforeSaveFile write FBeforeSaveFile;
+    property OnAfterSaveFile: TNotifyEvent read FAfterSaveFile write FAfterSaveFile;
+    property OnAfterSaveFileAs: TNotifyEvent read FAfterSaveFileAs write FAfterSaveFileAs;
+    property OnAfterLoadFile: TNotifyEventEx2 read FAfterLoadFile write FAfterLoadFile;
+    property OnEDMessageHandler: TMessageEvent read FEDMessageHandler write FEDMessageHandler;
+    property OnMessageHandler: TMessageEventEx read FMessageHandler write FMessageHandler;
+    property OnBlur: TNotifyEvent read FOnBlur write FOnBlur;
+    Property OnInitialize: TNotifyEventEx4 read FOnInitialize write FOnInitialize;
+    property OnBeforePrint: TNotifyEventEx read FonBeforePrint write FonBeforePrint;
+    property OnAfterPrint: TNotifyEventEx read FonAfterPrint write FonAfterPrint;
+    property OnUnloadDoc: TNotifyEventEx read FOnUnloadDoc write FOnUnloadDoc;
+    property OnRefreshBegin: TRefreshEvent read FOnRefreshBegin write FOnRefreshBegin;
+    property OnRefreshEnd: TNotifyEvent read FOnRefreshEnd write FOnRefreshEnd;
+    property OnDocumentComplete: TNotifyEvent read FOnDocumentComplete write FOnDocumentComplete;
+    property Appearance: TDHTMLEDITAPPEARANCE read Get_Appearance write Set_Appearance;
+    property BaseURL: String read GetBaseURL write SetBaseURL;
+    property Scrollbars: WordBool read Get_Scrollbars write Set_Scrollbars default true;
+    property ScrollbarAppearance: TDHTMLEDITAPPEARANCE read Get_ScrollbarAppearance write Set_ScrollbarAppearance;
+    property AbsoluteDropMode: Boolean read Get_AbsoluteDropMode write Set_AbsoluteDropMode;
+    property _2DPosition: Boolean read F2DPosition write Set2DPosition;
+    property LiveResize: Boolean read FLiveResize write SetLiveResize;
+    //the editor will try to load a file from paramstr(1) - has no meaning inside a OCX 
+    property ParamLoad: Boolean read FParamLoad write FParamLoad;
+  end;
+
+
+threadVar
+  TheActualAppName: String;
+
+
+procedure Register;
+
+implementation
+
+uses SysUtils, dialogs, FileCtrl, ComObj,
+     {$IFDEF EDUNDO} UUndo, {$ENDIF}
+     {$IFDEF EDTABLE} EmbedEDTable, {$ENDIF}
+     {$IFDEF EDMONIKER} KS_EDMoniker, {$ENDIF}
+     {$IFDEF EDGLYPHS} CustomGlyphs, {$ENDIF}
+     {$IFDEF EDLIB} EDLIB, {$ENDIF}
+     {$IFDEF EDPARSER} KSIEParser, {$ENDIF}
+     {$IFDEF EDDRAGDROP} dragdrop, {$ENDIF}
+     {$IFDEF EDZINDEX} UZindex, {$ENDIF}
+     math, //kt
+     {$IFDEF EDDESIGNER} UEditDesigner, {$ENDIF}
+
+     UEditHost, KS_Procs, KS_Procs2, IEDispConst, RegFuncs;
+
+const
+  DLCTL_DLIMAGES                    =      $00000010;
+  DLCTL_VIDEOS                      =      $00000020;
+  DLCTL_BGSOUNDS                    =      $00000040;
+  DLCTL_PRAGMA_NO_CACHE             =      $00004000;
+
+  CancelPosible: Boolean = true;
+
+//------------------------------------------------------------------------------
+procedure Register;
+begin
+  RegisterComponents('KS', [TEmbeddedED]);
+end;
+//------------------------------------------------------------------------------
+constructor TEmbeddedED.Create(Owner: TComponent);
+begin
+  //asm int 3 end; //trap
+
+  inherited Create(Owner);
+
+  FContextMenu := TPopupMenu.Create(nil);
+
+  FStyles := TStringList.Create;
+  FStyles.Sorted := true;
+  FStyles.Duplicates := dupIgnore;
+
+  FGridX := 50; //default values on startup
+  FGridY := 50;
+  FSnapEnabled := true;
+
+  FUserInterfaceOptions := [];
+  // default = Border, ScrollBar, 3DScrollBar, NoDivBlockOnReturn
+
+  FGenerator := 'KS MSHTML Edit 1.0'; //set default value
+
+  {$IFDEF DEBUG}
+     FDEbug := True;
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+destructor TEmbeddedED.Destroy;
+var
+  CP: ICOnnectionPoint;
+begin
+  //asm int 3 end; //trap
+
+  FDestroyng := true;
+  UnSubClassMsHTML; //just in case
+  FOleInPlaceActiveObject := nil;
+  
+
+  if (DWEBbrowserEvents2Cookie <> 0) and GetWebBrowserConnectionPoint(CP)
+     then CP.UnAdvise(DWEBbrowserEvents2Cookie);
+
+  FContextMenu.free;
+
+  if assigned(FEditHost)
+     then TObject(FEditHost).free;
+
+  if FEdit <> nil
+     then TObject(FEdit).Free;
+
+  if FTUndo <> nil
+     then TObject(FTUndo).Free;
+
+  if FTZindex <> nil
+     then TObject(FTZindex).Free;
+
+  if FTtable <> nil
+     then TObject(FTtable).Free;
+
+  FStyles.free;
+  FFonts.free;
+
+  inherited Destroy;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.ComponentInDesignMode: Boolean;
+begin
+  //asm int 3 end; //trap
+
+  result := (csDesigning in ComponentState);
+
+  {$IFDEF EDOCX}
+     if Assigned(FAXCtrl)
+        then begin
+           //we are using the component from an OCX
+           try
+              result := not (TActiveXControl(FAXCtrl).ClientSite as IAmbientDispatch).UserMode;
+           except
+              //just catch any error - we are NOT in design mode
+              result := false;
+           end;
+        end;
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.loaded;
+var
+  CP: ICOnnectionPoint;
+begin
+  //asm int 3 end; //trap
+
+  inherited loaded;
+
+  if ComponentInDesignMode
+     then exit;
+
+    { TEmbeddedED's OnDocumentComplete override TWebbrowser's OnDocumentComplete
+    We sink all DWEBbrowserEvents2 - although we only use OnDocumentComplete }
+
+  if GetWebBrowserConnectionPoint(CP)
+     then CP.Advise(self, DWEBbrowserEvents2Cookie) //send events to TEmbeddedED.Invoke
+     else KSMessageE('TWebBrowser''s ICOnnectionPoint could not be found');
+
+  //set standard Download Control Values
+  FDownloadControlValue := DLCTL_BGSOUNDS +        //download sounds
+                           DLCTL_DLIMAGES +        //download images
+                           DLCTL_VIDEOS +          //download videos
+                           DLCTL_PRAGMA_NO_CACHE;  //don't use the cache
+
+  SetUserInterfaceValue;
+
+  //linking in the EditHost
+  FEditHost := TEditHost.Create(self);
+  TEditHost(FEditHost).FSnapEnabled := FSnapEnabled;
+  TEditHost(FEditHost).FGridX := FGridX;
+  TEditHost(FEditHost).FGridY := FGridY;
+  //ktTEditHost(FEditHost).FExtSnapRect := FExtSnapRect;
+  TEditHost(FEditHost).FOnPreDrag := FOnPreDrag;
+
+  {$IFDEF EDDESIGNER}
+     //linking in the EditDesigner
+     FEdit := Pointer(TEditDesigner.Create(self));
+
+     TEditDesigner(FEdit).FPreHandleEvent := FPreHandleEvent;
+     TEditDesigner(FEdit).FPostHandleEvent := FPostHandleEvent;
+     TEditDesigner(FEdit).FPostEditorEventNotify := FPostEditorEventNotify;
+     TEditDesigner(FEdit).FOnDblClick := FOnDblClick;
+     TEditDesigner(FEdit).FOnClick := FOnClick;
+     TEditDesigner(FEdit).FOnKeyPress := FOnKeyPress;
+     TEditDesigner(FEdit).FOnReadystatechange := FOnReadystatechange;
+     TEditDesigner(FEdit).FEDTranslateAccelerator := FEDTranslateAccelerator;
+     TEditDesigner(FEdit).FDebug := FDebug;
+     TEditDesigner(FEdit).FOnMouseMove := FOnMouseMove;
+     TEditDesigner(FEdit).FOnMouseUp := FOnMouseUp;
+     TEditDesigner(FEdit).FOnMouseDown := FOnMouseDown;
+     TEditDesigner(FEdit).FOnKeyUp := FOnKeyUp;
+     TEditDesigner(FEdit).FOnKeyDown := FOnKeyDown;
+     TEditDesigner(FEdit).FOnmouseout := FOnmouseOut;
+     TEditDesigner(FEdit).FOnmouseover := EDOnmouseover;
+  {$ENDIF}
+
+
+  {$IFDEF EDZINDEX}
+     FTZindex := Pointer(TZindex.Create(self));
+  {$ENDIF}
+ 
+  {$IFDEF EDTABLE}
+     FTtable := Pointer(TTable.Create(self));
+  {$ENDIF}
+
+
+  FIEVersion := ReadRegString(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Internet Explorer\', 'Version');
+  if length(FIEVersion) > 0
+     then begin
+        FIE6 := FIEVersion[1] >= '6';
+
+        if (not FIE6)
+           then begin
+              if (FIEVersion[1] < '5') or (FIEVersion[3] < '5')
+                 then KSMessageE('This HTML-editor Component '+CrLf+'need IE 5.5 or higher');
+           end;
+     end;
+
+  FWarmingUp := true;
+  AssignDocument;         //basic initialisation of MSHTML
+  FWarmingUp := false; 
+
+  GetInPlaceActiveObject; //initialise FOleInPlaceActiveObject
+
+  if FShowBorders
+     then CmdSet_B(IDM_SHOWZEROBORDERATDESIGNTIME, true);
+
+  if FEditMode
+     then begin
+        //initialisation of MSHTML edit mode
+
+        {$IFDEF EDLIB}
+           InitializeGenerator(Self);
+        {$ENDIF}
+
+        DOC.designMode := 'On';
+        //CmdSet(IDM_EDITMODE); //Not currently supported - but it works !!
+  end;
+
+  if FAXCtrl = nil   //Only do this in VCL mode, the OCX needs a later initialization
+     then EditInitialize;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.EditInitialize;
+var
+  aFile: String;
+begin
+  //asm int 3 end; //trap
+
+  if ComponentInDesignMode
+     then exit;
+
+  aFile := '';
+
+  //get a file to open at start-up
+  if Assigned(FOnInitialize)
+     then FOnInitialize(Self, aFile); //get a initial file name
+
+  if FParamLoad and (aFile = '')
+     //if no file yet, look for a param - NB will not work inside an OCX
+     then aFile := Paramstr(1);
+
+  if aFile <> ''
+     then begin
+        if S_OK <> LoadFile(aFile)    //load a "command line" / initial file - if any
+           then aFile := '';
+     end;
+
+  if aFile = ''
+     then NewDocument;                //load an empty document
+
+  _GetBuildInStyles;
+
+  FSetInitialFocus := true;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SetUserInterfaceValue;
+begin
+  //asm int 3 end; //trap
+
+  FUserInterfaceValue := 0;
+
+  if NoBorder in FUserInterfaceOptions
+     then Inc(FUserInterfaceValue, DOCHOSTUIFLAG_NO3DBORDER);
+
+  if NoScrollBar in FUserInterfaceOptions
+     then Inc(FUserInterfaceValue, DOCHOSTUIFLAG_SCROLL_NO);
+
+  if FlatScrollBar in FUserInterfaceOptions
+     then Inc(FUserInterfaceValue, DOCHOSTUIFLAG_FLAT_SCROLLBAR);
+
+  if DivBlockOnReturn in FUserInterfaceOptions
+     then Inc(FUserInterfaceValue, DOCHOSTUIFLAG_DIV_BLOCKDEFAULT);
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SubClassMsHTML;
+begin
+  //asm int 3 end; //trap
+
+  { We hook into the message chain in front of the MSHTML window
+    after the hook is in place all massages send to MSHTML will be passed
+    to EDMessageHandler first }
+
+  if (GetInPlaceActiveObject <> nil) and
+     (FmsHTMLwinHandle <> 0)
+     then begin
+        if EDMessageHandlerPtr <> nil
+           then UnSubClassMsHTML;
+
+        //create handle to EDMessageHandler
+        EDMessageHandlerPtr := MakeObjectInstance(EDMessageHandler);
+
+        //save pointer to the FmsHTMLwinHandle window
+        FmsHTMLwinPtr := Pointer(SetWindowLong(FmsHTMLwinHandle, GWL_WNDPROC, LongInt(EDMessageHandlerPtr)));
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.UnSubClassMsHTML;
+begin
+  //asm int 3 end; //trap
+
+  if (GetInPlaceActiveObject <> nil) and
+     (FmsHTMLwinHandle <> 0) and
+     (EDMessageHandlerPtr <> nil)
+     then begin
+        //restore old MSHTML window as target
+        SetWindowLong(FmsHTMLwinHandle, GWL_WNDPROC, LongInt(FmsHTMLwinPtr));
+
+        FreeObjectInstance(EDMessageHandlerPtr);
+        EDMessageHandlerPtr := nil;
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SubMessageHandler(var Message: TMessage);
+begin
+  //overridden by derived components
+end;
+
+function TEmbeddedED.SubFocusHandler(fGotFocus: BOOL): HResult; 
+//kt added
+begin
+  //overridden by derived components
+end;
+
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.EDMessageHandler(var Message: TMessage);
+var
+  WinMsg: TMsg;
+  handled: boolean;
+  transformed: boolean;
+
+  //----------------------------------------------------------
+  function HandlingDone(handled: Boolean): boolean;
+  begin
+     if handled
+        then Message.Result := 1;
+
+     result := handled;
+  end;
+  //----------------------------------------------------------
+  procedure transformMessage;
+  begin
+     if transformed
+        then exit;
+
+     WinMsg.HWnd := Handle;
+     WinMsg.Message := Message.Msg ;
+     WinMsg.WParam := Message.WParam;
+     WinMsg.LParam := Message.LParam;
+
+     WinMsg.Time := GetMessageTime;
+     GetCursorPos(WinMsg.Pt);
+     transformed := true;
+  end;
+  //----------------------------------------------------------
+begin
+  //asm int 3 end; //trap
+
+  {when key messages arrives heir from a
+     VCL implementation hey they are offset with CN_BASE but can come by
+     a second time with no CN_BASE offset.
+     OCX implementation they are not offset }
+
+  { all messages to MSHTML comes through here - KEEP IT LEAN.
+    if Handled is not set to true then the message is dispatched back to MSHTML. }
+  
+  transformed := false;
+  Handled := false;
+
+  if assigned(FMessageHandler)  //external assigned message handler
+     then begin
+        FMessageHandler(Self, Message.Msg, Message.WParam, Message.LParam, Message.Result);
+        if Message.Result = 1
+           then exit;
+     end;
+
+  if assigned(FEDMessageHandler)  //external assigned message handler
+     then begin
+        transformMessage;
+
+        FEDMessageHandler(WinMsg, handled);
+        if HandlingDone(handled)
+           then exit;
+     end;
+
+
+  {$IFDEF EDTABLE}
+     //let the "table unit" have a look at the message
+     if assigned(FTtable) and (Not FDestroyng) and
+        (TTable(FTtable).CheckMessage(Message))
+        then exit;
+   {$ENDIF}
+
+
+  {$IFDEF EDZINDEX}
+     //let the "UZindex unit" have a look at the message
+     if assigned(FTZindex) and (Not FDestroyng) and
+        (TZindex(FTZindex).CheckMessage(Message))
+        then exit;
+   {$ENDIF}
+
+  SubMessageHandler(Message);
+  if Message.Result = 1
+     then exit;
+
+
+  //send the message back to the subclassed MSHTML window
+  Message.Result := CallWindowProc(FmsHTMLwinPtr, FmsHTMLwinHandle, Message.Msg, Message.WParam, Message.LParam);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetWebBrowserConnectionPoint(var CP: ICOnnectionPoint): boolean;
+var
+  CPC: IConnectionPointContainer;
+begin
+  //asm int 3 end; //trap
+
+  TwebBrowser(Self).ControlInterface.QueryInterface(IConnectionPointContainer, CPC);
+  if assigned(CPC)
+     then CPC.FindConnectionPoint(DWEBbrowserEvents2, CP);
+
+  result := Assigned(CP);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+           Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+var
+  dps: TDispParams absolute Params;
+  pDispIds: PDispIdList;
+  iDispIdsSize: integer;
+  handled: Boolean;
+
+  //-------------------------------------------
+   procedure BuildPositionalDispIds;
+   var
+     i: integer;
+   begin
+     pDispIds := nil;
+     iDispIdsSize := dps.cArgs * SizeOf(TDispId);
+     GetMem(pDispIds, iDispIdsSize);
+
+     // by default, directly arrange in reverse order
+     for i := 0 to dps.cArgs - 1 do
+       pDispIds^[i] := dps.cArgs - 1 - i;
+
+     if (dps.cNamedArgs > 0) // check for named args
+        then begin
+           // parse named args
+           for i := 0 to dps.cNamedArgs - 1 do
+              pDispIds^[dps.rgdispidNamedArgs^[i]] := i;
+        end;
+   end;
+  //-------------------------------------------
+begin
+  //asm int 3 end; //trap
+  Result := S_OK;
+
+  case Dispid of
+     DISPID_AMBIENT_DLCONTROL:
+        if (Flags and DISPATCH_PROPERTYGET <> 0) and (VarResult <> nil)
+           then begin
+              PVariant(VarResult)^ := FDownloadControlValue;
+              Exit;
+           end;
+
+     259: //DWebBrowserEvents2.OnDocumentComplete
+        if dps.cArgs > 0
+           then begin
+              BuildPositionalDispIds;
+              //call the our DocumentComplete event handler
+              DocumentComplete(self,                           //Sender: TObject
+              IDispatch(dps.rgvarg^[pDispIds^[0]].dispval),      //pDisp: IDispatch
+              POleVariant(dps.rgvarg^[pDispIds^[1]].pvarval)^,  //URL: OleVariant
+              handled);
+              FreeMem (pDispIds, iDispIdsSize);
+              Exit;
+            end;
+
+     104 : //DWebBrowserEvents2.DownloadComplete
+        begin
+           EDOnDownloadComplete(Self);
+           Exit;
+        end;
+
+     DISPID_HTMLWINDOWEVENTS2_ONBLUR:
+        if dps.cArgs > 0
+           then begin
+              BuildPositionalDispIds;
+              EDOnDocBlur(self,                                  //Sender: TObject
+                          IHTMLEventObj(dps.rgvarg^[pDispIds^[0]].dispval)); //pEvtObj: IHTMLEventObj
+              FreeMem (pDispIds, iDispIdsSize);
+              Exit;
+           end;
+
+     DISPID_HTMLWINDOWEVENTS2_ONUNLOAD:
+        if dps.cArgs > 0
+           then begin
+              BuildPositionalDispIds;
+              EDOnUnloadDoc(self,                                //Sender: TObject
+                            IHTMLEventObj(dps.rgvarg^[pDispIds^[0]].dispval)); //pEvtObj: IHTMLEventObj
+              FreeMem (pDispIds, iDispIdsSize);
+              Exit;;
+           end;
+
+     DISPID_HTMLWINDOWEVENTS2_ONAFTERPRINT:
+        if dps.cArgs > 0
+           then begin
+              BuildPositionalDispIds;
+              EDAfterPrint(self,                                 //Sender: TObject
+                           IHTMLEventObj(dps.rgvarg^[pDispIds^[0]].dispval)); //pEvtObj: IHTMLEventObj
+              FreeMem (pDispIds, iDispIdsSize);
+              Exit;
+           end;
+
+     DISPID_HTMLWINDOWEVENTS2_ONBEFOREPRINT:
+        if dps.cArgs > 0
+           then begin
+              BuildPositionalDispIds;
+              EDBeforePrint(self,                                //Sender: TObject
+                            IHTMLEventObj(dps.rgvarg^[pDispIds^[0]].dispval)); //pEvtObj: IHTMLEventObj
+              FreeMem (pDispIds, iDispIdsSize);
+              Exit;
+           end;
+
+     DISPID_HTMLDOCUMENTEVENTS2_ONDRAGSTART:
+        if dps.cArgs > 0
+           then begin
+              BuildPositionalDispIds;
+              EDBeforeDragStart(self,                            //Sender: TObject
+                                IHTMLEventObj(dps.rgvarg^[pDispIds^[0]].dispval)); //pEvtObj: IHTMLEventObj
+              FreeMem (pDispIds, iDispIdsSize);
+              Exit;
+           end;
+
+
+     DISPID_HTMLELEMENTEVENTS2_ONMOVESTART:
+        Beep;
+
+     (*
+     //return S_OK for unhandled members of HTMLWindowEvents2
+     1002, 1003, 1014, 1016, 1017, -2147418102, -2147418111: exit;
+
+     //return S_OK for unhandled members of DWebBrowserEvents2
+     102, 105, 106, 108, 112, 113, 250, 251, 252, 253, 254, 255, 256,
+     257, 258, 260, 262, 236, 234, 265, 266, 267, 268, 269, 270 : exit;
+     *)
+  end; //case
+
+  //let TOleControl handle the invoke
+  Result := inherited Invoke(DispID, IID, LocaleID, Flags, Params, VarResult, ExcepInfo, ArgErr);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetTypeInfoCount(out Count: Integer): HResult;
+begin
+  //asm int 3 end; //trap
+  Result := inherited GetTypeInfoCount(Count);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetTypeInfo(Index, LocaleID: Integer; out TypeInfo): HResult;
+begin
+  //asm int 3 end; //trap
+  Result := inherited GetTypeInfo(Index, LocaleID, TypeInfo);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetIDsOfNames(const IID: TGUID; Names: Pointer; NameCount, LocaleID: Integer; DispIDs: Pointer): HResult;
+begin
+  //asm int 3 end; //trap
+  Result := inherited GetIDsOfNames(IID, Names, NameCount, LocaleID, DispIDs);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.OnChanged(dispid: TDispID): HResult;
+var
+  dp: TDispParams;
+  vResult: OleVariant;
+begin
+  //asm int 3 end; //trap
+
+  { Dispid = Dispatch identifier of the property that changed,
+    or DISPID_UNKNOWN if multiple properties have changed. }
+  if (TwebBrowser(Self).Document <> nil) and (DISPID_READYSTATE = Dispid)
+     then begin
+        if SUCCEEDED(Doc.Invoke(DISPID_READYSTATE, GUID_null,
+                     LOCALE_SYSTEM_DEFAULT, DISPATCH_PROPERTYGET,
+                     dp, @vresult, nil, nil))
+        then FReadyState := Integer(vresult);
+     end;
+
+  result := inherited OnChanged(dispid);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.OnRequestEdit(dispid: TDispID): HResult;
+begin
+  //asm int 3 end; //trap
+  result := inherited OnRequestEdit(dispid);
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.EDBeforeDragStart(Sender: TObject; const pEvtObj: IHTMLEventObj);
+var
+  Done: Boolean;
+begin
+  //asm int 3 end; //trap
+
+  beep;
+
+  if assigned(FonBeforePrint)
+     then begin
+        Done := false;
+        beep;
+        //FonBeforePrint(self, Done);
+        if Done
+           then pEvtObj.returnValue := True;
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.EDBeforePrint(Sender: TObject; const pEvtObj: IHTMLEventObj);
+var
+  Done: Boolean;
+begin
+  //asm int 3 end; //trap
+
+  if assigned(FonBeforePrint)
+     then begin
+        Done := false;
+        FonBeforePrint(self, Done);
+        if Done
+           then pEvtObj.returnValue := True;
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.EDAfterPrint(Sender: TObject; const pEvtObj: IHTMLEventObj);
+  { MSHTML stores a copy of the HTML source in a cache from where it is printed.
+
+    EDAfterPrint is fired when MSHTML has finished saving the document,
+    at the state it vas in, into cache }
+var
+  Done: Boolean;
+begin
+  //asm int 3 end; //trap
+  FPrintFinished := true;
+
+  if assigned(FonAfterPrint)
+     then begin
+        Done := false;
+        FonAfterPrint(self, Done);
+        if Done
+           then pEvtObj.returnValue := True;
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.EDOnUnloadDoc(Sender: TObject; const pEvtObj: IHTMLEventObj);
+var
+  Done: Boolean;
+begin
+  //asm int 3 end; //trap
+
+  FStylesRefreshed := False; //we need to load a fresh set together with the next document
+
+  if assigned(FOnUnloadDoc)
+     then begin
+        Done := false;
+        FOnUnloadDoc(self, Done);
+        if Done
+           then pEvtObj.returnValue := True;
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.EDOnDocBlur(Sender: TObject; const pEvtObj: IHTMLEventObj);
+begin
+  //asm int 3 end; //trap
+
+  if FWarmingUp
+     then exit;
+
+  {$IFDEF EDLIB}
+     KeepSelection(Self);
+  {$ENDIF}
+
+  {$IFDEF EDTABLE}
+     if assigned(FTtable) and (Not FDestroyng)
+        then TTable(FTtable).TblOnBlur;
+  {$ENDIF}
+
+  if Assigned(FOnBlur)
+     then FOnBlur(Self);
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.EDOnDownloadComplete(Sender: TObject);
+var
+  aURL: OleVariant;
+  handled: Boolean;
+begin
+  //asm int 3 end; //trap
+
+  if FRefreshing
+     //Refresh page and some other things don't result in a Document complete
+     then begin
+        FRefreshing := False;
+
+        aURL := Doc.URL;
+        DocumentComplete(Self, nil, aURL, handled);
+
+        If Assigned(FOnRefreshEnd)
+           then FOnRefreshEnd(Self);
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.WaitAsync;
+begin
+  //asm int 3 end; //trap
+  
+  FWaitMessage := false;
+
+  PostMessage(FMainWinHandle, WaitAsync_MESSAGE, 0, 0);
+
+  while not FWaitMessage do
+     SafeYield;
+end;
+//------------------------------------------------------------------------------
+Procedure TEmbeddedED.GetSourceSnapShot;
+{$IFNDEF EDLIB}
+  var
+     TempStream: TMemoryStream;
+{$ENDIF}
+begin
+  //asm int 3 end; //trap
+
+  {$IFNDEF EDLIB}
+     { First we need to force MSHTML to tidy up the source the way it wants.
+       MSHTML inserts and updates certain elements in the <HEAD> when it saves
+       the file }
+
+     TempStream := TMemoryStream.Create;
+     try
+        //just a dummy save
+        PersistStream.save(TStreamAdapter.Create(TempStream), true);
+     finally
+        TempStream.free;
+     end;
+  {$ENDIF}
+
+  FHTMLImage := KS_Lib.GetHTMLtext(DOC); //Get Snapshot of HTML Source
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.ShowCaret;
+begin
+  //asm int 3 end; //trap
+  FCaret.Show(0);
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.GetBaseTag(var BaseTagInDoc: Boolean; var BaseUrl: String);
+var
+  aElement: IHTMLElement;
+  aCollection: IHTMLElementCollection;
+  aDomNode, HTMLF, HTMLP: IHTMLDomNode;
+  i: integer;
+  DOC3: IHTMLDocument3;
+  S: String;
+  I2: Integer;
+  DESIGNTIMEBASEURLfound: Boolean;
+begin
+  //asm int 3 end; //trap
+  { if the source have a <BASE...> tag without a </BASE> tag, IE renders
+    the source wrongly and we must correct it.
+
+    If <BASE> is followed by other tags in the <HEAD> these may end up as
+    children of <BASE> rather than children of <HEAD>
+
+    The problem does not appear if the <BASE...> tag is followed by </BASE>
+
+    Parsing trough IHTMLDomNode MSHTML not only it places the body in the
+    wrong place, but it also duplicates it:
+
+    HTML
+     |-HEAD
+     |  |-TITLE
+     |  |-BASE
+     |     |-META
+     |     |-META
+     |     |-BODY
+     |-BODY
+
+    Parsed trough IHTMLElement MSHTML produces a tree that looks like this:
+
+    HTML
+     |-HEAD
+        |-TITLE
+        |-BASE
+           |-META
+           |-META
+           |-BODY
+
+
+    The following code will cleanup a bad example as this:
+
+    <html>
+    <head>
+    <title>test</title>
+    <base target="_self" href="URL">
+    <meta name="1" content="1">
+    <base target="_self" href="UL">
+    <meta name="2" content="2">
+    </head>
+    <body>
+    empty
+    </body>
+    </html>
+
+    }
+
+  BaseTagInDoc := false;
+  DESIGNTIMEBASEURLfound := false;
+  BaseURL := '';
+
+  DOC3 := DOC as IHTMLDocument3;
+
+  aCollection := DOC3.getElementsByTagName('BASE') as IHTMLElementCollection;
+  if aCollection.length > 0
+     then begin
+        for i := 0 to aCollection.length - 1 do
+           begin
+              aElement := aCollection.item(i, 0) as IHTMLElement;
+
+              if not assigned(aElement)
+                 then continue;
+
+              // we take the BaseURL from the last found base tag except if
+              // its a DESIGNTIMEBASEURL
+              if pos('DESIGNTIMEBASEURL', UpperCase(aElement.outerHTML)) = 0
+                 then begin
+                    BaseURL := (aElement as IHTMLBaseElement).href;
+                    BaseTagInDoc := true;
+                 end
+                 else DESIGNTIMEBASEURLfound := true;
+
+              aDomNode := aElement as IHTMLDomNode;
+              if aDomNode.hasChildNodes
+                 then begin
+                    HTMLP := aDomNode.parentNode;
+                    HTMLF := aDomNode.firstChild;
+                    aDomNode.removeNode(false); //false = do not remove child nodes
+                    HTMLP.insertBefore(aDomNode, HTMLF);
+                 end;
+
+        end; //for i := 0 to
+     end;
+
+  if DESIGNTIMEBASEURLfound
+     then begin
+        aCollection := DOC3.getElementsByTagName('BASE') as IHTMLElementCollection;
+        if aCollection.length > 0
+           then begin
+              for i := 0 to aCollection.length - 1 do
+                 begin
+                    aElement := aCollection.item(i, 0) as IHTMLElement;
+
+                    if assigned(aElement) and
+                       (pos('DESIGNTIMEBASEURL', UpperCase(aElement.outerHTML)) > 0)
+                       then begin
+                          //remove any temporary BASE tag
+                          aDomNode := aElement as IHTMLDomNode;
+                          aDomNode.removeNode(false);
+                       end
+                 end;
+           end;
+     end;
+end;
+//------------------------------------------------------------------------------
+
+procedure TEmbeddedED.OpenPointers;
+//kt moved from inside DocumentComplete()
+var
+   FDisplayServices: IDisplayServices;
+begin
+   //asm int 3 end; //trap
+
+   {$IFDEF EDDESIGNER}
+      if assigned(FEdit)
+         then TEditDesigner(FEdit).Connect(TWebBrowser(self).Document); //Connect EditDesigner
+   {$ENDIF}
+
+   {$IFDEF EDTABLE}
+     if assigned(FTtable)
+         then TTable(FTtable).OpenPointers;
+   {$ENDIF}
+
+   FDisplayServices := DOC as IDisplayServices;
+   OleCheck(FDisplayServices.GetCaret(IHTMLCaret(FCaret)));
+
+   OleCheck(FDisplayServices.CreateDisplayPointer(FDisplayPointerStart));
+   OleCheck(FDisplayServices.CreateDisplayPointer(FDisplayPointerEnd));
+   OleCheck(FDisplayServices.CreateDisplayPointer(FTMGDisplayPointer));  //kt added
+
+   //kt FMarkUpServices := Doc as MSHTML_TLB.IMarkupServices;
+   FMarkUpServices := Doc as MSHTML_EWB.IMarkupServices;  //kt
+
+   OleCheck(FMarkUpServices.CreateMarkupPointer(FMarkupPointerStart));
+   OleCheck(FMarkUpServices.CreateMarkupPointer(FMarkupPointerEnd));
+
+   FHighlight := Doc as IHighlightRenderingServices;
+
+   FRenderStyle := (TwebBrowser(Self).Document as IHTMLDocument4).createRenderStyle('');
+
+   //false turns off (default) black and uses $8A2BE2 as highlight colour
+   FRenderStyle.Set_defaultTextSelection('false');
+   FRenderStyle.Set_textBackgroundColor($8A2BE2);
+end;
+
+
+procedure TEmbeddedED.DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant; var HandlingComplete: Boolean);
+var
+  IW: IwebBrowser2;
+  adoc: IhtmlDocument2;
+  iDocDisp: IDispatch;
+
+  //-----------------------------------------------------------
+  (*
+  procedure OpenPointers;
+  var
+     FDisplayServices: IDisplayServices;
+  begin
+     //asm int 3 end; //trap
+
+     {$IFDEF EDDESIGNER}
+        if assigned(FEdit)
+           then TEditDesigner(FEdit).Connect(TWebBrowser(self).Document); //Connect EditDesigner
+     {$ENDIF}
+
+     {$IFDEF EDTABLE}
+       if assigned(FTtable)
+           then TTable(FTtable).OpenPointers;
+     {$ENDIF}
+
+     FDisplayServices := DOC as IDisplayServices;
+     OleCheck(FDisplayServices.GetCaret(IHTMLCaret(FCaret)));
+
+     OleCheck(FDisplayServices.CreateDisplayPointer(FDisplayPointerStart));
+     OleCheck(FDisplayServices.CreateDisplayPointer(FDisplayPointerEnd));
+     OleCheck(FDisplayServices.CreateDisplayPointer(FTMGDisplayPointer));  //kt added
+
+     //kt FMarkUpServices := Doc as MSHTML_TLB.IMarkupServices;
+     FMarkUpServices := Doc as MSHTML_EWB.IMarkupServices;  //kt
+
+     OleCheck(FMarkUpServices.CreateMarkupPointer(FMarkupPointerStart));
+     OleCheck(FMarkUpServices.CreateMarkupPointer(FMarkupPointerEnd));
+
+     FHighlight := Doc as IHighlightRenderingServices;
+
+     FRenderStyle := (TwebBrowser(Self).Document as IHTMLDocument4).createRenderStyle('');
+
+     //false turns off (default) black and uses $8A2BE2 as highlight colour
+     FRenderStyle.Set_defaultTextSelection('false');
+     FRenderStyle.Set_textBackgroundColor($8A2BE2);
+  end;
+  *)
+  //----------------------------------------------------
+begin
+  //asm int 3 end; //trap
+
+  { a derived component need a way to know if this DocumentComplete is completely
+    handled - i.e. when we sets the BaseUrl - or this is a "real" DocumentComplete.
+    If this eventhandler isn't exited then HandlingComplete is set to false at
+    the very end }
+  HandlingComplete := true;
+
+  if FWarmingUp
+     then exit;
+
+  //just a test that newer seems to become true
+  if Fdebug and (FReadyState <> READYSTATE_COMPLETE)
+     then beep;
+
+  if pDisp = nil then   //kt added
+    exit;               //kt added
+  iDocDisp := (pDisp as IwebBrowser2).Document;
+
+  // NOTE: iDocDisp may be NIL or may be not an HTML document!!!
+  if (iDocDisp = nil) or
+     (iDocDisp.QueryInterface(IHTMLDocument2, aDoc) <> S_OK) or
+     (aDoc <> DOC)
+     then exit;
+
+  ShowCursor(true);
+
+  if not FSettingBaseURL
+     then begin
+        if not FkeepPath
+           then begin
+              FCurrentDocumentPath := GetPersistedFile;
+              FBaseUrl := _CurDir;
+           end;
+
+        { according to DHTMLEdit specs FBaseURL is set to the loaded files base.
+          If the loaded file contains a BASE tag then BASEUrl is set accordingly
+          in InitializeUndoStack }
+
+        {$IFDEF EDLIB}
+           InitializeUndoStack(Self, FBaseTagInDoc, FBaseUrl);
+        {$ELSE}
+           GetBaseTag(FBaseTagInDoc, FBaseUrl);
+           if not BrowseMode
+              then _CheckGenerator;
+        {$ENDIF}
+
+        {$IFDEF EDUNDO}
+           if FLocalUndo
+              then OpenChangeLog;
+        {$ENDIF}
+     end;
+
+  FkeepPath := false;
+
+
+  //restore WYSIWYG scroll position if needed
+  if FScrollTop > 0
+     then ScrollDoc(FScrollTop);
+
+  OpenPointers;
+
+  if FEditMode
+     then begin
+        if FShowDetails
+           then begin
+              {$IFDEF EDGLYPHS}
+                 ShowDefaultGlyphs(Self);
+              {$ELSE}
+                 CmdSet(IDM_SHOWALLTAGS);
+              {$ENDIF}
+           end;
+
+        //kt if F2DPosition
+        //kt   then CmdSet_B(IDM_2D_POSITION, true);
+
+        //kt if FLiveResize
+        //kt   then CmdSet_B(IDM_LIVERESIZE, true);
+
+        //set cursor to beginning of document
+        SetCursorAtElement(DOC.elementFromPoint(1,1), ELEM_ADJ_AfterBegin);
+     end;
+
+  HookEvents;
+
+  if FSettingBaseURL //nothing more to do
+     then begin
+        FSettingBaseURL := false;
+        exit;
+     end;
+
+  if FLoadFromString
+     then begin
+        FLoadFromString := false;
+        FHTMLImage := ''; //a document loaded from a string is always dirty
+
+        if FEditMode
+           then ClearUndoStack; //we cant allow old undo's after loading a "new" document
+     end
+     else begin
+        if FEditMode
+           then GetSourceSnapShot;
+     end;
+
+  //if we have a user created event handler call it
+  if assigned(FOnDocumentComplete)
+     then FOnDocumentComplete(Self);
+
+  HandlingComplete := false;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.HookEvents;
+var
+  aCPC: IConnectionPointContainer;
+  aCP: IConnectionPoint;
+  aCookie: Integer;
+begin
+  //asm int 3 end; //trap
+
+  Doc.parentWindow.QueryInterface(IConnectionPointContainer, aCPC);
+
+  //this events is automatically released when the document is unloaded
+  aCPC.FindConnectionPoint(HTMLWindowEvents2, aCP);
+  aCP.Advise(self, aCookie);  //send events to TEmbeddedED.Invoke
+
+  {$IFDEF EDZINDEX}
+     if Assigned(FTZindex)
+        then TZindex(FTZindex).HookEvents;
+  {$ENDIF}
+
+  //IpropertyNotifySink is automatic connected, so we do nothing here
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.ShowContextMenu(const dwID: DWORD; const ppt: PPOINT; const pcmdtReserved: IUnknown; const pdispReserved: IDispatch): HRESULT;
+begin
+  //Called from MSHTML to display a context menu
+  //asm int 3 end; //trap
+
+  if Assigned(FOnShowContextmenu)
+     then begin
+        Result := FOnSHowContextmenu(dwID, ppt, pcmdtreserved, pdispreserved);
+        if Result = S_OK
+           then exit;
+     end
+     else Result := S_FALSE;
+
+  if assigned(FOnShowContextmenuEx)
+     then FOnShowContextmenuEx(Self, ppt^.X, ppt^.Y);
+
+  if (FContextMenu.Items.count > 0)
+     then begin
+        Result := S_OK;
+        FContextMenu.Popup(ppt^.X, ppt^.Y);
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetHostInfo(var pInfo: TDOCHOSTUIINFO): HRESULT;
+begin
+  //Retrieves the UI capabilities of the MSHTML host
+  //asm int 3 end; //trap
+
+  pInfo.cbSize := SizeOf(pInfo);
+  pInfo.dwFlags := FUserInterfaceValue;
+
+  pInfo.dwDoubleClick := DOCHOSTUIDBLCLK_DEFAULT;
+  Result:=S_OK;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.ShowUI(const dwID: DWORD; const pActiveObject: IOleInPlaceActiveObject; const pCommandTarget: IOleCommandTarget; const pFrame: IOleInPlaceFrame; const pDoc: IOleInPlaceUIWindow): HRESULT;
+begin
+  //Allows the host to replace the MSHTML menus and toolbars
+  //asm int 3 end; //trap
+  Result := S_FALSE;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.HideUI: HRESULT;
+begin
+  //Called when MSHTML removes its menus and toolbars
+  //asm int 3 end; //trap
+  Result := E_NOTIMPL;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED._UpdateUI;
+begin
+  //asm int 3 end; //trap
+  UpdateUI;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.UpdateUI: HRESULT;
+begin
+  //Notifies the host that the command state has changed
+  //asm int 3 end; //trap
+
+  Result := S_OK;
+
+  if (FReadyState = READYSTATE_COMPLETE) and (not FWarmingUp) and Showing
+     then begin
+        if FSetInitialFocus
+           then begin
+              SetFocusToDoc;
+              FSetInitialFocus := false;
+           end;
+
+        GetElementUnderCaret;
+
+        if Assigned(FOnDisplayChanged)
+           then FOnDisplayChanged(self);
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.EnableModeless(const fEnable: BOOL): HRESULT;
+begin
+  //asm int 3 end; //trap
+  Result := E_NOTIMPL;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.OnDocWindowActivate(const fActivate: BOOL): HRESULT;
+begin
+  //Called from the MSHTML implementation of IOleInPlaceActiveObject.OnDocWindowActivate
+  //asm int 3 end; //trap
+  Result := E_NOTIMPL;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.OnFrameWindowActivate(const fActivate: BOOL): HRESULT;
+begin
+  //Called from the MSHTML implementation of IOleInPlaceActiveObject.OnFrameWindowActivate
+  //asm int 3 end; //trap
+  Result := E_NOTIMPL;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.ResizeBorder(const prcBorder: PRECT; const pUIWindow: IOleInPlaceUIWindow; const fRameWindow: BOOL): HRESULT;
+begin
+  //Called from the MSHTML implementation of IOleInPlaceActiveObject.ResizeBorder
+  //asm int 3 end; //trap
+  Result := E_NOTIMPL;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.TranslateAccelerator(const lpMsg: PMSG; const pguidCmdGroup: PGUID; const nCmdID: DWORD): HRESULT;
+begin
+  //asm int 3 end; //trap
+  { Called by MSHTML when IOleInPlaceActiveObject.TranslateAccelerator or
+    IOleControlSite.TranslateAccelerator is called }
+  //called by VCL
+  //called by OCX
+
+  { by OCX this is called from:
+    from: if FOleInPlaceActiveObject.TranslateAccelerator(WinMsg) = S_OK
+    in:   procedure TOleControl.WndProc(var Message: TMessage);
+
+    after this call comes calls to:
+    TEmbeddedED._TranslateAccelerator
+    TEditDesigner.TranslateAccelerator
+    TEmbeddedED.OleControlSite_TranslateAccelerator
+  }
+
+  Result := E_NOTIMPL;
+  { if we return S_OK then no further call to other "translate accelerator" occurs
+    because TOleControl.WndProc doesn't delegate the message further up the chain}
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetOptionKeyPath(var pchKey: POLESTR; const dw: DWORD): HRESULT;
+begin
+  //Returns the registry key under which MSHTML stores user preferences
+  //asm int 3 end; //trap
+  pchKey := nil;
+  Result := E_NOTIMPL;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetDropTarget(const pDropTarget: IDropTarget; out ppDropTarget: IDropTarget): HRESULT;
+begin
+  { Called by MSHTML when it is being used as a drop target to allow the host
+    to supply an alternative IDropTarget }
+  //asm int 3 end; //trap
+
+  {$IFDEF EDDRAGDROP}
+     result := InitializeDropTarget(Self, pDropTarget, ppDropTarget);
+  {$ELSE}
+     Result := E_NOTIMPL;
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetExternal(out ppDispatch: IDispatch): HRESULT;
+begin
+  { Called by MSHTML to obtain the host's IDispatch interface.
+    There is a sample on how to use it here:
+    http://www.euromind.com/iedelphi/embeddedwb/ongetexternal.htm }
+  //asm int 3 end; //trap
+
+  ppDispatch := nil;
+  Result := E_NOTIMPL;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.TranslateUrl(const dwTranslate: DWORD; const pchURLIn: POLESTR; var ppchURLOut: POLESTR): HRESULT;
+var
+  Changed: boolean;
+  URL: string;
+begin
+  { Called by MSHTML to allow the host an opportunity to modify the URL to be loaded
+    NB TranslateUrl is not called when you use Navigate or Navigate2 but only when a
+    hyperlink is clicked }
+  //asm int 3 end; //trap
+
+  if Assigned(FOnTranslateURL)
+     then begin
+        Changed := False;
+        URL := OleStrToString(pchURLIn);
+        FOnTranslateURL(Self, URL, Changed);
+        if Changed
+           then begin
+              ppchURLOut := StringToOleStr(URL);
+              Result := S_OK;
+           end
+           else Result := S_FALSE;
+     end
+     else begin
+        ppchURLOut := nil;
+        Result := S_FALSE;
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.FilterDataObject(const pDO: IDataObject; out ppDORet: IDataObject): HRESULT;
+begin
+  { Called on the host by MSHTML to allow the host to replace MSHTML's data object.
+    Returns S_OK if the data object is replaced, or S_FALSE if it's not replaced.
+
+    Although the documentation does not explicitly mention it, it will only be
+    called in paste situations }
+  //asm int 3 end; //trap
+
+  ppDORet := nil;
+  Result := S_FALSE;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.QueryService(const rsid, iid: TGuid; out Obj): HResult;
+begin
+  //asm int 3 end; //trap
+  IUnknown(obj) := nil;
+
+  if IsEqualGUID(rsid, SID_SHTMLEDitHost) and FEditMode
+     then result := TEditHost(FEditHost).QueryService(rsid, iid, IUnknown(obj))
+     else begin
+        if Assigned(FOnQueryService)
+           then Result := FOnQueryService(rsid, iid, IUnknown(obj))
+           else Result := E_NOINTERFACE;
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.LoadFromStrings(aStrings: TStrings): HResult;
+begin
+  //asm int 3 end; //trap
+
+  result := LoadFromString(aStrings.Text);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.LoadFromString(aString: String): HResult;
+{$IFNDEF EDMONIKER}
+var
+  aHandle: THandle;
+  aStream: IStream;
+{$ENDIF}
+begin
+  //asm int 3 end; //trap
+
+  FLoadFromString := true;
+
+  {$IFDEF EDMONIKER}
+     FKeepPath := True;
+     result := LoadFromStringMoniker(Self, aString);
+  {$ELSE}
+     FCurrentDocumentPath := '';
+     aHandle := GlobalAlloc(GPTR, Length(aString) + 1);
+     try
+        if aHandle <> 0
+           then begin
+              Move(aString[1], PChar(aHandle)^, Length(aString) + 1);
+              CreateStreamOnHGlobal(aHandle, FALSE, aStream);
+              result := LoadFromIStream(aStream);
+           end
+           else result := S_false;
+     finally
+        GlobalFree(aHandle);
+     end;
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+{$IFNDEF EDMONIKER}
+   function TEmbeddedED.LoadFromIStream(aIStream: IStream): HResult;
+   begin
+     //asm int 3 end; //trap
+
+     if not DocumentIsAssigned
+        then AssignDocument;
+
+     FReadyState := 0;
+     Result := PersistStream.Load(aIStream);
+
+     WaitForDocComplete;
+   end;
+{$ENDIF}
+//------------------------------------------------------------------------------
+procedure TEmbeddedED._CheckGenerator(MainCheck: Boolean = true);
+begin
+  //asm int 3 end; //trap
+
+  {$IFDEF EDLIB}
+     if MainCheck
+        then CheckGenerator(Self);
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetDocumentHTML: String;
+begin
+  //asm int 3 end; //trap
+
+  if ComponentInDesignMode or (TwebBrowser(Self).Document = nil)
+     then Result := ''
+     else begin
+        _CheckGenerator(false);
+        result := GetDocHTML(DOC);
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SetDocumentHTML(NewHTML: String);
+begin
+  //asm int 3 end; //trap
+
+  if ComponentInDesignMode
+     then exit;
+
+  if DOC = nil then  //kt
+    exit;  //kt     
+
+  //this is to avoid a very rear AV error
+  (Doc.selection as IHTMLSelectionObject).empty;
+  GetElementUnderCaret;
+
+  if S_OK = (DOC as IPersistMoniker).IsDirty
+          // avoid, question about save file from MSHTML
+     then cmdSet_B(IDM_SETDIRTY, false);
+
+  LoadFromString(NewHTML);
+
+  //now The document must be dirty !
+  CmdSet_B(IDM_SETDIRTY, true);
+  FHTMLImage := '';
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.AssignDocument;
+var
+  Ov: OleVariant;
+begin
+  //asm int 3 end; //trap
+  if TwebBrowser(Self).Document = nil
+     then begin
+        HandleNeeded;    //or a hidden MSHTML wont respond
+
+        Ov := AboutBlank;
+
+        FReadyState := 0;
+        //KT NOTE:  For some reason, with IE8, OnDocumentComplete is not getting fired...
+        Navigate2(Ov); //this will run asynchronously and call OnDocumentComplete
+
+        WaitForDocComplete;
+        if FTMGDisplayPointer = nil then
+          OpenPointers;
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.Go(Url: String): HResult;
+const
+  FileSlash = 'file://';
+var
+  aURLPath: string;
+
+  {$IFNDEF EDMONIKER}  
+     FBindCtx: IBindCtx;
+     aURLMoniker: IMoniker;
+  {$ENDIF}
+
+  //--------------------------------------
+  function DropFilePart(S: String): String;
+  begin
+     result := AnsiLowerCase(S);
+     if Pos(FileSlash, result) = 1
+        then Delete(result, 1, length(FileSlash));
+
+     result := StringReplace(result, '\', '/', [rfReplaceAll]);
+
+     if Length(result) < 3
+        then exit;
+
+     if pos('//', result) = 1
+        then result := AfterTokenNr(result, '/', 4)
+
+     else if result[2] = ':'
+        then delete(result, 1, 3);
+  end;
+  //--------------------------------------
+begin
+  //asm int 3 end; //trap
+
+  result := S_FALSE;
+  FBaseURL := '';
+
+  {$IFDEF EDMONIKER}
+     LoadFromEDMoniker(self, URL, '');
+  {$ELSE}
+    //Navigate(Url); //this is a bit unstable here so we use a URLmoniker instead
+    OleCheck(CreateBindCtx(0, FBindCtx));
+    CreateURLMoniker(nil, StringToOleStr(URL), aURLMoniker);
+
+    FReadyState := 0;  //make sure WaitForDocComplete don't return immediately
+    result := (DOC as IPersistMoniker).Load(false, aURLMoniker, FBindCtx, STGM_READ);
+
+    WaitForDocComplete;
+  {$ENDIF}
+
+  //se if we got to the target
+  aURLPath := GetPersistedFile;
+
+  if pos(DropFilePart(URL), DropFilePart(aURLPath)) = 1
+     then begin
+        result := S_OK;
+
+        //set BASEUrl according to the DHTMLEdit specs.
+        FBaseURL := aURLPath;
+        Delete(FBaseURL, LastDelimiter('\/', FBaseURL)+1, Length(FBaseURL));
+     end
+     else begin //just in case
+        if FDebug
+           then KSMessageE('Wrong URL reached'+DblCrLf+
+                           'Target:'+Crlf+URL+DblCrLf+
+                           'Reached:'+Crlf+ DOC.URL, 'Go-error');
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetDirty: boolean;
+begin
+  //asm int 3 end; //trap
+
+  if (TwebBrowser(Self).Document = nil) or (not FeditMode)
+     then begin
+        result := false;
+        exit;
+     end;
+
+  Result := S_OK = (DOC as IPersistMoniker).IsDirty;
+
+  { IPersistStream.IsDirty only reports that the document has been changed since
+    it was read / last saved.
+    Sometimes it don't know that a change have been changed back
+    - if you make some text bold and then undo it back to normal again then
+      IPersistStream knows that the document isn't dirty
+    - but if you doesn't undo the bold operation but change the text back to normal
+      again then IPersistStream reports the document dirty although its really clean }
+
+  if result
+     then begin
+        { We cant completely trust it if IPersistStream reports the document dirty.
+          So we compare the original image with the actual image of HTML source }
+
+        result := (not AnsiSameText(FHTMLImage, KS_Lib.GetHTMLtext(DOC)));
+
+        If not result
+           { no need to spend time repeating GetHTMLtext more often than necessary
+             so we sync IPersistMoniker.IsDirty with the real world }
+           then cmdSet_B(IDM_SETDIRTY, false);
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SetDirty(_dirty: boolean);
+begin
+  //asm int 3 end; //trap
+  if TwebBrowser(Self).Document <> nil
+     then  begin
+        cmdSet_B(IDM_SETDIRTY, _dirty); // Update IPersist**.IsDirty
+
+       if not _dirty //we have just set dirty to clean
+           { We really only need to get a new FHTMLImage if the current one is
+             dirty - but it doesn't harm to set it again if its clean }
+        then FHTMLImage := KS_Lib.GetHTMLtext(DOC);
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.QueryStatus(cmdID: CMDID): OLECMDF;
+var
+   Cmd: OLECMD;
+   Handled: boolean;
+
+   //----------------------------------------------------
+   function DoQerry: OLECMDF;
+   begin
+     //asm int 3 end; //trap
+     Cmd.CmdID := cmdID;
+     if S_OK = CmdTarget.QueryStatus(@CGID_MSHTML, 1, @Cmd, Nil)
+        then Result := Cmd.cmdf
+        else result := 0; //not supported
+   end;
+   //----------------------------------------------------
+begin
+  //asm int 3 end; //trap
+  { 7 = OLECMDF_SUPPORTED or OLECMDF_ENABLED or OLECMDF_LATCHED
+    3 = OLECMDF_SUPPORTED or OLECMDF_ENABLED }
+
+  result := 0;
+  if TwebBrowser(Self).Document <> nil
+     then begin
+        //we need to catch a few special commands here
+        case cmdID of
+           IDM_SHOWZEROBORDERATDESIGNTIME:
+              begin //MSHTML don't remember this setting
+                 if FShowZeroBorderAtDesignTime
+                    then result := 7
+                    else result := 3;
+              end;
+
+           IDM_CONSTRAIN:
+              begin
+                 if FConstrain
+                    then result := 7
+                    else result := 3;
+              end;
+
+           IDM_Undo, IDM_Redo, IDM_DROP_UNDO_PACKAGE, IDM_DROP_REDO_PACKAGE, IDM_LocalUndoManager:
+              begin
+                 {$IFDEF EDUNDO}
+                    if FTUndo <> nil
+                       then begin
+                          result := TUndo(FTUndo).QueryStatus(cmdID);
+                          exit;
+                       end;
+                 {$ENDIF}
+
+                 if (cmdID = IDM_Undo) or (cmdID = IDM_Redo)
+                    then result := DoQerry;
+                    //else result := 0
+              end;
+
+           IDM_NUDGE_ELEMENT, DECMD_LOCK_ELEMENT, DECMD_BRING_ABOVE_TEXT, DECMD_BRING_FORWARD, DECMD_BRING_TO_FRONT, DECMD_SEND_BELOW_TEXT, DECMD_SEND_TO_BACK, DECMD_SEND_BACKWARD:
+              begin
+                 {$IFDEF EDZINDEX}
+                    if FTZindex <> nil
+                       then result := TZindex(FTZindex).QueryStatus(cmdID);
+                 {$ELSE}
+                    //else result := 0
+                 {$ENDIF}
+              end;
+
+           else begin
+              Handled := false;
+
+              {$IFDEF EDTABLE}
+                 if assigned(FTtable)
+                    then result := TTable(FTtable).TableQeryCommand(cmdID, Handled, self);
+              {$ENDIF}
+
+              if not Handled
+                 then result := DoQerry;
+           end
+        end;
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.ExecCommand(cmdID: KS_Lib.CMDID; cmdexecopt: OLECMDEXECOPT; var pInVar: OleVariant): OleVariant;
+begin
+  //asm int 3 end; //trap
+  DoCommand(cmdID, cmdexecopt, pInVar, result);
+end;
+//-----------------------------------------------------------------------------
+function TEmbeddedED.DoCommand(cmdID: KS_Lib.CMDID): HResult;
+begin
+  //asm int 3 end; //trap
+  result := DoCommand(cmdID, OLECMDEXECOPT_DODEFAULT);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.DoCommand(cmdID: KS_Lib.CMDID; cmdexecopt: OLECMDEXECOPT): HResult;
+begin
+  //asm int 3 end; //trap
+  result := DoCommand(cmdID, cmdexecopt, POlevariant(Nil)^);
+end;
+//-----------------------------------------------------------------------------
+function TEmbeddedED.DoCommand(cmdID: KS_Lib.CMDID; cmdexecopt: OLECMDEXECOPT; var pInVar: OleVariant): HResult;
+begin
+  //asm int 3 end; //trap
+  result := DoCommand(cmdID, cmdexecopt, pInVar, POlevariant(Nil)^);
+end;
+//-----------------------------------------------------------------------------
+function TEmbeddedED.DoCommand(cmdID: KS_Lib.CMDID; cmdexecopt: OLECMDEXECOPT; var pInVar, pOutVar: OleVariant): HResult;
+const
+  SetError: Boolean = true;
+var
+  BoolInd: Boolean;
+  Handled: Boolean;
+  //OvParam: OleVariant;
+
+  //------------------------------------------------------------------
+  procedure TestResult(aResult: HResult; acceptError: Longint = 0);
+  begin
+     if FDebug and (aResult <> S_OK) and (aResult <> acceptError)
+        then begin
+           {$IFNDEF EDTABLE}
+              if (cmdID = IDM_RestoreSystemCursor) or (cmdID = IDM_STRIPCELLFORMAT)
+                 then exit;
+           {$ENDIF}
+
+           KSMessageI('cmdID: '+IntTostr(cmdID), 'MSHTML command failed');
+        end;
+  end;
+  //------------------------------------------------------------------
+  function _DoCommand(acceptError: Longint = 0): HResult;
+  begin
+     Result := CmdTarget.Exec(@CGID_MSHTML, cmdID, cmdexecopt, pInVar, pOutVar);
+     // For some reason, IE returns not supported if the user cancels. !!
+     // and we cant use OLECMDERR_E_CANCELED to avoid that problem
+     TestResult(Result, acceptError);
+  end;
+  //------------------------------------------------------------------
+  function TestBoolInd(DoSetError: Boolean = false): Boolean;
+  begin
+     result := (@pInVar <> nil) and (TVariantArg(pInVar).VT = VT_BOOL);
+     if result
+        then BoolInd := pInVar
+        else begin
+           if DoSetError
+              then FLastError := 'pInVar must be of type boolean';
+        end;
+  end;
+  //------------------------------------------------------------------
+begin
+  //asm int 3 end; //trap
+  result := S_FALSE;
+
+
+  if TwebBrowser(Self).Document = nil
+     then begin
+        AssignDocument;
+
+        if not DocumentIsAssigned
+           then begin
+              if FDebug
+                 then KSMessageI('DOC not assigned', 'MSHTML command skipped');
+              exit;
+           end;
+     end;
+
+
+
+  //we need to catch some commands here
+  case cmdID of
+
+     IDM_SHOWZEROBORDERATDESIGNTIME:
+        begin //MSHTML don't remember this setting
+           if TestBoolInd
+              then begin
+                 result := _DoCommand;
+                 if result = S_OK
+                    then FShowZeroBorderAtDesignTime := BoolInd;
+              end
+              else begin
+                 result := _DoCommand;
+                 if result = S_OK
+                    then FShowZeroBorderAtDesignTime := not FShowZeroBorderAtDesignTime;
+              end;
+           TestResult(Result);
+        end;
+
+     IDM_SAVEAS: // IDM_SAVE is not supported by MSHTML
+        begin
+           result := _DoCommand(Integer($80040103)); //The dialog was cancelled
+           if (result = S_OK) and FEditMode          //we did a save
+              then FHTMLImage := KS_Lib.GetHTMLtext(DOC); //get image of original source
+        end;
+
+     IDM_CONSTRAIN:
+        begin
+           FConstrain := not FConstrain;
+           result := S_OK;
+        end;
+
+     IDM_Undo, IDM_Redo, IDM_DROP_UNDO_PACKAGE, IDM_DROP_REDO_PACKAGE, IDM_LocalUndoManager:
+        begin
+           {$IFDEF EDUNDO}
+              if FTUndo <> nil
+                 then begin
+                    TestBoolInd;
+                    result := TUndo(FTUndo).DoCommand(cmdID, BoolInd, FEdit, Handled);
+                    if not Handled
+                       then result := _DoCommand;
+                 end
+                 else result := _DoCommand;
+           {$ELSE}
+              result := _DoCommand;
+           {$ENDIF}
+
+           TestResult(Result);
+        end;
+
+     IDM_NUDGE_ELEMENT, DECMD_LOCK_ELEMENT, DECMD_BRING_ABOVE_TEXT, DECMD_BRING_FORWARD, DECMD_BRING_TO_FRONT, DECMD_SEND_BELOW_TEXT, DECMD_SEND_TO_BACK, DECMD_SEND_BACKWARD:
+        begin
+           {$IFDEF EDZINDEX}
+              if FTZindex <> nil
+                 then result := TZindex(FTZindex).ZindexCommand(cmdID, pInVar);
+           {$ELSE}
+              //else result := S_FALSE
+           {$ENDIF}
+        end;
+
+     KS_TEST: result := KSTest(pInVar, pOutVar);
+
+     else begin
+        handled := false;
+        {$IFDEF EDTABLE}
+           if assigned(FTtable)
+              then result := TTable(FTtable).TableCommand(cmdID, pInVar, Handled, self);
+        {$ENDIF}
+
+        if handled
+           then TestResult(Result)
+           else begin
+             result := _DoCommand;
+             exit;
+           end;
+     end;
+  end;
+
+  if result = S_OK
+     then UpdateUI; //or buttons might jump out briefly
+end;
+//-----------------------------------------------------------------------------
+function TEmbeddedED.CmdSet(cmdID: KS_Lib.CMDID): HResult;
+begin
+  //asm int 3 end; //trap
+  result := DoCommand(cmdID, OLECMDEXECOPT_DODEFAULT);
+end;
+//-----------------------------------------------------------------------------
+function TEmbeddedED.CmdSet(cmdID: KS_Lib.CMDID; var pInVar: OleVariant): HResult;
+begin
+  //asm int 3 end; //trap
+  result := DoCommand(cmdID, OLECMDEXECOPT_DODEFAULT, pInVar, POlevariant(Nil)^);
+end;
+//-----------------------------------------------------------------------------
+function TEmbeddedED.CmdSet_B(cmdID: KS_Lib.CMDID; pIn: Boolean): HResult;
+var
+  Ov: OleVariant;
+begin
+  //asm int 3 end; //trap
+  Ov := pIn;
+  result := DoCommand(cmdID, OLECMDEXECOPT_DODEFAULT, Ov, POlevariant(Nil)^);
+end;
+//-----------------------------------------------------------------------------
+function TEmbeddedED.CmdSet_S(cmdID: KS_Lib.CMDID; pIn: String): HResult;
+var
+  Ov: OleVariant;
+begin
+  //asm int 3 end; //trap
+  Ov := pIn;
+  result := DoCommand(cmdID, OLECMDEXECOPT_DODEFAULT, Ov, POlevariant(Nil)^);
+end;
+//-----------------------------------------------------------------------------
+function TEmbeddedED.CmdSet_I(cmdID: KS_Lib.CMDID; pIn: Integer): HResult;
+var
+  Ov: OleVariant;
+begin
+  //asm int 3 end; //trap
+  Ov := pIn;
+  result := DoCommand(cmdID, OLECMDEXECOPT_DODEFAULT, Ov, POlevariant(Nil)^);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.WaitForDocComplete: Boolean;
+var
+  I: Cardinal;
+begin
+  //asm int 3 end; //trap
+
+  I := getTickCount + 20000;
+  result := true;
+
+  if TwebBrowser(Self).Document = nil   //avoid deadlock
+     then exit;
+
+  if FReadyState = READYSTATE_COMPLETE
+     then begin
+        if FDebug
+           then beep;
+        exit;
+     end;
+
+  While FReadyState <> READYSTATE_COMPLETE do //wait until DHTMLedit is ready
+     begin
+        if getTickCount > I
+           then begin
+              result := false;
+              if FDebug
+                 then KSMessageE('Dead lock break in WaitForDocComplete');
+
+              break; //avoid dead lock - break loop after 20 sec.
+           end
+           else SafeYield;
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.EndCurrentDocDialog(var mr: Integer; CancelPosible: Boolean = False; SkipDirtyCheck: Boolean = False): HResult;
+var
+  Buttons: Integer;
+  NotDirty: Boolean;
+begin
+  //asm int 3 end; //trap
+
+  result := S_OK;
+
+  if SkipDirtyCheck
+     then begin
+        NotDirty := true;
+        //avoid complains from MSHTML when loading new file - if DOC is dirty
+        cmdSet_B(IDM_SETDIRTY, false);
+     end
+     else NotDirty := not GetDirty;
+
+
+  if NotDirty  //current file is clean
+     then begin  //just delete backup
+        if Length(FCurBackFile) > 0
+           then DeleteFile(FCurBackFile); //works only for users with delete right
+                                          //other users leave the bak-file behind
+        mr := -1;
+     end
+     else begin        //current file is dirty
+        if CancelPosible
+           then Buttons := MB_YESNOCANCEL
+           else Buttons := MB_YESNO;
+
+        mr := KSQuestion('Document changed.'+DblCrLf+
+                         'Save changes ?', '', MB_ICONQUESTION or Buttons);
+
+        if mr = IDCANCEL    //skip the ending document process
+           then Result := S_False
+
+        else if mr = IDNO   //skip saving
+           then begin         //Don't save - just restore old file from backup
+              if DocIsPersist //if file created then get backup
+                 then begin
+                    if Assigned(FBeforeCloseFile)
+                       then FBeforeCloseFile(Self, FCurrentDocumentPath);
+
+                    if GetBackup //restore original file from backup
+                       then begin
+                          DeleteFile(FCurBackFile);
+                          FCurBackFile := '';
+                       end;
+                 end;
+
+              //avoid complains from MSHTML when loading new file - if DOC is dirty
+              cmdSet_B(IDM_SETDIRTY, false)
+           end;
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.EndCurrentDoc(CancelPosible: Boolean = False; SkipDirtyCheck: Boolean = False): HResult;
+var
+  mr: Integer;
+begin
+  //asm int 3 end; //trap
+
+  Result := EndCurrentDocDialog(mr, CancelPosible, SkipDirtyCheck);
+  if mr = IDYES
+     then begin
+        result := SaveFile;
+
+        if Assigned(FBeforeCloseFile)
+           then FBeforeCloseFile(Self, FCurrentDocumentPath);
+     end;
+end;
+//------------------------------------------------------------------------------
+Function TEmbeddedED.GetBackup: Boolean;
+begin
+  //asm int 3 end; //trap
+  //restore backup copy to current file (skip any changes)
+
+  if DocIsPersist and (length(FCurBackFile) > 0)
+     then result := FileCopy(FCurBackFile, FCurrentDocumentPath)
+     else result := True;
+end;
+//-----------------------------------------------------------------------------
+function TEmbeddedED.CreateBackUp: Boolean;
+begin
+  //asm int 3 end; //trap
+  if FCreateBakUp
+     then begin
+        FCurBackFile := ChangeFileExt(FCurrentDocumentPath, '.bak');
+        result := FileCopy(FCurrentDocumentPath, FCurBackFile);
+        if not result
+           then FCurBackFile := '';
+     end
+     else result := false;;
+end;
+//-----------------------------------------------------------------------------
+function TEmbeddedED.GetCharset: string;
+begin
+  //asm int 3 end; //trap
+
+  {$IFDEF EDLIB}
+     result := _GetCharset;
+  {$ELSE}
+     result := 'windows-1252'; //resort to default value
+  {$ENDIF}
+end;
+//-----------------------------------------------------------------------------
+function TEmbeddedED.EmptyDoc: String;
+var
+  BodyContetn: string;
+begin
+  //asm int 3 end; //trap
+
+  if Get_UseDivOnCarriageReturn
+     then BodyContetn := '<DIV>&nbsp;</DIV>'
+     else BodyContetn := '<P>&nbsp;</P>';
+
+  result := '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">'+CrLf+
+            '<HTML><HEAD><TITLE>No Title</TITLE>'+
+            '<META http-equiv=Content-Type content="text/html; charset='+ GetCharset +'">'+
+            '<META content="'+ GetGenerator +'" name=GENERATOR>'+
+            '</HEAD>' +
+            '<BODY>'+ BodyContetn +'</BODY></HTML>';
+end;
+//-----------------------------------------------------------------------------
+function TEmbeddedED.NewDocument: HResult;
+begin
+  //asm int 3 end; //trap
+
+  if TwebBrowser(Self).Document = nil
+     then AssignDocument
+     else begin
+        if EndCurrentDoc(CancelPosible, FSkipDirtyCheck) <> S_OK
+           then begin
+              Result := S_False;
+              exit;
+           end;
+     end;
+
+  Result := LoadFromString(EmptyDoc);
+
+  GetSourceSnapShot;
+
+  FBaseURL := ''; //set to empty string just like DHTMLEdit
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SetShowDetails(vIn: Boolean);
+begin
+  //asm int 3 end; //trap
+  FShowDetails := vIn;
+
+  {$IFDEF EDGLYPHS}
+     _SetShowDetails(FShowDetails, Self);
+  {$ELSE}
+     if DocumentIsAssigned
+        then begin
+           if ShowDetails
+              then CmdSet(IDM_SHOWALLTAGS)
+              else CmdSet(IDM_EMPTYGLYPHTABLE);
+        end;
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetDocTitle: string;
+begin
+  //asm int 3 end; //trap
+  if TwebBrowser(Self).Document <> nil
+     then result := DOC.Title
+     else result := '';
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SetDocTitle(NewTitle: String);
+begin
+  { MSHTML always creates an implicit empty title element, so you can
+    safely assign a text to it }
+  //asm int 3 end; //trap
+  if TwebBrowser(Self).Document <> nil
+     then DOC.Set_title(NewTitle);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetDOC: IHTMLDocument2;
+begin
+  //asm int 3 end; //trap
+  if TwebBrowser(Self).Document = nil
+     then result := nil
+     else result := TwebBrowser(Self).Document as IHTMLDocument2;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.DocumentIsAssigned: Boolean;
+begin
+  //asm int 3 end; //trap
+  result := TwebBrowser(Self).Document <> nil;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetInPlaceActiveObject: IOleInPlaceActiveObject;
+var
+  aHandle: Windows.Hwnd;
+begin
+  //asm int 3 end; //trap
+  { this function is called from initializeEditor, so FmsHTMLwinHandle is assured
+    to be available at the time we got an document to operate on }
+
+  if FOleInPlaceActiveObject <> nil
+     then begin
+        result := FOleInPlaceActiveObject;
+        exit;
+     end;
+
+  if ControlInterface <> nil
+     then OleCheck(ControlInterface.QueryInterface(IOleInPlaceActiveObject, FOleInPlaceActiveObject))
+     else begin
+        result := nil;
+        exit;
+     end;
+
+  //first get the "Shell Embedding" window
+  OleCheck(FOleInPlaceActiveObject.GetWindow(FMainWinHandle));
+
+  //then get the "Shell DocObject View" window
+  aHandle := FindWindowEx(FMainWinHandle, 0, 'Shell DocObject View', nil);
+
+  //now get the mshtml components main window
+  FmsHTMLwinHandle := FindWindowEx(aHandle, 0, 'Internet Explorer_Server', nil);
+
+  result := FOleInPlaceActiveObject;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetCmdTarget: IOleCommandTarget;
+begin
+  //asm int 3 end; //trap
+  if TwebBrowser(Self).Document = nil
+     then result := nil
+     else result := TwebBrowser(Self).Document as IOleCommandTarget;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetPersistStream: IPersistStreamInit;
+begin
+  //asm int 3 end; //trap
+
+  { In a Microsoft Visual C++ WebBrowser host or similar application, when you
+    call the QueryInterface method for the IPersistStreamInit interface on a
+    FRAME in a FRAMESET, it returns E_NOINTERFACE. When you query for other
+    standard persistence interfaces (IPersistStream, IPersistFile, IPersistMemory),
+    you receive the same error.}
+
+  if TwebBrowser(Self).Document = nil
+     then result := nil
+     else result := TwebBrowser(Self).Document as IPersistStreamInit;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetPersistFile: IPersistFile;
+begin
+  //asm int 3 end; //trap
+  if TwebBrowser(Self).Document = nil
+     then result := nil
+     else result := TwebBrowser(Self).Document as IPersistFile;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.PrintDocument(var withUI: OleVariant);
+begin
+  //asm int 3 end; //trap
+  if withUI
+     then DoCommand(IDM_PRINT, OLECMDEXECOPT_PROMPTUSER)
+     else DoCommand(IDM_PRINT, OLECMDEXECOPT_DONTPROMPTUSER);
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.Refresh;
+var
+  Rect: TRect;
+begin
+  //asm int 3 end; //trap
+  //DoCommand(IDM_REFRESH); //this reloads the document
+
+ {DHTML Edit docs says:
+  This method redraws the current document, including the latest changes.
+  You can use this method to redisplay a document if a series of edits have left
+  the document in a state that is hard to read.
+
+  If you are hosting a DHTML Editing control on a Web page, and if the control is
+  hidden, you can also use this method to load a document into a DHTML Editing control.
+  By default, the window object's onload event does not load documents into hidden
+  controls.
+
+  The Refresh method does not reread information from a file. If the current document
+  references an external file, such as an applet or an image, and that file has changed,
+  the change is not displayed by the Refresh method. To see changes in external files,
+  use the LoadURL or LoadDocument method.
+
+  The Refresh method sets the isDirty property to False. - the later seems not
+  to be true ! }
+
+  { NB the undo stack isn't cleared so DHTML Editing doesn't reload the document
+    in any way }              
+
+    
+  //this is a guess
+  Rect := BoundsRect;
+  InvalidateRect(FmsHTMLwinHandle, @Rect, true);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.Get_Busy: Boolean;
+begin
+  //asm int 3 end; //trap
+  result := TWebBrowser(self).busy;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.CmdGet(cmdID: KS_Lib.CMDID): OleVariant;
+begin
+  //asm int 3 end; //trap
+  if S_OK <> DoCommand(cmdID, OLECMDEXECOPT_DODEFAULT, POlevariant(Nil)^, Result)
+     then Result := false;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.CmdGet(cmdID: KS_Lib.CMDID; pInVar: OleVariant): OleVariant;
+begin
+  //asm int 3 end; //trap
+  if S_OK <> DoCommand(cmdID, OLECMDEXECOPT_DODEFAULT, pInVar, Result)
+     then Result := false;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetBuildInStyles: String;
+begin
+  //asm int 3 end; //trap
+
+  { because we need this list each time we load a new document we store it
+    in FInternalStyles }
+  if Length(FInternalStyles) = 0
+     then _GetBuildInStyles;
+
+  result := FInternalStyles;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED._GetBuildInStyles;
+var
+  ov: OleVariant;
+  I: Integer;
+  StrCount: Integer;
+  Ps: PSafeArray;
+  Warr: array of WideString;
+begin
+  //asm int 3 end; //trap
+
+  FStyles.Clear;
+
+  TVariantArg(ov).VT := VT_ARRAY;
+  FInternalStyles := '';
+
+  if (QueryStatus(IDM_GETBLOCKFMTS) and OLECMDF_ENABLED) = 0
+     then begin
+        TVariantArg(Ov).VT := VT_EMPTY; //D6 throws an error if we don't do this ?
+        exit;
+     end;
+
+  Ov := CmdGet(IDM_GETBLOCKFMTS);
+
+  { now we can get the returned strings either via API-calls or by
+    direct handling of the SafeArray pointed to by VarRange.
+
+    API-calls are a bit slower but easy - the backside is that
+    SafeArrays stay a mystery to you
+
+    Direct handling involves much coding but executes faster
+
+    In both cases Delphi destroys the SafeArray fore you when it
+    get out of scope. }
+
+  //this is the direct handling of the SafeArray
+  //************************************************
+
+     //get a pointer to the SafeArray
+  Ps := TVariantArg(ov).pArray;
+  if Ps = nil
+     then exit;
+
+     //Get number of strings in the SafeArray
+  StrCount := TSAFEARRAYBOUND(Ps.rgsabound).cElements;
+      //make room fore all the strings in our WideString array
+  SetLength(Warr, StrCount);
+  try
+        //lock the SafeArray = no risk of memory reallocation during copy
+     Inc(Ps.cLocks);
+        //copy OleStrings to WideString array
+        //Ps.pvData points to start of the SafeArrays Data-segment
+        //Ps.cbElements = size of each record = a PWideChar
+     CopyMemory (@Warr[0], Ps.pvData, StrCount * 4 {Ps.cbElements});
+     //result := StrCount > 0;
+  finally
+     Dec(Ps.cLocks); //unlock the SafeArray
+  end;
+
+  for I := 0 to StrCount -1 do
+     FStyles.Add(Warr[I]); //get each string from the WideString array
+
+  FInternalStyles := FStyles.Text;
+
+  TVariantArg(Ov).VT := VT_EMPTY; //D6 throws an error if we don't do this ?
+
+
+  {
+  //this is the the API way of doing the same task as above
+  //************************************************
+     //get a pointer to the SafeArray
+  Ps := TVariantArg(ov).pArray;
+  sCommands := '';
+  for I := VarArrayLowBound(ov, 1) to VarArrayHighBound(ov, 1) do
+     begin
+           //get each string from the SafeArray
+        SafeArrayGetElement(Ps, I, Pw);
+        aList.Add(Pw);
+     end;
+  }
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetStyles: String;
+begin
+  //asm int 3 end; //trap
+  result := '';
+
+  if FStylesRefreshed
+     then result := FStyles.Text
+     else begin
+        FStylesRefreshed := true;
+
+        if Length(FInternalStyles) = 0
+           then _GetBuildInStyles;
+
+        {$IFDEF EDLIB}
+           MergeExterNalStyles(Self, FInternalStyles);
+        {$ELSE}
+           FStyles.Text := FInternalStyles;
+        {$ENDIF}
+     end;
+
+  result := FStyles.Text;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetExternalStyles: String;
+begin
+  //asm int 3 end; //trap
+
+  {$IFDEF EDLIB}
+     if Length(FExternalStyles) = 0
+        then _GetExternalStyles(Self);
+  {$ENDIF}
+
+  result := FExternalStyles;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.SetStyle(aStyleName: string): HResult;
+var
+  aElement: IHTMLElement;
+  aStyle: String;
+  aIndex: Integer;
+  I: Integer;
+  aTagName: String;
+  SelStart, SelEnd: Integer;
+
+  //--------------------------------------------
+  procedure ClearAllTags;
+  var
+     aElement: IHTMLElement;
+     TagText: String;
+     aTag: string;
+     S, S2: String;
+     aDomNode: IHTMLDomNode;
+     BreakLoop: Boolean;
+     BreakTagInserted: Boolean;
+   begin
+
+     BreakTagInserted := False;
+     aElement := GetFirstSelElement;
+      DebugString := aElement.OuterHTML;
+
+     while true do
+        begin
+           if not Assigned(aElement)
+              then break;
+
+//               aElement.ClassName := 'KS_DeleteMe'; // RHR
+//kt              aElement._className := 'KS_DeleteMe'; // RHR
+              aElement.className := 'KS_DeleteMe'; // kt
+              aElement := GetNextSelElement;
+        end;
+
+
+     //now delete marked elements
+     aElement := GetFirstSelElement;
+     DebugString := aElement.OuterHTML;
+
+     while true do
+        begin
+           if not Assigned(aElement)
+              then break;
+
+           // if aElement.ClassName = 'KS_DeleteMe'  RHR
+           //kt if aElement._ClassName = 'KS_DeleteMe'
+           if aElement.className = 'KS_DeleteMe'  //kt
+              then begin
+                 aDomNode := aElement as IHTMLDomNode;
+                 aDomNode.removeNode(false); //false = do not remove child nodes
+              end
+              else break;  //end of element to delete reached
+
+           aElement := GetNextSelElement;
+        end;
+
+          //now delete marked elements
+     aElement := GetFirstSelElement;
+     DebugString := aElement.OuterHTML;
+  end;
+  //--------------------------------------------
+  procedure ClearClassStyles;
+  var
+     I: Integer;
+  begin
+     //loop trough all selected elements and remove known "tagName:className"
+     aElement := GetFirstSelElement;
+     DebugString := aElement.outerHTML;
+
+     while assigned(aElement) do
+        begin
+           //kt if Length(aElement._className) > 0   // RHR
+           if Length(aElement.className) > 0   // kt
+              then begin
+            //kt if FStyles.Find(aElement.tagName + '.' + aElement._className, I)  // RHR
+                 if FStyles.Find(aElement.tagName + '.' + aElement.className, I)  // kt
+                    then aElement.removeAttribute('className', 0);
+              end;
+
+           aElement := GetNextSelElement;
+        end;
+  end;
+  //--------------------------------------------
+begin
+  //asm int 3 end; //trap
+  result := S_false;
+
+  if not FStyles.Find(aStyleName, aIndex)
+     then exit;        //unknown style
+
+  { As we added our style sheet-classes to FStyles we marked the
+    FStyles's objet with 1 >> FStyles.AddObject(S, TObject(1))
+    Now we can distinguish between build in styles and external styles. }
+
+  if FStyles.Objects[aIndex] = nil //this is an internal style
+     then begin
+        if (QueryStatus(IDM_BLOCKFMT) and OLECMDF_ENABLED) = 0
+           then exit;
+
+        BeginUndoUnit('Set internal Style');
+        try
+           //First remove any class style as MSHTML doesn't do that
+           ClearClassStyles;
+           //let MSHTML handle build in styles
+           result := CmdSet_S(IDM_BLOCKFMT, aStyleName);
+
+           { Style = Normal has different effect depending on the settings of
+             UseDivOnCarriageReturn. If set the selected text will be "packed"
+             into DIV tags, and if not set it will be P tags that encapsulates
+             the selection }
+        finally
+           EndUndoBlock(result);
+        end;
+
+        exit;
+     end;
+
+
+  //handle our style-sheet classes
+  I := pos('.', aStyleName);
+  if I > 0
+     then begin
+        aTagName := copy(aStyleName, 1, I -1);
+        aStyle := copy(aStyleName, I+1, Length(aStyleName));
+
+        { loop trough all selected elements with aTagName
+          and set className := aStyle }
+
+        aElement := GetFirstSelElement;//(aTagName);
+
+        if assigned(aElement)
+           then begin
+              BeginUndoUnit('Set external Style');
+              try
+                 while assigned(aElement) do
+                    begin
+                       {$IFDEF EDLIB}
+                          //substitute old tag with new tag
+                          ChangeTag(DOC, aElement, aTagName);
+                       {$ENDIF}
+                       
+                       //kt aElement._className := aStyle;    // RHR
+                       aElement.className := aStyle;    // kt
+                       aElement := GetNextSelElement(aTagName);
+                    end;
+
+                 result := S_OK;
+              finally
+                 EndUndoBlock(result);
+              end;
+           end;
+     end
+     else begin
+        //this must be an error
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.QueryEnabled(cmdID: KS_Lib.CMDID): Boolean;
+begin
+  //asm int 3 end; //trap
+  Result := (QueryStatus(cmdID) and OLECMDF_ENABLED)  = OLECMDF_ENABLED;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.QueryLatched(cmdID: KS_Lib.CMDID): Boolean;
+var
+  dwStatus : OLECMDF;
+begin
+  //asm int 3 end; //trap
+  dwStatus := QueryStatus(cmdID);
+  
+  Result := (dwStatus and OLECMDF_LATCHED)  = OLECMDF_LATCHED;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED._CurFileName: string;
+begin
+  //asm int 3 end; //trap
+  result := FCurrentDocumentPath;
+  if Length(result) > 0
+     then Delete(result, 1, LastDelimiter('\/', result)); //drop path
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED._CurDir: string;
+begin
+  //asm int 3 end; //trap
+  result := FCurrentDocumentPath;
+  if (Length(result) > 0) and
+     (S_OK = IsFilePath(result, result))
+     then Delete(result, LastDelimiter('\/', result)+1, length(result)); //drop file
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetOleobject: IOleobject;
+begin
+  //asm int 3 end; //trap
+  {$IFDEF VER120} result := TwebBrowser(Self).Application_ as IOleobject; // Delphi 4.0
+  {$ELSE}         result := TwebBrowser(Self).Application as IOleobject;
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SetFocusToDoc;
+begin
+  //asm int 3 end; //trap
+  if TwebBrowser(Self).Document <> nil
+     then GetOleobject.DoVerb(OLEIVERB_UIACTIVATE, nil, self as IOleClientSite, 0, Handle, GetClientRect);
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SetBaseURL(const Value: String);
+  //---------------------------------------
+  function ValidFilePath(aPath: string): Boolean;
+  var
+     I: Integer;
+  begin
+     I := LastDelimiter('.\:', aPath);
+
+     result := (I > 0) and       //we have a path
+               ((aPath[I] = '\') or //it ends with backslash
+                (aPath[I] = '.')); //we found a trailing file name
+  end;
+  //---------------------------------------
+begin
+  //asm int 3 end; //trap
+
+  if ComponentInDesignMode
+     then begin
+        FBaseURL := '';
+        exit;
+     end;
+
+  {$IFDEF EDMONIKER}
+     {Setting BASEURL in the middle of an edit session has the side effect that the
+      MSHTML UNDO stack is cleared.
+
+      DHTMLEdit behaves even worse. The document is reloaded from disk causing all
+      non saved changes to be lost without any warning }
+
+     if AnsiSameText(FBaseURL, Value)//don't waist time setting the same BASEUrl
+        then exit;
+
+     if FBaseTagInDoc
+        then exit;     { a base tag in the document will override a BASEUrl
+                         so don't waist time trying }
+
+     //check for trailing backslash in a file path
+     if (pos('\', Value) > 0) and      //this is a file path
+        (Not ValidFilePath(Value))
+        then KsMessageI('SetBaseURL: Bad value')
+        else begin
+           FBaseURL := Value;
+           FSettingBaseURL := true;
+           SetBase_Url(Self);
+        end;
+ {$ELSE}
+     NotImplemented('SetBaseURL');
+ {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetBaseURL: String;
+begin
+  //asm int 3 end; //trap
+  if ComponentInDesignMode
+     then result := '' //always blank in design mode
+     else result := FBaseURL;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetBaseElement(var aBaseElement: IHTMLBaseElement): boolean;
+var
+  aCollection: IHTMLElementCollection;
+begin
+  //asm int 3 end; //trap
+  aCollection := (DOC as IHTMLDocument3).getElementsByTagName('BASE') as IHTMLElementCollection;
+  if aCollection.length < 1
+     then result := false
+     else begin
+        aBaseElement := aCollection.item(0, 0) as IHTMLBaseElement;
+        result := true;
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetActualAppName: string;
+begin
+  //asm int 3 end; //trap    - not used
+  Result := TheActualAppName;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SetActualAppName(const Value: string);
+begin
+  //asm int 3 end; //trap
+  TheActualAppName := Value;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SetBrowseMode(const Value: WordBool);
+begin
+  //asm int 3 end; //trap
+  FEditMode := not Value;
+
+  if TwebBrowser(Self).Document <> nil
+     then begin
+        if FEditMode
+           then DOC.designMode := 'On'
+           else DOC.designMode := 'Off';
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetBrowseMode: WordBool;
+begin
+  //asm int 3 end; //trap
+  result := not FEditMode;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.GetElementUnderCaret;
+var
+  aSel: IHTMLSelectionObject;
+  aDispatch: IDispatch;
+
+  //------------------------------
+  procedure GetSelection;
+  begin
+     aSel := Doc.selection;
+     if assigned(aSel)
+        then
+           try  //????? 
+              aDispatch := aSel.createRange;
+           Except
+           end;
+
+     if assigned(aDispatch)
+        then begin
+           if supports(aSel.createRange, IHTMLTxtRange, FActualTxtRange)
+              then begin
+                 FActualElement := FActualTxtRange.ParentElement;
+                 FActualRangeIsText := True;
+              end;
+        end
+        else begin
+           //last chance to ensure a valid TextRange
+           try
+              FActualTxtRange := (DOC.body as IHTMLBodyElement).createTextRange;
+              FActualTxtRange.Collapse(true);  //move to start of aTxtRange / document
+           except;
+              FActualTxtRange := nil;
+            end;
+        end;
+  end;
+  //------------------------------
+begin
+  //asm int 3 end; //trap
+  FLength := -1;
+  FFirstElement := 0;
+  FLastElement := 0;
+
+  if (FReadyState <> READYSTATE_COMPLETE)
+     then exit;
+
+  FActualControlRange := nil;
+  FActualTxtRange := nil;
+
+  aSel := DOC.Selection;
+
+  FSelectionType := aSel.type_;
+
+  if SameText(FSelectionType, 'None')
+     then begin
+        GetSelection;
+        FSelection := false;
+     end
+
+  else if SameText(FSelectionType, 'Text')
+     then begin
+        GetSelection;
+        FSelection := true;
+     end
+
+  else if SameText(FSelectionType, 'Control')
+     then begin
+        FSelection := true;
+        FActualElement := nil;
+
+        if assigned(aSel)
+           then begin
+              if supports(aSel.createRange, IHTMLControlRange, FActualControlRange)
+                 then begin
+                    FActualElement := FActualControlRange.commonParentElement;
+                    FActualRangeIsText := False;
+                    FActualTxtRange := (DOC.body as IHTMLBodyElement).createTextRange;
+
+                    OleCheck(FMarkupPointerStart.MoveAdjacentToElement(FActualElement, ELEM_ADJ_BeforeBegin));
+                    OleCheck(FMarkupPointerEnd.MoveAdjacentToElement(FActualElement, ELEM_ADJ_AfterEnd));
+
+                    //move rang in place
+                    OleCheck(FMarkUpServices.MoveRangeToPointers(FMarkupPointerStart, FMarkupPointerEnd, FActualTxtRange));
+
+                    //FActualTxtRange.MoveToElementText(FActualElement);
+                 end;
+           end
+           else GetSelection;
+      end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetActualElement: IHTMLElement;
+begin
+  //asm int 3 end; //trap
+  if (not assigned(FActualElement)) or
+     (FActualElement.OuterHTML = '')  // or we might get into troubles after
+     then GetElementUnderCaret;    // deletion of a element
+
+  result := FActualElement;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetActualTxtRange: IHTMLTxtRange;
+begin
+  //asm int 3 end; //trap
+  if not assigned(FActualTxtRange) // or we might get into troubles after
+     then GetElementUnderCaret;    // deletion of a element
+
+  result := FActualTxtRange;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetActualControlRange: IHTMLControlRange;
+begin
+  //asm int 3 end; //trap
+  result := FActualControlRange;
+end;
+//------------------------------------------------------------------------------
+Procedure TEmbeddedED.GetSelStartElement;
+var
+  aTxtRange: IHTMLTxtRange;
+begin
+  //asm int 3 end; //trap
+  aTxtRange := FActualTxtRange.duplicate;
+  aTxtRange.Collapse(True); //start of selection
+  FStartElementSourceIndex := aTxtRange.ParentElement.SourceIndex;
+end;
+//------------------------------------------------------------------------------
+Procedure TEmbeddedED.GetSelEndElement;
+var
+  aTxtRange: IHTMLTxtRange;
+begin
+  //asm int 3 end; //trap
+  aTxtRange := FActualTxtRange.duplicate;
+  aTxtRange.Collapse(False); //end of selection
+  FEndElementSourceIndex := aTxtRange.ParentElement.SourceIndex;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetElementNr(ElementNumber: Integer): IHTMLElement;
+var
+  aItem: Integer;
+begin
+  //asm int 3 end; //trap
+  aItem := FFirstElement + ElementNumber;
+  Result := FElementCollection.item(aItem, null) as IHTMLElement;
+  DebugString := Result.OuterHTML;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetSelLength: Integer;
+var
+  aElement: IHTMLElement;
+  PrevElement: IHTMLElement;
+  I: Integer;
+begin
+  //asm int 3 end; //trap
+  if FLength < 0 //not yet initialised
+     then begin
+        GetSelStartElement; //get element at start selection
+        GetSelEndElement;   //get element at end selection
+
+        FElementCollection := FActualElement.all as IHTMLElementCollection;
+        FLength := FElementCollection.length;
+
+        if FLength <  FEndElementSourceIndex - FStartElementSourceIndex
+           {sometimes i.e. if all cells in a table is selected only the last
+            element is returned in the ElementCollection :-(
+            But luckily FStartElementSourceIndex and FEndElementSourceIndex
+            is correctly computed }
+           then begin
+              FElementCollection := DOC.all as IHTMLElementCollection;
+              FLength := FElementCollection.length;
+           end;
+
+        if FLength = 0 //only one element selected
+           then begin
+              FFirstElement := 0;//FStartElementSourceIndex;
+              FLastElement := 0;//FStartElementSourceIndex;
+              Result := FLength;
+              exit;
+           end;
+
+        { the collection may contain more elements than selected.
+          return only elements that are inside the selection }
+
+        //Find first element inside selection
+        for I := 0 to FLength -1 do
+           begin
+              aElement := FElementCollection.item(i, null) as IHTMLElement;
+              { the first element sometimes have an sourceindex of one higher
+                than  FStartElementSourceIndex ? so break on <= }
+              if FStartElementSourceIndex <= aElement.SourceIndex
+                 then begin
+                    FFirstElement := I;  //first element inside selection
+                    break;
+                 end;
+              PrevElement := aElement;
+           end;
+
+        //certain elements must be kept together
+        if (FFirstElement > 0) and  (not KeepLI) and
+           SameText(PrevElement.tagName, 'LI')
+           then Dec(FFirstElement);
+
+
+
+        //Find last element inside selection
+        for I := FLength -1 downto 0 do
+           begin
+              aElement := FElementCollection.item(i, null) as IHTMLElement;
+              if FEndElementSourceIndex = aElement.SourceIndex
+                 then begin
+                    FLastElement := I;  //last element inside selection
+                    break;
+                 end;
+           end;
+
+        if FLastElement = FFirstElement
+           then FLength := 0 //there is 1 element in the collection
+           else FLength := FLastElement - FFirstElement;// +1;
+
+     end;
+
+  Result := FLength;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.GetSelParentElement;
+begin
+  //asm int 3 end; //trap
+  FActualElement := FActualElement.ParentElement;
+  FActualTxtRange.MoveToElementText(FActualElement);
+  FActualTxtRange.Select;
+  FLength := -1;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED._GetNextItem(const aTag: String = ''): IHTMLElement;
+var
+  aElement: IHTMLElement;
+
+  //-----------------------
+  Function LastElementsParents: boolean;
+  begin
+     LastElementsParents := False;
+     //we might find the searched element higher up the chain
+
+     while not SameText(aElement.tagName, cBODY) do
+        begin
+           aElement := aElement.parentElement;
+           if SameText(aElement.tagName, aTag)
+              then begin  //we  found it :-)
+                 _GetNextItem := aElement;
+                 LastElementsParents := true;
+                 break;
+              end;
+        end;
+  end;
+  //-----------------------
+begin
+  //asm int 3 end; //trap
+  if sameText('LI', aTag)
+     then KeepLI := True
+     else KeepLI := false;
+
+  {FLength = -1 means the GetLength function isn't initialised yet}
+  if (FLength > -1) and (FTagNumber >{=} FLength)  //no more tags in collection
+     then begin
+        Result := Nil;
+        exit;
+     end;
+
+  if GetSelLength = 0  //if GetLength isn't initialised yet it happens now
+     then begin
+        //only one element is selected
+        if (System.length(aTag) = 0) or
+            AnsiSameText(aTag, FActualElement.tagName)
+           then Result := FActualElement
+           else begin
+              Result := Nil;
+              aElement := FActualElement;
+              LastElementsParents;
+           end;
+        inc(FTagNumber);
+        exit;
+     end;
+
+  //get next element from collection
+  Result := GetElementNr(FTagNumber);
+  inc(FTagNumber);
+
+  if (System.Length(aTag) = 0) or          //no filter
+     (AnsiSameText(aTag, Result.tagName))  //tag is filtered - but match tag name
+     then exit;
+
+
+  //the first tag might not fully contain the searched tag
+
+  if FTagNumber = 1 //it is the first tag [ 0 incremented ]
+     then begin
+        aElement := Result;
+        if LastElementsParents
+           then exit;
+     end;
+
+
+  //loop tag collection looking fore a matching tag
+  while true do
+     begin
+        if FTagNumber > FLength  //no more tags in collection
+           then begin
+              Result := Nil;
+              Break;
+           end;
+
+        //get next element from collection
+        Result := GetElementNr(FTagNumber);
+        inc(FTagNumber);
+
+        if Assigned(Result) and AnsiSameText(aTag, Result.tagName)
+           then Break;
+     end;
+end;
+//------------------------------------------------------------------------------
+Function TEmbeddedED.GetFirstSelElement(const aTag: String = ''): IHTMLElement;
+begin
+  //asm int 3 end; //trap
+  FTagNumber := 0;
+  FLength := - 1;
+  Result := _GetNextItem(aTag);
+end;
+//------------------------------------------------------------------------------
+Function TEmbeddedED.GetNextSelElement(const aTag: String = ''): IHTMLElement;
+begin
+  //asm int 3 end; //trap
+  Result := _GetNextItem(aTag);
+end;
+//------------------------------------------------------------------------------
+Function TEmbeddedED.GetSelText: String;
+begin
+  //asm int 3 end; //trap
+  if FActualRangeIsText
+     Then Result := Trim(FActualTxtRange.Text)
+     else result := '';
+end;
+//------------------------------------------------------------------------------
+Function TEmbeddedED.IsSelType(aType: string): boolean;
+begin
+  //asm int 3 end; //trap
+  result := SameText(aType, FSelectionType);
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.KeepSelectionVisible;
+begin
+  //asm int 3 end; //trap
+ { after pasting text into a textrang the screen selection is cleared. }
+
+  FMarkUpServices.MoveRangeToPointers(FMarkupPointerStart, FMarkupPointerEnd, FActualTxtRange);
+  SelectActualTextrange;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetSelParentElementType(const aType: string; aMessage: string = ''): IHTMLElement;
+begin
+  //asm int 3 end; //trap
+
+  //go up to the aType-tag
+  GetParentElemetType(FActualElement, aType, Result);
+
+  if SameText(Result.tagName, cBODY) and (not SameText(cBODY, aType))
+     then begin
+        result := Nil;
+        if System.length(aMessage) > 0
+           then KSMessageI(aMessage);
+     end;
+end;
+//------------------------------------------------------------------------------
+Function TEmbeddedED.IsSelElementID(const ID: String): Boolean;
+begin
+  //asm int 3 end; //trap
+  Result := assigned(FActualElement) and AnsiSameText(FActualElement.ID, ID)
+end;
+//------------------------------------------------------------------------------
+Function TEmbeddedED.IsSelElementClassName(const ClassName: String): Boolean;
+begin
+  //asm int 3 end; //trap
+  //kt Result := AnsiSameText(FActualElement._ClassName, ClassName)   // RHR
+  Result := AnsiSameText(FActualElement.className, ClassName)   // kt
+end;
+//------------------------------------------------------------------------------
+Function TEmbeddedED.IsSelElementTagName(const TagName: String): Boolean;
+begin
+  //asm int 3 end; //trap
+  Result := AnsiSameText(FActualElement.TagName, TagName)
+end;
+//------------------------------------------------------------------------------
+Function TEmbeddedED.IsSelElementInVisible: Boolean;
+begin
+  //.asm int 3 end; //trap
+  result := SameText(FActualElement.Style.display, 'none')
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.IsSelElementAbsolute: boolean;
+begin
+  //.asm int 3 end; //trap    - not used
+  result := SameText(FActualElement.Style.Position, 'absolute')
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.MakeSelElementVisible(Show: boolean);
+begin
+  //asm int 3 end; //trap
+  if Show
+     then FActualElement.Style.display := ''
+     else FActualElement.Style.display := 'none';
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.TrimSelection;
+//remove any leading / trailing spaces from the selection.
+var
+  S: String;
+begin
+  //asm int 3 end; //trap
+  //beware Selection can contain selected elements ie. end wit an IMG tag
+
+  S := FActualTxtRange.htmlText;
+
+  //selection of spaces normaly only ocoures trailing, but just in case
+  while (System.length(S) > 0) and (S[1] = #32) do
+     begin
+        FActualTxtRange.MoveStart('character', 1);
+        Delete(S, 1, 1);
+     end;
+
+  while (System.length(S) > 0) and (S[System.Length(S)] = #32) do
+     begin
+        FActualTxtRange.MoveEnd('character', -1);
+        Delete(S, System.Length(S), 1);
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SelectActualTextrange;
+begin
+  //asm int 3 end; //trap
+  FActualTxtRange.Select;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SelectElement(aElement: IhtmlElement);
+begin
+  //asm int 3 end; //trap
+
+  if not assigned(aElement)
+     then exit;
+
+  FActualElement := aElement;
+
+  FActualRangeIsText := False;
+  if not assigned(FActualTxtRange)
+     then FActualTxtRange := (DOC.body as IHTMLBodyElement).createTextRange;
+  FActualTxtRange.MoveToElementText(FActualElement);
+
+  FActualTxtRange.Select;
+
+  if length(FActualElement.InnerHTML) = 0
+     then begin
+        if SetCursorAtElement(aElement, ELEM_ADJ_BeforeBegin)
+           then ShowCursor(true);
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.SetCursorAtElement(aElement: IhtmlElement; ADJACENCY:_ELEMENT_ADJACENCY): Boolean;
+begin
+  //asm int 3 end; //trap
+
+  result := false;
+  if not assigned(aElement)
+     then exit;
+
+  if S_OK = FMarkupPointerStart.MoveAdjacentToElement(aElement, ADJACENCY)
+     then begin
+        FDisplayPointerStart.SetDisplayGravity(DISPLAY_GRAVITY_NextLine);
+        if S_OK = FDisplayPointerStart.MoveToMarkupPointer(FMarkupPointerStart, nil)
+           then result := S_OK = FCaret.MoveCaretToPointer(FDisplayPointerStart, 0, CARET_DIRECTION_SAME);
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.CollapseActualTextrange(Start: boolean);
+begin
+  //.asm int 3 end; //trap    - not used
+  FActualTxtRange.Collapse(Start);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED._LoadFile(aFileName: String): HResult;
+var
+  OldFilePath: String;
+begin
+  //asm int 3 end; //trap
+  if TwebBrowser(Self).Document <> nil
+     then begin
+        FReadyState := 0;
+        OldFilePath := FCurrentDocumentPath;
+        FCurrentDocumentPath := aFileName;
+
+        Result := PersistFile.Load(StringToOleStr(aFileName),
+                                          STGM_READWRITE or STGM_SHARE_DENY_NONE);
+
+        { PersistStream.Load causes a DocumentComplete event with the last known URL
+          Typically this is about:blank }
+
+        WaitForDocComplete;
+
+        if result <> S_OK
+           then FCurrentDocumentPath := OldFilePath;
+     end
+     else result := S_false;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.LoadFile(var aFileName: String): HResult;
+begin
+  //asm int 3 end; //trap
+  result := LoadFile(aFileName, false);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.LoadFile(var aFileName: String; PromptUser: boolean): HResult;
+var
+  S: String;
+
+  //---------------------------------------------
+  function GetFileName(Var aFileName: String): Boolean;
+  var
+     aOpenDlg: TOpenDialog;
+  begin
+     aOpenDlg := TOpenDialog.Create(Nil);
+     try
+        aOpenDlg.Filter := aFilter;
+        aOpenDlg.Filename := aFileName;
+        aOpenDlg.Options := [ofEnableSizing, ofFileMustExist];
+
+        if aOpenDlg.Execute
+           then begin
+              aFileName := aOpenDlg.FileName;
+              Result := true;
+           end
+           else result := false;
+     finally
+        aOpenDlg.free;
+     end;
+  end;
+  //----------------------------------------------
+  function DoLocalFile: HResult;
+  begin
+     if (not PromptUser) and
+        FileExists(aFileName)
+        then result := _LoadFile(aFileName)
+        else begin
+           if GetFileName(aFileName)
+              then Result := _LoadFile(aFileName)
+              else result := S_false;
+        end;
+  end;
+  //----------------------------------------------
+begin
+  //asm int 3 end; //trap
+
+  result := EndCurrentDoc(CancelPosible, FSkipDirtyCheck);
+
+  if result = S_OK
+     then begin
+        if pos('file://', LowerCase(aFileName)) = 1
+           then begin
+              //we have a file protocol path
+              if IsFilePath(aFileName, S) = S_OK
+                 then begin
+                    aFileName := S;
+                    if FileExists(aFileName)
+                       then result := _LoadFile(aFileName)
+                       else result := DoLocalFile;
+
+                    if result = S_OK
+                       then Delete(aFileName, LastDelimiter('\/', aFileName)+1, Length(aFileName));
+                 end;
+           end
+
+        else if (pos('http://', LowerCase(aFileName)) = 1) or (pos('www.', LowerCase(aFileName)) = 1)
+           then begin
+              //we have a http protocol path
+              Result := GO(aFileName);
+           end
+
+        else begin
+           result := DoLocalFile;
+           if result = S_OK
+              then Delete(aFileName, LastDelimiter('\/', aFileName)+1, Length(aFileName));
+        end;
+
+        if result = S_OK
+           then begin
+              if Assigned(FAfterLoadFile)
+                 then FAfterLoadFile(Self, FCurrentDocumentPath);
+           end;
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.DocIsPersist: boolean;
+var
+  Pw: PWideChar;
+begin
+  //asm int 3 end; //trap
+  if TwebBrowser(Self).Document <> nil
+     then result := S_OK = PersistFile.GetCurFile(Pw)
+     else result := false;
+end;
+//------------------------------------------------------------------------------
+Function TEmbeddedED.GetPersistedFile: String;
+var
+  Pw: PWideChar;
+begin
+  //asm int 3 end; //trap
+  // just return the BaseURL if we have a htttp path or a local file path
+
+  if TwebBrowser(Self).Document <> nil
+     then begin
+        if S_OK = PersistFile.GetCurFile(Pw) //this also tests for persisted file
+           then begin
+              result := Pw;
+
+              if (length(result) > 0) and
+                 (pos('file://', result) = 1) //we have a file protocol path
+                 then begin
+                    //.asm int 3 end; //trap
+                    delete(result, 1, 7);
+                 end;
+
+              result := StringReplace(result, '/', '\', [rfReplaceAll]);
+           end
+
+        else begin       //the document is not a persisted file
+           result := DOC.URL;
+
+           //drop bookmark - just in case
+           Delete(result, LastDelimiter('#', result), length(result));
+
+
+           { this is a special case - normally only in case of a "preview browser where
+             the document content is feed in via DocumentHTML - causing the documents
+             file path to become about:blank
+             If the real document pat is set via SetDocumentPath we can use that in stead
+             of about:blank}
+           If SameText(result, AboutBlank) //and (Length(FDocumentPath) > 0)
+              then result := '';//FDocumentPath;
+        end;
+  end
+  else result := '';
+
+
+{ LocationName: the name of the resource currently displayed in the Web browser control.
+  If the resource is an HTML page from the Web, LocationName is the title of that page.
+  If the resource is a folder or file on the local network or on a disk,
+  LocationName is the full UNC name of the folder or file.  }
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetSaveFileName(var aFile: string): HResult;
+var
+  aSaveDlg: TSaveDialog;
+begin
+  //asm int 3 end; //trap
+  aSaveDlg := TSaveDialog.Create(Nil);
+  try
+     aSaveDlg.DefaultExt := 'htm';
+     aSaveDlg.Filter := aFilter;
+     aSaveDlg.InitialDir := ExtractFilePath(aFile);
+     aSaveDlg.Filename := aFile;
+     aSaveDlg.Options := [ofOverwritePrompt, ofPathMustExist, ofNoReadOnlyReturn, ofEnableSizing];
+
+     if aSaveDlg.Execute
+        then begin
+           aFile := aSaveDlg.Filename;
+           result := S_OK;
+        end
+        else begin
+           aFile := '';
+           result := S_false;
+        end;
+  finally
+     aSaveDlg.free;
+  end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.AfterFileSaved;
+begin
+  //asm int 3 end; //trap
+  if Assigned(FAfterSaveFile)
+     then FAfterSaveFile(Self);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.SaveFile: HResult;
+begin
+  //asm int 3 end; //trap
+  result :=  DoSaveFile;
+
+  if result = S_OK
+     then AfterFileSaved;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED._DoSaveFile: HResult;
+Const
+  ClearDirtyFlag: boolean = true;
+begin
+  //asm int 3 end; //trap
+
+  _CheckGenerator(False);
+
+  if DocIsPersist  //DOC is file based
+     then Result := PersistFile.Save(Nil, ClearDirtyFlag)
+     else Result := PersistFile.Save(StringToOleStr(FCurrentDocumentPath), ClearDirtyFlag);
+
+  if result = S_OK
+     then FHTMLImage := KS_Lib.GetHTMLtext(DOC); //Get SnapShot of current HTML Source
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.DoSaveFile: HResult;
+var
+  IsPersist: Boolean;
+begin
+  //asm int 3 end; //trap
+
+  IsPersist := DocIsPersist;  //DOC is file based
+
+  if (not IsDirty) and IsPersist and (not (GetAsyncKeyState(VK_CONTROL) < 0))
+     then begin
+        result := S_OK; //no need to save a clean file
+        exit;
+     end;
+
+  result := S_false;
+
+  if (TwebBrowser(Self).Document = nil) or (not FEditMode)
+     then exit;
+
+  if Assigned(FBeforeSaveFile)
+     then begin
+        FBeforeSaveFile(Self);
+        //WaitForDocComplete;  //just in case the document was changed
+     end;
+
+  if IsPersist or
+     ((Length(FCurrentDocumentPath) > 0) and fileExists(FCurrentDocumentPath))
+     then result := _DoSaveFile
+     else result := SaveFileAs;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.SaveFileAs(aFile: string = ''): HResult;
+begin
+  //asm int 3 end; //trap
+  result :=  DoSaveFileAs(aFile);
+
+  if result = S_OK
+     then AfterFileSaved;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.DoSaveFileAs(aFile: String): HResult;
+Const
+  ClearDirtyFlag: boolean = true;
+var
+  DoSave: boolean;
+begin
+  //asm int 3 end; //trap
+  if (TwebBrowser(Self).Document = nil) or (not FEditMode)
+     then begin
+        result := S_false;
+        exit;
+     end;
+
+  if length(aFile) > 0
+     then begin
+        { this wont work because the MSHTML dialog always shows up
+          Ov := aFile;
+          result := DoCommand(IDM_SAVEAS, OLECMDEXECOPT_DONTPROMPTUSER, Ov); }
+
+
+        { this gives the user a Delphi save dialog  }
+        If FileExists(aFile)
+           then DoSave := IDYES = KSQuestion(aFile + ' already exists.' +CrLf+
+                                             'Do you want to replace it?', '',
+                                             MB_ICONWARNING or MB_YESNO)
+           else begin
+              ForceDirectories(ExtractFilePath(aFile));
+              DoSave := true;
+           end;
+
+        if DoSave
+           then begin
+              _CheckGenerator(false);
+              Result := PersistFile.Save(StringToOleStr(aFile), false);
+           end
+           else Result := E_ABORT;
+     end
+     else begin
+        {this gives the user MSHTML's own save dialog }
+        _CheckGenerator(false);
+        result := CmdSet(IDM_SAVEAS);
+     end;
+
+  if result = S_OK //file was saved successfully
+     then begin
+        FCurrentDocumentPath := GetPersistedFile;
+        { we need to re-parse the DOC from the new path
+          this also get us a new FHTMLImage !
+
+          FBASEUrl is set as a result to _LoadFile ! }
+
+        result := _LoadFile(FCurrentDocumentPath);
+
+        if FCurBackFile <> ChangeFileExt(FCurrentDocumentPath, '.bak')
+        then begin
+           Sysutils.DeleteFile(FCurBackFile);
+           CreateBackUp;
+        end;
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SetLiveResize(const Value: Boolean);
+var
+  Ov: OleVariant;
+begin
+  //asm int 3 end; //trap
+  FLiveResize := Value;
+  if TwebBrowser(Self).Document <> nil
+     then begin
+        Ov := FLiveResize;
+        CmdSet(IDM_LIVERESIZE, Ov);
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.Set2DPosition(const Value: Boolean);
+var
+  Ov: OleVariant;
+begin
+  //asm int 3 end; //trap
+  F2DPosition := Value;
+  if TwebBrowser(Self).Document <> nil
+     then begin
+        Ov := F2DPosition;
+        CmdSet(IDM_2D_POSITION, Ov);
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetMSHTMLwinHandle: Hwnd;
+begin
+  //asm int 3 end; //trap
+  //get the DHTMLedit component's main window handle
+  
+  if FOleInPlaceActiveObject = nil
+     then GetInPlaceActiveObject;
+
+  result := FmsHTMLwinHandle;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.ScrollDoc(Pos: Integer);
+begin
+  //asm int 3 end; //trap
+  if (TwebBrowser(Self).Document <> nil) and (Pos > 0)
+     then begin
+        (Doc.Body as IHTMLElement2).ScrollTop := Pos;
+        FScrollTop := 0;
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SetMouseElement(P: Tpoint; aWinHandle: Hwnd = 0);
+begin
+  //asm int 3 end; //trap
+  if aWinHandle > 0
+  { MouseClickOnElement is in screen coordinate,
+       change it to DHTML window coordinate }
+     then Windows.ScreenToClient(aWinHandle, P);
+
+  FActualElement := DOC.elementFromPoint(P.x, P.y);
+
+  FActualRangeIsText := False;
+  if not assigned(FActualTxtRange)
+     then FActualTxtRange := (DOC.body as IHTMLBodyElement).createTextRange;
+  FActualTxtRange.MoveToElementText(FActualElement);
+end;
+//------------------------------------------------------------------------------
+Function TEmbeddedED.RemoveElementID(const TagID: String): Boolean;
+var
+  MarkUp: IMarkupServices;
+  aElement: IHTMLElement;
+  I: Integer;
+begin
+  //asm int 3 end; //trap
+  MarkUp := Doc as IMarkupServices;
+  Result := False;
+
+  for i := 0 to FLength - 1 do
+     begin
+        aElement := GetElementNr(i);
+
+        if not assigned(aElement)
+           then continue;
+
+        if AnsiSameText(TagID, aElement.ID)
+           then begin
+              Markup.RemoveElement(aElement);
+              Result := True;
+           end;
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.ShowHighlight(pIRange: IHTMLTxtRange = nil);
+var
+  aTxtRange: IHTMLTxtRange;
+begin
+  //asm int 3 end; //trap
+
+  if pIRange = nil
+     then begin
+        aTxtRange := (DOC.body as IHTMLBodyElement).createTextRange;
+        aTxtRange.moveToElementText(FActualElement);
+     end
+     else aTxtRange := pIRange.duplicate;
+
+  FMarkUpServices.MovePointersToRange(aTxtRange, FMarkupPointerStart, FMarkupPointerEnd);
+
+  //kt FDisplayPointerStart.MoveToMarkupPointer(FMarkupPointerStart as MSHTML_TLB.IMarkupPointer, nil);
+  FDisplayPointerStart.MoveToMarkupPointer(FMarkupPointerStart as MSHTML_EWB.IMarkupPointer, nil);  //kt
+  //ktFDisplayPointerEnd.MoveToMarkupPointer(FMarkupPointerEnd as MSHTML_TLB.IMarkupPointer, nil);
+  FDisplayPointerEnd.MoveToMarkupPointer(FMarkupPointerEnd as MSHTML_EWB.IMarkupPointer, nil); //kt
+
+  if assigned(FHighlightSegment)
+     then HideHighlight;
+
+  FHighlight.AddSegment(FDisplayPointerStart, FDisplayPointerEnd, FRenderStyle, FHighlightSegment);
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.HideHighlight;
+begin
+  //asm int 3 end; //trap
+  if assigned(FHighlightSegment)
+     then FHighlight.RemoveSegment(FHighlightSegment);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.MovePointersToRange(const aRange: IHTMLTxtRange): HResult;
+begin
+  //.asm int 3 end; //trap
+  Result := FMarkUpServices.MovePointersToRange(aRange, FMarkupPointerStart, FMarkupPointerEnd);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.MovePointersToSel: HResult;
+begin
+  //.asm int 3 end; //trap
+  Result := MovePointersToRange(FActualTxtRange);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.CreateElement(const tagID: _ELEMENT_TAG_ID; var NewElement: IHTMLElement; const aTxtRange: IHTMLTxtRange = nil; const Attributes: string = ''): HResult;
+begin
+  //asm int 3 end; //trap
+  //attributes form:
+
+  {$IFDEF EDLIB}
+     if aTxtRange = nil
+        then result := EDLIB.CreateElement(DOC, tagID, NewElement, FActualTxtRange, Attributes)
+        else result := EDLIB.CreateElement(DOC, tagID, NewElement, aTxtRange, Attributes);
+  {$ELSE}
+     result := S_False;
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.InsertElementAtCursor(var aElement: IHTMLElement; const aTxtRange: IHTMLTxtRange = nil): HResult;
+begin
+  //asm int 3 end; //trap
+  { The returned IHTMLTxtRange contains the new tag - if its not a control ??}
+
+  {$IFDEF EDLIB}
+     Result := EDLIB.InsertElementAtCursor(DOC, aElement, aTxtRange);
+  {$ELSE}
+     result := S_False;
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.CreateMetaTag(var aMetaElement: IHTMLMetaElement): HResult;
+begin
+  //asm int 3 end; //trap
+  {$IFDEF EDLIB}
+     Result := EDLIB.CreateMetaTag(DOC, aMetaElement);
+  {$ELSE}
+     result := S_False;
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.MoveTextRangeToPointer(aTxtRange: IHTMLTxtRange = nil): IHTMLTxtRange;
+begin
+  //asm int 3 end; //trap
+  if assigned(aTxtRange)
+     then begin
+        FMarkUpServices.MoveRangeToPointers(FMarkupPointerStart, FMarkupPointerEnd, aTxtRange);
+        result := aTxtRange;
+     end
+     else begin
+        FMarkUpServices.MoveRangeToPointers(FMarkupPointerStart, FMarkupPointerEnd, FActualTxtRange);
+        result := FActualTxtRange;
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SetDebug(value: Boolean);
+begin
+  //asm int 3 end; //trap
+  FDebug := value;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetCurrentFontName: string;
+var
+  FontName: variant;
+begin
+  //asm int 3 end; //trap
+  result := ''; // FontName not found
+
+  if QueryEnabled(IDM_FONTNAME)
+     then begin
+        FontName := CmdGet(IDM_FONTNAME);
+        if VarType(FontName) = varOleStr
+           then result := FontName
+           else; //multiple element selection
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetFontNameIndex(aList: String): Integer;
+var
+  FontName: variant;
+  //I: Integer;
+  list: TStringlist;
+begin
+  //asm int 3 end; //trap
+  result := -1; // FontName not found
+
+  if QueryEnabled(IDM_FONTNAME)
+     then begin
+        FontName := CmdGet(IDM_FONTNAME);
+        if VarType(FontName) = varOleStr
+           then begin
+              list := TStringlist.Create;
+              try
+                 list.Text := aList;
+                 result := List.IndexOf(FontName);
+              finally
+                 list.free;
+              end;
+           end
+           else; //multiple element selection
+     end;
+end;
+//------------------------------------------------------------------------------
+function EnumFontsProc(var LogFont: TLogFont; var Metric: TTextMetric; FontType: Integer; Data: Pointer): Integer; stdcall;
+var
+  St: TStrings;
+  aFaceName: string;
+begin
+  //asm int 3 end; //trap
+  St := TStrings(Data);
+  aFaceName := LogFont.lfFaceName;
+
+  if (St.Count = 0) or
+  (AnsiCompareText(St[St.Count-1], aFaceName) <> 0)
+     then St.Add(aFaceName);
+
+  Result := 1;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetFonts: String;
+var
+  DC: HDC;
+  LFont: TLogFont;
+begin
+  //asm int 3 end; //trap
+
+  if FFonts = nil
+     then begin
+        FFonts := TStringList.Create;
+        DC := GetDC(GetMSHTMLwinHandle);
+           try
+              FFonts.Add('Default');
+              FillChar(LFont, sizeof(LFont), 0);
+              LFont.lfCharset := DEFAULT_CHARSET;
+              //we send the resulting fontlist (FFonts) to EnumFontsProc as a param
+              EnumFontFamiliesEx(DC, LFont, @EnumFontsProc, LongInt(FFonts), 0);
+              TStringList(FFonts).Sorted := TRUE;
+           finally
+              ReleaseDC(0, DC);
+           end;
+     end;
+
+  Result := FFonts.Text;
+
+  //just a test
+  if (Screen.Fonts.text <> result) and   //this seem newer to be true !
+     FDebug
+     then beep;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetFontSizeIndex(const aList: String; var Changed: String): Integer;
+var
+  vo: OleVariant;
+  aCurStyle: IHTMLCurrentStyle;
+  s: String;
+
+  //------------------------------------------------
+  function GetBaseSize: string;
+  begin
+     result := '1  (  8 pt)' +CrLf +
+               '2  (10 pt)' +CrLf +
+               '3  (12 pt)' +CrLf +
+               '4  (14 pt)' +CrLf +
+               '5  (18 pt)' +CrLf +
+               '6  (24 pt)' +CrLf +
+               '7  (36 pt)';
+  end;
+  //------------------------------------------------
+begin
+  //asm int 3 end; //trap
+
+  result := -1; //no size found
+
+  if Length(aList) = 0
+     then Changed := GetBaseSize
+     else Changed := '';
+
+  if not QueryEnabled(IDM_FONTSIZE)
+     then exit;
+
+
+  Vo := CmdGet(IDM_FONTSIZE);   //this gets the standard size 1-7 in stead of
+  if VarType(vo) = VarInteger   //x-small and the like
+     then begin
+        result := Vo-1;
+        exit;
+     end;
+
+  if FActualElement = nil
+     then exit;
+
+  aCurStyle := (FActualElement as IHTMLElement2).Get_CurrentStyle;
+
+  S := aCurStyle.Get_fontSize;
+  if S <> ''
+     then begin
+        Changed := GetBaseSize +CrLf + S;
+        result := 7;
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetStylesIndex: Integer;
+var
+  S: String;
+begin
+  //asm int 3 end; //trap
+
+  if QueryEnabled(IDM_BLOCKFMT)
+     then begin
+        {$IFDEF EDLIB}
+           S := getFontStyle(Self);
+        {$ELSE}
+           S := CmdGet(IDM_BLOCKFMT);
+        {$ENDIF}
+
+        if not FStyles.Find(S, result)
+           then result := -1;
+     end
+     else result := -1;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetStylesIndex(aList: String): Integer;
+//this is only to keep compatibility with OCX ver 1.0
+var
+  S: String;
+  List: TStringList;
+  //aElement: IhtmlElement;
+begin
+  //asm int 3 end; //trap
+  //Available styles
+
+  if QueryEnabled(IDM_BLOCKFMT)
+     then begin
+        {$IFDEF EDLIB}
+           S := getFontStyle(Self);
+        {$ELSE}
+           S := CmdGet(IDM_BLOCKFMT);
+        {$ENDIF}
+
+        List := TStringList.Create;
+        try
+           List.Text := aList;
+           result := List.IndexOf(S);
+        finally
+           List.free;
+        end
+     end
+     else result := -1;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SyncDOC(HTML: string; SelStart, SelEnd: Integer);
+var
+  Generator: Boolean;
+begin
+  //asm int 3 end; //trap
+
+  {$IFDEF EDPARSER}
+     {$IFDEF EDLIB}
+        Generator := true;
+     {$ENDIF}
+
+     //place the cursor at same pos in WYSIWY as in the string
+     KSIEParser.SyncDOC(Self, HTML, SelStart, SelEnd, Generator);
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.SelectedDocumentHTML(var SelStart, SelEnd: Integer): String;
+var
+  Generator: Boolean;
+begin
+  //asm int 3 end; //trap
+  
+  {$IFDEF EDPARSER}
+     {$IFDEF EDLIB}
+        Generator := true;
+     {$ENDIF}
+
+     //place the cursor at same pos in WYSIWY as in the string
+     Result := KSIEParser.SelectedDocumentHTML(Self, SelStart, SelEnd, Generator);
+  {$ELSE}
+      SelStart := -1;
+      SelEnd := -1;
+      Result := KS_Lib.GetHTMLtext(DOC);
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetSelStartEnd(Var SelStart, SelEnd: Integer): boolean;
+begin
+  //asm int 3 end; //trap
+  result :=
+     (S_OK = FMarkUpServices.MovePointersToRange(ActualTextRange, FMarkupPointerStart, FMarkupPointerEnd)) and
+     //get selection in a reselectable form
+     (S_OK = (FMarkupPointerStart as IMarkupPointer2).GetMarkupPosition(SelStart)) and
+     (S_OK = (FMarkupPointerEnd as IMarkupPointer2).GetMarkupPosition(SelEnd));
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.SetSelStartEnd(SelStart, SelEnd: Integer): boolean;
+var
+  aMarkupContainer: IMarkupContainer;
+begin
+  //asm int 3 end; //trap
+
+  if (SelStart > 0) and (SelEnd > 0)
+     then begin
+        //Restore selected TextRange
+        aMarkupContainer := Doc as IMarkupContainer;
+        if (S_OK = (FMarkupPointerStart as IMarkupPointer2).MoveToMarkupPosition(aMarkupContainer, SelStart)) and
+           (S_OK = (FMarkupPointerEnd as IMarkupPointer2).MoveToMarkupPosition(aMarkupContainer, SelEnd)) and
+           (S_OK = FMarkupServices.MoveRangeToPointers(FMarkupPointerStart, FMarkupPointerEnd, ActualTxtRange))
+           then ActualTxtRange.select;
+        result := true;
+     end
+     else result := false;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.ISEmptyParam(value: Olevariant): Boolean;
+begin
+  //asm int 3 end; //trap
+  result := (TVarData(value).VType = varError) and
+            (TVarData(value).VError = $80020004);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetPrintFileName: String;
+var
+  aFileName: String;
+
+  //---------------------------------------
+  function ValidFileName(aPath: string): Boolean;
+  var
+     I: Integer;
+  begin
+     I := LastDelimiter('.\:', aPath);
+
+     result := (I > 0) and       //we have a path
+               ((aPath[I] = '\') or //it ends with backslash
+                (aPath[I] = '.')); //we found a trailing file name
+  end;
+  //---------------------------------------
+begin
+  //asm int 3 end; //trap
+
+  if length(CurFileName) > 0
+     then result := CurFileName
+     else begin
+        if ValidFileName(FBaseUrl)
+           then result := FBaseUrl
+           else result := '';
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetLastError: string;
+begin
+  //asm int 3 end; //trap
+  result := FLastError;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.OpenChangeLog: HResult;
+begin
+  //asm int 3 end; //trap
+  {$IFDEF EDUNDO}
+     result := UUndo.OpenChangeLog(self, FTUndo);
+  {$ELSE}
+     result := S_OK;
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.WaitAsyncMessage(var Msg: Tmessage);
+begin
+  //asm int 3 end; //trap
+  FWaitMessage := true;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.BeginUndoUnit(aTitle: String = 'Default'): HResult;
+begin
+  //asm int 3 end; //trap
+
+  if FLocalUndo
+     then begin
+        {$IFDEF EDUNDO}
+           if FTUndo <> nil
+              then result := TUndo(FTUndo).BeginUndoUnit(aTitle)
+              else result := S_False;
+        {$ENDIF}
+     end
+     else begin
+        {$IFDEF EDLIB}
+           result := EDLIB.BeginUndoUnit(Self, aTitle);
+        {$ELSE}
+           result := S_False;
+        {$ENDIF}
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.EndUndoUnit: HResult;
+begin
+  //asm int 3 end; //trap
+
+  if FLocalUndo
+     then begin
+        if FTUndo <> nil
+           then begin
+              {$IFDEF EDUNDO}
+                 TUndo(FTUndo).EndUndoBlock;
+                 result := S_OK;
+              {$ENDIF}
+           end
+           else result := S_False;
+     end
+     else begin
+        {$IFDEF EDLIB}
+           result := EDLIB.EndUndoUnit(Self);
+        {$ELSE}
+           result := S_False;
+        {$ENDIF}
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.LoadURL(url: String);
+var
+  aFileName: String;
+begin
+  // just DHTML Compatibility
+  //asm int 3 end; //trap
+
+  aFileName := url;
+  if Length(aFileName) = 0
+     then begin
+        if length(ActualAppName) = 0 //only set default one time
+           then ActualAppName := LowerCase(ExtractFileName(GetModuleName));
+
+        aFileName := KSInputQuery(ActualAppName, 'URL:', 'http://', 40);
+        if (length(aFileName) = 0) or (aFileName = 'http://')
+           then exit;
+     end;
+
+  LoadFile(aFileName, False);
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.LoadDocument(var pathIn, promptUser: OleVariant);
+var
+  aFileName: String;
+  aPrompt: boolean;
+begin
+  // just DHTML Compatibility
+  //asm int 3 end; //trap
+  try
+     if VarType(pathIn) = varOleStr
+        then aFileName := pathIn
+        else aFileName := '';
+
+     if VarType(promptUser) = varBoolean
+        then aPrompt := promptUser
+        else aPrompt := true;
+
+     LoadFile(aFileName, aPrompt);
+     pathIn := aFileName;
+  except
+     //just catch any error
+  end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SaveDocument(var pathIn, promptUser: OleVariant);
+var
+  aFileName: string;
+  aPrompt: boolean;
+begin
+  // just DHTML Compatibility
+  //asm int 3 end; //trap
+  try
+     aFileName := pathIn;
+     aPrompt := promptUser;
+     if aPrompt
+        then begin
+           if GetSaveFileName(aFileName) <> S_OK
+              then exit;
+        end;
+
+     if sameText(aFileName, FCurrentDocumentPath)
+        then SaveFile
+        else SaveFileAs(aFileName);
+     pathIn := aFileName;
+  except
+     //catch any error
+  end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.FContextMenuClicked(Sender: TObject);
+begin
+  //asm int 3 end; //trap
+  if assigned(FOnContextMenuAction)
+     then FOnContextMenuAction(Self, (Sender as TMenuItem).Tag);
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SetContextMenu(var menuStrings, menuStates: OleVariant);
+var
+  Ps: PSafeArray;
+  Pw: PWideChar;
+  aState: OLE_TRISTATE;
+  I: Integer;
+  aCaption: string;
+  NewMenuItem: TMenuItem;
+begin
+  // just DHTML Compatibility
+  //asm int 3 end; //trap
+
+  FContextMenu.Items.Clear;
+
+  try
+     if (VarArrayLowBound(menuStrings, 1) < 0) or
+        (VarArrayLowBound(menuStates, 1) < 0)  or
+        (VarArrayHighBound(menuStrings, 1) <> VarArrayHighBound(menuStates, 1))
+        then exit;
+
+     Ps := TVariantArg(menuStrings).pArray;
+     for I := VarArrayLowBound(menuStrings, 1) to VarArrayHighBound(menuStrings, 1) do
+        begin
+           //add a new menu item to the popup menu
+           NewMenuItem := TMenuItem.Create(nil);
+           NewMenuItem.OnClick := FContextMenuClicked;
+           NewMenuItem.Tag := I;
+
+           //get each string from the SafeArray
+           SafeArrayGetElement(Ps, I, Pw);
+           aCaption := OleStrToString(Pw);
+                               //blank menu item = separator in Context Menu
+           if aCaption = ''    //we need - in a TPopUpmenu as separator
+              then NewMenuItem.Caption := '-'
+              else NewMenuItem.Caption := aCaption;
+
+           FContextMenu.Items.Add(NewMenuItem);
+        end;
+
+     Ps := TVariantArg(menuStates).pArray;
+     for I := VarArrayLowBound(menuStates, 1) to VarArrayHighBound(menuStates, 1) do
+        begin
+           //get each string from the SafeArray
+           SafeArrayGetElement(Ps, I, aState);
+           case aState of    // 0= Unchecked  1=Checked  2=Grayed
+              0: {Nop};
+              1: FContextMenu.Items[I].Checked := True;
+              2: FContextMenu.Items[I].Enabled := false;
+           end;
+        end;
+  except
+     //just catch any error
+  end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SetGridX(const Value: integer);
+begin
+  //asm int 3 end; //trap
+  FGridX := Value;
+  if assigned(FEditHost)
+     then TEditHost(FEditHost).FGridX := FGridX;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SetGridY(const Value: integer);
+begin
+  //asm int 3 end; //trap
+  FGridY := Value;
+    if assigned(FEditHost)
+     then TEditHost(FEditHost).FGridY := FGridY;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SetSnapEnabled(const Value: Boolean);
+begin
+  //asm int 3 end; //trap
+  FSnapEnabled := Value;
+    if assigned(FEditHost)
+     then TEditHost(FEditHost).FSnapEnabled := FSnapEnabled;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.Get_AbsoluteDropMode: Boolean;
+begin
+  //asm int 3 end; //trap
+  result := FAbsoluteDropMode;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.Get_ShowBorders: WordBool;
+begin
+  //asm int 3 end; //trap
+  result := FShowBorders;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.Set_AbsoluteDropMode(const Value: Boolean);
+begin
+  //asm int 3 end; //trap
+  FAbsoluteDropMode := value;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetAppearance(aType: TUserInterfaceOption): TDHTMLEDITAPPEARANCE;
+begin
+  //asm int 3 end; //trap
+
+  if aType in FUserInterfaceOptions
+     then result := DEAPPEARANCE_FLAT
+     else result := DEAPPEARANCE_3D;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.Get_Appearance: TDHTMLEDITAPPEARANCE;
+begin
+  //asm int 3 end; //trap
+
+  result := GetAppearance(NoBorder);
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.Set_Appearance(const Value: TDHTMLEDITAPPEARANCE);
+begin
+  //asm int 3 end; //trap
+
+  if value <> Get_Appearance
+     then begin
+        if value = DEAPPEARANCE_FLAT
+           then Include(FUserInterfaceOptions, NoBorder)
+           else Exclude(FUserInterfaceOptions, NoBorder);
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.Get_ScrollbarAppearance: TDHTMLEDITAPPEARANCE;
+begin
+  //asm int 3 end; //trap
+
+  result := GetAppearance(FlatScrollBar);
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.Set_ScrollbarAppearance(const Value: TDHTMLEDITAPPEARANCE);
+begin
+  //asm int 3 end; //trap
+
+  if value <> Get_ScrollbarAppearance
+     then begin
+        if value = DEAPPEARANCE_FLAT
+           then Include(FUserInterfaceOptions, FlatScrollBar)
+           else Exclude(FUserInterfaceOptions, FlatScrollBar);
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.Get_Scrollbars: WordBool;
+begin
+  //asm int 3 end; //trap
+  result := not(NoScrollBar in FUserInterfaceOptions);
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.Set_Scrollbars(const Value: WordBool);
+begin
+  //asm int 3 end; //trap
+
+  if value <> Get_Scrollbars
+     then begin
+        if value
+           then Exclude(FUserInterfaceOptions, NoScrollBar)
+           else Include(FUserInterfaceOptions, NoScrollBar);
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.Set_ShowBorders(const Value: WordBool);
+begin
+  //asm int 3 end; //trap
+
+  if value <> FShowBorders
+     then begin
+        FShowBorders := value;
+
+        if not ComponentInDesignMode
+           then CmdSet_B(IDM_SHOWZEROBORDERATDESIGNTIME, FShowBorders);
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.Get_UseDivOnCarriageReturn: WordBool;
+begin
+  //asm int 3 end; //trap
+  result := DivBlockOnReturn in FUserInterfaceOptions;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.Set_UseDivOnCarriageReturn(const Value: WordBool);
+begin
+  //asm int 3 end; //trap
+
+  if value <> Get_UseDivOnCarriageReturn
+     then begin
+        if value
+           then Include(FUserInterfaceOptions, DivBlockOnReturn)
+           else Exclude(FUserInterfaceOptions, DivBlockOnReturn);
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.KSTEst(var pInVar, pOutVar: OleVariant): HResult;
+        //call edit.CmdGet(KS_TEST, ov);
+var
+  sFindThis: string;
+  //kt FP: MSHTML_TLB.IMarkupPointer; //points to end of searched string - if found
+  FP: MSHTML_EWB.IMarkupPointer; //points to end of searched string - if found
+  FMarkupContainer: IMarkupContainer;
+begin
+  //asm int 3 end; //trap
+
+  {$IFDEF EDLIB}
+     sFindThis := InputBox('Search', 'Please enter the string to search for...', '');
+     if length(sFindThis) = 0
+        then exit;
+
+     FMarkupContainer := Doc as IMarkupContainer;
+
+     //Search from start of document
+     OleCheck(FMarkupPointerStart.MoveToContainer(FMarkupContainer, Integer(True)));
+     //Search to end of document
+     OleCheck(FMarkupPointerEnd.MoveToContainer(FMarkupContainer, Integer(False)));
+
+     if S_OK = EDFindText(Self, FMarkupPointerStart, FMarkupPointerEnd, sFindThis, FP)
+        then begin
+            if S_OK = EDInsertText(Self, FP, '--Found It--')
+            then KSMessageI('Did the insert...')
+            else KSMessageI('Insert failed...');
+         end
+         else KSMessageI('Could not locate ' + sFindThis + '.');
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.OnControlInfoChanged: HResult;
+begin
+  //asm int 3 end; //trap
+  Result := E_NOTIMPL;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.LockInPlaceActive(fLock: BOOL): HResult;
+begin
+  //asm int 3 end; //trap
+  Result := E_NOTIMPL;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetExtendedControl(out disp: IDispatch): HResult;
+begin
+  //asm int 3 end; //trap
+  Result := E_NOTIMPL;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.TransformCoords(var ptlHimetric: TPoint; var ptfContainer: TPointF; flags: Longint): HResult;
+begin
+  //asm int 3 end; //trap
+  Result := E_NOTIMPL;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.OleControlSite_TranslateAccelerator(msg: PMsg; grfModifiers: Longint): HResult;
+begin
+  //asm int 3 end; //trap
+
+  { KEYMOD_SHIFT = 0x00000001,
+    KEYMOD_CONTROL = 0x00000002,
+    KEYMOD_ALT = 0x00000004
+
+    S_OK, The container processed the message.
+    S_FALSE, The container did not process the message.
+             This value must also be returned in all other error cases
+             besides E_NOTIMPL.
+
+    E_NOTIMPL, The container does not implement accelerator support. }
+
+  { we handle Accelerators in IDOCHOSTUIHANDLER:TranslateAccelerator witch
+    is called before this function.
+
+    After the call to IDOCHOSTUIHANDLER:TranslateAccelerator
+    IHtmlEditDesigner.TranslateAccelerator is called.
+
+    If MSHTML handle the key we don't come here !  }
+
+  Result := E_NOTIMPL;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.OnFocus(fGotFocus: BOOL): HResult;
+begin
+  //asm int 3 end; //trap
+
+  { Each time the WebBrowser gains focus we hook its window and we unhook
+    the window again when the WebBrowser loses focus.
+    This makes all messages send to MSHTML flow trough EDMessageHandler before
+    MSHTML get a chance to handle them }
+
+  if fGotFocus
+     then SubClassMsHTML
+  else UnSubClassMsHTML;
+  
+  //ktResult := S_OK;
+  Result := S_OK or SubFocusHandler(fGotFocus); //kt
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.ShowPropertyFrame: HResult;
+begin
+  //asm int 3 end; //trap
+  Result := E_NOTIMPL;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.IsSelElementLocked: boolean;
+begin
+  //asm int 3 end; //trap
+
+  {$IFDEF EDZINDEX}
+     result := TZindex(FTZindex).IsSelElementLocked;
+  {$ELSE}
+     result := false;
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.EDOnMouseOver(const pEvtObj: IHTMLEventObj);
+begin
+  //asm int 3 end; //trap
+  {$IFDEF EDTABLE}
+     if assigned(FTtable) and FEditMode
+        then TTable(FTtable).TblOnmouseover(pEvtObj);
+  {$ENDIF}
+
+  if Assigned(FOnmouseover)
+     then FOnmouseover(self);
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.NotImplemented(S: String);
+begin
+  //asm int 3 end; //trap
+  KSMessageW(S + DblCrLf + 'is not implemented');
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.EndUndoBlock(aResult: HResult): HResult;
+begin
+  //asm int 3 end; //trap
+
+  result := S_OK;
+
+  if aResult = S_OK
+     then EndUndoUnit //no errors in the calling procedure, just close undo block
+     else begin
+        //the calling procedure had an error, so we need to clean up after it
+
+        {$IFDEF EDUNDO}
+           if assigned(FTUndo)
+              then begin
+                 result := TUndo(FTUndo).CleanUpUndoBlock;
+                 exit;
+              end;
+         {$ENDIF}
+
+
+        //we are using MSHTMLs UNDO stack
+
+        {$IFDEF EDLIB}
+           result := CleanUpMSHTMLUndoBlock(Self);
+        {$ELSE}
+           result := CmdSet(IDM_Undo);
+        {$ENDIF}
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.ClearUndoStack: HResult;
+begin
+  //asm int 3 end; //trap
+
+  result := S_OK;
+
+  if not FEditMode
+     then exit;
+
+  if FLocalUndo
+     then begin
+        {$IFDEF EDUNDO}
+           if FTUndo <> nil
+              then result := TUndo(FTUndo).ClearStack;
+           exit;
+        {$ENDIF}
+     end;
+
+  //we are using MSHTMLs UNDO stack
+
+  {$IFDEF EDLIB}
+     result := ClearMSHTMLStack(Self);
+  {$ELSE}
+     result := S_FALSE;
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.CaretIsVisible: Boolean;
+var
+  Visible: Integer;
+begin
+  //asm int 3 end; //trap
+  FCaret.IsVisible(Visible);
+  result := Visible <> 0;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.Accept(const URL: String; var Accept: Boolean);
+begin
+  //asm int 3 end; //trap
+  Accept := true;
+end;
+//------------------------------------------------------------------------------
+{$IFDEF EDDRAGDROP}
+//------------------------------------------------------------------------------
+function TEmbeddedED.DragEnter(const dataObj: IDataObject; grfKeyState: Integer; pt: TPoint; var dwEffect: Integer): HResult;
+begin
+  //asm int 3 end; //trap
+  if FMSHTMLDropTarget <> nil //just re delegate to MSHTML
+     then result := FMSHTMLDropTarget.DragEnter(dataObj, grfKeyState, pt, dwEffect)
+     else result := E_UNEXPECTED;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.DragLeave: HResult;
+begin
+  //asm int 3 end; //trap
+  if FMSHTMLDropTarget <> nil //just re delegate to MSHTML
+     then result := FMSHTMLDropTarget.DragLeave
+     else result := E_UNEXPECTED;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED._DragOver(grfKeyState: Integer; pt: TPoint; var dwEffect: Integer): HResult;
+begin
+  //asm int 3 end; //trap
+  if FMSHTMLDropTarget <> nil //just re delegate to MSHTML
+     then result := FMSHTMLDropTarget.DragOver(grfKeyState, pt, dwEffect)
+     else result := E_UNEXPECTED;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.Drop(const dataObj: IDataObject; grfKeyState: Integer; pt: TPoint; var dwEffect: Integer): HResult;
+var
+  ProxyDataObj: TDataObjectProxy;
+begin
+  //asm int 3 end; //trap
+
+  result := S_OK;
+
+  if (not FAbsoluteDropMode) or (FMSHTMLDropTarget = nil)
+     then begin
+        result := E_UNEXPECTED;
+        exit;
+     end;
+
+  if dataObj <> nil
+     then begin
+        ProxyDataObj := TDataObjectProxy.Create(dataObj, DOC, FmsHTMLwinHandle, pt);
+        try
+           //just re delegate to MSHTML
+           result := FMSHTMLDropTarget.Drop(ProxyDataObj, grfKeyState, pt, dwEffect);
+        finally
+           WaitAsync;
+           ProxyDataObj.free;
+        end;
+     end;
+
+end;
+//------------------------------------------------------------------------------
+{$ENDIF}   //{$IFDEF EDDRAGDROP}
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.Set_LocalUndo(const Value: WordBool);
+begin
+  //asm int 3 end; //trap
+
+  {$IFDEF EDUNDO}
+     if Value = FLocalUndo
+        then exit;
+
+     FLocalUndo := Value;
+     if(not ComponentInDesignMode) and DocumentIsAssigned
+        then SetLocalUndo(Self, FTUndo, Value);
+   {$ELSE}
+     if ComponentInDesignMode
+        then FLocalUndo := false
+        else begin
+           if value
+              then NotImplemented('Set LocalUndo');
+        end;
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED._QueryStatus(CmdGroup: PGUID; cCmds: Cardinal; prgCmds: POleCmd; CmdText: POleCmdText): HResult;
+begin
+  //asm int 3 end; //trap
+  result := S_OK;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.Exec(CmdGroup: PGUID; nCmdID, nCmdexecopt: DWORD; const vaIn: OleVariant; var vaOut: OleVariant): HResult;
+var
+  FCancel: Boolean;
+begin
+  //asm int 3 end; //trap
+
+  if CmdGroup = nil
+     then begin
+        Result := OLECMDERR_E_UNKNOWNGROUP;
+        exit;
+     end
+     else Result := OLECMDERR_E_NOTSUPPORTED;
+
+
+  if IsEqualGuid(cmdGroup^, CGID_DocHostCommandHandler)
+     then begin
+        case nCmdID of
+
+           6041 {F5}, 6042 {ContextMenu}, 2300 {IDM_REFRESH}:
+              begin
+                 FCancel := False;
+                 If Assigned(FOnRefreshBegin)
+                    then FOnRefreshBegin(Self, nCmdID, FCancel);
+
+                 if FCancel
+                    then Result := S_OK
+                    else FRefreshing := true;
+              end;
+        end;
+     end;
+end;
+{IOleCommandTarget END}
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetGenerator: string;
+begin
+  //asm int 3 end; //trap
+
+  result := FGenerator;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.Set_Generator(const Value: String);
+begin
+  //asm int 3 end; //trap
+
+  if Value = FGenerator
+     then exit;
+
+  {$IFDEF EDLIB}
+     FGenerator := Value
+  {$ELSE}
+      NotImplemented('Set Generator');
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.PrintPreview(value: Olevariant): HResult;
+var
+  aResult: TPrintSetup;
+  B: Boolean;
+  CmdOpt: Cardinal;
+begin
+  //asm int 3 end; //trap
+
+  {$IFDEF EDPRINT}
+     if ISEmptyParam(value)
+        then begin
+           aResult[0] := '';
+           aResult[1] := '0';
+           B := true;
+        end
+        else B := VariantArrayToPrintSetup(Value, aResult);
+
+     if B and
+        PrintPreview(aResult)
+        then result := S_OK
+        else result := S_FALSE;
+
+  {$ELSE}
+     if value
+        then result := DoCommand(IDM_PRINTPREVIEW, OLECMDEXECOPT_PROMPTUSER)
+        else result := DoCommand(IDM_PRINTPREVIEW, OLECMDEXECOPT_DONTPROMPTUSER);
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.PrintEx(value: Olevariant; Showdlg: boolean): HResult;
+var
+  aResult: TPrintSetup;
+begin
+  //asm int 3 end; //trap
+  {$IFDEF EDPRINT}
+     if VariantArrayToPrintSetup(Value, aResult) and
+        Print(aResult, Showdlg)
+        then result := S_OK
+        else result := S_FALSE;
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.Print(value: TPrintSetup; Showdlg: boolean = false): Boolean;
+const
+  NotPreView: Boolean = False;
+begin
+  //asm int 3 end; //trap
+  {$IFDEF EDPRINT}
+     result := SetPrintTemplate(value) and
+               DoPrint(NotPreView, Doc, Showdlg, GetPrintFileName);
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.PrintPreview(value: TPrintSetup): Boolean;
+const
+  PreView: Boolean = true;
+  NoShowdlg: Boolean = False;
+begin
+  //asm int 3 end; //trap
+
+  {$IFDEF EDPRINT}
+     result := SetPrintTemplate(value) and
+            DoPrint(PreView, Doc, NoShowdlg, GetPrintFileName);
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+
+initialization
+  OleInitialize(nil);
+  TheActualAppName := '';
+
+
+finalization
+  try
+  OleUninitialize;
+  except
+  end;
+
+end.
+
+
+
+
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/EmbeddedED.~pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/EmbeddedED.~pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/EmbeddedED.~pas	(revision 541)
@@ -0,0 +1,5241 @@
+{       EmbeddedED ver 1.21 (Jan. 19, 2004)      }
+{                                               }
+{       For Delphi 4, 5, 6 and 7                }
+{                                               }
+{       Copyright (C) 1999-2004, Kurt Senfer.   }
+{       All Rights Reserved.                    }
+{                                               }
+{       Support@ks.helpware.net                 }
+{                                               }
+{       Documentation and updated versions:     }
+{                                               }
+{       http://KS.helpware.net                  }
+{                                               }
+{ ********************************************* }
+
+{
+
+    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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+This unit forms the basic core of a MSHTML Edit component witch can be used
+as the starting point for a full blown WYSIWYG HTML Editor.
+
+Don't change this unit, but subclass it in order to build your own advanced
+HTML Editor on top of it. If you change the unit you'll run into unnecessary
+troubles when official updates of this unit is released. If you build a
+subclassed editor you can benefit from new versions of the EmbeddedED unit
+without the need of changing your own code.
+
+If you find bugs or have ideas / wishes for new features that either should be
+incorporated into the EmbeddedED unit or cant be placed in a subclassed unit,
+then please let me know and I'll try to keep EmbeddedED updated at any time.
+
+----------------------------------------------------------------------
+
+Once I tried to get an HTML editor written as OSP. When it didn't succeeded
+I tried to get different groups of people to share the workload of
+writing a good HTML editor around the MSHTML engine - no succeed either.
+
+Then I finally had to do everything myself and finally I decided only to make
+parts of my source public.
+
+If you ever need to do more than the basic editing that the EmbeddedED unit
+will give you, you need to write some code yourself, or you might chose to acquire
+some of the code I wrote - check out my site at http://KS.helpware.net.
+
+The power of all units are compiled into the KsDHTMLEDLib.ocx witch you can use
+free of charge. }
+
+(*
+NOTE: Modified by K. Toppenberg (marked by //kt)
+*)
+
+
+
+unit EmbeddedED;          //core VCL HTML edit component
+{.$DEFINE EDOCX}          //unit not included
+{.$DEFINE EDTABLE}        //unit not included
+{.$DEFINE EDUNDO}         //unit not included
+{.$DEFINE EDMONIKER}      //unit not included
+{.$DEFINE EDGLYPHS}       //unit not included
+{.$DEFINE EDLIB}          //unit not included
+{.$DEFINE EDPARSER}       //unit not included
+{.$DEFINE EDDRAGDROP}     //unit not included
+{.$DEFINE EDZINDEX}       //unit not included
+{.$DEFINE EDDESIGNER}     //unit not included
+{.$DEFINE EDPRINT}        //unit not included
+
+
+{ $DEFINE DEBUG }  //kt removed.
+
+
+
+ {$I KSED.INC} //Compiler version directives
+
+interface
+
+uses
+  Windows, Classes, ActiveX, Forms, 
+  //ktMSHTML_TLB,
+  MSHTML_EWB, //kt
+  AXCtrls, menus, Controls, messages, URLMon,
+  {$IFDEF D6D7} Variants, {$ENDIF}
+  {$IFDEF EDPRINT} EDPrint, {$ENDIF}
+  IEConst, EmbedEDconst, KS_Lib, SHDocVw;
+
+type
+  TDHTMLEDITAPPEARANCE = (DEAPPEARANCE_FLAT, DEAPPEARANCE_3D);
+
+  TUserInterfaceOption = (NoBorder, NoScrollBar, FlatScrollBar, DivBlockOnReturn);
+  TUserInterfaceOptions = set of TUserInterfaceOption;
+
+  TDHTMLEditShowContextMenu = procedure(Sender: TObject; xPos: Integer; yPos: Integer) of object;
+  TDHTMLEditContextMenuAction = procedure(Sender: TObject; itemIndex: Integer) of object;
+  TQueryServiceEvent = function(const rsid, iid: TGuid; out Obj: IUnknown): HResult of object;
+  TShowContextMenuEvent = function(const dwID: DWORD; const ppt: PPOINT; const pcmdtReserved: IUnknown; const pdispReserved: IDispatch): HRESULT of object;
+  TShowContextMenuEventEx = procedure(Sender: TObject; xPos, yPos: Integer) of object;
+  TTranslateURLEvent = procedure(Sender: TObject; var URL: string; var Changed: Boolean) of object;
+  TMessageEventEx = procedure(Sender: TObject; var msg: LongWord; var wParam: SYSINT; var lParam: SYSINT; var Result: SYSINT) of object;
+  TEditDesignerEvent = procedure(Sender: TObject; inEvtDispId: Integer; const pIEventObj: IHTMLEventObj; var Result: HResult) of object;
+  TNotifyEventEx2 = procedure(Sender: TObject; NewFile: String) of object;
+  TNotifyEventEx4 = procedure(Sender: TObject; var S: String) of object;
+
+//kt  TSnapRect = procedure(Sender: TObject; const pIElement: IHTMLElement; var prcNew: tagRECT; eHandle: _ELEMENT_CORNER; var Result: HResult) of object;
+  TNotifyEventEx = procedure(Sender: TObject; var Cancel: Boolean) of object;
+
+  TNotifyEventEx8 = procedure(Sender: TObject; var Key: Integer; const pEvtObj: IHTMLEventObj) of object;
+  TNotifyProcedureEvent = procedure of object;
+
+  TRefreshEvent = procedure(Sender: TObject; CmdID: Integer; var Cancel: Boolean) of object;
+  TMouseEventEx = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj; X, Y: Integer; var Cancel: Boolean) of object;
+
+  {$IFNDEF EDPRINT}
+     TPrintSetup = array[0..8] of string;  //Dummy type - if EDPRINT is undefines
+  {$ENDIF}
+
+
+  TEmbeddedED = class(TWebbrowser,
+                      IDocHostUIHandler,
+                      IDispatch,          //invoke ~ general event sink
+                      IServiceProvider,
+                      IOleControlSite,
+                      IPropertyNotifySink,
+                      {$IFDEF EDDRAGDROP}
+                         IDropTarget,
+                      {$ENDIF}
+                      IOleCommandTarget,
+                      ISimpleFrameSite
+                      )
+  private
+    FOnQueryService: TQueryServiceEvent;
+    FOnDisplayChanged: TNotifyEvent;
+    FOnShowContextMenu: TShowcontextmenuEvent;
+    FOnShowContextmenuEx:  TShowContextMenuEventEx;
+    FOnTranslateURL: TTranslateURLEvent;
+    FOnDocumentComplete: TNotifyEvent;
+    FWaitMessage: Boolean;
+    DWEBbrowserEvents2Cookie: Integer; //event sink stuff
+    FReadyState: Integer;
+    FShowDetails: Boolean;
+    FIEVersion: String;
+    FIE6: boolean;
+    FMSHTMLDropTarget: IDropTarget;
+    FInternalStyles: String;
+    FExternalStyles: String;
+    FStylesRefreshed: Boolean;
+    FStyles: TStringList;
+    FFonts: TStringList;
+    FHTMLImage: String;   //Source image of the current page as opened / last saved
+    FDebug: Boolean;
+    DebugBool: Boolean;   //used to test any Boolean value
+    DebugString: String;  //used to test any string value
+    DebugElement: IHTMLElement;
+    DummyString: String;
+    FSetInitialFocus: Boolean;
+    FEDMessageHandler: TMessageEvent;
+    FMessageHandler: TMessageEventEx;
+    FUserInterfaceValue: DWORD;
+    FDownloadControlValue: Integer;
+    FPrintFinished: Boolean;
+    // IHTMLEditHost
+    FSnapEnabled: Boolean;
+    FGridX: Integer;
+    FGridY: Integer;
+    //ktFExtSnapRect: TSnapRect;
+    FOnPreDrag: TNotifyEventEx;
+    FPreHandleEvent: TEditDesignerEvent;
+    FPostHandleEvent: TEditDesignerEvent;
+    FEDTranslateAccelerator: TEditDesignerEvent;
+    FPostEditorEventNotify: TEditDesignerEvent;
+    FOleInPlaceActiveObject: IOleInPlaceActiveObject;
+    //kt .. moved to protected section ..   FmsHTMLwinHandle: Hwnd;
+    FLocalUndo: WordBool; //we handle UNDO and REDO ourselves
+    FTUndo: Pointer;      //we cant use TUndo heir, it will cause a Circular reference
+    FTZindex: pointer;    //we cant use TZindex ........
+    FTtable: pointer;     //we cant use TTable ........
+    FEdit: pointer;       //we cant use TEditDesigner ........
+    FEditHost: pointer;   //we cant use TEditHost ........
+    FDestroyng: Boolean;
+    FContextMenu: TPopupMenu;
+    FCreateBakUp: Boolean;
+    FActualTxtRange: IHTMLTxtRange;
+    FActualControlRange: IHTMLControlRange;
+    FSelectionType: string;
+    FActualElement: IHTMLElement;
+    FActualRangeIsText: Boolean;
+    FSelection: Boolean;    //There is a selection
+    FHighlight: IHighlightRenderingServices;
+    FHighlightSegment: IHighlightSegment;
+    FRenderStyle: IHTMLRenderStyle;
+    FDisplayPointerStart: IDisplayPointer;
+    FDisplayPointerEnd: IDisplayPointer;
+    FLoadFromString: Boolean;
+    FParamLoad: Boolean;
+    FRefreshing: Boolean;
+    FUserInterfaceOptions: TUserInterfaceOptions;
+    FBeforeSaveFile: TNotifyEvent;
+    FAfterSaveFile: TNotifyEvent;
+    FAfterSaveFileAs: TNotifyEvent;
+    FAfterLoadFile: TNotifyEventEx2;
+    FonAfterPrint: TNotifyEventEx;
+    FonBeforePrint: TNotifyEventEx;
+    FOnUnloadDoc: TNotifyEventEx;
+    FOnRefreshBegin: TRefreshEvent;
+    FOnRefreshEnd: TNotifyEvent;
+    FBaseURL: String;
+    {$IFNDEF EDMONIKER}
+       FDummyString: String;
+    {$ENDIF}
+    FBaseTagInDoc: Boolean;
+    FLiveResize: Boolean;
+    F2DPosition: Boolean;
+    FShowZeroBorderAtDesignTime: Boolean;
+    FConstrain : boolean;
+    EDMessageHandlerPtr: Pointer;
+    FOnMouseUp: TMouseEventEx;
+    FOnMouseDown: TMouseEventEx; 
+    FOnDblClick: TNotifyEvent;
+    FOnClick: TNotifyEvent;
+    FOnKeyUp: TNotifyEventEx8;
+    FOnKeyDown: TNotifyEventEx8;
+    FOnKeyPress: TKeyPressEvent;
+    FOnMouseMove: TMouseEventEx;
+    FOnmouseout: TNotifyEvent;
+    FOnmouseover: TNotifyEvent;
+    FOnBlur: TNotifyEvent;
+    FAbsoluteDropMode: Boolean;
+    FShowBorders: Boolean;
+    FCurrentDocumentPath: String;
+    FOnReadystatechange: TNotifyEvent;
+    KeepLI: boolean;
+    FLength: Integer; //number of selected elements
+    FFirstElement: Integer;
+    FLastElement: Integer;
+    FStartElementSourceIndex: Integer;
+    FEndElementSourceIndex: Integer;
+    FElementCollection: IHTMLElementCollection;
+    FTagNumber: Integer;  //actual tagnumber in a GetFirts GetNext sequence
+    FMarkUpServices: IMarkupServices;
+    FMarkupPointerStart: IMarkupPointer;
+    FMarkupPointerEnd: IMarkupPointer;    
+    FOnInitialize: TNotifyEventEx4;
+    FAXCtrl: Pointer;   //  pointer to TActiveXControl (KsDHTMLEDLib.ocx)
+    FGenerator: String;
+    FSkipDirtyCheck: Boolean;
+    FWarmingUp: Boolean; //true while MSHTML is initialised
+    FSettingBaseURL: Boolean;
+    FkeepPath: Boolean;
+    FOnContextMenuAction: TDHTMLEditContextMenuAction;
+    // IDOCHOSTUIHANDLER
+    function ShowContextMenu(const dwID: DWORD; const ppt: PPOINT; const pcmdtReserved: IUnknown; const pdispReserved: IDispatch): HRESULT; stdcall;
+    function GetHostInfo(var pInfo: TDOCHOSTUIINFO): HRESULT; stdcall;
+    function ShowUI(const dwID: DWORD; const pActiveObject: IOleInPlaceActiveObject; const pCommandTarget: IOleCommandTarget; const pFrame: IOleInPlaceFrame; const pDoc: IOleInPlaceUIWindow): HRESULT; stdcall;
+    function HideUI: HRESULT; stdcall;
+    function UpdateUI: HRESULT; stdcall;
+    function EnableModeless(const fEnable: BOOL): HRESULT; stdcall;
+    function OnDocWindowActivate(const fActivate: BOOL): HRESULT; stdcall;
+    function OnFrameWindowActivate(const fActivate: BOOL): HRESULT; stdcall;
+    function ResizeBorder(const prcBorder: PRECT; const pUIWindow: IOleInPlaceUIWindow; const FrameWindow: BOOL): HRESULT; stdcall;
+    function TranslateAccelerator(const lpMsg: PMSG; const pguidCmdGroup: PGUID; const nCmdID: DWORD): HRESULT; stdcall;
+    function GetOptionKeyPath(var pchKey: POLESTR; const dw: DWORD): HRESULT; stdcall;
+    function GetDropTarget(const pDropTarget: IDropTarget; out ppDropTarget: IDropTarget): HRESULT; stdcall;
+    function GetExternal(out ppDispatch: IDispatch): HRESULT; stdcall;
+    function TranslateUrl(const dwTranslate: DWORD; const pchURLIn: POLESTR; var ppchURLOut: POLESTR): HRESULT; stdcall;
+    function FilterDataObject(const pDO: IDataObject; out ppDORet: IDataObject): HRESULT; stdcall;
+    // IDOCHOSTUIHANDLER END
+    // IDispatch
+    function GetTypeInfoCount(out Count: Integer): HResult; stdcall;
+    function GetTypeInfo(Index, LocaleID: Integer; out TypeInfo): HResult; stdcall;
+    function GetIDsOfNames(const IID: TGUID; Names: Pointer; NameCount, LocaleID: Integer; DispIDs: Pointer): HResult; stdcall;
+    function Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer; Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HResult; stdcall;
+    // IServiceProvider
+    function QueryService(const rsid, iid: TGuid; out Obj): HResult; stdcall;
+    // IServiceProvider END
+    // IOleControlSite
+    function OnControlInfoChanged: HResult; stdcall;
+    function LockInPlaceActive(fLock: BOOL): HResult; stdcall;
+    function GetExtendedControl(out disp: IDispatch): HResult; stdcall;
+    function TransformCoords(var ptlHimetric: TPoint; var ptfContainer: TPointF; flags: Longint): HResult; stdcall;
+    function IOleControlSite.TranslateAccelerator = OleControlSite_TranslateAccelerator;
+    function OleControlSite_TranslateAccelerator(msg: PMsg; grfModifiers: Longint): HResult; stdcall;
+    function OnFocus(fGotFocus: BOOL): HResult; stdcall;
+    function ShowPropertyFrame: HResult; stdcall;
+    // IOleControlSite  END
+    {$IFDEF EDDRAGDROP}
+       // IDropTarget
+       function DragEnter(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HResult; stdcall;
+       function IDropTarget.DragOver = _DragOver;
+       function _DragOver(grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HResult; stdcall;
+       function DragLeave: HResult; stdcall;
+       function Drop(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HResult; stdcall;
+       // IDropTarget END
+    {$ENDIF}
+    // IOleCommandTarget
+    function IOleCommandTarget.QueryStatus = _QueryStatus;
+    function _QueryStatus(CmdGroup: PGUID; cCmds: Cardinal; prgCmds: POleCmd; CmdText: POleCmdText): HResult; stdcall;
+    function Exec(CmdGroup: PGUID; nCmdID, nCmdexecopt: DWORD; const vaIn: OleVariant; var vaOut: OleVariant): HResult; stdcall;
+    // IOleCommandTarget END
+    function GetOleobject: IOleobject;
+    function GetBaseURL: String;
+    procedure SetBaseURL(const Value: String);
+    {$IFNDEF EDMONIKER}
+       function LoadFromIStream(aIStream: IStream): HResult;
+    {$ENDIF}
+    Procedure GetSourceSnapShot;
+    function GetCharset: string;
+    function EmptyDoc: String;
+    procedure SubClassMsHTML;
+    procedure UnSubClassMsHTML;
+    function GetWebBrowserConnectionPoint(var CP: ICOnnectionPoint): boolean;
+    procedure EDOnMouseOver(const pEvtObj: IHTMLEventObj);
+    procedure WaitAsyncMessage(var Msg: Tmessage); message WaitAsync_MESSAGE;
+    function OpenChangeLog: HResult;
+    function LoadFromStrings(aStrings: TStrings): HResult;
+    function LoadFromString(aString: String): HResult;
+    function Get_Busy: Boolean;
+    procedure SetShowDetails(vIn: Boolean);
+    Function GetBackup: Boolean;
+    function CreateBackUp: Boolean;
+    procedure SetDocumentHTML(NewHTML: String);
+    procedure EDOnDownloadComplete(Sender: TObject);
+    procedure HookEvents;
+    function GetActualAppName: string;
+    procedure SetActualAppName(const Value: string);
+    procedure SetBrowseMode(const Value: WordBool);
+    function GetBrowseMode: WordBool;
+    procedure SetDirty(_dirty: boolean);
+    function GetDirty: boolean;
+    function GetDocTitle: String;
+    procedure SetDocTitle(NewTitle: string);
+    function GetDOC: IHTMLDocument2;
+    function GetCmdTarget: IOleCommandTarget;
+    function GetPersistStream: IPersistStreamInit;
+    function GetPersistFile: IPersistFile;
+    procedure SetLiveResize(const Value: Boolean);
+    procedure Set2DPosition(const Value: Boolean);
+    function GetBaseElement(var aBaseElement: IHTMLBaseElement): boolean;
+    function GetActualElement: IHTMLElement;
+    function GetActualTxtRange: IHTMLTxtRange;
+    function GetActualControlRange: IHTMLControlRange;
+    function GetSelLength: Integer;
+    Procedure GetSelStartElement;
+    Procedure GetSelEndElement;
+    function GetElementNr(ElementNumber: Integer): IHTMLElement;
+    function _GetNextItem(const aTag: String = ''): IHTMLElement;
+    procedure EDBeforePrint(Sender: TObject; const pEvtObj: IHTMLEventObj);
+    procedure EDAfterPrint(Sender: TObject; const pEvtObj: IHTMLEventObj);
+    procedure EDOnUnloadDoc(Sender: TObject; const pEvtObj: IHTMLEventObj);
+    procedure EDOnDocBlur(Sender: TObject; const pEvtObj: IHTMLEventObj);
+    procedure EDBeforeDragStart(Sender: TObject; const pEvtObj: IHTMLEventObj);
+    function GetLastError: string;
+    function KSTEst(var pInVar, pOutVar: OleVariant): HResult;
+    function Get_AbsoluteDropMode: Boolean;
+    function Get_Scrollbars: WordBool;
+    function Get_ShowBorders: WordBool;
+    procedure Set_AbsoluteDropMode(const Value: Boolean);
+    procedure Set_Appearance(const Value: TDHTMLEDITAPPEARANCE);
+    function GetAppearance(aType: TUserInterfaceOption): TDHTMLEDITAPPEARANCE;
+    function Get_Appearance: TDHTMLEDITAPPEARANCE;
+    procedure Set_ScrollbarAppearance(const Value: TDHTMLEDITAPPEARANCE);
+    function Get_ScrollbarAppearance: TDHTMLEDITAPPEARANCE;
+    procedure Set_Scrollbars(const Value: WordBool);
+    procedure Set_ShowBorders(const Value: WordBool);
+    function Get_UseDivOnCarriageReturn: WordBool;
+    procedure Set_UseDivOnCarriageReturn(const Value: WordBool);
+    procedure FContextMenuClicked(Sender: TObject);
+    procedure SetGridX(const Value: integer);
+    procedure SetGridY(const Value: integer);
+    procedure SetSnapEnabled(const Value: Boolean);
+    procedure SetUserInterfaceValue;
+    procedure Accept(const URL:String;var Accept:Boolean);
+    procedure Set_LocalUndo(const Value: WordBool);
+    function GetPrintFileName: String;
+    function ISEmptyParam(value: Olevariant): Boolean;
+  protected
+    KeyPressTime : FILETIME; //kt
+    FEditMode: Boolean;
+    FmsHTMLwinPtr: Pointer; //saved pointer to a subclassed MSHTML window
+    FmsHTMLwinHandle: Hwnd; //kt moved here from private section.    
+    FMainWinHandle: Hwnd; //the "Shell Embedding" window
+    FScrollTop: Integer;  //saved WYSIWYG scroll position
+    FBeforeCloseFile: TNotifyEventEx2;
+    FCurBackFile: String;
+    FCaret: IHTMLCaret;  //kt moved from Private --> protected section
+    FTMGDisplayPointer: IDisplayPointer; //kt
+    // IPropertyNotifySink
+    function OnChanged(dispid: TDispID): HResult; override; stdcall;
+    function OnRequestEdit(dispid: TDispID): HResult; override; stdcall;
+    // IPropertyNotifySink END
+    procedure SubMessageHandler(var Message: TMessage); Virtual;
+    function SubFocusHandler(fGotFocus: BOOL): HResult; virtual; //kt
+    procedure EDMessageHandler(var Message: TMessage);
+    procedure DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant; var HandlingComplete: Boolean); virtual;
+    function _DoSaveFile: HResult; Virtual;
+    function DoSaveFile: HResult;
+    function DoSaveFileAs(aFile: String): HResult; Virtual;
+    procedure AfterFileSaved; Virtual;
+    procedure loaded; override;
+    procedure Set_Generator(const Value: String); Virtual;
+    procedure _UpdateUI; //back door for derived component
+    function GetDocumentHTML: string;
+    function ComponentInDesignMode: Boolean; Virtual;
+    function EndCurrentDocDialog(var mr: Integer; CancelPosible: Boolean = False; SkipDirtyCheck: Boolean = False): HResult;
+    function DocIsPersist: boolean;
+    function _LoadFile(aFileName: String): HResult; Virtual;
+    function _CurDir: string;
+    function _CurFileName: string;
+    procedure NotImplemented(S: String);
+    procedure _GetBuildInStyles;
+    procedure EditInitialize;
+    function GetSelStartEnd(Var SelStart, SelEnd: Integer): boolean;
+    function SetSelStartEnd(SelStart, SelEnd: Integer): boolean;
+  public
+    property Onmouseover: TNotifyEvent read FOnmouseover write FOnmouseover;
+    property OnReadystatechange: TNotifyEvent read FOnReadystatechange write FOnReadystatechange;
+    {$IFDEF EDOCX}
+        property AXCtrl: Pointer read FAXCtrl write FAXCtrl;
+    {$ENDIF}
+    // the folowing is for internal use (but need to be public),
+    constructor Create(Owner: TComponent); override;
+    destructor Destroy; override;
+    procedure ShowHighlight(pIRange: IHTMLTxtRange = nil);
+    procedure HideHighlight;
+    function GetInPlaceActiveObject: IOleInPlaceActiveObject;
+    function DocumentIsAssigned: Boolean;
+    procedure ShowCaret;
+    procedure _CheckGenerator(MainCheck: Boolean = true); Virtual;
+    procedure GetBaseTag(var BaseTagInDoc: Boolean; var BaseUrl: String);
+    property Debug: Boolean read FDebug;
+    property EDReadyState: Integer read FReadyState write FReadyState;
+    property CurrentDocumentPath: string read FCurrentDocumentPath;
+    property ExternalStyles: String read FExternalStyles write FExternalStyles;
+    property Styles: TStringlist read FStyles;
+    property MSHTMLDropTarget: IDropTarget read FMSHTMLDropTarget write FMSHTMLDropTarget;
+    property LocalUndo: WordBool read FLocalUndo write FLocalUndo;
+    property CmdTarget: IOleCommandTarget read GetCmdTarget;
+    property PersistStream: IPersistStreamInit read GetPersistStream;
+    property ScrollTop: Integer write FScrollTop;
+    property PrintFinished: Boolean read FPrintFinished write FPrintFinished;
+    property PersistFile: IPersistFile read GetPersistFile;
+    property HTMLImage: String read FHTMLImage;
+    function EndUndoBlock(aResult: HResult): HResult;
+    function ClearUndoStack: HResult;
+    procedure WaitAsync;
+    function GetGenerator: string; virtual;
+    function CmdSet(cmdID: CMDID; var pInVar: OleVariant): HResult; overload; virtual;
+    //VCL versions that isn't exposed by the OCX
+    function DoCommand(cmdID: CMDID): HResult; overload;
+    function DoCommand(cmdID: CMDID; cmdexecopt: OLECMDEXECOPT): HResult; overload;
+    function DoCommand(cmdID: CMDID; cmdexecopt: OLECMDEXECOPT; var pInVar: OleVariant): HResult; overload;
+    function DoCommand(cmdID: CMDID; cmdexecopt: OLECMDEXECOPT; var pInVar, pOutVar: OleVariant): HResult; overload;
+    function CmdSet(cmdID: CMDID): HResult;  overload; virtual;
+    function CmdGet(cmdID: CMDID): OleVariant; overload;
+    function GetSaveFileName(var aFile: string): HResult;
+    function SaveFile: HResult; virtual;
+    function SaveFileAs(aFile: string = ''): HResult; virtual;
+    property CurDir: string read _CurDir;
+    property CurFileName: string read _CurFileName;
+    function WaitForDocComplete: Boolean;
+    property DocumentTitle: string read GetDocTitle Write SetDocTitle;
+    procedure ScrollDoc(Pos: Integer);
+    procedure SetFocusToDoc;
+    function GetMSHTMLwinHandle: Hwnd;
+    Function CaretIsVisible: Boolean;
+    procedure SetMouseElement(P: Tpoint; aWinHandle: Hwnd = 0);
+    procedure MakeSelElementVisible(Show: boolean);
+    Function RemoveElementID(const TagID: String): Boolean;
+    Procedure SetDebug(value: Boolean);
+    property CreateBakUp: Boolean read FCreateBakUp write FCreateBakUp;
+    property LastError: string read GetLastError;
+    property SkipDirtyCheck: Boolean read FSkipDirtyCheck write FSkipDirtyCheck;
+    //Old DHTMLEdit stuff
+    function ExecCommand(cmdID: CMDID; cmdexecopt: OLECMDEXECOPT; var pInVar: OleVariant): OleVariant;
+    procedure SetContextMenu(var menuStrings: OleVariant; var menuStates: OleVariant);
+    procedure LoadDocument(var pathIn: OleVariant; var promptUser: OleVariant);
+    procedure SaveDocument(var pathIn: OleVariant; var promptUser: OleVariant);
+    property ShowBorders: WordBool read Get_ShowBorders write Set_ShowBorders;
+    property ActualTextRange: IHTMLTxtRange read  FActualTxtRange;
+    //this is the general interface
+    function NewDocument: HResult; virtual;
+    procedure AssignDocument;
+    procedure LoadURL(url: String);
+    function Go(Url: String): HResult;
+    function LoadFile(var aFileName: String; PromptUser: Boolean): HResult; overload; virtual;
+    function LoadFile(var aFileName: String): HResult; overload; virtual;
+    function EndCurrentDoc(CancelPosible: Boolean = False; SkipDirtyCheck: Boolean = False): HResult; virtual;
+    Function GetPersistedFile: String;
+    property IsDirty: Boolean read GetDirty write SetDirty;
+    property DOC: IHTMLDocument2 read GetDOC;
+    property DOM: IHTMLDocument2 read GetDOC;   //just to enable old coding style
+    function CmdGet(cmdID: CMDID; pInVar: OleVariant): OleVariant; overload;
+    function CmdSet_B(cmdID: CMDID; pIn: Boolean): HResult; overload; virtual;
+    function CmdSet_S(cmdID: CMDID; pIn: String): HResult; overload; virtual;
+    function CmdSet_I(cmdID: CMDID; pIn: Integer): HResult; overload; virtual;
+    function QueryStatus(cmdID: CMDID): OLECMDF; virtual;
+    function QueryEnabled(cmdID: CMDID): Boolean; virtual;
+    function QueryLatched(cmdID: CMDID): Boolean;
+    function BeginUndoUnit(aTitle: String = 'Default'): HResult;
+    function EndUndoUnit: HResult;
+    procedure Refresh;
+    property DocumentHTML: String read GetDocumentHTML write SetDocumentHTML;
+    property Busy: Boolean read Get_Busy;
+    function GetStyles: String;
+    function GetBuildInStyles: String;
+    function GetExternalStyles: String;
+    function SetStyle(aStyleName: string): HResult; safecall;
+    function GetStylesIndex: Integer; overload; safecall;
+    function GetStylesIndex(aList: String): Integer; overload; safecall;
+    function GetFonts: String;
+    function GetFontSizeIndex(const aList: String; var Changed: String): Integer; safecall;
+    function GetFontNameIndex(aList: String): Integer; safecall;
+    function GetCurrentFontName: string;
+    function SelectedDocumentHTML(var SelStart, SelEnd: Integer): String;
+    procedure SyncDOC(HTML: string; SelStart, SelEnd: Integer);
+    function Print(value: TPrintSetup; Showdlg: boolean = false): Boolean;
+    function PrintEx(value: Olevariant; Showdlg: boolean): HResult; overload;
+    function PrintPreview(value: Olevariant): HResult; overload;
+    function PrintPreview(value: TPrintSetup): Boolean; overload;
+    procedure PrintDocument(var withUI: OleVariant);
+    property ActualAppName: string read GetActualAppName write SetActualAppName;
+    property ActualTxtRange: IHTMLTxtRange read GetActualTxtRange;
+    property ActualControlRange: IHTMLControlRange read GetActualControlRange;
+    property ActualElement: IHTMLElement read GetActualElement;
+    property ActualRangeIsText: Boolean read FActualRangeIsText;
+    function IsSelElementLocked: boolean;
+    Function GetFirstSelElement(const aTag: String = ''): IHTMLElement;
+    Function GetNextSelElement(const aTag: String = ''): IHTMLElement;
+    procedure GetSelParentElement;
+    function GetSelParentElementType(const aType: string; aMessage: string = ''): IHTMLElement;
+    Function IsSelType(aType: string): boolean;
+    Function IsSelElementID(const ID: String): Boolean;
+    Function IsSelElementClassName(const ClassName: String): Boolean;
+    Function IsSelElementTagName(const TagName: String): Boolean;
+    Function IsSelElementInVisible: Boolean;
+    function IsSelElementAbsolute: boolean;
+    Function GetSelText: String;
+    procedure TrimSelection;
+    procedure SelectActualTextrange;
+    procedure SelectElement(aElement: IhtmlElement);
+    function SetCursorAtElement(aElement: IhtmlElement; ADJACENCY:_ELEMENT_ADJACENCY): Boolean;
+    procedure CollapseActualTextrange(Start: boolean);
+    procedure KeepSelectionVisible;
+    procedure GetElementUnderCaret;// Refresh Selection
+    function MovePointersToRange(const aRange: IHTMLTxtRange): HResult;
+    function MovePointersToSel: HResult;
+    function CreateElement(const tagID: _ELEMENT_TAG_ID; var NewElement: IHTMLElement; const aTxtRange: IHTMLTxtRange = nil; const Attributes: string = ''): HResult;
+    function InsertElementAtCursor(var aElement: IHTMLElement; const aTxtRange: IHTMLTxtRange = nil): HResult;
+    function MoveTextRangeToPointer(aTxtRange: IHTMLTxtRange = nil): IHTMLTxtRange ;
+    function CreateMetaTag(var aMetaElement: IHTMLMetaElement): HResult;
+    property SelNumberOfElements: Integer read GetSelLength;
+    property Selection: Boolean read FSelection;
+  published
+    // EditDesigner
+    property OnPreHandleEvent: TEditDesignerEvent read FPreHandleEvent write FPreHandleEvent;
+    property OnPostHandleEvent: TEditDesignerEvent read FPostHandleEvent write FPostHandleEvent;
+    property OnPostEditorEventNotify: TEditDesignerEvent read FPostEditorEventNotify write FPostEditorEventNotify;
+    property OnTranslateAccelerator: TEditDesignerEvent read FEDTranslateAccelerator write FEDTranslateAccelerator;
+    property OnKeyDown: TNotifyEventEx8 read FOnKeyDown write FOnKeyDown;
+    property OnKeyPress: TKeyPressEvent read FOnKeyPress write FOnKeyPress;
+    property OnKeyUp: TNotifyEventEx8 read FOnKeyUp write FOnKeyUp;
+    property OnClick: TNotifyEvent read FOnClick write FOnClick;
+    property OnDblClick: TNotifyEvent read FOnDblClick write FOnDblClick;
+    property OnMouseDown: TMouseEventEx read FOnMouseDown write FOnMouseDown;
+    property OnMouseMove: TMouseEventEx read FOnMouseMove write FOnMouseMove;
+    property OnMouseUp: TMouseEventEx read FOnMouseUp write FOnMouseUp;
+    property Onmouseout: TNotifyEvent read FOnmouseout write FOnmouseout;
+    property LocalUndoManager: WordBool read FLocalUndo write Set_LocalUndo;
+    property Generator: String read GetGenerator write Set_Generator;
+    //grid stuff
+    property SnapToGridX: Integer read FGridX write SetGridX default 50;
+    property SnapToGridY: Integer read FGridY write SetGridY default 50;
+    property SnapToGrid: Boolean read FSnapEnabled write SetSnapEnabled Default true;
+    //ktproperty OnSnapRect: TSnapRect read FExtSnapRect write FExtSnapRect;
+    property BrowseMode: WordBool read GetBrowseMode write SetBrowseMode;
+    property ShowDetails: boolean read FShowDetails write SetShowDetails;
+    property UseDivOnCarriageReturn: WordBool read Get_UseDivOnCarriageReturn write Set_UseDivOnCarriageReturn;
+    property OnContextMenuAction: TDHTMLEditContextMenuAction read FOnContextMenuAction write FOnContextMenuAction;
+    property OnDisplayChanged: TNotifyEvent read FOnDisplayChanged write FOnDisplayChanged;
+    // IDOCHOSTUIHANDLER
+    property OnShowContextMenu: TShowContextMenuEvent read FOnShowContextmenu write FOnShowContextmenu;
+    property OnShowContextMenuEx: TShowContextMenuEventEx read FOnShowContextmenuEx write FOnShowContextmenuEx;
+    property OnQueryService: TQueryServiceEvent read FOnQueryService write FOnQueryService;
+    property OnPreDrag: TNotifyEventEx read FOnPreDrag write FOnPreDrag;
+    property OnTranslateURL: TTranslateURLEvent read FOnTranslateURL write FOnTranslateURL;
+    property OnBeforeCloseFile: TNotifyEventEx2 read FBeforeCloseFile write FBeforeCloseFile;
+    property OnBeforeSaveFile: TNotifyEvent read FBeforeSaveFile write FBeforeSaveFile;
+    property OnAfterSaveFile: TNotifyEvent read FAfterSaveFile write FAfterSaveFile;
+    property OnAfterSaveFileAs: TNotifyEvent read FAfterSaveFileAs write FAfterSaveFileAs;
+    property OnAfterLoadFile: TNotifyEventEx2 read FAfterLoadFile write FAfterLoadFile;
+    property OnEDMessageHandler: TMessageEvent read FEDMessageHandler write FEDMessageHandler;
+    property OnMessageHandler: TMessageEventEx read FMessageHandler write FMessageHandler;
+    property OnBlur: TNotifyEvent read FOnBlur write FOnBlur;
+    Property OnInitialize: TNotifyEventEx4 read FOnInitialize write FOnInitialize;
+    property OnBeforePrint: TNotifyEventEx read FonBeforePrint write FonBeforePrint;
+    property OnAfterPrint: TNotifyEventEx read FonAfterPrint write FonAfterPrint;
+    property OnUnloadDoc: TNotifyEventEx read FOnUnloadDoc write FOnUnloadDoc;
+    property OnRefreshBegin: TRefreshEvent read FOnRefreshBegin write FOnRefreshBegin;
+    property OnRefreshEnd: TNotifyEvent read FOnRefreshEnd write FOnRefreshEnd;
+    property OnDocumentComplete: TNotifyEvent read FOnDocumentComplete write FOnDocumentComplete;
+    property Appearance: TDHTMLEDITAPPEARANCE read Get_Appearance write Set_Appearance;
+    property BaseURL: String read GetBaseURL write SetBaseURL;
+    property Scrollbars: WordBool read Get_Scrollbars write Set_Scrollbars default true;
+    property ScrollbarAppearance: TDHTMLEDITAPPEARANCE read Get_ScrollbarAppearance write Set_ScrollbarAppearance;
+    property AbsoluteDropMode: Boolean read Get_AbsoluteDropMode write Set_AbsoluteDropMode;
+    property _2DPosition: Boolean read F2DPosition write Set2DPosition;
+    property LiveResize: Boolean read FLiveResize write SetLiveResize;
+    //the editor will try to load a file from paramstr(1) - has no meaning inside a OCX 
+    property ParamLoad: Boolean read FParamLoad write FParamLoad;
+  end;
+
+
+threadVar
+  TheActualAppName: String;
+
+
+procedure Register;
+
+implementation
+
+uses SysUtils, dialogs, FileCtrl, ComObj,
+     {$IFDEF EDUNDO} UUndo, {$ENDIF}
+     {$IFDEF EDTABLE} EmbedEDTable, {$ENDIF}
+     {$IFDEF EDMONIKER} KS_EDMoniker, {$ENDIF}
+     {$IFDEF EDGLYPHS} CustomGlyphs, {$ENDIF}
+     {$IFDEF EDLIB} EDLIB, {$ENDIF}
+     {$IFDEF EDPARSER} KSIEParser, {$ENDIF}
+     {$IFDEF EDDRAGDROP} dragdrop, {$ENDIF}
+     {$IFDEF EDZINDEX} UZindex, {$ENDIF}
+     math, //kt
+     {$IFDEF EDDESIGNER} UEditDesigner, {$ENDIF}
+
+     UEditHost, KS_Procs, KS_Procs2, IEDispConst, RegFuncs;
+
+const
+  DLCTL_DLIMAGES                    =      $00000010;
+  DLCTL_VIDEOS                      =      $00000020;
+  DLCTL_BGSOUNDS                    =      $00000040;
+  DLCTL_PRAGMA_NO_CACHE             =      $00004000;
+
+  CancelPosible: Boolean = true;
+
+//------------------------------------------------------------------------------
+procedure Register;
+begin
+  RegisterComponents('KS', [TEmbeddedED]);
+end;
+//------------------------------------------------------------------------------
+constructor TEmbeddedED.Create(Owner: TComponent);
+begin
+  //asm int 3 end; //trap
+
+  inherited Create(Owner);
+
+  FContextMenu := TPopupMenu.Create(nil);
+
+  FStyles := TStringList.Create;
+  FStyles.Sorted := true;
+  FStyles.Duplicates := dupIgnore;
+
+  FGridX := 50; //default values on startup
+  FGridY := 50;
+  FSnapEnabled := true;
+
+  FUserInterfaceOptions := [];
+  // default = Border, ScrollBar, 3DScrollBar, NoDivBlockOnReturn
+
+  FGenerator := 'KS MSHTML Edit 1.0'; //set default value
+
+  {$IFDEF DEBUG}
+     FDEbug := True;
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+destructor TEmbeddedED.Destroy;
+var
+  CP: ICOnnectionPoint;
+begin
+  //asm int 3 end; //trap
+
+  FDestroyng := true;
+  UnSubClassMsHTML; //just in case
+  FOleInPlaceActiveObject := nil;
+  
+
+  if (DWEBbrowserEvents2Cookie <> 0) and GetWebBrowserConnectionPoint(CP)
+     then CP.UnAdvise(DWEBbrowserEvents2Cookie);
+
+  FContextMenu.free;
+
+  if assigned(FEditHost)
+     then TObject(FEditHost).free;
+
+  if FEdit <> nil
+     then TObject(FEdit).Free;
+
+  if FTUndo <> nil
+     then TObject(FTUndo).Free;
+
+  if FTZindex <> nil
+     then TObject(FTZindex).Free;
+
+  if FTtable <> nil
+     then TObject(FTtable).Free;
+
+  FStyles.free;
+  FFonts.free;
+
+  inherited Destroy;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.ComponentInDesignMode: Boolean;
+begin
+  //asm int 3 end; //trap
+
+  result := (csDesigning in ComponentState);
+
+  {$IFDEF EDOCX}
+     if Assigned(FAXCtrl)
+        then begin
+           //we are using the component from an OCX
+           try
+              result := not (TActiveXControl(FAXCtrl).ClientSite as IAmbientDispatch).UserMode;
+           except
+              //just catch any error - we are NOT in design mode
+              result := false;
+           end;
+        end;
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.loaded;
+var
+  CP: ICOnnectionPoint;
+begin
+  //asm int 3 end; //trap
+
+  inherited loaded;
+
+  if ComponentInDesignMode
+     then exit;
+
+    { TEmbeddedED's OnDocumentComplete override TWebbrowser's OnDocumentComplete
+    We sink all DWEBbrowserEvents2 - although we only use OnDocumentComplete }
+
+  if GetWebBrowserConnectionPoint(CP)
+     then CP.Advise(self, DWEBbrowserEvents2Cookie) //send events to TEmbeddedED.Invoke
+     else KSMessageE('TWebBrowser''s ICOnnectionPoint could not be found');
+
+  //set standard Download Control Values
+  FDownloadControlValue := DLCTL_BGSOUNDS +        //download sounds
+                           DLCTL_DLIMAGES +        //download images
+                           DLCTL_VIDEOS +          //download videos
+                           DLCTL_PRAGMA_NO_CACHE;  //don't use the cache
+
+  SetUserInterfaceValue;
+
+  //linking in the EditHost
+  FEditHost := TEditHost.Create(self);
+  TEditHost(FEditHost).FSnapEnabled := FSnapEnabled;
+  TEditHost(FEditHost).FGridX := FGridX;
+  TEditHost(FEditHost).FGridY := FGridY;
+  //ktTEditHost(FEditHost).FExtSnapRect := FExtSnapRect;
+  TEditHost(FEditHost).FOnPreDrag := FOnPreDrag;
+
+  {$IFDEF EDDESIGNER}
+     //linking in the EditDesigner
+     FEdit := Pointer(TEditDesigner.Create(self));
+
+     TEditDesigner(FEdit).FPreHandleEvent := FPreHandleEvent;
+     TEditDesigner(FEdit).FPostHandleEvent := FPostHandleEvent;
+     TEditDesigner(FEdit).FPostEditorEventNotify := FPostEditorEventNotify;
+     TEditDesigner(FEdit).FOnDblClick := FOnDblClick;
+     TEditDesigner(FEdit).FOnClick := FOnClick;
+     TEditDesigner(FEdit).FOnKeyPress := FOnKeyPress;
+     TEditDesigner(FEdit).FOnReadystatechange := FOnReadystatechange;
+     TEditDesigner(FEdit).FEDTranslateAccelerator := FEDTranslateAccelerator;
+     TEditDesigner(FEdit).FDebug := FDebug;
+     TEditDesigner(FEdit).FOnMouseMove := FOnMouseMove;
+     TEditDesigner(FEdit).FOnMouseUp := FOnMouseUp;
+     TEditDesigner(FEdit).FOnMouseDown := FOnMouseDown;
+     TEditDesigner(FEdit).FOnKeyUp := FOnKeyUp;
+     TEditDesigner(FEdit).FOnKeyDown := FOnKeyDown;
+     TEditDesigner(FEdit).FOnmouseout := FOnmouseOut;
+     TEditDesigner(FEdit).FOnmouseover := EDOnmouseover;
+  {$ENDIF}
+
+
+  {$IFDEF EDZINDEX}
+     FTZindex := Pointer(TZindex.Create(self));
+  {$ENDIF}
+ 
+  {$IFDEF EDTABLE}
+     FTtable := Pointer(TTable.Create(self));
+  {$ENDIF}
+
+
+  FIEVersion := ReadRegString(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Internet Explorer\', 'Version');
+  if length(FIEVersion) > 0
+     then begin
+        FIE6 := FIEVersion[1] >= '6';
+
+        if (not FIE6)
+           then begin
+              if (FIEVersion[1] < '5') or (FIEVersion[3] < '5')
+                 then KSMessageE('This HTML-editor Component '+CrLf+'need IE 5.5 or higher');
+           end;
+     end;
+
+  FWarmingUp := true;
+  AssignDocument;         //basic initialisation of MSHTML
+  FWarmingUp := false; 
+
+  GetInPlaceActiveObject; //initialise FOleInPlaceActiveObject
+
+  if FShowBorders
+     then CmdSet_B(IDM_SHOWZEROBORDERATDESIGNTIME, true);
+
+  if FEditMode
+     then begin
+        //initialisation of MSHTML edit mode
+
+        {$IFDEF EDLIB}
+           InitializeGenerator(Self);
+        {$ENDIF}
+
+        DOC.designMode := 'On';
+        //CmdSet(IDM_EDITMODE); //Not currently supported - but it works !!
+  end;
+
+  if FAXCtrl = nil   //Only do this in VCL mode, the OCX needs a later initialization
+     then EditInitialize;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.EditInitialize;
+var
+  aFile: String;
+begin
+  //asm int 3 end; //trap
+
+  if ComponentInDesignMode
+     then exit;
+
+  aFile := '';
+
+  //get a file to open at start-up
+  if Assigned(FOnInitialize)
+     then FOnInitialize(Self, aFile); //get a initial file name
+
+  if FParamLoad and (aFile = '')
+     //if no file yet, look for a param - NB will not work inside an OCX
+     then aFile := Paramstr(1);
+
+  if aFile <> ''
+     then begin
+        if S_OK <> LoadFile(aFile)    //load a "command line" / initial file - if any
+           then aFile := '';
+     end;
+
+  if aFile = ''
+     then NewDocument;                //load an empty document
+
+  _GetBuildInStyles;
+
+  FSetInitialFocus := true;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SetUserInterfaceValue;
+begin
+  //asm int 3 end; //trap
+
+  FUserInterfaceValue := 0;
+
+  if NoBorder in FUserInterfaceOptions
+     then Inc(FUserInterfaceValue, DOCHOSTUIFLAG_NO3DBORDER);
+
+  if NoScrollBar in FUserInterfaceOptions
+     then Inc(FUserInterfaceValue, DOCHOSTUIFLAG_SCROLL_NO);
+
+  if FlatScrollBar in FUserInterfaceOptions
+     then Inc(FUserInterfaceValue, DOCHOSTUIFLAG_FLAT_SCROLLBAR);
+
+  if DivBlockOnReturn in FUserInterfaceOptions
+     then Inc(FUserInterfaceValue, DOCHOSTUIFLAG_DIV_BLOCKDEFAULT);
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SubClassMsHTML;
+begin
+  //asm int 3 end; //trap
+
+  { We hook into the message chain in front of the MSHTML window
+    after the hook is in place all massages send to MSHTML will be passed
+    to EDMessageHandler first }
+
+  if (GetInPlaceActiveObject <> nil) and
+     (FmsHTMLwinHandle <> 0)
+     then begin
+        if EDMessageHandlerPtr <> nil
+           then UnSubClassMsHTML;
+
+        //create handle to EDMessageHandler
+        EDMessageHandlerPtr := MakeObjectInstance(EDMessageHandler);
+
+        //save pointer to the FmsHTMLwinHandle window
+        FmsHTMLwinPtr := Pointer(SetWindowLong(FmsHTMLwinHandle, GWL_WNDPROC, LongInt(EDMessageHandlerPtr)));
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.UnSubClassMsHTML;
+begin
+  //asm int 3 end; //trap
+
+  if (GetInPlaceActiveObject <> nil) and
+     (FmsHTMLwinHandle <> 0) and
+     (EDMessageHandlerPtr <> nil)
+     then begin
+        //restore old MSHTML window as target
+        SetWindowLong(FmsHTMLwinHandle, GWL_WNDPROC, LongInt(FmsHTMLwinPtr));
+
+        FreeObjectInstance(EDMessageHandlerPtr);
+        EDMessageHandlerPtr := nil;
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SubMessageHandler(var Message: TMessage);
+begin
+  //overridden by derived components
+end;
+
+function TEmbeddedED.SubFocusHandler(fGotFocus: BOOL): HResult; 
+//kt added
+begin
+  //overridden by derived components
+end;
+
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.EDMessageHandler(var Message: TMessage);
+var
+  WinMsg: TMsg;
+  handled: boolean;
+  transformed: boolean;
+
+  //----------------------------------------------------------
+  function HandlingDone(handled: Boolean): boolean;
+  begin
+     if handled
+        then Message.Result := 1;
+
+     result := handled;
+  end;
+  //----------------------------------------------------------
+  procedure transformMessage;
+  begin
+     if transformed
+        then exit;
+
+     WinMsg.HWnd := Handle;
+     WinMsg.Message := Message.Msg ;
+     WinMsg.WParam := Message.WParam;
+     WinMsg.LParam := Message.LParam;
+
+     WinMsg.Time := GetMessageTime;
+     GetCursorPos(WinMsg.Pt);
+     transformed := true;
+  end;
+  //----------------------------------------------------------
+begin
+  //asm int 3 end; //trap
+
+  {when key messages arrives heir from a
+     VCL implementation hey they are offset with CN_BASE but can come by
+     a second time with no CN_BASE offset.
+     OCX implementation they are not offset }
+
+  { all messages to MSHTML comes through here - KEEP IT LEAN.
+    if Handled is not set to true then the message is dispatched back to MSHTML. }
+  
+  transformed := false;
+  Handled := false;
+
+  if assigned(FMessageHandler)  //external assigned message handler
+     then begin
+        FMessageHandler(Self, Message.Msg, Message.WParam, Message.LParam, Message.Result);
+        if Message.Result = 1
+           then exit;
+     end;
+
+  if assigned(FEDMessageHandler)  //external assigned message handler
+     then begin
+        transformMessage;
+
+        FEDMessageHandler(WinMsg, handled);
+        if HandlingDone(handled)
+           then exit;
+     end;
+
+
+  {$IFDEF EDTABLE}
+     //let the "table unit" have a look at the message
+     if assigned(FTtable) and (Not FDestroyng) and
+        (TTable(FTtable).CheckMessage(Message))
+        then exit;
+   {$ENDIF}
+
+
+  {$IFDEF EDZINDEX}
+     //let the "UZindex unit" have a look at the message
+     if assigned(FTZindex) and (Not FDestroyng) and
+        (TZindex(FTZindex).CheckMessage(Message))
+        then exit;
+   {$ENDIF}
+
+  SubMessageHandler(Message);
+  if Message.Result = 1
+     then exit;
+
+
+  //send the message back to the subclassed MSHTML window
+  Message.Result := CallWindowProc(FmsHTMLwinPtr, FmsHTMLwinHandle, Message.Msg, Message.WParam, Message.LParam);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetWebBrowserConnectionPoint(var CP: ICOnnectionPoint): boolean;
+var
+  CPC: IConnectionPointContainer;
+begin
+  //asm int 3 end; //trap
+
+  TwebBrowser(Self).ControlInterface.QueryInterface(IConnectionPointContainer, CPC);
+  if assigned(CPC)
+     then CPC.FindConnectionPoint(DWEBbrowserEvents2, CP);
+
+  result := Assigned(CP);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+           Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+var
+  dps: TDispParams absolute Params;
+  pDispIds: PDispIdList;
+  iDispIdsSize: integer;
+  handled: Boolean;
+
+  //-------------------------------------------
+   procedure BuildPositionalDispIds;
+   var
+     i: integer;
+   begin
+     pDispIds := nil;
+     iDispIdsSize := dps.cArgs * SizeOf(TDispId);
+     GetMem(pDispIds, iDispIdsSize);
+
+     // by default, directly arrange in reverse order
+     for i := 0 to dps.cArgs - 1 do
+       pDispIds^[i] := dps.cArgs - 1 - i;
+
+     if (dps.cNamedArgs > 0) // check for named args
+        then begin
+           // parse named args
+           for i := 0 to dps.cNamedArgs - 1 do
+              pDispIds^[dps.rgdispidNamedArgs^[i]] := i;
+        end;
+   end;
+  //-------------------------------------------
+begin
+  //asm int 3 end; //trap
+  Result := S_OK;
+
+  case Dispid of
+     DISPID_AMBIENT_DLCONTROL:
+        if (Flags and DISPATCH_PROPERTYGET <> 0) and (VarResult <> nil)
+           then begin
+              PVariant(VarResult)^ := FDownloadControlValue;
+              Exit;
+           end;
+
+     259: //DWebBrowserEvents2.OnDocumentComplete
+        if dps.cArgs > 0
+           then begin
+              BuildPositionalDispIds;
+              //call the our DocumentComplete event handler
+              DocumentComplete(self,                           //Sender: TObject
+              IDispatch(dps.rgvarg^[pDispIds^[0]].dispval),      //pDisp: IDispatch
+              POleVariant(dps.rgvarg^[pDispIds^[1]].pvarval)^,  //URL: OleVariant
+              handled);
+              FreeMem (pDispIds, iDispIdsSize);
+              Exit;
+            end;
+
+     104 : //DWebBrowserEvents2.DownloadComplete
+        begin
+           EDOnDownloadComplete(Self);
+           Exit;
+        end;
+
+     DISPID_HTMLWINDOWEVENTS2_ONBLUR:
+        if dps.cArgs > 0
+           then begin
+              BuildPositionalDispIds;
+              EDOnDocBlur(self,                                  //Sender: TObject
+                          IHTMLEventObj(dps.rgvarg^[pDispIds^[0]].dispval)); //pEvtObj: IHTMLEventObj
+              FreeMem (pDispIds, iDispIdsSize);
+              Exit;
+           end;
+
+     DISPID_HTMLWINDOWEVENTS2_ONUNLOAD:
+        if dps.cArgs > 0
+           then begin
+              BuildPositionalDispIds;
+              EDOnUnloadDoc(self,                                //Sender: TObject
+                            IHTMLEventObj(dps.rgvarg^[pDispIds^[0]].dispval)); //pEvtObj: IHTMLEventObj
+              FreeMem (pDispIds, iDispIdsSize);
+              Exit;;
+           end;
+
+     DISPID_HTMLWINDOWEVENTS2_ONAFTERPRINT:
+        if dps.cArgs > 0
+           then begin
+              BuildPositionalDispIds;
+              EDAfterPrint(self,                                 //Sender: TObject
+                           IHTMLEventObj(dps.rgvarg^[pDispIds^[0]].dispval)); //pEvtObj: IHTMLEventObj
+              FreeMem (pDispIds, iDispIdsSize);
+              Exit;
+           end;
+
+     DISPID_HTMLWINDOWEVENTS2_ONBEFOREPRINT:
+        if dps.cArgs > 0
+           then begin
+              BuildPositionalDispIds;
+              EDBeforePrint(self,                                //Sender: TObject
+                            IHTMLEventObj(dps.rgvarg^[pDispIds^[0]].dispval)); //pEvtObj: IHTMLEventObj
+              FreeMem (pDispIds, iDispIdsSize);
+              Exit;
+           end;
+
+     DISPID_HTMLDOCUMENTEVENTS2_ONDRAGSTART:
+        if dps.cArgs > 0
+           then begin
+              BuildPositionalDispIds;
+              EDBeforeDragStart(self,                            //Sender: TObject
+                                IHTMLEventObj(dps.rgvarg^[pDispIds^[0]].dispval)); //pEvtObj: IHTMLEventObj
+              FreeMem (pDispIds, iDispIdsSize);
+              Exit;
+           end;
+
+
+     DISPID_HTMLELEMENTEVENTS2_ONMOVESTART:
+        Beep;
+
+     (*
+     //return S_OK for unhandled members of HTMLWindowEvents2
+     1002, 1003, 1014, 1016, 1017, -2147418102, -2147418111: exit;
+
+     //return S_OK for unhandled members of DWebBrowserEvents2
+     102, 105, 106, 108, 112, 113, 250, 251, 252, 253, 254, 255, 256,
+     257, 258, 260, 262, 236, 234, 265, 266, 267, 268, 269, 270 : exit;
+     *)
+  end; //case
+
+  //let TOleControl handle the invoke
+  Result := inherited Invoke(DispID, IID, LocaleID, Flags, Params, VarResult, ExcepInfo, ArgErr);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetTypeInfoCount(out Count: Integer): HResult;
+begin
+  //asm int 3 end; //trap
+  Result := inherited GetTypeInfoCount(Count);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetTypeInfo(Index, LocaleID: Integer; out TypeInfo): HResult;
+begin
+  //asm int 3 end; //trap
+  Result := inherited GetTypeInfo(Index, LocaleID, TypeInfo);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetIDsOfNames(const IID: TGUID; Names: Pointer; NameCount, LocaleID: Integer; DispIDs: Pointer): HResult;
+begin
+  //asm int 3 end; //trap
+  Result := inherited GetIDsOfNames(IID, Names, NameCount, LocaleID, DispIDs);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.OnChanged(dispid: TDispID): HResult;
+var
+  dp: TDispParams;
+  vResult: OleVariant;
+begin
+  //asm int 3 end; //trap
+
+  { Dispid = Dispatch identifier of the property that changed,
+    or DISPID_UNKNOWN if multiple properties have changed. }
+  if (TwebBrowser(Self).Document <> nil) and (DISPID_READYSTATE = Dispid)
+     then begin
+        if SUCCEEDED(Doc.Invoke(DISPID_READYSTATE, GUID_null,
+                     LOCALE_SYSTEM_DEFAULT, DISPATCH_PROPERTYGET,
+                     dp, @vresult, nil, nil))
+        then FReadyState := Integer(vresult);
+     end;
+
+  result := inherited OnChanged(dispid);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.OnRequestEdit(dispid: TDispID): HResult;
+begin
+  //asm int 3 end; //trap
+  result := inherited OnRequestEdit(dispid);
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.EDBeforeDragStart(Sender: TObject; const pEvtObj: IHTMLEventObj);
+var
+  Done: Boolean;
+begin
+  //asm int 3 end; //trap
+
+  beep;
+
+  if assigned(FonBeforePrint)
+     then begin
+        Done := false;
+        beep;
+        //FonBeforePrint(self, Done);
+        if Done
+           then pEvtObj.returnValue := True;
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.EDBeforePrint(Sender: TObject; const pEvtObj: IHTMLEventObj);
+var
+  Done: Boolean;
+begin
+  //asm int 3 end; //trap
+
+  if assigned(FonBeforePrint)
+     then begin
+        Done := false;
+        FonBeforePrint(self, Done);
+        if Done
+           then pEvtObj.returnValue := True;
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.EDAfterPrint(Sender: TObject; const pEvtObj: IHTMLEventObj);
+  { MSHTML stores a copy of the HTML source in a cache from where it is printed.
+
+    EDAfterPrint is fired when MSHTML has finished saving the document,
+    at the state it vas in, into cache }
+var
+  Done: Boolean;
+begin
+  //asm int 3 end; //trap
+  FPrintFinished := true;
+
+  if assigned(FonAfterPrint)
+     then begin
+        Done := false;
+        FonAfterPrint(self, Done);
+        if Done
+           then pEvtObj.returnValue := True;
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.EDOnUnloadDoc(Sender: TObject; const pEvtObj: IHTMLEventObj);
+var
+  Done: Boolean;
+begin
+  //asm int 3 end; //trap
+
+  FStylesRefreshed := False; //we need to load a fresh set together with the next document
+
+  if assigned(FOnUnloadDoc)
+     then begin
+        Done := false;
+        FOnUnloadDoc(self, Done);
+        if Done
+           then pEvtObj.returnValue := True;
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.EDOnDocBlur(Sender: TObject; const pEvtObj: IHTMLEventObj);
+begin
+  //asm int 3 end; //trap
+
+  if FWarmingUp
+     then exit;
+
+  {$IFDEF EDLIB}
+     KeepSelection(Self);
+  {$ENDIF}
+
+  {$IFDEF EDTABLE}
+     if assigned(FTtable) and (Not FDestroyng)
+        then TTable(FTtable).TblOnBlur;
+  {$ENDIF}
+
+  if Assigned(FOnBlur)
+     then FOnBlur(Self);
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.EDOnDownloadComplete(Sender: TObject);
+var
+  aURL: OleVariant;
+  handled: Boolean;
+begin
+  //asm int 3 end; //trap
+
+  if FRefreshing
+     //Refresh page and some other things don't result in a Document complete
+     then begin
+        FRefreshing := False;
+
+        aURL := Doc.URL;
+        DocumentComplete(Self, nil, aURL, handled);
+
+        If Assigned(FOnRefreshEnd)
+           then FOnRefreshEnd(Self);
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.WaitAsync;
+begin
+  //asm int 3 end; //trap
+  
+  FWaitMessage := false;
+
+  PostMessage(FMainWinHandle, WaitAsync_MESSAGE, 0, 0);
+
+  while not FWaitMessage do
+     SafeYield;
+end;
+//------------------------------------------------------------------------------
+Procedure TEmbeddedED.GetSourceSnapShot;
+{$IFNDEF EDLIB}
+  var
+     TempStream: TMemoryStream;
+{$ENDIF}
+begin
+  //asm int 3 end; //trap
+
+  {$IFNDEF EDLIB}
+     { First we need to force MSHTML to tidy up the source the way it wants.
+       MSHTML inserts and updates certain elements in the <HEAD> when it saves
+       the file }
+
+     TempStream := TMemoryStream.Create;
+     try
+        //just a dummy save
+        PersistStream.save(TStreamAdapter.Create(TempStream), true);
+     finally
+        TempStream.free;
+     end;
+  {$ENDIF}
+
+  FHTMLImage := KS_Lib.GetHTMLtext(DOC); //Get Snapshot of HTML Source
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.ShowCaret;
+begin
+  //asm int 3 end; //trap
+  FCaret.Show(0);
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.GetBaseTag(var BaseTagInDoc: Boolean; var BaseUrl: String);
+var
+  aElement: IHTMLElement;
+  aCollection: IHTMLElementCollection;
+  aDomNode, HTMLF, HTMLP: IHTMLDomNode;
+  i: integer;
+  DOC3: IHTMLDocument3;
+  S: String;
+  I2: Integer;
+  DESIGNTIMEBASEURLfound: Boolean;
+begin
+  //asm int 3 end; //trap
+  { if the source have a <BASE...> tag without a </BASE> tag, IE renders
+    the source wrongly and we must correct it.
+
+    If <BASE> is followed by other tags in the <HEAD> these may end up as
+    children of <BASE> rather than children of <HEAD>
+
+    The problem does not appear if the <BASE...> tag is followed by </BASE>
+
+    Parsing trough IHTMLDomNode MSHTML not only it places the body in the
+    wrong place, but it also duplicates it:
+
+    HTML
+     |-HEAD
+     |  |-TITLE
+     |  |-BASE
+     |     |-META
+     |     |-META
+     |     |-BODY
+     |-BODY
+
+    Parsed trough IHTMLElement MSHTML produces a tree that looks like this:
+
+    HTML
+     |-HEAD
+        |-TITLE
+        |-BASE
+           |-META
+           |-META
+           |-BODY
+
+
+    The following code will cleanup a bad example as this:
+
+    <html>
+    <head>
+    <title>test</title>
+    <base target="_self" href="URL">
+    <meta name="1" content="1">
+    <base target="_self" href="UL">
+    <meta name="2" content="2">
+    </head>
+    <body>
+    empty
+    </body>
+    </html>
+
+    }
+
+  BaseTagInDoc := false;
+  DESIGNTIMEBASEURLfound := false;
+  BaseURL := '';
+
+  DOC3 := DOC as IHTMLDocument3;
+
+  aCollection := DOC3.getElementsByTagName('BASE') as IHTMLElementCollection;
+  if aCollection.length > 0
+     then begin
+        for i := 0 to aCollection.length - 1 do
+           begin
+              aElement := aCollection.item(i, 0) as IHTMLElement;
+
+              if not assigned(aElement)
+                 then continue;
+
+              // we take the BaseURL from the last found base tag except if
+              // its a DESIGNTIMEBASEURL
+              if pos('DESIGNTIMEBASEURL', UpperCase(aElement.outerHTML)) = 0
+                 then begin
+                    BaseURL := (aElement as IHTMLBaseElement).href;
+                    BaseTagInDoc := true;
+                 end
+                 else DESIGNTIMEBASEURLfound := true;
+
+              aDomNode := aElement as IHTMLDomNode;
+              if aDomNode.hasChildNodes
+                 then begin
+                    HTMLP := aDomNode.parentNode;
+                    HTMLF := aDomNode.firstChild;
+                    aDomNode.removeNode(false); //false = do not remove child nodes
+                    HTMLP.insertBefore(aDomNode, HTMLF);
+                 end;
+
+        end; //for i := 0 to
+     end;
+
+  if DESIGNTIMEBASEURLfound
+     then begin
+        aCollection := DOC3.getElementsByTagName('BASE') as IHTMLElementCollection;
+        if aCollection.length > 0
+           then begin
+              for i := 0 to aCollection.length - 1 do
+                 begin
+                    aElement := aCollection.item(i, 0) as IHTMLElement;
+
+                    if assigned(aElement) and
+                       (pos('DESIGNTIMEBASEURL', UpperCase(aElement.outerHTML)) > 0)
+                       then begin
+                          //remove any temporary BASE tag
+                          aDomNode := aElement as IHTMLDomNode;
+                          aDomNode.removeNode(false);
+                       end
+                 end;
+           end;
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant; var HandlingComplete: Boolean);
+var
+  IW: IwebBrowser2;
+  adoc: IhtmlDocument2;
+  iDocDisp: IDispatch;
+
+  //-----------------------------------------------------------
+  procedure OpenPointers;
+  var
+     FDisplayServices: IDisplayServices;
+  begin
+     //asm int 3 end; //trap
+
+     {$IFDEF EDDESIGNER}
+        if assigned(FEdit)
+           then TEditDesigner(FEdit).Connect(TWebBrowser(self).Document); //Connect EditDesigner
+     {$ENDIF}
+
+     {$IFDEF EDTABLE}
+       if assigned(FTtable)
+           then TTable(FTtable).OpenPointers;
+     {$ENDIF}
+
+     FDisplayServices := DOC as IDisplayServices;
+     OleCheck(FDisplayServices.GetCaret(IHTMLCaret(FCaret)));
+
+     OleCheck(FDisplayServices.CreateDisplayPointer(FDisplayPointerStart));
+     OleCheck(FDisplayServices.CreateDisplayPointer(FDisplayPointerEnd));
+     OleCheck(FDisplayServices.CreateDisplayPointer(FTMGDisplayPointer));  //kt added
+
+     //kt FMarkUpServices := Doc as MSHTML_TLB.IMarkupServices;
+     FMarkUpServices := Doc as MSHTML_EWB.IMarkupServices;  //kt
+
+     OleCheck(FMarkUpServices.CreateMarkupPointer(FMarkupPointerStart));
+     OleCheck(FMarkUpServices.CreateMarkupPointer(FMarkupPointerEnd));
+
+     FHighlight := Doc as IHighlightRenderingServices;
+
+     FRenderStyle := (TwebBrowser(Self).Document as IHTMLDocument4).createRenderStyle('');
+
+     //false turns off (default) black and uses $8A2BE2 as highlight colour
+     FRenderStyle.Set_defaultTextSelection('false');
+     FRenderStyle.Set_textBackgroundColor($8A2BE2);
+  end;
+  //----------------------------------------------------
+begin
+  //asm int 3 end; //trap
+
+  { a derived component need a way to know if this DocumentComplete is completely
+    handled - i.e. when we sets the BaseUrl - or this is a "real" DocumentComplete.
+    If this eventhandler isn't exited then HandlingComplete is set to false at
+    the very end }
+  HandlingComplete := true;
+
+  if FWarmingUp
+     then exit;
+
+  //just a test that newer seems to become true
+  if Fdebug and (FReadyState <> READYSTATE_COMPLETE)
+     then beep;
+
+  iDocDisp := (pDisp as IwebBrowser2).Document;
+
+  // NOTE: iDocDisp may be NIL or may be not an HTML document!!!
+  if (iDocDisp = nil) or
+     (iDocDisp.QueryInterface(IHTMLDocument2, aDoc) <> S_OK) or
+     (aDoc <> DOC)
+     then exit;
+
+  ShowCursor(true);
+
+  if not FSettingBaseURL
+     then begin
+        if not FkeepPath
+           then begin
+              FCurrentDocumentPath := GetPersistedFile;
+              FBaseUrl := _CurDir;
+           end;
+
+        { according to DHTMLEdit specs FBaseURL is set to the loaded files base.
+          If the loaded file contains a BASE tag then BASEUrl is set accordingly
+          in InitializeUndoStack }
+
+        {$IFDEF EDLIB}
+           InitializeUndoStack(Self, FBaseTagInDoc, FBaseUrl);
+        {$ELSE}
+           GetBaseTag(FBaseTagInDoc, FBaseUrl);
+           if not BrowseMode
+              then _CheckGenerator;
+        {$ENDIF}
+
+        {$IFDEF EDUNDO}
+           if FLocalUndo
+              then OpenChangeLog;
+        {$ENDIF}
+     end;
+
+  FkeepPath := false;
+
+
+  //restore WYSIWYG scroll position if needed
+  if FScrollTop > 0
+     then ScrollDoc(FScrollTop);
+
+  OpenPointers;
+
+  if FEditMode
+     then begin
+        if FShowDetails
+           then begin
+              {$IFDEF EDGLYPHS}
+                 ShowDefaultGlyphs(Self);
+              {$ELSE}
+                 CmdSet(IDM_SHOWALLTAGS);
+              {$ENDIF}
+           end;
+
+        //kt if F2DPosition
+        //kt   then CmdSet_B(IDM_2D_POSITION, true);
+
+        //kt if FLiveResize
+        //kt   then CmdSet_B(IDM_LIVERESIZE, true);
+
+        //set cursor to beginning of document
+        SetCursorAtElement(DOC.elementFromPoint(1,1), ELEM_ADJ_AfterBegin);
+     end;
+
+  HookEvents;
+
+  if FSettingBaseURL //nothing more to do
+     then begin
+        FSettingBaseURL := false;
+        exit;
+     end;
+
+  if FLoadFromString
+     then begin
+        FLoadFromString := false;
+        FHTMLImage := ''; //a document loaded from a string is always dirty
+
+        if FEditMode
+           then ClearUndoStack; //we cant allow old undo's after loading a "new" document
+     end
+     else begin
+        if FEditMode
+           then GetSourceSnapShot;
+     end;
+
+  //if we have a user created event handler call it
+  if assigned(FOnDocumentComplete)
+     then FOnDocumentComplete(Self);
+
+  HandlingComplete := false;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.HookEvents;
+var
+  aCPC: IConnectionPointContainer;
+  aCP: IConnectionPoint;
+  aCookie: Integer;
+begin
+  //asm int 3 end; //trap
+
+  Doc.parentWindow.QueryInterface(IConnectionPointContainer, aCPC);
+
+  //this events is automatically released when the document is unloaded
+  aCPC.FindConnectionPoint(HTMLWindowEvents2, aCP);
+  aCP.Advise(self, aCookie);  //send events to TEmbeddedED.Invoke
+
+  {$IFDEF EDZINDEX}
+     if Assigned(FTZindex)
+        then TZindex(FTZindex).HookEvents;
+  {$ENDIF}
+
+  //IpropertyNotifySink is automatic connected, so we do nothing here
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.ShowContextMenu(const dwID: DWORD; const ppt: PPOINT; const pcmdtReserved: IUnknown; const pdispReserved: IDispatch): HRESULT;
+begin
+  //Called from MSHTML to display a context menu
+  //asm int 3 end; //trap
+
+  if Assigned(FOnShowContextmenu)
+     then begin
+        Result := FOnSHowContextmenu(dwID, ppt, pcmdtreserved, pdispreserved);
+        if Result = S_OK
+           then exit;
+     end
+     else Result := S_FALSE;
+
+  if assigned(FOnShowContextmenuEx)
+     then FOnShowContextmenuEx(Self, ppt^.X, ppt^.Y);
+
+  if (FContextMenu.Items.count > 0)
+     then begin
+        Result := S_OK;
+        FContextMenu.Popup(ppt^.X, ppt^.Y);
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetHostInfo(var pInfo: TDOCHOSTUIINFO): HRESULT;
+begin
+  //Retrieves the UI capabilities of the MSHTML host
+  //asm int 3 end; //trap
+
+  pInfo.cbSize := SizeOf(pInfo);
+  pInfo.dwFlags := FUserInterfaceValue;
+
+  pInfo.dwDoubleClick := DOCHOSTUIDBLCLK_DEFAULT;
+  Result:=S_OK;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.ShowUI(const dwID: DWORD; const pActiveObject: IOleInPlaceActiveObject; const pCommandTarget: IOleCommandTarget; const pFrame: IOleInPlaceFrame; const pDoc: IOleInPlaceUIWindow): HRESULT;
+begin
+  //Allows the host to replace the MSHTML menus and toolbars
+  //asm int 3 end; //trap
+  Result := S_FALSE;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.HideUI: HRESULT;
+begin
+  //Called when MSHTML removes its menus and toolbars
+  //asm int 3 end; //trap
+  Result := E_NOTIMPL;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED._UpdateUI;
+begin
+  //asm int 3 end; //trap
+  UpdateUI;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.UpdateUI: HRESULT;
+begin
+  //Notifies the host that the command state has changed
+  //asm int 3 end; //trap
+
+  Result := S_OK;
+
+  if (FReadyState = READYSTATE_COMPLETE) and (not FWarmingUp) and Showing
+     then begin
+        if FSetInitialFocus
+           then begin
+              SetFocusToDoc;
+              FSetInitialFocus := false;
+           end;
+
+        GetElementUnderCaret;
+
+        if Assigned(FOnDisplayChanged)
+           then FOnDisplayChanged(self);
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.EnableModeless(const fEnable: BOOL): HRESULT;
+begin
+  //asm int 3 end; //trap
+  Result := E_NOTIMPL;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.OnDocWindowActivate(const fActivate: BOOL): HRESULT;
+begin
+  //Called from the MSHTML implementation of IOleInPlaceActiveObject.OnDocWindowActivate
+  //asm int 3 end; //trap
+  Result := E_NOTIMPL;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.OnFrameWindowActivate(const fActivate: BOOL): HRESULT;
+begin
+  //Called from the MSHTML implementation of IOleInPlaceActiveObject.OnFrameWindowActivate
+  //asm int 3 end; //trap
+  Result := E_NOTIMPL;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.ResizeBorder(const prcBorder: PRECT; const pUIWindow: IOleInPlaceUIWindow; const fRameWindow: BOOL): HRESULT;
+begin
+  //Called from the MSHTML implementation of IOleInPlaceActiveObject.ResizeBorder
+  //asm int 3 end; //trap
+  Result := E_NOTIMPL;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.TranslateAccelerator(const lpMsg: PMSG; const pguidCmdGroup: PGUID; const nCmdID: DWORD): HRESULT;
+begin
+  //asm int 3 end; //trap
+  { Called by MSHTML when IOleInPlaceActiveObject.TranslateAccelerator or
+    IOleControlSite.TranslateAccelerator is called }
+  //called by VCL
+  //called by OCX
+
+  { by OCX this is called from:
+    from: if FOleInPlaceActiveObject.TranslateAccelerator(WinMsg) = S_OK
+    in:   procedure TOleControl.WndProc(var Message: TMessage);
+
+    after this call comes calls to:
+    TEmbeddedED._TranslateAccelerator
+    TEditDesigner.TranslateAccelerator
+    TEmbeddedED.OleControlSite_TranslateAccelerator
+  }
+
+  Result := E_NOTIMPL;
+  { if we return S_OK then no further call to other "translate accelerator" occurs
+    because TOleControl.WndProc doesn't delegate the message further up the chain}
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetOptionKeyPath(var pchKey: POLESTR; const dw: DWORD): HRESULT;
+begin
+  //Returns the registry key under which MSHTML stores user preferences
+  //asm int 3 end; //trap
+  pchKey := nil;
+  Result := E_NOTIMPL;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetDropTarget(const pDropTarget: IDropTarget; out ppDropTarget: IDropTarget): HRESULT;
+begin
+  { Called by MSHTML when it is being used as a drop target to allow the host
+    to supply an alternative IDropTarget }
+  //asm int 3 end; //trap
+
+  {$IFDEF EDDRAGDROP}
+     result := InitializeDropTarget(Self, pDropTarget, ppDropTarget);
+  {$ELSE}
+     Result := E_NOTIMPL;
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetExternal(out ppDispatch: IDispatch): HRESULT;
+begin
+  { Called by MSHTML to obtain the host's IDispatch interface.
+    There is a sample on how to use it here:
+    http://www.euromind.com/iedelphi/embeddedwb/ongetexternal.htm }
+  //asm int 3 end; //trap
+
+  ppDispatch := nil;
+  Result := E_NOTIMPL;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.TranslateUrl(const dwTranslate: DWORD; const pchURLIn: POLESTR; var ppchURLOut: POLESTR): HRESULT;
+var
+  Changed: boolean;
+  URL: string;
+begin
+  { Called by MSHTML to allow the host an opportunity to modify the URL to be loaded
+    NB TranslateUrl is not called when you use Navigate or Navigate2 but only when a
+    hyperlink is clicked }
+  //asm int 3 end; //trap
+
+  if Assigned(FOnTranslateURL)
+     then begin
+        Changed := False;
+        URL := OleStrToString(pchURLIn);
+        FOnTranslateURL(Self, URL, Changed);
+        if Changed
+           then begin
+              ppchURLOut := StringToOleStr(URL);
+              Result := S_OK;
+           end
+           else Result := S_FALSE;
+     end
+     else begin
+        ppchURLOut := nil;
+        Result := S_FALSE;
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.FilterDataObject(const pDO: IDataObject; out ppDORet: IDataObject): HRESULT;
+begin
+  { Called on the host by MSHTML to allow the host to replace MSHTML's data object.
+    Returns S_OK if the data object is replaced, or S_FALSE if it's not replaced.
+
+    Although the documentation does not explicitly mention it, it will only be
+    called in paste situations }
+  //asm int 3 end; //trap
+
+  ppDORet := nil;
+  Result := S_FALSE;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.QueryService(const rsid, iid: TGuid; out Obj): HResult;
+begin
+  //asm int 3 end; //trap
+  IUnknown(obj) := nil;
+
+  if IsEqualGUID(rsid, SID_SHTMLEDitHost) and FEditMode
+     then result := TEditHost(FEditHost).QueryService(rsid, iid, IUnknown(obj))
+     else begin
+        if Assigned(FOnQueryService)
+           then Result := FOnQueryService(rsid, iid, IUnknown(obj))
+           else Result := E_NOINTERFACE;
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.LoadFromStrings(aStrings: TStrings): HResult;
+begin
+  //asm int 3 end; //trap
+
+  result := LoadFromString(aStrings.Text);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.LoadFromString(aString: String): HResult;
+{$IFNDEF EDMONIKER}
+var
+  aHandle: THandle;
+  aStream: IStream;
+{$ENDIF}
+begin
+  //asm int 3 end; //trap
+
+  FLoadFromString := true;
+
+  {$IFDEF EDMONIKER}
+     FKeepPath := True;
+     result := LoadFromStringMoniker(Self, aString);
+  {$ELSE}
+     FCurrentDocumentPath := '';
+     aHandle := GlobalAlloc(GPTR, Length(aString) + 1);
+     try
+        if aHandle <> 0
+           then begin
+              Move(aString[1], PChar(aHandle)^, Length(aString) + 1);
+              CreateStreamOnHGlobal(aHandle, FALSE, aStream);
+              result := LoadFromIStream(aStream);
+           end
+           else result := S_false;
+     finally
+        GlobalFree(aHandle);
+     end;
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+{$IFNDEF EDMONIKER}
+   function TEmbeddedED.LoadFromIStream(aIStream: IStream): HResult;
+   begin
+     //asm int 3 end; //trap
+
+     if not DocumentIsAssigned
+        then AssignDocument;
+
+     FReadyState := 0;
+     Result := PersistStream.Load(aIStream);
+
+     WaitForDocComplete;
+   end;
+{$ENDIF}
+//------------------------------------------------------------------------------
+procedure TEmbeddedED._CheckGenerator(MainCheck: Boolean = true);
+begin
+  //asm int 3 end; //trap
+
+  {$IFDEF EDLIB}
+     if MainCheck
+        then CheckGenerator(Self);
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetDocumentHTML: String;
+begin
+  //asm int 3 end; //trap
+
+  if ComponentInDesignMode or (TwebBrowser(Self).Document = nil)
+     then Result := ''
+     else begin
+        _CheckGenerator(false);
+        result := GetDocHTML(DOC);
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SetDocumentHTML(NewHTML: String);
+begin
+  //asm int 3 end; //trap
+
+  if ComponentInDesignMode
+     then exit;
+
+  if DOC = nil then  //kt
+    exit;  //kt     
+
+  //this is to avoid a very rear AV error
+  (Doc.selection as IHTMLSelectionObject).empty;
+  GetElementUnderCaret;
+
+  if S_OK = (DOC as IPersistMoniker).IsDirty
+          // avoid, question about save file from MSHTML
+     then cmdSet_B(IDM_SETDIRTY, false);
+
+  LoadFromString(NewHTML);
+
+  //now The document must be dirty !
+  CmdSet_B(IDM_SETDIRTY, true);
+  FHTMLImage := '';
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.AssignDocument;
+var
+  Ov: OleVariant;
+begin
+  //asm int 3 end; //trap
+  if TwebBrowser(Self).Document = nil
+     then begin
+        HandleNeeded;    //or a hidden MSHTML wont respond
+
+        Ov := AboutBlank;
+
+        FReadyState := 0;
+        Navigate2(Ov); //this will run asynchronously and call OnDocumentComplete
+
+        WaitForDocComplete;
+        //For some reason, with IE8, OnDocumentComplete is not getting fired...
+        FRefreshing := true; //kt added
+        EDOnDownloadComplete(self); //kt added... correct???
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.Go(Url: String): HResult;
+const
+  FileSlash = 'file://';
+var
+  aURLPath: string;
+
+  {$IFNDEF EDMONIKER}  
+     FBindCtx: IBindCtx;
+     aURLMoniker: IMoniker;
+  {$ENDIF}
+
+  //--------------------------------------
+  function DropFilePart(S: String): String;
+  begin
+     result := AnsiLowerCase(S);
+     if Pos(FileSlash, result) = 1
+        then Delete(result, 1, length(FileSlash));
+
+     result := StringReplace(result, '\', '/', [rfReplaceAll]);
+
+     if Length(result) < 3
+        then exit;
+
+     if pos('//', result) = 1
+        then result := AfterTokenNr(result, '/', 4)
+
+     else if result[2] = ':'
+        then delete(result, 1, 3);
+  end;
+  //--------------------------------------
+begin
+  //asm int 3 end; //trap
+
+  result := S_FALSE;
+  FBaseURL := '';
+
+  {$IFDEF EDMONIKER}
+     LoadFromEDMoniker(self, URL, '');
+  {$ELSE}
+    //Navigate(Url); //this is a bit unstable here so we use a URLmoniker instead
+    OleCheck(CreateBindCtx(0, FBindCtx));
+    CreateURLMoniker(nil, StringToOleStr(URL), aURLMoniker);
+
+    FReadyState := 0;  //make sure WaitForDocComplete don't return immediately
+    result := (DOC as IPersistMoniker).Load(false, aURLMoniker, FBindCtx, STGM_READ);
+
+    WaitForDocComplete;
+  {$ENDIF}
+
+  //se if we got to the target
+  aURLPath := GetPersistedFile;
+
+  if pos(DropFilePart(URL), DropFilePart(aURLPath)) = 1
+     then begin
+        result := S_OK;
+
+        //set BASEUrl according to the DHTMLEdit specs.
+        FBaseURL := aURLPath;
+        Delete(FBaseURL, LastDelimiter('\/', FBaseURL)+1, Length(FBaseURL));
+     end
+     else begin //just in case
+        if FDebug
+           then KSMessageE('Wrong URL reached'+DblCrLf+
+                           'Target:'+Crlf+URL+DblCrLf+
+                           'Reached:'+Crlf+ DOC.URL, 'Go-error');
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetDirty: boolean;
+begin
+  //asm int 3 end; //trap
+
+  if (TwebBrowser(Self).Document = nil) or (not FeditMode)
+     then begin
+        result := false;
+        exit;
+     end;
+
+  Result := S_OK = (DOC as IPersistMoniker).IsDirty;
+
+  { IPersistStream.IsDirty only reports that the document has been changed since
+    it was read / last saved.
+    Sometimes it don't know that a change have been changed back
+    - if you make some text bold and then undo it back to normal again then
+      IPersistStream knows that the document isn't dirty
+    - but if you doesn't undo the bold operation but change the text back to normal
+      again then IPersistStream reports the document dirty although its really clean }
+
+  if result
+     then begin
+        { We cant completely trust it if IPersistStream reports the document dirty.
+          So we compare the original image with the actual image of HTML source }
+
+        result := (not AnsiSameText(FHTMLImage, KS_Lib.GetHTMLtext(DOC)));
+
+        If not result
+           { no need to spend time repeating GetHTMLtext more often than necessary
+             so we sync IPersistMoniker.IsDirty with the real world }
+           then cmdSet_B(IDM_SETDIRTY, false);
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SetDirty(_dirty: boolean);
+begin
+  //asm int 3 end; //trap
+  if TwebBrowser(Self).Document <> nil
+     then  begin
+        cmdSet_B(IDM_SETDIRTY, _dirty); // Update IPersist**.IsDirty
+
+       if not _dirty //we have just set dirty to clean
+           { We really only need to get a new FHTMLImage if the current one is
+             dirty - but it doesn't harm to set it again if its clean }
+        then FHTMLImage := KS_Lib.GetHTMLtext(DOC);
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.QueryStatus(cmdID: CMDID): OLECMDF;
+var
+   Cmd: OLECMD;
+   Handled: boolean;
+
+   //----------------------------------------------------
+   function DoQerry: OLECMDF;
+   begin
+     //asm int 3 end; //trap
+     Cmd.CmdID := cmdID;
+     if S_OK = CmdTarget.QueryStatus(@CGID_MSHTML, 1, @Cmd, Nil)
+        then Result := Cmd.cmdf
+        else result := 0; //not supported
+   end;
+   //----------------------------------------------------
+begin
+  //asm int 3 end; //trap
+  { 7 = OLECMDF_SUPPORTED or OLECMDF_ENABLED or OLECMDF_LATCHED
+    3 = OLECMDF_SUPPORTED or OLECMDF_ENABLED }
+
+  result := 0;
+  if TwebBrowser(Self).Document <> nil
+     then begin
+        //we need to catch a few special commands here
+        case cmdID of
+           IDM_SHOWZEROBORDERATDESIGNTIME:
+              begin //MSHTML don't remember this setting
+                 if FShowZeroBorderAtDesignTime
+                    then result := 7
+                    else result := 3;
+              end;
+
+           IDM_CONSTRAIN:
+              begin
+                 if FConstrain
+                    then result := 7
+                    else result := 3;
+              end;
+
+           IDM_Undo, IDM_Redo, IDM_DROP_UNDO_PACKAGE, IDM_DROP_REDO_PACKAGE, IDM_LocalUndoManager:
+              begin
+                 {$IFDEF EDUNDO}
+                    if FTUndo <> nil
+                       then begin
+                          result := TUndo(FTUndo).QueryStatus(cmdID);
+                          exit;
+                       end;
+                 {$ENDIF}
+
+                 if (cmdID = IDM_Undo) or (cmdID = IDM_Redo)
+                    then result := DoQerry;
+                    //else result := 0
+              end;
+
+           IDM_NUDGE_ELEMENT, DECMD_LOCK_ELEMENT, DECMD_BRING_ABOVE_TEXT, DECMD_BRING_FORWARD, DECMD_BRING_TO_FRONT, DECMD_SEND_BELOW_TEXT, DECMD_SEND_TO_BACK, DECMD_SEND_BACKWARD:
+              begin
+                 {$IFDEF EDZINDEX}
+                    if FTZindex <> nil
+                       then result := TZindex(FTZindex).QueryStatus(cmdID);
+                 {$ELSE}
+                    //else result := 0
+                 {$ENDIF}
+              end;
+
+           else begin
+              Handled := false;
+
+              {$IFDEF EDTABLE}
+                 if assigned(FTtable)
+                    then result := TTable(FTtable).TableQeryCommand(cmdID, Handled, self);
+              {$ENDIF}
+
+              if not Handled
+                 then result := DoQerry;
+           end
+        end;
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.ExecCommand(cmdID: KS_Lib.CMDID; cmdexecopt: OLECMDEXECOPT; var pInVar: OleVariant): OleVariant;
+begin
+  //asm int 3 end; //trap
+  DoCommand(cmdID, cmdexecopt, pInVar, result);
+end;
+//-----------------------------------------------------------------------------
+function TEmbeddedED.DoCommand(cmdID: KS_Lib.CMDID): HResult;
+begin
+  //asm int 3 end; //trap
+  result := DoCommand(cmdID, OLECMDEXECOPT_DODEFAULT);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.DoCommand(cmdID: KS_Lib.CMDID; cmdexecopt: OLECMDEXECOPT): HResult;
+begin
+  //asm int 3 end; //trap
+  result := DoCommand(cmdID, cmdexecopt, POlevariant(Nil)^);
+end;
+//-----------------------------------------------------------------------------
+function TEmbeddedED.DoCommand(cmdID: KS_Lib.CMDID; cmdexecopt: OLECMDEXECOPT; var pInVar: OleVariant): HResult;
+begin
+  //asm int 3 end; //trap
+  result := DoCommand(cmdID, cmdexecopt, pInVar, POlevariant(Nil)^);
+end;
+//-----------------------------------------------------------------------------
+function TEmbeddedED.DoCommand(cmdID: KS_Lib.CMDID; cmdexecopt: OLECMDEXECOPT; var pInVar, pOutVar: OleVariant): HResult;
+const
+  SetError: Boolean = true;
+var
+  BoolInd: Boolean;
+  Handled: Boolean;
+  //OvParam: OleVariant;
+
+  //------------------------------------------------------------------
+  procedure TestResult(aResult: HResult; acceptError: Longint = 0);
+  begin
+     if FDebug and (aResult <> S_OK) and (aResult <> acceptError)
+        then begin
+           {$IFNDEF EDTABLE}
+              if (cmdID = IDM_RestoreSystemCursor) or (cmdID = IDM_STRIPCELLFORMAT)
+                 then exit;
+           {$ENDIF}
+
+           KSMessageI('cmdID: '+IntTostr(cmdID), 'MSHTML command failed');
+        end;
+  end;
+  //------------------------------------------------------------------
+  function _DoCommand(acceptError: Longint = 0): HResult;
+  begin
+     Result := CmdTarget.Exec(@CGID_MSHTML, cmdID, cmdexecopt, pInVar, pOutVar);
+     // For some reason, IE returns not supported if the user cancels. !!
+     // and we cant use OLECMDERR_E_CANCELED to avoid that problem
+     TestResult(Result, acceptError);
+  end;
+  //------------------------------------------------------------------
+  function TestBoolInd(DoSetError: Boolean = false): Boolean;
+  begin
+     result := (@pInVar <> nil) and (TVariantArg(pInVar).VT = VT_BOOL);
+     if result
+        then BoolInd := pInVar
+        else begin
+           if DoSetError
+              then FLastError := 'pInVar must be of type boolean';
+        end;
+  end;
+  //------------------------------------------------------------------
+begin
+  //asm int 3 end; //trap
+  result := S_FALSE;
+
+
+  if TwebBrowser(Self).Document = nil
+     then begin
+        AssignDocument;
+
+        if not DocumentIsAssigned
+           then begin
+              if FDebug
+                 then KSMessageI('DOC not assigned', 'MSHTML command skipped');
+              exit;
+           end;
+     end;
+
+
+
+  //we need to catch some commands here
+  case cmdID of
+
+     IDM_SHOWZEROBORDERATDESIGNTIME:
+        begin //MSHTML don't remember this setting
+           if TestBoolInd
+              then begin
+                 result := _DoCommand;
+                 if result = S_OK
+                    then FShowZeroBorderAtDesignTime := BoolInd;
+              end
+              else begin
+                 result := _DoCommand;
+                 if result = S_OK
+                    then FShowZeroBorderAtDesignTime := not FShowZeroBorderAtDesignTime;
+              end;
+           TestResult(Result);
+        end;
+
+     IDM_SAVEAS: // IDM_SAVE is not supported by MSHTML
+        begin
+           result := _DoCommand(Integer($80040103)); //The dialog was cancelled
+           if (result = S_OK) and FEditMode          //we did a save
+              then FHTMLImage := KS_Lib.GetHTMLtext(DOC); //get image of original source
+        end;
+
+     IDM_CONSTRAIN:
+        begin
+           FConstrain := not FConstrain;
+           result := S_OK;
+        end;
+
+     IDM_Undo, IDM_Redo, IDM_DROP_UNDO_PACKAGE, IDM_DROP_REDO_PACKAGE, IDM_LocalUndoManager:
+        begin
+           {$IFDEF EDUNDO}
+              if FTUndo <> nil
+                 then begin
+                    TestBoolInd;
+                    result := TUndo(FTUndo).DoCommand(cmdID, BoolInd, FEdit, Handled);
+                    if not Handled
+                       then result := _DoCommand;
+                 end
+                 else result := _DoCommand;
+           {$ELSE}
+              result := _DoCommand;
+           {$ENDIF}
+
+           TestResult(Result);
+        end;
+
+     IDM_NUDGE_ELEMENT, DECMD_LOCK_ELEMENT, DECMD_BRING_ABOVE_TEXT, DECMD_BRING_FORWARD, DECMD_BRING_TO_FRONT, DECMD_SEND_BELOW_TEXT, DECMD_SEND_TO_BACK, DECMD_SEND_BACKWARD:
+        begin
+           {$IFDEF EDZINDEX}
+              if FTZindex <> nil
+                 then result := TZindex(FTZindex).ZindexCommand(cmdID, pInVar);
+           {$ELSE}
+              //else result := S_FALSE
+           {$ENDIF}
+        end;
+
+     KS_TEST: result := KSTest(pInVar, pOutVar);
+
+     else begin
+        handled := false;
+        {$IFDEF EDTABLE}
+           if assigned(FTtable)
+              then result := TTable(FTtable).TableCommand(cmdID, pInVar, Handled, self);
+        {$ENDIF}
+
+        if handled
+           then TestResult(Result)
+           else begin
+             result := _DoCommand;
+             exit;
+           end;
+     end;
+  end;
+
+  if result = S_OK
+     then UpdateUI; //or buttons might jump out briefly
+end;
+//-----------------------------------------------------------------------------
+function TEmbeddedED.CmdSet(cmdID: KS_Lib.CMDID): HResult;
+begin
+  //asm int 3 end; //trap
+  result := DoCommand(cmdID, OLECMDEXECOPT_DODEFAULT);
+end;
+//-----------------------------------------------------------------------------
+function TEmbeddedED.CmdSet(cmdID: KS_Lib.CMDID; var pInVar: OleVariant): HResult;
+begin
+  //asm int 3 end; //trap
+  result := DoCommand(cmdID, OLECMDEXECOPT_DODEFAULT, pInVar, POlevariant(Nil)^);
+end;
+//-----------------------------------------------------------------------------
+function TEmbeddedED.CmdSet_B(cmdID: KS_Lib.CMDID; pIn: Boolean): HResult;
+var
+  Ov: OleVariant;
+begin
+  //asm int 3 end; //trap
+  Ov := pIn;
+  result := DoCommand(cmdID, OLECMDEXECOPT_DODEFAULT, Ov, POlevariant(Nil)^);
+end;
+//-----------------------------------------------------------------------------
+function TEmbeddedED.CmdSet_S(cmdID: KS_Lib.CMDID; pIn: String): HResult;
+var
+  Ov: OleVariant;
+begin
+  //asm int 3 end; //trap
+  Ov := pIn;
+  result := DoCommand(cmdID, OLECMDEXECOPT_DODEFAULT, Ov, POlevariant(Nil)^);
+end;
+//-----------------------------------------------------------------------------
+function TEmbeddedED.CmdSet_I(cmdID: KS_Lib.CMDID; pIn: Integer): HResult;
+var
+  Ov: OleVariant;
+begin
+  //asm int 3 end; //trap
+  Ov := pIn;
+  result := DoCommand(cmdID, OLECMDEXECOPT_DODEFAULT, Ov, POlevariant(Nil)^);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.WaitForDocComplete: Boolean;
+var
+  I: Cardinal;
+begin
+  //asm int 3 end; //trap
+
+  I := getTickCount + 20000;
+  result := true;
+
+  if TwebBrowser(Self).Document = nil   //avoid deadlock
+     then exit;
+
+  if FReadyState = READYSTATE_COMPLETE
+     then begin
+        if FDebug
+           then beep;
+        exit;
+     end;
+
+  While FReadyState <> READYSTATE_COMPLETE do //wait until DHTMLedit is ready
+     begin
+        if getTickCount > I
+           then begin
+              result := false;
+              if FDebug
+                 then KSMessageE('Dead lock break in WaitForDocComplete');
+
+              break; //avoid dead lock - break loop after 20 sec.
+           end
+           else SafeYield;
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.EndCurrentDocDialog(var mr: Integer; CancelPosible: Boolean = False; SkipDirtyCheck: Boolean = False): HResult;
+var
+  Buttons: Integer;
+  NotDirty: Boolean;
+begin
+  //asm int 3 end; //trap
+
+  result := S_OK;
+
+  if SkipDirtyCheck
+     then begin
+        NotDirty := true;
+        //avoid complains from MSHTML when loading new file - if DOC is dirty
+        cmdSet_B(IDM_SETDIRTY, false);
+     end
+     else NotDirty := not GetDirty;
+
+
+  if NotDirty  //current file is clean
+     then begin  //just delete backup
+        if Length(FCurBackFile) > 0
+           then DeleteFile(FCurBackFile); //works only for users with delete right
+                                          //other users leave the bak-file behind
+        mr := -1;
+     end
+     else begin        //current file is dirty
+        if CancelPosible
+           then Buttons := MB_YESNOCANCEL
+           else Buttons := MB_YESNO;
+
+        mr := KSQuestion('Document changed.'+DblCrLf+
+                         'Save changes ?', '', MB_ICONQUESTION or Buttons);
+
+        if mr = IDCANCEL    //skip the ending document process
+           then Result := S_False
+
+        else if mr = IDNO   //skip saving
+           then begin         //Don't save - just restore old file from backup
+              if DocIsPersist //if file created then get backup
+                 then begin
+                    if Assigned(FBeforeCloseFile)
+                       then FBeforeCloseFile(Self, FCurrentDocumentPath);
+
+                    if GetBackup //restore original file from backup
+                       then begin
+                          DeleteFile(FCurBackFile);
+                          FCurBackFile := '';
+                       end;
+                 end;
+
+              //avoid complains from MSHTML when loading new file - if DOC is dirty
+              cmdSet_B(IDM_SETDIRTY, false)
+           end;
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.EndCurrentDoc(CancelPosible: Boolean = False; SkipDirtyCheck: Boolean = False): HResult;
+var
+  mr: Integer;
+begin
+  //asm int 3 end; //trap
+
+  Result := EndCurrentDocDialog(mr, CancelPosible, SkipDirtyCheck);
+  if mr = IDYES
+     then begin
+        result := SaveFile;
+
+        if Assigned(FBeforeCloseFile)
+           then FBeforeCloseFile(Self, FCurrentDocumentPath);
+     end;
+end;
+//------------------------------------------------------------------------------
+Function TEmbeddedED.GetBackup: Boolean;
+begin
+  //asm int 3 end; //trap
+  //restore backup copy to current file (skip any changes)
+
+  if DocIsPersist and (length(FCurBackFile) > 0)
+     then result := FileCopy(FCurBackFile, FCurrentDocumentPath)
+     else result := True;
+end;
+//-----------------------------------------------------------------------------
+function TEmbeddedED.CreateBackUp: Boolean;
+begin
+  //asm int 3 end; //trap
+  if FCreateBakUp
+     then begin
+        FCurBackFile := ChangeFileExt(FCurrentDocumentPath, '.bak');
+        result := FileCopy(FCurrentDocumentPath, FCurBackFile);
+        if not result
+           then FCurBackFile := '';
+     end
+     else result := false;;
+end;
+//-----------------------------------------------------------------------------
+function TEmbeddedED.GetCharset: string;
+begin
+  //asm int 3 end; //trap
+
+  {$IFDEF EDLIB}
+     result := _GetCharset;
+  {$ELSE}
+     result := 'windows-1252'; //resort to default value
+  {$ENDIF}
+end;
+//-----------------------------------------------------------------------------
+function TEmbeddedED.EmptyDoc: String;
+var
+  BodyContetn: string;
+begin
+  //asm int 3 end; //trap
+
+  if Get_UseDivOnCarriageReturn
+     then BodyContetn := '<DIV>&nbsp;</DIV>'
+     else BodyContetn := '<P>&nbsp;</P>';
+
+  result := '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">'+CrLf+
+            '<HTML><HEAD><TITLE>No Title</TITLE>'+
+            '<META http-equiv=Content-Type content="text/html; charset='+ GetCharset +'">'+
+            '<META content="'+ GetGenerator +'" name=GENERATOR>'+
+            '</HEAD>' +
+            '<BODY>'+ BodyContetn +'</BODY></HTML>';
+end;
+//-----------------------------------------------------------------------------
+function TEmbeddedED.NewDocument: HResult;
+begin
+  //asm int 3 end; //trap
+
+  if TwebBrowser(Self).Document = nil
+     then AssignDocument
+     else begin
+        if EndCurrentDoc(CancelPosible, FSkipDirtyCheck) <> S_OK
+           then begin
+              Result := S_False;
+              exit;
+           end;
+     end;
+
+  Result := LoadFromString(EmptyDoc);
+
+  GetSourceSnapShot;
+
+  FBaseURL := ''; //set to empty string just like DHTMLEdit
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SetShowDetails(vIn: Boolean);
+begin
+  //asm int 3 end; //trap
+  FShowDetails := vIn;
+
+  {$IFDEF EDGLYPHS}
+     _SetShowDetails(FShowDetails, Self);
+  {$ELSE}
+     if DocumentIsAssigned
+        then begin
+           if ShowDetails
+              then CmdSet(IDM_SHOWALLTAGS)
+              else CmdSet(IDM_EMPTYGLYPHTABLE);
+        end;
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetDocTitle: string;
+begin
+  //asm int 3 end; //trap
+  if TwebBrowser(Self).Document <> nil
+     then result := DOC.Title
+     else result := '';
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SetDocTitle(NewTitle: String);
+begin
+  { MSHTML always creates an implicit empty title element, so you can
+    safely assign a text to it }
+  //asm int 3 end; //trap
+  if TwebBrowser(Self).Document <> nil
+     then DOC.Set_title(NewTitle);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetDOC: IHTMLDocument2;
+begin
+  //asm int 3 end; //trap
+  if TwebBrowser(Self).Document = nil
+     then result := nil
+     else result := TwebBrowser(Self).Document as IHTMLDocument2;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.DocumentIsAssigned: Boolean;
+begin
+  //asm int 3 end; //trap
+  result := TwebBrowser(Self).Document <> nil;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetInPlaceActiveObject: IOleInPlaceActiveObject;
+var
+  aHandle: Windows.Hwnd;
+begin
+  //asm int 3 end; //trap
+  { this function is called from initializeEditor, so FmsHTMLwinHandle is assured
+    to be available at the time we got an document to operate on }
+
+  if FOleInPlaceActiveObject <> nil
+     then begin
+        result := FOleInPlaceActiveObject;
+        exit;
+     end;
+
+  if ControlInterface <> nil
+     then OleCheck(ControlInterface.QueryInterface(IOleInPlaceActiveObject, FOleInPlaceActiveObject))
+     else begin
+        result := nil;
+        exit;
+     end;
+
+  //first get the "Shell Embedding" window
+  OleCheck(FOleInPlaceActiveObject.GetWindow(FMainWinHandle));
+
+  //then get the "Shell DocObject View" window
+  aHandle := FindWindowEx(FMainWinHandle, 0, 'Shell DocObject View', nil);
+
+  //now get the mshtml components main window
+  FmsHTMLwinHandle := FindWindowEx(aHandle, 0, 'Internet Explorer_Server', nil);
+
+  result := FOleInPlaceActiveObject;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetCmdTarget: IOleCommandTarget;
+begin
+  //asm int 3 end; //trap
+  if TwebBrowser(Self).Document = nil
+     then result := nil
+     else result := TwebBrowser(Self).Document as IOleCommandTarget;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetPersistStream: IPersistStreamInit;
+begin
+  //asm int 3 end; //trap
+
+  { In a Microsoft Visual C++ WebBrowser host or similar application, when you
+    call the QueryInterface method for the IPersistStreamInit interface on a
+    FRAME in a FRAMESET, it returns E_NOINTERFACE. When you query for other
+    standard persistence interfaces (IPersistStream, IPersistFile, IPersistMemory),
+    you receive the same error.}
+
+  if TwebBrowser(Self).Document = nil
+     then result := nil
+     else result := TwebBrowser(Self).Document as IPersistStreamInit;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetPersistFile: IPersistFile;
+begin
+  //asm int 3 end; //trap
+  if TwebBrowser(Self).Document = nil
+     then result := nil
+     else result := TwebBrowser(Self).Document as IPersistFile;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.PrintDocument(var withUI: OleVariant);
+begin
+  //asm int 3 end; //trap
+  if withUI
+     then DoCommand(IDM_PRINT, OLECMDEXECOPT_PROMPTUSER)
+     else DoCommand(IDM_PRINT, OLECMDEXECOPT_DONTPROMPTUSER);
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.Refresh;
+var
+  Rect: TRect;
+begin
+  //asm int 3 end; //trap
+  //DoCommand(IDM_REFRESH); //this reloads the document
+
+ {DHTML Edit docs says:
+  This method redraws the current document, including the latest changes.
+  You can use this method to redisplay a document if a series of edits have left
+  the document in a state that is hard to read.
+
+  If you are hosting a DHTML Editing control on a Web page, and if the control is
+  hidden, you can also use this method to load a document into a DHTML Editing control.
+  By default, the window object's onload event does not load documents into hidden
+  controls.
+
+  The Refresh method does not reread information from a file. If the current document
+  references an external file, such as an applet or an image, and that file has changed,
+  the change is not displayed by the Refresh method. To see changes in external files,
+  use the LoadURL or LoadDocument method.
+
+  The Refresh method sets the isDirty property to False. - the later seems not
+  to be true ! }
+
+  { NB the undo stack isn't cleared so DHTML Editing doesn't reload the document
+    in any way }              
+
+    
+  //this is a guess
+  Rect := BoundsRect;
+  InvalidateRect(FmsHTMLwinHandle, @Rect, true);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.Get_Busy: Boolean;
+begin
+  //asm int 3 end; //trap
+  result := TWebBrowser(self).busy;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.CmdGet(cmdID: KS_Lib.CMDID): OleVariant;
+begin
+  //asm int 3 end; //trap
+  if S_OK <> DoCommand(cmdID, OLECMDEXECOPT_DODEFAULT, POlevariant(Nil)^, Result)
+     then Result := false;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.CmdGet(cmdID: KS_Lib.CMDID; pInVar: OleVariant): OleVariant;
+begin
+  //asm int 3 end; //trap
+  if S_OK <> DoCommand(cmdID, OLECMDEXECOPT_DODEFAULT, pInVar, Result)
+     then Result := false;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetBuildInStyles: String;
+begin
+  //asm int 3 end; //trap
+
+  { because we need this list each time we load a new document we store it
+    in FInternalStyles }
+  if Length(FInternalStyles) = 0
+     then _GetBuildInStyles;
+
+  result := FInternalStyles;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED._GetBuildInStyles;
+var
+  ov: OleVariant;
+  I: Integer;
+  StrCount: Integer;
+  Ps: PSafeArray;
+  Warr: array of WideString;
+begin
+  //asm int 3 end; //trap
+
+  FStyles.Clear;
+
+  TVariantArg(ov).VT := VT_ARRAY;
+  FInternalStyles := '';
+
+  if (QueryStatus(IDM_GETBLOCKFMTS) and OLECMDF_ENABLED) = 0
+     then begin
+        TVariantArg(Ov).VT := VT_EMPTY; //D6 throws an error if we don't do this ?
+        exit;
+     end;
+
+  Ov := CmdGet(IDM_GETBLOCKFMTS);
+
+  { now we can get the returned strings either via API-calls or by
+    direct handling of the SafeArray pointed to by VarRange.
+
+    API-calls are a bit slower but easy - the backside is that
+    SafeArrays stay a mystery to you
+
+    Direct handling involves much coding but executes faster
+
+    In both cases Delphi destroys the SafeArray fore you when it
+    get out of scope. }
+
+  //this is the direct handling of the SafeArray
+  //************************************************
+
+     //get a pointer to the SafeArray
+  Ps := TVariantArg(ov).pArray;
+  if Ps = nil
+     then exit;
+
+     //Get number of strings in the SafeArray
+  StrCount := TSAFEARRAYBOUND(Ps.rgsabound).cElements;
+      //make room fore all the strings in our WideString array
+  SetLength(Warr, StrCount);
+  try
+        //lock the SafeArray = no risk of memory reallocation during copy
+     Inc(Ps.cLocks);
+        //copy OleStrings to WideString array
+        //Ps.pvData points to start of the SafeArrays Data-segment
+        //Ps.cbElements = size of each record = a PWideChar
+     CopyMemory (@Warr[0], Ps.pvData, StrCount * 4 {Ps.cbElements});
+     //result := StrCount > 0;
+  finally
+     Dec(Ps.cLocks); //unlock the SafeArray
+  end;
+
+  for I := 0 to StrCount -1 do
+     FStyles.Add(Warr[I]); //get each string from the WideString array
+
+  FInternalStyles := FStyles.Text;
+
+  TVariantArg(Ov).VT := VT_EMPTY; //D6 throws an error if we don't do this ?
+
+
+  {
+  //this is the the API way of doing the same task as above
+  //************************************************
+     //get a pointer to the SafeArray
+  Ps := TVariantArg(ov).pArray;
+  sCommands := '';
+  for I := VarArrayLowBound(ov, 1) to VarArrayHighBound(ov, 1) do
+     begin
+           //get each string from the SafeArray
+        SafeArrayGetElement(Ps, I, Pw);
+        aList.Add(Pw);
+     end;
+  }
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetStyles: String;
+begin
+  //asm int 3 end; //trap
+  result := '';
+
+  if FStylesRefreshed
+     then result := FStyles.Text
+     else begin
+        FStylesRefreshed := true;
+
+        if Length(FInternalStyles) = 0
+           then _GetBuildInStyles;
+
+        {$IFDEF EDLIB}
+           MergeExterNalStyles(Self, FInternalStyles);
+        {$ELSE}
+           FStyles.Text := FInternalStyles;
+        {$ENDIF}
+     end;
+
+  result := FStyles.Text;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetExternalStyles: String;
+begin
+  //asm int 3 end; //trap
+
+  {$IFDEF EDLIB}
+     if Length(FExternalStyles) = 0
+        then _GetExternalStyles(Self);
+  {$ENDIF}
+
+  result := FExternalStyles;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.SetStyle(aStyleName: string): HResult;
+var
+  aElement: IHTMLElement;
+  aStyle: String;
+  aIndex: Integer;
+  I: Integer;
+  aTagName: String;
+  SelStart, SelEnd: Integer;
+
+  //--------------------------------------------
+  procedure ClearAllTags;
+  var
+     aElement: IHTMLElement;
+     TagText: String;
+     aTag: string;
+     S, S2: String;
+     aDomNode: IHTMLDomNode;
+     BreakLoop: Boolean;
+     BreakTagInserted: Boolean;
+   begin
+
+     BreakTagInserted := False;
+     aElement := GetFirstSelElement;
+      DebugString := aElement.OuterHTML;
+
+     while true do
+        begin
+           if not Assigned(aElement)
+              then break;
+
+//               aElement.ClassName := 'KS_DeleteMe'; // RHR
+//kt              aElement._className := 'KS_DeleteMe'; // RHR
+              aElement.className := 'KS_DeleteMe'; // kt
+              aElement := GetNextSelElement;
+        end;
+
+
+     //now delete marked elements
+     aElement := GetFirstSelElement;
+     DebugString := aElement.OuterHTML;
+
+     while true do
+        begin
+           if not Assigned(aElement)
+              then break;
+
+           // if aElement.ClassName = 'KS_DeleteMe'  RHR
+           //kt if aElement._ClassName = 'KS_DeleteMe'
+           if aElement.className = 'KS_DeleteMe'  //kt
+              then begin
+                 aDomNode := aElement as IHTMLDomNode;
+                 aDomNode.removeNode(false); //false = do not remove child nodes
+              end
+              else break;  //end of element to delete reached
+
+           aElement := GetNextSelElement;
+        end;
+
+          //now delete marked elements
+     aElement := GetFirstSelElement;
+     DebugString := aElement.OuterHTML;
+  end;
+  //--------------------------------------------
+  procedure ClearClassStyles;
+  var
+     I: Integer;
+  begin
+     //loop trough all selected elements and remove known "tagName:className"
+     aElement := GetFirstSelElement;
+     DebugString := aElement.outerHTML;
+
+     while assigned(aElement) do
+        begin
+           //kt if Length(aElement._className) > 0   // RHR
+           if Length(aElement.className) > 0   // kt
+              then begin
+            //kt if FStyles.Find(aElement.tagName + '.' + aElement._className, I)  // RHR
+                 if FStyles.Find(aElement.tagName + '.' + aElement.className, I)  // kt
+                    then aElement.removeAttribute('className', 0);
+              end;
+
+           aElement := GetNextSelElement;
+        end;
+  end;
+  //--------------------------------------------
+begin
+  //asm int 3 end; //trap
+  result := S_false;
+
+  if not FStyles.Find(aStyleName, aIndex)
+     then exit;        //unknown style
+
+  { As we added our style sheet-classes to FStyles we marked the
+    FStyles's objet with 1 >> FStyles.AddObject(S, TObject(1))
+    Now we can distinguish between build in styles and external styles. }
+
+  if FStyles.Objects[aIndex] = nil //this is an internal style
+     then begin
+        if (QueryStatus(IDM_BLOCKFMT) and OLECMDF_ENABLED) = 0
+           then exit;
+
+        BeginUndoUnit('Set internal Style');
+        try
+           //First remove any class style as MSHTML doesn't do that
+           ClearClassStyles;
+           //let MSHTML handle build in styles
+           result := CmdSet_S(IDM_BLOCKFMT, aStyleName);
+
+           { Style = Normal has different effect depending on the settings of
+             UseDivOnCarriageReturn. If set the selected text will be "packed"
+             into DIV tags, and if not set it will be P tags that encapsulates
+             the selection }
+        finally
+           EndUndoBlock(result);
+        end;
+
+        exit;
+     end;
+
+
+  //handle our style-sheet classes
+  I := pos('.', aStyleName);
+  if I > 0
+     then begin
+        aTagName := copy(aStyleName, 1, I -1);
+        aStyle := copy(aStyleName, I+1, Length(aStyleName));
+
+        { loop trough all selected elements with aTagName
+          and set className := aStyle }
+
+        aElement := GetFirstSelElement;//(aTagName);
+
+        if assigned(aElement)
+           then begin
+              BeginUndoUnit('Set external Style');
+              try
+                 while assigned(aElement) do
+                    begin
+                       {$IFDEF EDLIB}
+                          //substitute old tag with new tag
+                          ChangeTag(DOC, aElement, aTagName);
+                       {$ENDIF}
+                       
+                       //kt aElement._className := aStyle;    // RHR
+                       aElement.className := aStyle;    // kt
+                       aElement := GetNextSelElement(aTagName);
+                    end;
+
+                 result := S_OK;
+              finally
+                 EndUndoBlock(result);
+              end;
+           end;
+     end
+     else begin
+        //this must be an error
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.QueryEnabled(cmdID: KS_Lib.CMDID): Boolean;
+begin
+  //asm int 3 end; //trap
+  Result := (QueryStatus(cmdID) and OLECMDF_ENABLED)  = OLECMDF_ENABLED;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.QueryLatched(cmdID: KS_Lib.CMDID): Boolean;
+var
+  dwStatus : OLECMDF;
+begin
+  //asm int 3 end; //trap
+  dwStatus := QueryStatus(cmdID);
+  
+  Result := (dwStatus and OLECMDF_LATCHED)  = OLECMDF_LATCHED;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED._CurFileName: string;
+begin
+  //asm int 3 end; //trap
+  result := FCurrentDocumentPath;
+  if Length(result) > 0
+     then Delete(result, 1, LastDelimiter('\/', result)); //drop path
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED._CurDir: string;
+begin
+  //asm int 3 end; //trap
+  result := FCurrentDocumentPath;
+  if (Length(result) > 0) and
+     (S_OK = IsFilePath(result, result))
+     then Delete(result, LastDelimiter('\/', result)+1, length(result)); //drop file
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetOleobject: IOleobject;
+begin
+  //asm int 3 end; //trap
+  {$IFDEF VER120} result := TwebBrowser(Self).Application_ as IOleobject; // Delphi 4.0
+  {$ELSE}         result := TwebBrowser(Self).Application as IOleobject;
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SetFocusToDoc;
+begin
+  //asm int 3 end; //trap
+  if TwebBrowser(Self).Document <> nil
+     then GetOleobject.DoVerb(OLEIVERB_UIACTIVATE, nil, self as IOleClientSite, 0, Handle, GetClientRect);
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SetBaseURL(const Value: String);
+  //---------------------------------------
+  function ValidFilePath(aPath: string): Boolean;
+  var
+     I: Integer;
+  begin
+     I := LastDelimiter('.\:', aPath);
+
+     result := (I > 0) and       //we have a path
+               ((aPath[I] = '\') or //it ends with backslash
+                (aPath[I] = '.')); //we found a trailing file name
+  end;
+  //---------------------------------------
+begin
+  //asm int 3 end; //trap
+
+  if ComponentInDesignMode
+     then begin
+        FBaseURL := '';
+        exit;
+     end;
+
+  {$IFDEF EDMONIKER}
+     {Setting BASEURL in the middle of an edit session has the side effect that the
+      MSHTML UNDO stack is cleared.
+
+      DHTMLEdit behaves even worse. The document is reloaded from disk causing all
+      non saved changes to be lost without any warning }
+
+     if AnsiSameText(FBaseURL, Value)//don't waist time setting the same BASEUrl
+        then exit;
+
+     if FBaseTagInDoc
+        then exit;     { a base tag in the document will override a BASEUrl
+                         so don't waist time trying }
+
+     //check for trailing backslash in a file path
+     if (pos('\', Value) > 0) and      //this is a file path
+        (Not ValidFilePath(Value))
+        then KsMessageI('SetBaseURL: Bad value')
+        else begin
+           FBaseURL := Value;
+           FSettingBaseURL := true;
+           SetBase_Url(Self);
+        end;
+ {$ELSE}
+     NotImplemented('SetBaseURL');
+ {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetBaseURL: String;
+begin
+  //asm int 3 end; //trap
+  if ComponentInDesignMode
+     then result := '' //always blank in design mode
+     else result := FBaseURL;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetBaseElement(var aBaseElement: IHTMLBaseElement): boolean;
+var
+  aCollection: IHTMLElementCollection;
+begin
+  //asm int 3 end; //trap
+  aCollection := (DOC as IHTMLDocument3).getElementsByTagName('BASE') as IHTMLElementCollection;
+  if aCollection.length < 1
+     then result := false
+     else begin
+        aBaseElement := aCollection.item(0, 0) as IHTMLBaseElement;
+        result := true;
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetActualAppName: string;
+begin
+  //asm int 3 end; //trap    - not used
+  Result := TheActualAppName;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SetActualAppName(const Value: string);
+begin
+  //asm int 3 end; //trap
+  TheActualAppName := Value;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SetBrowseMode(const Value: WordBool);
+begin
+  //asm int 3 end; //trap
+  FEditMode := not Value;
+
+  if TwebBrowser(Self).Document <> nil
+     then begin
+        if FEditMode
+           then DOC.designMode := 'On'
+           else DOC.designMode := 'Off';
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetBrowseMode: WordBool;
+begin
+  //asm int 3 end; //trap
+  result := not FEditMode;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.GetElementUnderCaret;
+var
+  aSel: IHTMLSelectionObject;
+  aDispatch: IDispatch;
+
+  //------------------------------
+  procedure GetSelection;
+  begin
+     aSel := Doc.selection;
+     if assigned(aSel)
+        then
+           try  //????? 
+              aDispatch := aSel.createRange;
+           Except
+           end;
+
+     if assigned(aDispatch)
+        then begin
+           if supports(aSel.createRange, IHTMLTxtRange, FActualTxtRange)
+              then begin
+                 FActualElement := FActualTxtRange.ParentElement;
+                 FActualRangeIsText := True;
+              end;
+        end
+        else begin
+           //last chance to ensure a valid TextRange
+           try
+              FActualTxtRange := (DOC.body as IHTMLBodyElement).createTextRange;
+              FActualTxtRange.Collapse(true);  //move to start of aTxtRange / document
+           except;
+              FActualTxtRange := nil;
+            end;
+        end;
+  end;
+  //------------------------------
+begin
+  //asm int 3 end; //trap
+  FLength := -1;
+  FFirstElement := 0;
+  FLastElement := 0;
+
+  if (FReadyState <> READYSTATE_COMPLETE)
+     then exit;
+
+  FActualControlRange := nil;
+  FActualTxtRange := nil;
+
+  aSel := DOC.Selection;
+
+  FSelectionType := aSel.type_;
+
+  if SameText(FSelectionType, 'None')
+     then begin
+        GetSelection;
+        FSelection := false;
+     end
+
+  else if SameText(FSelectionType, 'Text')
+     then begin
+        GetSelection;
+        FSelection := true;
+     end
+
+  else if SameText(FSelectionType, 'Control')
+     then begin
+        FSelection := true;
+        FActualElement := nil;
+
+        if assigned(aSel)
+           then begin
+              if supports(aSel.createRange, IHTMLControlRange, FActualControlRange)
+                 then begin
+                    FActualElement := FActualControlRange.commonParentElement;
+                    FActualRangeIsText := False;
+                    FActualTxtRange := (DOC.body as IHTMLBodyElement).createTextRange;
+
+                    OleCheck(FMarkupPointerStart.MoveAdjacentToElement(FActualElement, ELEM_ADJ_BeforeBegin));
+                    OleCheck(FMarkupPointerEnd.MoveAdjacentToElement(FActualElement, ELEM_ADJ_AfterEnd));
+
+                    //move rang in place
+                    OleCheck(FMarkUpServices.MoveRangeToPointers(FMarkupPointerStart, FMarkupPointerEnd, FActualTxtRange));
+
+                    //FActualTxtRange.MoveToElementText(FActualElement);
+                 end;
+           end
+           else GetSelection;
+      end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetActualElement: IHTMLElement;
+begin
+  //asm int 3 end; //trap
+  if (not assigned(FActualElement)) or
+     (FActualElement.OuterHTML = '')  // or we might get into troubles after
+     then GetElementUnderCaret;    // deletion of a element
+
+  result := FActualElement;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetActualTxtRange: IHTMLTxtRange;
+begin
+  //asm int 3 end; //trap
+  if not assigned(FActualTxtRange) // or we might get into troubles after
+     then GetElementUnderCaret;    // deletion of a element
+
+  result := FActualTxtRange;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetActualControlRange: IHTMLControlRange;
+begin
+  //asm int 3 end; //trap
+  result := FActualControlRange;
+end;
+//------------------------------------------------------------------------------
+Procedure TEmbeddedED.GetSelStartElement;
+var
+  aTxtRange: IHTMLTxtRange;
+begin
+  //asm int 3 end; //trap
+  aTxtRange := FActualTxtRange.duplicate;
+  aTxtRange.Collapse(True); //start of selection
+  FStartElementSourceIndex := aTxtRange.ParentElement.SourceIndex;
+end;
+//------------------------------------------------------------------------------
+Procedure TEmbeddedED.GetSelEndElement;
+var
+  aTxtRange: IHTMLTxtRange;
+begin
+  //asm int 3 end; //trap
+  aTxtRange := FActualTxtRange.duplicate;
+  aTxtRange.Collapse(False); //end of selection
+  FEndElementSourceIndex := aTxtRange.ParentElement.SourceIndex;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetElementNr(ElementNumber: Integer): IHTMLElement;
+var
+  aItem: Integer;
+begin
+  //asm int 3 end; //trap
+  aItem := FFirstElement + ElementNumber;
+  Result := FElementCollection.item(aItem, null) as IHTMLElement;
+  DebugString := Result.OuterHTML;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetSelLength: Integer;
+var
+  aElement: IHTMLElement;
+  PrevElement: IHTMLElement;
+  I: Integer;
+begin
+  //asm int 3 end; //trap
+  if FLength < 0 //not yet initialised
+     then begin
+        GetSelStartElement; //get element at start selection
+        GetSelEndElement;   //get element at end selection
+
+        FElementCollection := FActualElement.all as IHTMLElementCollection;
+        FLength := FElementCollection.length;
+
+        if FLength <  FEndElementSourceIndex - FStartElementSourceIndex
+           {sometimes i.e. if all cells in a table is selected only the last
+            element is returned in the ElementCollection :-(
+            But luckily FStartElementSourceIndex and FEndElementSourceIndex
+            is correctly computed }
+           then begin
+              FElementCollection := DOC.all as IHTMLElementCollection;
+              FLength := FElementCollection.length;
+           end;
+
+        if FLength = 0 //only one element selected
+           then begin
+              FFirstElement := 0;//FStartElementSourceIndex;
+              FLastElement := 0;//FStartElementSourceIndex;
+              Result := FLength;
+              exit;
+           end;
+
+        { the collection may contain more elements than selected.
+          return only elements that are inside the selection }
+
+        //Find first element inside selection
+        for I := 0 to FLength -1 do
+           begin
+              aElement := FElementCollection.item(i, null) as IHTMLElement;
+              { the first element sometimes have an sourceindex of one higher
+                than  FStartElementSourceIndex ? so break on <= }
+              if FStartElementSourceIndex <= aElement.SourceIndex
+                 then begin
+                    FFirstElement := I;  //first element inside selection
+                    break;
+                 end;
+              PrevElement := aElement;
+           end;
+
+        //certain elements must be kept together
+        if (FFirstElement > 0) and  (not KeepLI) and
+           SameText(PrevElement.tagName, 'LI')
+           then Dec(FFirstElement);
+
+
+
+        //Find last element inside selection
+        for I := FLength -1 downto 0 do
+           begin
+              aElement := FElementCollection.item(i, null) as IHTMLElement;
+              if FEndElementSourceIndex = aElement.SourceIndex
+                 then begin
+                    FLastElement := I;  //last element inside selection
+                    break;
+                 end;
+           end;
+
+        if FLastElement = FFirstElement
+           then FLength := 0 //there is 1 element in the collection
+           else FLength := FLastElement - FFirstElement;// +1;
+
+     end;
+
+  Result := FLength;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.GetSelParentElement;
+begin
+  //asm int 3 end; //trap
+  FActualElement := FActualElement.ParentElement;
+  FActualTxtRange.MoveToElementText(FActualElement);
+  FActualTxtRange.Select;
+  FLength := -1;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED._GetNextItem(const aTag: String = ''): IHTMLElement;
+var
+  aElement: IHTMLElement;
+
+  //-----------------------
+  Function LastElementsParents: boolean;
+  begin
+     LastElementsParents := False;
+     //we might find the searched element higher up the chain
+
+     while not SameText(aElement.tagName, cBODY) do
+        begin
+           aElement := aElement.parentElement;
+           if SameText(aElement.tagName, aTag)
+              then begin  //we  found it :-)
+                 _GetNextItem := aElement;
+                 LastElementsParents := true;
+                 break;
+              end;
+        end;
+  end;
+  //-----------------------
+begin
+  //asm int 3 end; //trap
+  if sameText('LI', aTag)
+     then KeepLI := True
+     else KeepLI := false;
+
+  {FLength = -1 means the GetLength function isn't initialised yet}
+  if (FLength > -1) and (FTagNumber >{=} FLength)  //no more tags in collection
+     then begin
+        Result := Nil;
+        exit;
+     end;
+
+  if GetSelLength = 0  //if GetLength isn't initialised yet it happens now
+     then begin
+        //only one element is selected
+        if (System.length(aTag) = 0) or
+            AnsiSameText(aTag, FActualElement.tagName)
+           then Result := FActualElement
+           else begin
+              Result := Nil;
+              aElement := FActualElement;
+              LastElementsParents;
+           end;
+        inc(FTagNumber);
+        exit;
+     end;
+
+  //get next element from collection
+  Result := GetElementNr(FTagNumber);
+  inc(FTagNumber);
+
+  if (System.Length(aTag) = 0) or          //no filter
+     (AnsiSameText(aTag, Result.tagName))  //tag is filtered - but match tag name
+     then exit;
+
+
+  //the first tag might not fully contain the searched tag
+
+  if FTagNumber = 1 //it is the first tag [ 0 incremented ]
+     then begin
+        aElement := Result;
+        if LastElementsParents
+           then exit;
+     end;
+
+
+  //loop tag collection looking fore a matching tag
+  while true do
+     begin
+        if FTagNumber > FLength  //no more tags in collection
+           then begin
+              Result := Nil;
+              Break;
+           end;
+
+        //get next element from collection
+        Result := GetElementNr(FTagNumber);
+        inc(FTagNumber);
+
+        if Assigned(Result) and AnsiSameText(aTag, Result.tagName)
+           then Break;
+     end;
+end;
+//------------------------------------------------------------------------------
+Function TEmbeddedED.GetFirstSelElement(const aTag: String = ''): IHTMLElement;
+begin
+  //asm int 3 end; //trap
+  FTagNumber := 0;
+  FLength := - 1;
+  Result := _GetNextItem(aTag);
+end;
+//------------------------------------------------------------------------------
+Function TEmbeddedED.GetNextSelElement(const aTag: String = ''): IHTMLElement;
+begin
+  //asm int 3 end; //trap
+  Result := _GetNextItem(aTag);
+end;
+//------------------------------------------------------------------------------
+Function TEmbeddedED.GetSelText: String;
+begin
+  //asm int 3 end; //trap
+  if FActualRangeIsText
+     Then Result := Trim(FActualTxtRange.Text)
+     else result := '';
+end;
+//------------------------------------------------------------------------------
+Function TEmbeddedED.IsSelType(aType: string): boolean;
+begin
+  //asm int 3 end; //trap
+  result := SameText(aType, FSelectionType);
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.KeepSelectionVisible;
+begin
+  //asm int 3 end; //trap
+ { after pasting text into a textrang the screen selection is cleared. }
+
+  FMarkUpServices.MoveRangeToPointers(FMarkupPointerStart, FMarkupPointerEnd, FActualTxtRange);
+  SelectActualTextrange;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetSelParentElementType(const aType: string; aMessage: string = ''): IHTMLElement;
+begin
+  //asm int 3 end; //trap
+
+  //go up to the aType-tag
+  GetParentElemetType(FActualElement, aType, Result);
+
+  if SameText(Result.tagName, cBODY) and (not SameText(cBODY, aType))
+     then begin
+        result := Nil;
+        if System.length(aMessage) > 0
+           then KSMessageI(aMessage);
+     end;
+end;
+//------------------------------------------------------------------------------
+Function TEmbeddedED.IsSelElementID(const ID: String): Boolean;
+begin
+  //asm int 3 end; //trap
+  Result := assigned(FActualElement) and AnsiSameText(FActualElement.ID, ID)
+end;
+//------------------------------------------------------------------------------
+Function TEmbeddedED.IsSelElementClassName(const ClassName: String): Boolean;
+begin
+  //asm int 3 end; //trap
+  //kt Result := AnsiSameText(FActualElement._ClassName, ClassName)   // RHR
+  Result := AnsiSameText(FActualElement.className, ClassName)   // kt
+end;
+//------------------------------------------------------------------------------
+Function TEmbeddedED.IsSelElementTagName(const TagName: String): Boolean;
+begin
+  //asm int 3 end; //trap
+  Result := AnsiSameText(FActualElement.TagName, TagName)
+end;
+//------------------------------------------------------------------------------
+Function TEmbeddedED.IsSelElementInVisible: Boolean;
+begin
+  //.asm int 3 end; //trap
+  result := SameText(FActualElement.Style.display, 'none')
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.IsSelElementAbsolute: boolean;
+begin
+  //.asm int 3 end; //trap    - not used
+  result := SameText(FActualElement.Style.Position, 'absolute')
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.MakeSelElementVisible(Show: boolean);
+begin
+  //asm int 3 end; //trap
+  if Show
+     then FActualElement.Style.display := ''
+     else FActualElement.Style.display := 'none';
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.TrimSelection;
+//remove any leading / trailing spaces from the selection.
+var
+  S: String;
+begin
+  //asm int 3 end; //trap
+  //beware Selection can contain selected elements ie. end wit an IMG tag
+
+  S := FActualTxtRange.htmlText;
+
+  //selection of spaces normaly only ocoures trailing, but just in case
+  while (System.length(S) > 0) and (S[1] = #32) do
+     begin
+        FActualTxtRange.MoveStart('character', 1);
+        Delete(S, 1, 1);
+     end;
+
+  while (System.length(S) > 0) and (S[System.Length(S)] = #32) do
+     begin
+        FActualTxtRange.MoveEnd('character', -1);
+        Delete(S, System.Length(S), 1);
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SelectActualTextrange;
+begin
+  //asm int 3 end; //trap
+  FActualTxtRange.Select;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SelectElement(aElement: IhtmlElement);
+begin
+  //asm int 3 end; //trap
+
+  if not assigned(aElement)
+     then exit;
+
+  FActualElement := aElement;
+
+  FActualRangeIsText := False;
+  if not assigned(FActualTxtRange)
+     then FActualTxtRange := (DOC.body as IHTMLBodyElement).createTextRange;
+  FActualTxtRange.MoveToElementText(FActualElement);
+
+  FActualTxtRange.Select;
+
+  if length(FActualElement.InnerHTML) = 0
+     then begin
+        if SetCursorAtElement(aElement, ELEM_ADJ_BeforeBegin)
+           then ShowCursor(true);
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.SetCursorAtElement(aElement: IhtmlElement; ADJACENCY:_ELEMENT_ADJACENCY): Boolean;
+begin
+  //asm int 3 end; //trap
+
+  result := false;
+  if not assigned(aElement)
+     then exit;
+
+  if S_OK = FMarkupPointerStart.MoveAdjacentToElement(aElement, ADJACENCY)
+     then begin
+        FDisplayPointerStart.SetDisplayGravity(DISPLAY_GRAVITY_NextLine);
+        if S_OK = FDisplayPointerStart.MoveToMarkupPointer(FMarkupPointerStart, nil)
+           then result := S_OK = FCaret.MoveCaretToPointer(FDisplayPointerStart, 0, CARET_DIRECTION_SAME);
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.CollapseActualTextrange(Start: boolean);
+begin
+  //.asm int 3 end; //trap    - not used
+  FActualTxtRange.Collapse(Start);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED._LoadFile(aFileName: String): HResult;
+var
+  OldFilePath: String;
+begin
+  //asm int 3 end; //trap
+  if TwebBrowser(Self).Document <> nil
+     then begin
+        FReadyState := 0;
+        OldFilePath := FCurrentDocumentPath;
+        FCurrentDocumentPath := aFileName;
+
+        Result := PersistFile.Load(StringToOleStr(aFileName),
+                                          STGM_READWRITE or STGM_SHARE_DENY_NONE);
+
+        { PersistStream.Load causes a DocumentComplete event with the last known URL
+          Typically this is about:blank }
+
+        WaitForDocComplete;
+
+        if result <> S_OK
+           then FCurrentDocumentPath := OldFilePath;
+     end
+     else result := S_false;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.LoadFile(var aFileName: String): HResult;
+begin
+  //asm int 3 end; //trap
+  result := LoadFile(aFileName, false);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.LoadFile(var aFileName: String; PromptUser: boolean): HResult;
+var
+  S: String;
+
+  //---------------------------------------------
+  function GetFileName(Var aFileName: String): Boolean;
+  var
+     aOpenDlg: TOpenDialog;
+  begin
+     aOpenDlg := TOpenDialog.Create(Nil);
+     try
+        aOpenDlg.Filter := aFilter;
+        aOpenDlg.Filename := aFileName;
+        aOpenDlg.Options := [ofEnableSizing, ofFileMustExist];
+
+        if aOpenDlg.Execute
+           then begin
+              aFileName := aOpenDlg.FileName;
+              Result := true;
+           end
+           else result := false;
+     finally
+        aOpenDlg.free;
+     end;
+  end;
+  //----------------------------------------------
+  function DoLocalFile: HResult;
+  begin
+     if (not PromptUser) and
+        FileExists(aFileName)
+        then result := _LoadFile(aFileName)
+        else begin
+           if GetFileName(aFileName)
+              then Result := _LoadFile(aFileName)
+              else result := S_false;
+        end;
+  end;
+  //----------------------------------------------
+begin
+  //asm int 3 end; //trap
+
+  result := EndCurrentDoc(CancelPosible, FSkipDirtyCheck);
+
+  if result = S_OK
+     then begin
+        if pos('file://', LowerCase(aFileName)) = 1
+           then begin
+              //we have a file protocol path
+              if IsFilePath(aFileName, S) = S_OK
+                 then begin
+                    aFileName := S;
+                    if FileExists(aFileName)
+                       then result := _LoadFile(aFileName)
+                       else result := DoLocalFile;
+
+                    if result = S_OK
+                       then Delete(aFileName, LastDelimiter('\/', aFileName)+1, Length(aFileName));
+                 end;
+           end
+
+        else if (pos('http://', LowerCase(aFileName)) = 1) or (pos('www.', LowerCase(aFileName)) = 1)
+           then begin
+              //we have a http protocol path
+              Result := GO(aFileName);
+           end
+
+        else begin
+           result := DoLocalFile;
+           if result = S_OK
+              then Delete(aFileName, LastDelimiter('\/', aFileName)+1, Length(aFileName));
+        end;
+
+        if result = S_OK
+           then begin
+              if Assigned(FAfterLoadFile)
+                 then FAfterLoadFile(Self, FCurrentDocumentPath);
+           end;
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.DocIsPersist: boolean;
+var
+  Pw: PWideChar;
+begin
+  //asm int 3 end; //trap
+  if TwebBrowser(Self).Document <> nil
+     then result := S_OK = PersistFile.GetCurFile(Pw)
+     else result := false;
+end;
+//------------------------------------------------------------------------------
+Function TEmbeddedED.GetPersistedFile: String;
+var
+  Pw: PWideChar;
+begin
+  //asm int 3 end; //trap
+  // just return the BaseURL if we have a htttp path or a local file path
+
+  if TwebBrowser(Self).Document <> nil
+     then begin
+        if S_OK = PersistFile.GetCurFile(Pw) //this also tests for persisted file
+           then begin
+              result := Pw;
+
+              if (length(result) > 0) and
+                 (pos('file://', result) = 1) //we have a file protocol path
+                 then begin
+                    //.asm int 3 end; //trap
+                    delete(result, 1, 7);
+                 end;
+
+              result := StringReplace(result, '/', '\', [rfReplaceAll]);
+           end
+
+        else begin       //the document is not a persisted file
+           result := DOC.URL;
+
+           //drop bookmark - just in case
+           Delete(result, LastDelimiter('#', result), length(result));
+
+
+           { this is a special case - normally only in case of a "preview browser where
+             the document content is feed in via DocumentHTML - causing the documents
+             file path to become about:blank
+             If the real document pat is set via SetDocumentPath we can use that in stead
+             of about:blank}
+           If SameText(result, AboutBlank) //and (Length(FDocumentPath) > 0)
+              then result := '';//FDocumentPath;
+        end;
+  end
+  else result := '';
+
+
+{ LocationName: the name of the resource currently displayed in the Web browser control.
+  If the resource is an HTML page from the Web, LocationName is the title of that page.
+  If the resource is a folder or file on the local network or on a disk,
+  LocationName is the full UNC name of the folder or file.  }
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetSaveFileName(var aFile: string): HResult;
+var
+  aSaveDlg: TSaveDialog;
+begin
+  //asm int 3 end; //trap
+  aSaveDlg := TSaveDialog.Create(Nil);
+  try
+     aSaveDlg.DefaultExt := 'htm';
+     aSaveDlg.Filter := aFilter;
+     aSaveDlg.InitialDir := ExtractFilePath(aFile);
+     aSaveDlg.Filename := aFile;
+     aSaveDlg.Options := [ofOverwritePrompt, ofPathMustExist, ofNoReadOnlyReturn, ofEnableSizing];
+
+     if aSaveDlg.Execute
+        then begin
+           aFile := aSaveDlg.Filename;
+           result := S_OK;
+        end
+        else begin
+           aFile := '';
+           result := S_false;
+        end;
+  finally
+     aSaveDlg.free;
+  end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.AfterFileSaved;
+begin
+  //asm int 3 end; //trap
+  if Assigned(FAfterSaveFile)
+     then FAfterSaveFile(Self);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.SaveFile: HResult;
+begin
+  //asm int 3 end; //trap
+  result :=  DoSaveFile;
+
+  if result = S_OK
+     then AfterFileSaved;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED._DoSaveFile: HResult;
+Const
+  ClearDirtyFlag: boolean = true;
+begin
+  //asm int 3 end; //trap
+
+  _CheckGenerator(False);
+
+  if DocIsPersist  //DOC is file based
+     then Result := PersistFile.Save(Nil, ClearDirtyFlag)
+     else Result := PersistFile.Save(StringToOleStr(FCurrentDocumentPath), ClearDirtyFlag);
+
+  if result = S_OK
+     then FHTMLImage := KS_Lib.GetHTMLtext(DOC); //Get SnapShot of current HTML Source
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.DoSaveFile: HResult;
+var
+  IsPersist: Boolean;
+begin
+  //asm int 3 end; //trap
+
+  IsPersist := DocIsPersist;  //DOC is file based
+
+  if (not IsDirty) and IsPersist and (not (GetAsyncKeyState(VK_CONTROL) < 0))
+     then begin
+        result := S_OK; //no need to save a clean file
+        exit;
+     end;
+
+  result := S_false;
+
+  if (TwebBrowser(Self).Document = nil) or (not FEditMode)
+     then exit;
+
+  if Assigned(FBeforeSaveFile)
+     then begin
+        FBeforeSaveFile(Self);
+        //WaitForDocComplete;  //just in case the document was changed
+     end;
+
+  if IsPersist or
+     ((Length(FCurrentDocumentPath) > 0) and fileExists(FCurrentDocumentPath))
+     then result := _DoSaveFile
+     else result := SaveFileAs;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.SaveFileAs(aFile: string = ''): HResult;
+begin
+  //asm int 3 end; //trap
+  result :=  DoSaveFileAs(aFile);
+
+  if result = S_OK
+     then AfterFileSaved;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.DoSaveFileAs(aFile: String): HResult;
+Const
+  ClearDirtyFlag: boolean = true;
+var
+  DoSave: boolean;
+begin
+  //asm int 3 end; //trap
+  if (TwebBrowser(Self).Document = nil) or (not FEditMode)
+     then begin
+        result := S_false;
+        exit;
+     end;
+
+  if length(aFile) > 0
+     then begin
+        { this wont work because the MSHTML dialog always shows up
+          Ov := aFile;
+          result := DoCommand(IDM_SAVEAS, OLECMDEXECOPT_DONTPROMPTUSER, Ov); }
+
+
+        { this gives the user a Delphi save dialog  }
+        If FileExists(aFile)
+           then DoSave := IDYES = KSQuestion(aFile + ' already exists.' +CrLf+
+                                             'Do you want to replace it?', '',
+                                             MB_ICONWARNING or MB_YESNO)
+           else begin
+              ForceDirectories(ExtractFilePath(aFile));
+              DoSave := true;
+           end;
+
+        if DoSave
+           then begin
+              _CheckGenerator(false);
+              Result := PersistFile.Save(StringToOleStr(aFile), false);
+           end
+           else Result := E_ABORT;
+     end
+     else begin
+        {this gives the user MSHTML's own save dialog }
+        _CheckGenerator(false);
+        result := CmdSet(IDM_SAVEAS);
+     end;
+
+  if result = S_OK //file was saved successfully
+     then begin
+        FCurrentDocumentPath := GetPersistedFile;
+        { we need to re-parse the DOC from the new path
+          this also get us a new FHTMLImage !
+
+          FBASEUrl is set as a result to _LoadFile ! }
+
+        result := _LoadFile(FCurrentDocumentPath);
+
+        if FCurBackFile <> ChangeFileExt(FCurrentDocumentPath, '.bak')
+        then begin
+           Sysutils.DeleteFile(FCurBackFile);
+           CreateBackUp;
+        end;
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SetLiveResize(const Value: Boolean);
+var
+  Ov: OleVariant;
+begin
+  //asm int 3 end; //trap
+  FLiveResize := Value;
+  if TwebBrowser(Self).Document <> nil
+     then begin
+        Ov := FLiveResize;
+        CmdSet(IDM_LIVERESIZE, Ov);
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.Set2DPosition(const Value: Boolean);
+var
+  Ov: OleVariant;
+begin
+  //asm int 3 end; //trap
+  F2DPosition := Value;
+  if TwebBrowser(Self).Document <> nil
+     then begin
+        Ov := F2DPosition;
+        CmdSet(IDM_2D_POSITION, Ov);
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetMSHTMLwinHandle: Hwnd;
+begin
+  //asm int 3 end; //trap
+  //get the DHTMLedit component's main window handle
+  
+  if FOleInPlaceActiveObject = nil
+     then GetInPlaceActiveObject;
+
+  result := FmsHTMLwinHandle;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.ScrollDoc(Pos: Integer);
+begin
+  //asm int 3 end; //trap
+  if (TwebBrowser(Self).Document <> nil) and (Pos > 0)
+     then begin
+        (Doc.Body as IHTMLElement2).ScrollTop := Pos;
+        FScrollTop := 0;
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SetMouseElement(P: Tpoint; aWinHandle: Hwnd = 0);
+begin
+  //asm int 3 end; //trap
+  if aWinHandle > 0
+  { MouseClickOnElement is in screen coordinate,
+       change it to DHTML window coordinate }
+     then Windows.ScreenToClient(aWinHandle, P);
+
+  FActualElement := DOC.elementFromPoint(P.x, P.y);
+
+  FActualRangeIsText := False;
+  if not assigned(FActualTxtRange)
+     then FActualTxtRange := (DOC.body as IHTMLBodyElement).createTextRange;
+  FActualTxtRange.MoveToElementText(FActualElement);
+end;
+//------------------------------------------------------------------------------
+Function TEmbeddedED.RemoveElementID(const TagID: String): Boolean;
+var
+  MarkUp: IMarkupServices;
+  aElement: IHTMLElement;
+  I: Integer;
+begin
+  //asm int 3 end; //trap
+  MarkUp := Doc as IMarkupServices;
+  Result := False;
+
+  for i := 0 to FLength - 1 do
+     begin
+        aElement := GetElementNr(i);
+
+        if not assigned(aElement)
+           then continue;
+
+        if AnsiSameText(TagID, aElement.ID)
+           then begin
+              Markup.RemoveElement(aElement);
+              Result := True;
+           end;
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.ShowHighlight(pIRange: IHTMLTxtRange = nil);
+var
+  aTxtRange: IHTMLTxtRange;
+begin
+  //asm int 3 end; //trap
+
+  if pIRange = nil
+     then begin
+        aTxtRange := (DOC.body as IHTMLBodyElement).createTextRange;
+        aTxtRange.moveToElementText(FActualElement);
+     end
+     else aTxtRange := pIRange.duplicate;
+
+  FMarkUpServices.MovePointersToRange(aTxtRange, FMarkupPointerStart, FMarkupPointerEnd);
+
+  //kt FDisplayPointerStart.MoveToMarkupPointer(FMarkupPointerStart as MSHTML_TLB.IMarkupPointer, nil);
+  FDisplayPointerStart.MoveToMarkupPointer(FMarkupPointerStart as MSHTML_EWB.IMarkupPointer, nil);  //kt
+  //ktFDisplayPointerEnd.MoveToMarkupPointer(FMarkupPointerEnd as MSHTML_TLB.IMarkupPointer, nil);
+  FDisplayPointerEnd.MoveToMarkupPointer(FMarkupPointerEnd as MSHTML_EWB.IMarkupPointer, nil); //kt
+
+  if assigned(FHighlightSegment)
+     then HideHighlight;
+
+  FHighlight.AddSegment(FDisplayPointerStart, FDisplayPointerEnd, FRenderStyle, FHighlightSegment);
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.HideHighlight;
+begin
+  //asm int 3 end; //trap
+  if assigned(FHighlightSegment)
+     then FHighlight.RemoveSegment(FHighlightSegment);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.MovePointersToRange(const aRange: IHTMLTxtRange): HResult;
+begin
+  //.asm int 3 end; //trap
+  Result := FMarkUpServices.MovePointersToRange(aRange, FMarkupPointerStart, FMarkupPointerEnd);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.MovePointersToSel: HResult;
+begin
+  //.asm int 3 end; //trap
+  Result := MovePointersToRange(FActualTxtRange);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.CreateElement(const tagID: _ELEMENT_TAG_ID; var NewElement: IHTMLElement; const aTxtRange: IHTMLTxtRange = nil; const Attributes: string = ''): HResult;
+begin
+  //asm int 3 end; //trap
+  //attributes form:
+
+  {$IFDEF EDLIB}
+     if aTxtRange = nil
+        then result := EDLIB.CreateElement(DOC, tagID, NewElement, FActualTxtRange, Attributes)
+        else result := EDLIB.CreateElement(DOC, tagID, NewElement, aTxtRange, Attributes);
+  {$ELSE}
+     result := S_False;
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.InsertElementAtCursor(var aElement: IHTMLElement; const aTxtRange: IHTMLTxtRange = nil): HResult;
+begin
+  //asm int 3 end; //trap
+  { The returned IHTMLTxtRange contains the new tag - if its not a control ??}
+
+  {$IFDEF EDLIB}
+     Result := EDLIB.InsertElementAtCursor(DOC, aElement, aTxtRange);
+  {$ELSE}
+     result := S_False;
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.CreateMetaTag(var aMetaElement: IHTMLMetaElement): HResult;
+begin
+  //asm int 3 end; //trap
+  {$IFDEF EDLIB}
+     Result := EDLIB.CreateMetaTag(DOC, aMetaElement);
+  {$ELSE}
+     result := S_False;
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.MoveTextRangeToPointer(aTxtRange: IHTMLTxtRange = nil): IHTMLTxtRange;
+begin
+  //asm int 3 end; //trap
+  if assigned(aTxtRange)
+     then begin
+        FMarkUpServices.MoveRangeToPointers(FMarkupPointerStart, FMarkupPointerEnd, aTxtRange);
+        result := aTxtRange;
+     end
+     else begin
+        FMarkUpServices.MoveRangeToPointers(FMarkupPointerStart, FMarkupPointerEnd, FActualTxtRange);
+        result := FActualTxtRange;
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SetDebug(value: Boolean);
+begin
+  //asm int 3 end; //trap
+  FDebug := value;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetCurrentFontName: string;
+var
+  FontName: variant;
+begin
+  //asm int 3 end; //trap
+  result := ''; // FontName not found
+
+  if QueryEnabled(IDM_FONTNAME)
+     then begin
+        FontName := CmdGet(IDM_FONTNAME);
+        if VarType(FontName) = varOleStr
+           then result := FontName
+           else; //multiple element selection
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetFontNameIndex(aList: String): Integer;
+var
+  FontName: variant;
+  //I: Integer;
+  list: TStringlist;
+begin
+  //asm int 3 end; //trap
+  result := -1; // FontName not found
+
+  if QueryEnabled(IDM_FONTNAME)
+     then begin
+        FontName := CmdGet(IDM_FONTNAME);
+        if VarType(FontName) = varOleStr
+           then begin
+              list := TStringlist.Create;
+              try
+                 list.Text := aList;
+                 result := List.IndexOf(FontName);
+              finally
+                 list.free;
+              end;
+           end
+           else; //multiple element selection
+     end;
+end;
+//------------------------------------------------------------------------------
+function EnumFontsProc(var LogFont: TLogFont; var Metric: TTextMetric; FontType: Integer; Data: Pointer): Integer; stdcall;
+var
+  St: TStrings;
+  aFaceName: string;
+begin
+  //asm int 3 end; //trap
+  St := TStrings(Data);
+  aFaceName := LogFont.lfFaceName;
+
+  if (St.Count = 0) or
+  (AnsiCompareText(St[St.Count-1], aFaceName) <> 0)
+     then St.Add(aFaceName);
+
+  Result := 1;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetFonts: String;
+var
+  DC: HDC;
+  LFont: TLogFont;
+begin
+  //asm int 3 end; //trap
+
+  if FFonts = nil
+     then begin
+        FFonts := TStringList.Create;
+        DC := GetDC(GetMSHTMLwinHandle);
+           try
+              FFonts.Add('Default');
+              FillChar(LFont, sizeof(LFont), 0);
+              LFont.lfCharset := DEFAULT_CHARSET;
+              //we send the resulting fontlist (FFonts) to EnumFontsProc as a param
+              EnumFontFamiliesEx(DC, LFont, @EnumFontsProc, LongInt(FFonts), 0);
+              TStringList(FFonts).Sorted := TRUE;
+           finally
+              ReleaseDC(0, DC);
+           end;
+     end;
+
+  Result := FFonts.Text;
+
+  //just a test
+  if (Screen.Fonts.text <> result) and   //this seem newer to be true !
+     FDebug
+     then beep;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetFontSizeIndex(const aList: String; var Changed: String): Integer;
+var
+  vo: OleVariant;
+  aCurStyle: IHTMLCurrentStyle;
+  s: String;
+
+  //------------------------------------------------
+  function GetBaseSize: string;
+  begin
+     result := '1  (  8 pt)' +CrLf +
+               '2  (10 pt)' +CrLf +
+               '3  (12 pt)' +CrLf +
+               '4  (14 pt)' +CrLf +
+               '5  (18 pt)' +CrLf +
+               '6  (24 pt)' +CrLf +
+               '7  (36 pt)';
+  end;
+  //------------------------------------------------
+begin
+  //asm int 3 end; //trap
+
+  result := -1; //no size found
+
+  if Length(aList) = 0
+     then Changed := GetBaseSize
+     else Changed := '';
+
+  if not QueryEnabled(IDM_FONTSIZE)
+     then exit;
+
+
+  Vo := CmdGet(IDM_FONTSIZE);   //this gets the standard size 1-7 in stead of
+  if VarType(vo) = VarInteger   //x-small and the like
+     then begin
+        result := Vo-1;
+        exit;
+     end;
+
+  if FActualElement = nil
+     then exit;
+
+  aCurStyle := (FActualElement as IHTMLElement2).Get_CurrentStyle;
+
+  S := aCurStyle.Get_fontSize;
+  if S <> ''
+     then begin
+        Changed := GetBaseSize +CrLf + S;
+        result := 7;
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetStylesIndex: Integer;
+var
+  S: String;
+begin
+  //asm int 3 end; //trap
+
+  if QueryEnabled(IDM_BLOCKFMT)
+     then begin
+        {$IFDEF EDLIB}
+           S := getFontStyle(Self);
+        {$ELSE}
+           S := CmdGet(IDM_BLOCKFMT);
+        {$ENDIF}
+
+        if not FStyles.Find(S, result)
+           then result := -1;
+     end
+     else result := -1;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetStylesIndex(aList: String): Integer;
+//this is only to keep compatibility with OCX ver 1.0
+var
+  S: String;
+  List: TStringList;
+  //aElement: IhtmlElement;
+begin
+  //asm int 3 end; //trap
+  //Available styles
+
+  if QueryEnabled(IDM_BLOCKFMT)
+     then begin
+        {$IFDEF EDLIB}
+           S := getFontStyle(Self);
+        {$ELSE}
+           S := CmdGet(IDM_BLOCKFMT);
+        {$ENDIF}
+
+        List := TStringList.Create;
+        try
+           List.Text := aList;
+           result := List.IndexOf(S);
+        finally
+           List.free;
+        end
+     end
+     else result := -1;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SyncDOC(HTML: string; SelStart, SelEnd: Integer);
+var
+  Generator: Boolean;
+begin
+  //asm int 3 end; //trap
+
+  {$IFDEF EDPARSER}
+     {$IFDEF EDLIB}
+        Generator := true;
+     {$ENDIF}
+
+     //place the cursor at same pos in WYSIWY as in the string
+     KSIEParser.SyncDOC(Self, HTML, SelStart, SelEnd, Generator);
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.SelectedDocumentHTML(var SelStart, SelEnd: Integer): String;
+var
+  Generator: Boolean;
+begin
+  //asm int 3 end; //trap
+  
+  {$IFDEF EDPARSER}
+     {$IFDEF EDLIB}
+        Generator := true;
+     {$ENDIF}
+
+     //place the cursor at same pos in WYSIWY as in the string
+     Result := KSIEParser.SelectedDocumentHTML(Self, SelStart, SelEnd, Generator);
+  {$ELSE}
+      SelStart := -1;
+      SelEnd := -1;
+      Result := KS_Lib.GetHTMLtext(DOC);
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetSelStartEnd(Var SelStart, SelEnd: Integer): boolean;
+begin
+  //asm int 3 end; //trap
+  result :=
+     (S_OK = FMarkUpServices.MovePointersToRange(ActualTextRange, FMarkupPointerStart, FMarkupPointerEnd)) and
+     //get selection in a reselectable form
+     (S_OK = (FMarkupPointerStart as IMarkupPointer2).GetMarkupPosition(SelStart)) and
+     (S_OK = (FMarkupPointerEnd as IMarkupPointer2).GetMarkupPosition(SelEnd));
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.SetSelStartEnd(SelStart, SelEnd: Integer): boolean;
+var
+  aMarkupContainer: IMarkupContainer;
+begin
+  //asm int 3 end; //trap
+
+  if (SelStart > 0) and (SelEnd > 0)
+     then begin
+        //Restore selected TextRange
+        aMarkupContainer := Doc as IMarkupContainer;
+        if (S_OK = (FMarkupPointerStart as IMarkupPointer2).MoveToMarkupPosition(aMarkupContainer, SelStart)) and
+           (S_OK = (FMarkupPointerEnd as IMarkupPointer2).MoveToMarkupPosition(aMarkupContainer, SelEnd)) and
+           (S_OK = FMarkupServices.MoveRangeToPointers(FMarkupPointerStart, FMarkupPointerEnd, ActualTxtRange))
+           then ActualTxtRange.select;
+        result := true;
+     end
+     else result := false;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.ISEmptyParam(value: Olevariant): Boolean;
+begin
+  //asm int 3 end; //trap
+  result := (TVarData(value).VType = varError) and
+            (TVarData(value).VError = $80020004);
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetPrintFileName: String;
+var
+  aFileName: String;
+
+  //---------------------------------------
+  function ValidFileName(aPath: string): Boolean;
+  var
+     I: Integer;
+  begin
+     I := LastDelimiter('.\:', aPath);
+
+     result := (I > 0) and       //we have a path
+               ((aPath[I] = '\') or //it ends with backslash
+                (aPath[I] = '.')); //we found a trailing file name
+  end;
+  //---------------------------------------
+begin
+  //asm int 3 end; //trap
+
+  if length(CurFileName) > 0
+     then result := CurFileName
+     else begin
+        if ValidFileName(FBaseUrl)
+           then result := FBaseUrl
+           else result := '';
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetLastError: string;
+begin
+  //asm int 3 end; //trap
+  result := FLastError;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.OpenChangeLog: HResult;
+begin
+  //asm int 3 end; //trap
+  {$IFDEF EDUNDO}
+     result := UUndo.OpenChangeLog(self, FTUndo);
+  {$ELSE}
+     result := S_OK;
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.WaitAsyncMessage(var Msg: Tmessage);
+begin
+  //asm int 3 end; //trap
+  FWaitMessage := true;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.BeginUndoUnit(aTitle: String = 'Default'): HResult;
+begin
+  //asm int 3 end; //trap
+
+  if FLocalUndo
+     then begin
+        {$IFDEF EDUNDO}
+           if FTUndo <> nil
+              then result := TUndo(FTUndo).BeginUndoUnit(aTitle)
+              else result := S_False;
+        {$ENDIF}
+     end
+     else begin
+        {$IFDEF EDLIB}
+           result := EDLIB.BeginUndoUnit(Self, aTitle);
+        {$ELSE}
+           result := S_False;
+        {$ENDIF}
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.EndUndoUnit: HResult;
+begin
+  //asm int 3 end; //trap
+
+  if FLocalUndo
+     then begin
+        if FTUndo <> nil
+           then begin
+              {$IFDEF EDUNDO}
+                 TUndo(FTUndo).EndUndoBlock;
+                 result := S_OK;
+              {$ENDIF}
+           end
+           else result := S_False;
+     end
+     else begin
+        {$IFDEF EDLIB}
+           result := EDLIB.EndUndoUnit(Self);
+        {$ELSE}
+           result := S_False;
+        {$ENDIF}
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.LoadURL(url: String);
+var
+  aFileName: String;
+begin
+  // just DHTML Compatibility
+  //asm int 3 end; //trap
+
+  aFileName := url;
+  if Length(aFileName) = 0
+     then begin
+        if length(ActualAppName) = 0 //only set default one time
+           then ActualAppName := LowerCase(ExtractFileName(GetModuleName));
+
+        aFileName := KSInputQuery(ActualAppName, 'URL:', 'http://', 40);
+        if (length(aFileName) = 0) or (aFileName = 'http://')
+           then exit;
+     end;
+
+  LoadFile(aFileName, False);
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.LoadDocument(var pathIn, promptUser: OleVariant);
+var
+  aFileName: String;
+  aPrompt: boolean;
+begin
+  // just DHTML Compatibility
+  //asm int 3 end; //trap
+  try
+     if VarType(pathIn) = varOleStr
+        then aFileName := pathIn
+        else aFileName := '';
+
+     if VarType(promptUser) = varBoolean
+        then aPrompt := promptUser
+        else aPrompt := true;
+
+     LoadFile(aFileName, aPrompt);
+     pathIn := aFileName;
+  except
+     //just catch any error
+  end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SaveDocument(var pathIn, promptUser: OleVariant);
+var
+  aFileName: string;
+  aPrompt: boolean;
+begin
+  // just DHTML Compatibility
+  //asm int 3 end; //trap
+  try
+     aFileName := pathIn;
+     aPrompt := promptUser;
+     if aPrompt
+        then begin
+           if GetSaveFileName(aFileName) <> S_OK
+              then exit;
+        end;
+
+     if sameText(aFileName, FCurrentDocumentPath)
+        then SaveFile
+        else SaveFileAs(aFileName);
+     pathIn := aFileName;
+  except
+     //catch any error
+  end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.FContextMenuClicked(Sender: TObject);
+begin
+  //asm int 3 end; //trap
+  if assigned(FOnContextMenuAction)
+     then FOnContextMenuAction(Self, (Sender as TMenuItem).Tag);
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SetContextMenu(var menuStrings, menuStates: OleVariant);
+var
+  Ps: PSafeArray;
+  Pw: PWideChar;
+  aState: OLE_TRISTATE;
+  I: Integer;
+  aCaption: string;
+  NewMenuItem: TMenuItem;
+begin
+  // just DHTML Compatibility
+  //asm int 3 end; //trap
+
+  FContextMenu.Items.Clear;
+
+  try
+     if (VarArrayLowBound(menuStrings, 1) < 0) or
+        (VarArrayLowBound(menuStates, 1) < 0)  or
+        (VarArrayHighBound(menuStrings, 1) <> VarArrayHighBound(menuStates, 1))
+        then exit;
+
+     Ps := TVariantArg(menuStrings).pArray;
+     for I := VarArrayLowBound(menuStrings, 1) to VarArrayHighBound(menuStrings, 1) do
+        begin
+           //add a new menu item to the popup menu
+           NewMenuItem := TMenuItem.Create(nil);
+           NewMenuItem.OnClick := FContextMenuClicked;
+           NewMenuItem.Tag := I;
+
+           //get each string from the SafeArray
+           SafeArrayGetElement(Ps, I, Pw);
+           aCaption := OleStrToString(Pw);
+                               //blank menu item = separator in Context Menu
+           if aCaption = ''    //we need - in a TPopUpmenu as separator
+              then NewMenuItem.Caption := '-'
+              else NewMenuItem.Caption := aCaption;
+
+           FContextMenu.Items.Add(NewMenuItem);
+        end;
+
+     Ps := TVariantArg(menuStates).pArray;
+     for I := VarArrayLowBound(menuStates, 1) to VarArrayHighBound(menuStates, 1) do
+        begin
+           //get each string from the SafeArray
+           SafeArrayGetElement(Ps, I, aState);
+           case aState of    // 0= Unchecked  1=Checked  2=Grayed
+              0: {Nop};
+              1: FContextMenu.Items[I].Checked := True;
+              2: FContextMenu.Items[I].Enabled := false;
+           end;
+        end;
+  except
+     //just catch any error
+  end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SetGridX(const Value: integer);
+begin
+  //asm int 3 end; //trap
+  FGridX := Value;
+  if assigned(FEditHost)
+     then TEditHost(FEditHost).FGridX := FGridX;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SetGridY(const Value: integer);
+begin
+  //asm int 3 end; //trap
+  FGridY := Value;
+    if assigned(FEditHost)
+     then TEditHost(FEditHost).FGridY := FGridY;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.SetSnapEnabled(const Value: Boolean);
+begin
+  //asm int 3 end; //trap
+  FSnapEnabled := Value;
+    if assigned(FEditHost)
+     then TEditHost(FEditHost).FSnapEnabled := FSnapEnabled;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.Get_AbsoluteDropMode: Boolean;
+begin
+  //asm int 3 end; //trap
+  result := FAbsoluteDropMode;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.Get_ShowBorders: WordBool;
+begin
+  //asm int 3 end; //trap
+  result := FShowBorders;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.Set_AbsoluteDropMode(const Value: Boolean);
+begin
+  //asm int 3 end; //trap
+  FAbsoluteDropMode := value;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetAppearance(aType: TUserInterfaceOption): TDHTMLEDITAPPEARANCE;
+begin
+  //asm int 3 end; //trap
+
+  if aType in FUserInterfaceOptions
+     then result := DEAPPEARANCE_FLAT
+     else result := DEAPPEARANCE_3D;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.Get_Appearance: TDHTMLEDITAPPEARANCE;
+begin
+  //asm int 3 end; //trap
+
+  result := GetAppearance(NoBorder);
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.Set_Appearance(const Value: TDHTMLEDITAPPEARANCE);
+begin
+  //asm int 3 end; //trap
+
+  if value <> Get_Appearance
+     then begin
+        if value = DEAPPEARANCE_FLAT
+           then Include(FUserInterfaceOptions, NoBorder)
+           else Exclude(FUserInterfaceOptions, NoBorder);
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.Get_ScrollbarAppearance: TDHTMLEDITAPPEARANCE;
+begin
+  //asm int 3 end; //trap
+
+  result := GetAppearance(FlatScrollBar);
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.Set_ScrollbarAppearance(const Value: TDHTMLEDITAPPEARANCE);
+begin
+  //asm int 3 end; //trap
+
+  if value <> Get_ScrollbarAppearance
+     then begin
+        if value = DEAPPEARANCE_FLAT
+           then Include(FUserInterfaceOptions, FlatScrollBar)
+           else Exclude(FUserInterfaceOptions, FlatScrollBar);
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.Get_Scrollbars: WordBool;
+begin
+  //asm int 3 end; //trap
+  result := not(NoScrollBar in FUserInterfaceOptions);
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.Set_Scrollbars(const Value: WordBool);
+begin
+  //asm int 3 end; //trap
+
+  if value <> Get_Scrollbars
+     then begin
+        if value
+           then Exclude(FUserInterfaceOptions, NoScrollBar)
+           else Include(FUserInterfaceOptions, NoScrollBar);
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.Set_ShowBorders(const Value: WordBool);
+begin
+  //asm int 3 end; //trap
+
+  if value <> FShowBorders
+     then begin
+        FShowBorders := value;
+
+        if not ComponentInDesignMode
+           then CmdSet_B(IDM_SHOWZEROBORDERATDESIGNTIME, FShowBorders);
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.Get_UseDivOnCarriageReturn: WordBool;
+begin
+  //asm int 3 end; //trap
+  result := DivBlockOnReturn in FUserInterfaceOptions;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.Set_UseDivOnCarriageReturn(const Value: WordBool);
+begin
+  //asm int 3 end; //trap
+
+  if value <> Get_UseDivOnCarriageReturn
+     then begin
+        if value
+           then Include(FUserInterfaceOptions, DivBlockOnReturn)
+           else Exclude(FUserInterfaceOptions, DivBlockOnReturn);
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.KSTEst(var pInVar, pOutVar: OleVariant): HResult;
+        //call edit.CmdGet(KS_TEST, ov);
+var
+  sFindThis: string;
+  //kt FP: MSHTML_TLB.IMarkupPointer; //points to end of searched string - if found
+  FP: MSHTML_EWB.IMarkupPointer; //points to end of searched string - if found
+  FMarkupContainer: IMarkupContainer;
+begin
+  //asm int 3 end; //trap
+
+  {$IFDEF EDLIB}
+     sFindThis := InputBox('Search', 'Please enter the string to search for...', '');
+     if length(sFindThis) = 0
+        then exit;
+
+     FMarkupContainer := Doc as IMarkupContainer;
+
+     //Search from start of document
+     OleCheck(FMarkupPointerStart.MoveToContainer(FMarkupContainer, Integer(True)));
+     //Search to end of document
+     OleCheck(FMarkupPointerEnd.MoveToContainer(FMarkupContainer, Integer(False)));
+
+     if S_OK = EDFindText(Self, FMarkupPointerStart, FMarkupPointerEnd, sFindThis, FP)
+        then begin
+            if S_OK = EDInsertText(Self, FP, '--Found It--')
+            then KSMessageI('Did the insert...')
+            else KSMessageI('Insert failed...');
+         end
+         else KSMessageI('Could not locate ' + sFindThis + '.');
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.OnControlInfoChanged: HResult;
+begin
+  //asm int 3 end; //trap
+  Result := E_NOTIMPL;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.LockInPlaceActive(fLock: BOOL): HResult;
+begin
+  //asm int 3 end; //trap
+  Result := E_NOTIMPL;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetExtendedControl(out disp: IDispatch): HResult;
+begin
+  //asm int 3 end; //trap
+  Result := E_NOTIMPL;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.TransformCoords(var ptlHimetric: TPoint; var ptfContainer: TPointF; flags: Longint): HResult;
+begin
+  //asm int 3 end; //trap
+  Result := E_NOTIMPL;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.OleControlSite_TranslateAccelerator(msg: PMsg; grfModifiers: Longint): HResult;
+begin
+  //asm int 3 end; //trap
+
+  { KEYMOD_SHIFT = 0x00000001,
+    KEYMOD_CONTROL = 0x00000002,
+    KEYMOD_ALT = 0x00000004
+
+    S_OK, The container processed the message.
+    S_FALSE, The container did not process the message.
+             This value must also be returned in all other error cases
+             besides E_NOTIMPL.
+
+    E_NOTIMPL, The container does not implement accelerator support. }
+
+  { we handle Accelerators in IDOCHOSTUIHANDLER:TranslateAccelerator witch
+    is called before this function.
+
+    After the call to IDOCHOSTUIHANDLER:TranslateAccelerator
+    IHtmlEditDesigner.TranslateAccelerator is called.
+
+    If MSHTML handle the key we don't come here !  }
+
+  Result := E_NOTIMPL;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.OnFocus(fGotFocus: BOOL): HResult;
+begin
+  //asm int 3 end; //trap
+
+  { Each time the WebBrowser gains focus we hook its window and we unhook
+    the window again when the WebBrowser loses focus.
+    This makes all messages send to MSHTML flow trough EDMessageHandler before
+    MSHTML get a chance to handle them }
+
+  if fGotFocus
+     then SubClassMsHTML
+  else UnSubClassMsHTML;
+  
+  //ktResult := S_OK;
+  Result := S_OK or SubFocusHandler(fGotFocus); //kt
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.ShowPropertyFrame: HResult;
+begin
+  //asm int 3 end; //trap
+  Result := E_NOTIMPL;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.IsSelElementLocked: boolean;
+begin
+  //asm int 3 end; //trap
+
+  {$IFDEF EDZINDEX}
+     result := TZindex(FTZindex).IsSelElementLocked;
+  {$ELSE}
+     result := false;
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.EDOnMouseOver(const pEvtObj: IHTMLEventObj);
+begin
+  //asm int 3 end; //trap
+  {$IFDEF EDTABLE}
+     if assigned(FTtable) and FEditMode
+        then TTable(FTtable).TblOnmouseover(pEvtObj);
+  {$ENDIF}
+
+  if Assigned(FOnmouseover)
+     then FOnmouseover(self);
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.NotImplemented(S: String);
+begin
+  //asm int 3 end; //trap
+  KSMessageW(S + DblCrLf + 'is not implemented');
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.EndUndoBlock(aResult: HResult): HResult;
+begin
+  //asm int 3 end; //trap
+
+  result := S_OK;
+
+  if aResult = S_OK
+     then EndUndoUnit //no errors in the calling procedure, just close undo block
+     else begin
+        //the calling procedure had an error, so we need to clean up after it
+
+        {$IFDEF EDUNDO}
+           if assigned(FTUndo)
+              then begin
+                 result := TUndo(FTUndo).CleanUpUndoBlock;
+                 exit;
+              end;
+         {$ENDIF}
+
+
+        //we are using MSHTMLs UNDO stack
+
+        {$IFDEF EDLIB}
+           result := CleanUpMSHTMLUndoBlock(Self);
+        {$ELSE}
+           result := CmdSet(IDM_Undo);
+        {$ENDIF}
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.ClearUndoStack: HResult;
+begin
+  //asm int 3 end; //trap
+
+  result := S_OK;
+
+  if not FEditMode
+     then exit;
+
+  if FLocalUndo
+     then begin
+        {$IFDEF EDUNDO}
+           if FTUndo <> nil
+              then result := TUndo(FTUndo).ClearStack;
+           exit;
+        {$ENDIF}
+     end;
+
+  //we are using MSHTMLs UNDO stack
+
+  {$IFDEF EDLIB}
+     result := ClearMSHTMLStack(Self);
+  {$ELSE}
+     result := S_FALSE;
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.CaretIsVisible: Boolean;
+var
+  Visible: Integer;
+begin
+  //asm int 3 end; //trap
+  FCaret.IsVisible(Visible);
+  result := Visible <> 0;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.Accept(const URL: String; var Accept: Boolean);
+begin
+  //asm int 3 end; //trap
+  Accept := true;
+end;
+//------------------------------------------------------------------------------
+{$IFDEF EDDRAGDROP}
+//------------------------------------------------------------------------------
+function TEmbeddedED.DragEnter(const dataObj: IDataObject; grfKeyState: Integer; pt: TPoint; var dwEffect: Integer): HResult;
+begin
+  //asm int 3 end; //trap
+  if FMSHTMLDropTarget <> nil //just re delegate to MSHTML
+     then result := FMSHTMLDropTarget.DragEnter(dataObj, grfKeyState, pt, dwEffect)
+     else result := E_UNEXPECTED;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.DragLeave: HResult;
+begin
+  //asm int 3 end; //trap
+  if FMSHTMLDropTarget <> nil //just re delegate to MSHTML
+     then result := FMSHTMLDropTarget.DragLeave
+     else result := E_UNEXPECTED;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED._DragOver(grfKeyState: Integer; pt: TPoint; var dwEffect: Integer): HResult;
+begin
+  //asm int 3 end; //trap
+  if FMSHTMLDropTarget <> nil //just re delegate to MSHTML
+     then result := FMSHTMLDropTarget.DragOver(grfKeyState, pt, dwEffect)
+     else result := E_UNEXPECTED;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.Drop(const dataObj: IDataObject; grfKeyState: Integer; pt: TPoint; var dwEffect: Integer): HResult;
+var
+  ProxyDataObj: TDataObjectProxy;
+begin
+  //asm int 3 end; //trap
+
+  result := S_OK;
+
+  if (not FAbsoluteDropMode) or (FMSHTMLDropTarget = nil)
+     then begin
+        result := E_UNEXPECTED;
+        exit;
+     end;
+
+  if dataObj <> nil
+     then begin
+        ProxyDataObj := TDataObjectProxy.Create(dataObj, DOC, FmsHTMLwinHandle, pt);
+        try
+           //just re delegate to MSHTML
+           result := FMSHTMLDropTarget.Drop(ProxyDataObj, grfKeyState, pt, dwEffect);
+        finally
+           WaitAsync;
+           ProxyDataObj.free;
+        end;
+     end;
+
+end;
+//------------------------------------------------------------------------------
+{$ENDIF}   //{$IFDEF EDDRAGDROP}
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.Set_LocalUndo(const Value: WordBool);
+begin
+  //asm int 3 end; //trap
+
+  {$IFDEF EDUNDO}
+     if Value = FLocalUndo
+        then exit;
+
+     FLocalUndo := Value;
+     if(not ComponentInDesignMode) and DocumentIsAssigned
+        then SetLocalUndo(Self, FTUndo, Value);
+   {$ELSE}
+     if ComponentInDesignMode
+        then FLocalUndo := false
+        else begin
+           if value
+              then NotImplemented('Set LocalUndo');
+        end;
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED._QueryStatus(CmdGroup: PGUID; cCmds: Cardinal; prgCmds: POleCmd; CmdText: POleCmdText): HResult;
+begin
+  //asm int 3 end; //trap
+  result := S_OK;
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.Exec(CmdGroup: PGUID; nCmdID, nCmdexecopt: DWORD; const vaIn: OleVariant; var vaOut: OleVariant): HResult;
+var
+  FCancel: Boolean;
+begin
+  //asm int 3 end; //trap
+
+  if CmdGroup = nil
+     then begin
+        Result := OLECMDERR_E_UNKNOWNGROUP;
+        exit;
+     end
+     else Result := OLECMDERR_E_NOTSUPPORTED;
+
+
+  if IsEqualGuid(cmdGroup^, CGID_DocHostCommandHandler)
+     then begin
+        case nCmdID of
+
+           6041 {F5}, 6042 {ContextMenu}, 2300 {IDM_REFRESH}:
+              begin
+                 FCancel := False;
+                 If Assigned(FOnRefreshBegin)
+                    then FOnRefreshBegin(Self, nCmdID, FCancel);
+
+                 if FCancel
+                    then Result := S_OK
+                    else FRefreshing := true;
+              end;
+        end;
+     end;
+end;
+{IOleCommandTarget END}
+//------------------------------------------------------------------------------
+function TEmbeddedED.GetGenerator: string;
+begin
+  //asm int 3 end; //trap
+
+  result := FGenerator;
+end;
+//------------------------------------------------------------------------------
+procedure TEmbeddedED.Set_Generator(const Value: String);
+begin
+  //asm int 3 end; //trap
+
+  if Value = FGenerator
+     then exit;
+
+  {$IFDEF EDLIB}
+     FGenerator := Value
+  {$ELSE}
+      NotImplemented('Set Generator');
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.PrintPreview(value: Olevariant): HResult;
+var
+  aResult: TPrintSetup;
+  B: Boolean;
+  CmdOpt: Cardinal;
+begin
+  //asm int 3 end; //trap
+
+  {$IFDEF EDPRINT}
+     if ISEmptyParam(value)
+        then begin
+           aResult[0] := '';
+           aResult[1] := '0';
+           B := true;
+        end
+        else B := VariantArrayToPrintSetup(Value, aResult);
+
+     if B and
+        PrintPreview(aResult)
+        then result := S_OK
+        else result := S_FALSE;
+
+  {$ELSE}
+     if value
+        then result := DoCommand(IDM_PRINTPREVIEW, OLECMDEXECOPT_PROMPTUSER)
+        else result := DoCommand(IDM_PRINTPREVIEW, OLECMDEXECOPT_DONTPROMPTUSER);
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.PrintEx(value: Olevariant; Showdlg: boolean): HResult;
+var
+  aResult: TPrintSetup;
+begin
+  //asm int 3 end; //trap
+  {$IFDEF EDPRINT}
+     if VariantArrayToPrintSetup(Value, aResult) and
+        Print(aResult, Showdlg)
+        then result := S_OK
+        else result := S_FALSE;
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.Print(value: TPrintSetup; Showdlg: boolean = false): Boolean;
+const
+  NotPreView: Boolean = False;
+begin
+  //asm int 3 end; //trap
+  {$IFDEF EDPRINT}
+     result := SetPrintTemplate(value) and
+               DoPrint(NotPreView, Doc, Showdlg, GetPrintFileName);
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+function TEmbeddedED.PrintPreview(value: TPrintSetup): Boolean;
+const
+  PreView: Boolean = true;
+  NoShowdlg: Boolean = False;
+begin
+  //asm int 3 end; //trap
+
+  {$IFDEF EDPRINT}
+     result := SetPrintTemplate(value) and
+            DoPrint(PreView, Doc, NoShowdlg, GetPrintFileName);
+  {$ENDIF}
+end;
+//------------------------------------------------------------------------------
+
+initialization
+  OleInitialize(nil);
+  TheActualAppName := '';
+
+
+finalization
+  try
+  OleUninitialize;
+  except
+  end;
+
+end.
+
+
+
+
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/GNU LESSER GENERAL PUBLIC LICENSE.txt
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/GNU LESSER GENERAL PUBLIC LICENSE.txt	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/GNU LESSER GENERAL PUBLIC LICENSE.txt	(revision 541)
@@ -0,0 +1,513 @@
+		  GNU LESSER GENERAL PUBLIC LICENSE
+		       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+
+		  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+			    NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/IEdispConst.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/IEdispConst.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/IEdispConst.pas	(revision 541)
@@ -0,0 +1,4163 @@
+{ ******************************************** }
+{       IEDispConst ver 1.0 (Oct. 10, 2003)    }
+{                                              }
+{       For Delphi 4, 5 and 6                  }
+{                                              }
+{       Copyright (C) 1999-2003, Kurt Senfer.  }
+{       All Rights Reserved.                   }
+{                                              }
+{       Support@ks.helpware.net                }
+{                                              }
+{       Documentation and updated versions:    }
+{                                              }
+{       http://KS.helpware.net                 }
+{                                              }
+{ ******************************************** }
+{
+    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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+}
+
+unit IEDispConst;
+
+interface
+
+uses
+  ActiveX;
+
+ { this is a partly converted mshtmdid.h interface }
+
+const
+// The following dispid must be the smallest possible dispid so that it
+// always ends up first in our attr array.
+// It does not need to be exposed to the outside world
+//  DISPID_AAHEADER    =             MINLONG;             // DISPID is 0x80000000
+//  DISPID_RECALC_INFO =             MINLONG+1;
+//;end_internal
+
+
+  DISPID_XOBJ_MIN                   = Integer($80010000);
+  DISPID_XOBJ_MAX                   = Integer($8001FFFF);
+  DISPID_XOBJ_BASE                  = DISPID_XOBJ_MIN;
+  DISPID_HTMLOBJECT                 = DISPID_XOBJ_BASE   + 500;
+  DISPID_ELEMENT                    = DISPID_HTMLOBJECT  + 500;
+  DISPID_SITE                       = DISPID_ELEMENT     + 1000;
+  DISPID_OBJECT                     = DISPID_SITE        + 1000;
+  DISPID_STYLE                      = DISPID_OBJECT      + 1000;
+  DISPID_ATTRS                      = DISPID_STYLE       + 1000;
+  DISPID_EVENTS                     = DISPID_ATTRS       + 1000;
+  DISPID_XOBJ_EXPANDO               = DISPID_EVENTS      + 1000;
+  DISPID_XOBJ_ORDINAL               = DISPID_XOBJ_EXPANDO+ 1000;
+
+//;begin_internal
+// Expandos for ActiveX controls, note these are very limited compared to
+// normal expandos on an element.
+
+  DISPID_ACTIVEX_EXPANDO_BASE     = DISPID_XOBJ_EXPANDO;
+  DISPID_ACTIVEX_EXPANDO_MAX      = DISPID_ACTIVEX_EXPANDO_BASE + 999;
+
+  DISPID_OBJECT_ORDINAL_BASE      = DISPID_XOBJ_ORDINAL;
+  DISPID_OBJECT_ORDINAL_MAX       = DISPID_OBJECT_ORDINAL_BASE + 999;
+
+  DISPID_COLLECTION_MIN           = 1000000;
+  DISPID_COLLECTION_MAX           = 2999999;
+
+// Divide collection dispid space into "named member" half and "ordinal access" half
+// for stylesheets collection.
+  DISPID_STYLESHEETSCOLLECTION_NAMED_BASE        = DISPID_COLLECTION_MIN;
+  DISPID_STYLESHEETSCOLLECTION_NAMED_MAX         = DISPID_COLLECTION_MIN+((DISPID_COLLECTION_MAX-DISPID_COLLECTION_MIN)/2);
+  DISPID_STYLESHEETSCOLLECTION_ORDINAL_BASE      = DISPID_STYLESHEETSCOLLECTION_NAMED_MAX+1;
+  DISPID_STYLESHEETSCOLLECTION_ORDINAL_MAX       = DISPID_COLLECTION_MAX;
+
+// DISPID range for expandos not associated with an ActiveX control
+  DISPID_EXPANDO_BASE           =   3000000;
+  DISPID_EXPANDO_MAX            =   3999999;
+
+  //IsStandardDispid(dispid)        (dispid <= 0)
+  //IsExpandoDispid(dispid)         (DISPID_EXPANDO_BASE <= dispid && dispid <= DISPID_EXPANDO_MAX)
+
+  DISPID_EVENTHOOK_SENSITIVE_BASE  =  4000000;
+  DISPID_EVENTHOOK_SENSITIVE_MAX   =  4499999;
+  DISPID_EVENTHOOK_INSENSITIVE_BASE=  4500000;
+  DISPID_EVENTHOOK_INSENSITIVE_MAX =  4999999;
+
+  DISPID_PEER_HOLDER_BASE       =   5000000;
+
+//  IsPeerDispid(dispid)            (DISPID_PEER_HOLDER_BASE <= dispid)
+
+//;end_internal
+
+//;begin_internal
+//
+// IE 4 dispids that no longer exist
+//
+//;end_internal
+ // DISPID_HTMLOPTIONBUTTONELEMENTEVENTS_ONCHANGE   =  DISPID_HTMLINPUTTEXTELEMENTEVENTS_ONCHANGE;
+
+//;begin_internal
+//
+// Standard control properties
+//
+//;end_internal
+
+//;BUGBUG: rgardner - why do we use these names ???
+  DISPID_CommonCtrl_FONTNAME       =  1;
+  DISPID_CommonCtrl_FONTSIZE       =  2;
+  DISPID_CommonCtrl_FONTBOLD       =  3;
+  DISPID_CommonCtrl_FONTITAL       =  4;
+  DISPID_CommonCtrl_FONTUNDER      =  5;
+  DISPID_CommonCtrl_FONTSTRIKE     =  6;
+  DISPID_CommonCtrl_FONTWEIGHT     =  7;
+  DISPID_CommonCtrl_FONTCHARSET    =  8;
+  DISPID_CommonCtrl_FONTSUPERSCRIPT=  9;
+  DISPID_CommonCtrl_FONTSUBSCRIPT  =  10;
+
+// Data Binding DISPID's
+  DISPID_MSDATASRCINTERFACE       = -3900;
+  DISPID_ADVISEDATASRCCHANGEEVENT = -3901;
+
+
+//;begin_internal
+// DISPID values for HTML Dialogs files per interface
+//;end_internal
+
+  DISPID_HTMLDLG                         =  25000;
+  DISPID_HTMLDLGMODEL                    =  26000;
+
+//;begin_internal
+// DISPID values for HTML Popup files per interface
+//;end_internal
+
+  DISPID_HTMLPOPUP                       =  27000;
+
+//;begin_internal
+// DISPID values for HTML Application files per interface
+//;end_internal
+
+  DISPID_HTMLAPP                         =  5000;
+
+//;begin_internal
+//----------------------------------------------------------------------------
+//
+//  Semi-standard x-object properties.
+//
+//  These values match those used by VB and are for the benefit of controls
+//  with hard coded knowledge of VB.
+//
+//----------------------------------------------------------------------------
+//;end_internal
+
+  STDPROPID_XOBJ_NAME                 = DISPID_XOBJ_BASE + $0;
+  STDPROPID_XOBJ_INDEX                = DISPID_XOBJ_BASE + $1;
+//;begin_internal
+// for IE3 compatibility
+
+  STDPROPID_IE3XOBJ_OBJECTALIGN     = DISPID_XOBJ_BASE + $1;
+
+// STDPROPID_XOBJ_BASEHREF is a constant used by IE3
+//;end_internal
+  STDPROPID_XOBJ_BASEHREF             = DISPID_XOBJ_BASE + $2;
+  STDPROPID_XOBJ_LEFT                 = DISPID_XOBJ_BASE + $3;
+  STDPROPID_XOBJ_TOP                  = DISPID_XOBJ_BASE + $4;
+  STDPROPID_XOBJ_WIDTH                = DISPID_XOBJ_BASE + $5;
+  STDPROPID_XOBJ_HEIGHT               = DISPID_XOBJ_BASE + $6;
+  STDPROPID_XOBJ_VISIBLE              = DISPID_XOBJ_BASE + $7;
+  STDPROPID_XOBJ_PARENT               = DISPID_XOBJ_BASE + $8;
+  STDPROPID_XOBJ_DRAGMODE             = DISPID_XOBJ_BASE + $9;
+  STDPROPID_XOBJ_DRAGICON             = DISPID_XOBJ_BASE + $A;
+  STDPROPID_XOBJ_TAG                  = DISPID_XOBJ_BASE + $B;
+  STDPROPID_XOBJ_TABSTOP              = DISPID_XOBJ_BASE + $E;
+  STDPROPID_XOBJ_TABINDEX             = DISPID_XOBJ_BASE + $F;
+  STDPROPID_XOBJ_HELPCONTEXTID        = DISPID_XOBJ_BASE + $32;
+  STDPROPID_XOBJ_DEFAULT              = DISPID_XOBJ_BASE + $37;
+  STDPROPID_XOBJ_CANCEL               = DISPID_XOBJ_BASE + $38;
+  STDPROPID_XOBJ_LEFTNORUN            = DISPID_XOBJ_BASE + $39;
+  STDPROPID_XOBJ_TOPNORUN             = DISPID_XOBJ_BASE + $3A;
+  STDPROPID_XOBJ_ALIGNPERSIST         = DISPID_XOBJ_BASE + $3C;
+  STDPROPID_XOBJ_LINKTIMEOUT          = DISPID_XOBJ_BASE + $3D;
+  STDPROPID_XOBJ_LINKTOPIC            = DISPID_XOBJ_BASE + $3E;
+  STDPROPID_XOBJ_LINKITEM             = DISPID_XOBJ_BASE + $3F;
+  STDPROPID_XOBJ_LINKMODE             = DISPID_XOBJ_BASE + $40;
+  STDPROPID_XOBJ_DATACHANGED          = DISPID_XOBJ_BASE + $41;
+  STDPROPID_XOBJ_DATAFIELD            = DISPID_XOBJ_BASE + $42;
+  STDPROPID_XOBJ_DATASOURCE           = DISPID_XOBJ_BASE + $43;
+  STDPROPID_XOBJ_WHATSTHISHELPID      = DISPID_XOBJ_BASE + $44;
+  STDPROPID_XOBJ_CONTROLTIPTEXT       = DISPID_XOBJ_BASE + $45;
+  STDPROPID_XOBJ_STATUSBARTEXT        = DISPID_XOBJ_BASE + $46;
+  STDPROPID_XOBJ_APPLICATION          = DISPID_XOBJ_BASE + $47;
+  STDPROPID_XOBJ_BLOCKALIGN           = DISPID_XOBJ_BASE + $48;
+  STDPROPID_XOBJ_CONTROLALIGN         = DISPID_XOBJ_BASE + $49;
+  STDPROPID_XOBJ_STYLE                = DISPID_XOBJ_BASE + $4A;
+  STDPROPID_XOBJ_COUNT                = DISPID_XOBJ_BASE + $4B;
+  STDPROPID_XOBJ_DISABLED             = DISPID_XOBJ_BASE + $4C;
+  STDPROPID_XOBJ_RIGHT                = DISPID_XOBJ_BASE + $4D;
+  STDPROPID_XOBJ_BOTTOM               = DISPID_XOBJ_BASE + $4E;
+
+//;begin_internal
+//----------------------------------------------------------------------------
+//
+//  Semi-standard x-object properties.
+//
+//  These are events that are fired for all sites
+//----------------------------------------------------------------------------
+//;end_internal
+
+  STDDISPID_XOBJ_ONBLUR             = (DISPID_XOBJ_BASE);
+  STDDISPID_XOBJ_ONFOCUS            = (DISPID_XOBJ_BASE + 1);
+  STDDISPID_XOBJ_BEFOREUPDATE       = (DISPID_XOBJ_BASE + 4);
+  STDDISPID_XOBJ_AFTERUPDATE        = (DISPID_XOBJ_BASE + 5);
+  STDDISPID_XOBJ_ONROWEXIT          = (DISPID_XOBJ_BASE + 6);
+  STDDISPID_XOBJ_ONROWENTER         = (DISPID_XOBJ_BASE + 7);
+  STDDISPID_XOBJ_ONMOUSEOVER        = (DISPID_XOBJ_BASE + 8);
+  STDDISPID_XOBJ_ONMOUSEOUT         = (DISPID_XOBJ_BASE + 9);
+  STDDISPID_XOBJ_ONHELP             = (DISPID_XOBJ_BASE + 10);
+  STDDISPID_XOBJ_ONDRAGSTART        = (DISPID_XOBJ_BASE + 11);
+  STDDISPID_XOBJ_ONSELECTSTART      = (DISPID_XOBJ_BASE + 12);
+  STDDISPID_XOBJ_ERRORUPDATE        = (DISPID_XOBJ_BASE + 13);
+  STDDISPID_XOBJ_ONDATASETCHANGED   = (DISPID_XOBJ_BASE + 14);
+  STDDISPID_XOBJ_ONDATAAVAILABLE    = (DISPID_XOBJ_BASE + 15);
+  STDDISPID_XOBJ_ONDATASETCOMPLETE  = (DISPID_XOBJ_BASE + 16);
+  STDDISPID_XOBJ_ONFILTER           = (DISPID_XOBJ_BASE + 17);
+  STDDISPID_XOBJ_ONLOSECAPTURE      = (DISPID_XOBJ_BASE + 18);
+  STDDISPID_XOBJ_ONPROPERTYCHANGE   = (DISPID_XOBJ_BASE + 19);
+  STDDISPID_XOBJ_ONDRAG             = (DISPID_XOBJ_BASE + 20);
+  STDDISPID_XOBJ_ONDRAGEND          = (DISPID_XOBJ_BASE + 21);
+  STDDISPID_XOBJ_ONDRAGENTER        = (DISPID_XOBJ_BASE + 22);
+  STDDISPID_XOBJ_ONDRAGOVER         = (DISPID_XOBJ_BASE + 23);
+  STDDISPID_XOBJ_ONDRAGLEAVE        = (DISPID_XOBJ_BASE + 24);
+  STDDISPID_XOBJ_ONDROP             = (DISPID_XOBJ_BASE + 25);
+  STDDISPID_XOBJ_ONCUT              = (DISPID_XOBJ_BASE + 26);
+  STDDISPID_XOBJ_ONCOPY             = (DISPID_XOBJ_BASE + 27);
+  STDDISPID_XOBJ_ONPASTE            = (DISPID_XOBJ_BASE + 28);
+  STDDISPID_XOBJ_ONBEFORECUT        = (DISPID_XOBJ_BASE + 29);
+  STDDISPID_XOBJ_ONBEFORECOPY       = (DISPID_XOBJ_BASE + 30);
+  STDDISPID_XOBJ_ONBEFOREPASTE      = (DISPID_XOBJ_BASE + 31);
+  STDDISPID_XOBJ_ONROWSDELETE       = (DISPID_XOBJ_BASE + 32);
+  STDDISPID_XOBJ_ONROWSINSERTED     = (DISPID_XOBJ_BASE + 33);
+  STDDISPID_XOBJ_ONCELLCHANGE       = (DISPID_XOBJ_BASE + 34);
+
+//;begin_internal
+//----------------------------------------------------------------------------
+//
+//  Base DISPIDs for each class.
+//
+//  Object and its base classes must use ids in the reserved x-object range.
+//
+//----------------------------------------------------------------------------
+//;end_internal
+
+  DISPID_NORMAL_FIRST               = 1000;
+  DISPID_ANCHOR                     =      DISPID_NORMAL_FIRST;
+  DISPID_BLOCK                      =      DISPID_NORMAL_FIRST;
+  DISPID_TEXTSITE                   =      DISPID_NORMAL_FIRST;
+  DISPID_BODY                       =      (DISPID_TEXTSITE + 1000);
+  DISPID_BR                         =      DISPID_NORMAL_FIRST;
+  DISPID_BGSOUND                    =      DISPID_NORMAL_FIRST;
+  DISPID_DD                         =      DISPID_NORMAL_FIRST;
+  DISPID_DIR                        =      DISPID_NORMAL_FIRST;
+  DISPID_DIV                        =      DISPID_NORMAL_FIRST;
+  DISPID_DL                         =      DISPID_NORMAL_FIRST;
+  DISPID_DT                         =      DISPID_NORMAL_FIRST;
+  DISPID_EFONT                      =      DISPID_NORMAL_FIRST;
+  DISPID_FORM                       =      DISPID_NORMAL_FIRST;
+  DISPID_HEADER                     =      DISPID_NORMAL_FIRST;
+  DISPID_HEDELEMS                   =      DISPID_NORMAL_FIRST;
+  DISPID_HR                         =      DISPID_NORMAL_FIRST;
+  DISPID_LABEL                      =      DISPID_NORMAL_FIRST;
+  DISPID_LI                         =      DISPID_NORMAL_FIRST;
+  DISPID_IMGBASE                    =      DISPID_NORMAL_FIRST;
+  DISPID_IMG                        =      (DISPID_IMGBASE + 1000);
+  DISPID_INPUTIMAGE                 =      (DISPID_IMGBASE + 1000);
+  DISPID_INPUT                      =      (DISPID_TEXTSITE + 1000);
+  DISPID_INPUTTEXTBASE              =      (DISPID_INPUT+1000);
+  DISPID_INPUTTEXT                  =      (DISPID_INPUTTEXTBASE+1000);
+  DISPID_MENU                       =      DISPID_NORMAL_FIRST;
+  DISPID_OL                         =      DISPID_NORMAL_FIRST;
+  DISPID_PARA                       =      DISPID_NORMAL_FIRST;
+  DISPID_SELECT                     =      DISPID_NORMAL_FIRST;
+  DISPID_SELECTOBJ                  =      DISPID_NORMAL_FIRST;
+  DISPID_TABLE                      =      DISPID_NORMAL_FIRST;
+
+  DISPID_TEXTAREA                   =      (DISPID_INPUTTEXT + 1000);
+  DISPID_MARQUEE                    =      (DISPID_TEXTAREA + 1000);
+  DISPID_RICHTEXT                   =      (DISPID_MARQUEE + 1000);
+  DISPID_BUTTON                     =      (DISPID_RICHTEXT + 1000);
+  DISPID_UL                         =      DISPID_NORMAL_FIRST;
+  DISPID_PHRASE                     =      DISPID_NORMAL_FIRST;
+  DISPID_UNKNOWNPDL                 =      DISPID_NORMAL_FIRST;
+  DISPID_COMMENTPDL                 =      DISPID_NORMAL_FIRST;
+  DISPID_TABLECELL                  =      (DISPID_TEXTSITE + 1000);
+  DISPID_RANGE                      =      DISPID_NORMAL_FIRST;
+  DISPID_SELECTION                  =      DISPID_NORMAL_FIRST;
+  DISPID_OPTION                     =      DISPID_NORMAL_FIRST;
+  DISPID_1D                         =      (DISPID_TEXTSITE + 1000);
+  DISPID_MAP                        =      DISPID_NORMAL_FIRST;
+  DISPID_AREA                       =      DISPID_NORMAL_FIRST;
+  DISPID_PARAM                      =      DISPID_NORMAL_FIRST;
+  DISPID_TABLEROW                   =      DISPID_NORMAL_FIRST;
+  DISPID_TABLECOL                   =      DISPID_NORMAL_FIRST;
+  DISPID_SCRIPT                     =      DISPID_NORMAL_FIRST;
+  DISPID_STYLESHEET                 =      DISPID_NORMAL_FIRST;
+  DISPID_STYLERULE                  =      DISPID_NORMAL_FIRST;
+  DISPID_STYLEPAGE                  =      DISPID_NORMAL_FIRST;
+  DISPID_STYLESHEETS_COL            =      DISPID_NORMAL_FIRST;
+  DISPID_STYLERULES_COL             =      DISPID_NORMAL_FIRST;
+  DISPID_STYLEPAGES_COL             =      DISPID_NORMAL_FIRST;
+  DISPID_MIMETYPES_COL              =      DISPID_NORMAL_FIRST;
+  DISPID_PLUGINS_COL                =      DISPID_NORMAL_FIRST;
+  DISPID_2D                         =      DISPID_NORMAL_FIRST;
+  DISPID_OMWINDOW                   =      DISPID_NORMAL_FIRST;
+  DISPID_EVENTOBJ                   =      DISPID_NORMAL_FIRST;
+  DISPID_PERSISTDATA                =      DISPID_NORMAL_FIRST;
+  DISPID_OLESITE                    =      DISPID_NORMAL_FIRST;
+  DISPID_FRAMESET                   =      DISPID_NORMAL_FIRST;
+  DISPID_LINK                       =      DISPID_NORMAL_FIRST;
+  DISPID_STYLEELEMENT               =      DISPID_NORMAL_FIRST;
+  DISPID_FILTERS                    =      DISPID_NORMAL_FIRST;
+  DISPID_TABLESECTION               =      DISPID_NORMAL_FIRST;
+  DISPID_OMRECT                     =      DISPID_NORMAL_FIRST;
+  DISPID_DOMATTRIBUTE               =      DISPID_NORMAL_FIRST;
+  DISPID_DOMTEXTNODE                =      DISPID_NORMAL_FIRST;
+  DISPID_GENERIC                    =      DISPID_NORMAL_FIRST;
+  DISPID_URN_COLL                   =      DISPID_NORMAL_FIRST;
+  DISPID_NAMESPACE_COLLECTION       =      DISPID_NORMAL_FIRST;
+  DISPID_NAMESPACE                  =      DISPID_NORMAL_FIRST;
+  DISPID_TAGNAMES_COLLECTION        =      DISPID_NORMAL_FIRST;
+
+  DISPID_HTMLDOCUMENT               =      DISPID_NORMAL_FIRST;
+  DISPID_OMDOCUMENT                 =      DISPID_NORMAL_FIRST;
+  DISPID_DATATRANSFER               =      DISPID_NORMAL_FIRST;
+  DISPID_XMLDECL                    =      DISPID_NORMAL_FIRST;
+  DISPID_DOCFRAG                    =      DISPID_NORMAL_FIRST;
+  DISPID_ILINEINFO                  =      DISPID_NORMAL_FIRST;
+  DISPID_IHTMLCOMPUTEDSTYLE         =      DISPID_NORMAL_FIRST;
+//;begin_internal
+    // Special case for compatability with IE4 -> therefore the 1:
+//;end_internal
+  DISPID_WINDOW                     =      1;
+  DISPID_SCREEN                     =      DISPID_NORMAL_FIRST;
+  DISPID_FRAMESCOLLECTION           =      DISPID_NORMAL_FIRST;
+  DISPID_HISTORY                    =      1;
+  DISPID_LOCATION                   =      1;
+  DISPID_NAVIGATOR                  =      1;
+  DISPID_COLLECTION                 =      (DISPID_NORMAL_FIRST+500);
+  DISPID_OPTIONS_COL                =      (DISPID_NORMAL_FIRST+500);
+
+  DISPID_CHECKBOX                   =      DISPID_NORMAL_FIRST;
+  DISPID_RADIO                      =      (DISPID_CHECKBOX + 1000);
+
+  DISPID_FRAMESITE                  =      (DISPID_SITE        + 1000);
+  DISPID_FRAME                      =      (DISPID_FRAMESITE   + 1000);
+  DISPID_IFRAME                     =      (DISPID_FRAMESITE   + 1000);
+
+  WEBOC_DISPIDBASE                  =      (DISPID_FRAMESITE   + 2000);
+  WEBOC_DISPIDMAX                   =      (WEBOC_DISPIDBASE   +  100);
+
+  DISPID_PROTECTEDELEMENT           =      DISPID_NORMAL_FIRST;
+  DISPID_DEFAULTS                   =      DISPID_NORMAL_FIRST;
+//#ifdef NATIVE_FRAME
+  DISPID_MARKUP                     =   DISPID_NORMAL_FIRST;
+//#endif
+
+//;begin_internal
+//----------------------------------------------------------------------------
+//
+//  Reserved negative DISPIDs
+//
+//----------------------------------------------------------------------------
+//;end_internal
+
+  DISPID_WINDOWOBJECT               =      (-5500);
+  DISPID_LOCATIONOBJECT             =      (-5506);
+  DISPID_HISTORYOBJECT              =      (-5507);
+  DISPID_NAVIGATOROBJECT            =      (-5508);
+  DISPID_SECURITYCTX                =      (-5511);
+  DISPID_AMBIENT_DLCONTROL          =      (-5512);
+  DISPID_AMBIENT_USERAGENT          =      (-5513);
+  DISPID_SECURITYDOMAIN             =      (-5514);
+  DLCTL_DLIMAGES                    =      $00000010;
+  DLCTL_VIDEOS                      =      $00000020;
+  DLCTL_BGSOUNDS                    =      $00000040;
+  DLCTL_NO_SCRIPTS                  =      $00000080;
+  DLCTL_NO_JAVA                     =      $00000100;
+  DLCTL_NO_RUNACTIVEXCTLS           =      $00000200;
+  DLCTL_NO_DLACTIVEXCTLS            =      $00000400;
+  DLCTL_DOWNLOADONLY                =      $00000800;
+  DLCTL_NO_FRAMEDOWNLOAD            =      $00001000;
+  DLCTL_RESYNCHRONIZE               =      $00002000;
+  DLCTL_PRAGMA_NO_CACHE             =      $00004000;
+  DLCTL_NO_BEHAVIORS                =      $00008000;
+  DLCTL_NO_METACHARSET              =      $00010000;
+  DLCTL_URL_ENCODING_DISABLE_UTF8   =      $00020000;
+  DLCTL_URL_ENCODING_ENABLE_UTF8    =      $00040000;
+  DLCTL_FORCEOFFLINE                =      $10000000;
+  DLCTL_NO_CLIENTPULL               =      $20000000;
+  DLCTL_SILENT                      =      $40000000;
+  DLCTL_OFFLINEIFNOTCONNECTED       =      $80000000;
+  DLCTL_OFFLINE                     =      DLCTL_OFFLINEIFNOTCONNECTED;
+
+(*
+  DLCTL_DLIMAGES,
+  DLCTL_VIDEOS, and
+  DLCTL_BGSOUNDS:
+     Images, videos, and background sounds will be downloaded from the server and
+     displayed or played if these flags are set. They will not be downloaded and
+     displayed if the flags are not set.
+
+  DLCTL_NO_SCRIPTS and
+  DLCTL_NO_JAVA:
+     Scripts and Java applets will not be executed.
+
+  DLCTL_NO_DLACTIVEXCTLS and
+  DLCTL_NO_RUNACTIVEXCTLS :
+     ActiveX controls will not be downloaded or will not be executed.
+
+  DLCTL_DOWNLOADONLY:
+     The page will only be downloaded, not displayed.
+
+  DLCTL_NO_FRAMEDOWNLOAD:
+     The WebBrowser Control will download and parse a frameSet, but not the individual
+     frame objects within the frameSet.
+
+  DLCTL_RESYNCHRONIZE and
+  DLCTL_PRAGMA_NO_CACHE:
+     These flags cause cache refreshes. With DLCTL_RESYNCHRONIZE, the server will be
+     asked for update status. Cached files will be used if the server indicates that
+     the cached information is up-to-date. With DLCTL_PRAGMA_NO_CACHE, files will be
+     re-downloaded from the server regardless of the update status of the files.
+
+  DLCTL_NO_BEHAVIORS:
+     Behaviors are not downloaded and are disabled in the document.
+
+  DLCTL_NO_METACHARSET_HTML:
+     Character sets specified in meta elements are suppressed.
+
+  DLCTL_URL_ENCODING_DISABLE_UTF8 and
+  DLCTL_URL_ENCODING_ENABLE_UTF8:
+     These flags function similarly to the DOCHOSTUIFLAG_URL_ENCODING_DISABLE_UTF8 and
+     DOCHOSTUIFLAG_URL_ENCODING_ENABLE_UTF8 flags used with IDocHostUIHandler::GetHostInfo.
+     The difference is that the DOCHOSTUIFLAG flags are checked only when the WebBrowser
+     Control is first instantiated. The download flags here for the ambient property change
+     are checked whenever the WebBrowser Control needs to perform a download.
+
+  DLCTL_NO_CLIENTPULL:
+     No client pull operations will be performed.
+
+  DLCTL_SILENT:
+     No user interface will be displayed during downloads.
+
+  DLCTL_FORCEOFFLINE:
+     The WebBrowser Control always operates in offline mode.
+
+  DLCTL_OFFLINEIFNOTCONNECTED and
+  DLCTL_OFFLINE:
+     These flags are the same. The WebBrowser Control will operate in offline mode if
+     not connected to the Internet.
+*)
+
+//;begin_internal
+//----------------------------------------------------------------------------
+//
+//  DISPID for each non xobject event
+//
+//----------------------------------------------------------------------------
+//;end_internal
+
+  DISPID_ONABORT           = (DISPID_NORMAL_FIRST);
+  DISPID_ONCHANGE          = (DISPID_NORMAL_FIRST + 1);
+  DISPID_ONERROR           = (DISPID_NORMAL_FIRST + 2);
+  DISPID_ONLOAD            = (DISPID_NORMAL_FIRST + 3);
+  DISPID_ONSELECT          = (DISPID_NORMAL_FIRST + 6);
+  DISPID_ONSUBMIT          = (DISPID_NORMAL_FIRST + 7);
+  DISPID_ONUNLOAD          = (DISPID_NORMAL_FIRST + 8);
+  DISPID_ONBOUNCE          = (DISPID_NORMAL_FIRST + 9);
+  DISPID_ONFINISH          = (DISPID_NORMAL_FIRST + 10);
+  DISPID_ONSTART           = (DISPID_NORMAL_FIRST + 11);
+  DISPID_ONLAYOUT          = (DISPID_NORMAL_FIRST + 13);
+  DISPID_ONSCROLL          = (DISPID_NORMAL_FIRST + 14);
+  DISPID_ONRESET           = (DISPID_NORMAL_FIRST + 15) ;
+  DISPID_ONRESIZE          = (DISPID_NORMAL_FIRST + 16);
+  DISPID_ONBEFOREUNLOAD    = (DISPID_NORMAL_FIRST + 17);
+  DISPID_ONCHANGEFOCUS     = (DISPID_NORMAL_FIRST + 18);
+  DISPID_ONCHANGEBLUR      = (DISPID_NORMAL_FIRST + 19);
+  DISPID_ONPERSIST         = (DISPID_NORMAL_FIRST + 20);
+  DISPID_ONPERSISTSAVE     = (DISPID_NORMAL_FIRST + 21);
+  DISPID_ONPERSISTLOAD     = (DISPID_NORMAL_FIRST + 22);
+  DISPID_ONCONTEXTMENU     = (DISPID_NORMAL_FIRST + 23);
+  DISPID_ONBEFOREPRINT     = (DISPID_NORMAL_FIRST + 24);
+  DISPID_ONAFTERPRINT      = (DISPID_NORMAL_FIRST + 25);
+  DISPID_ONSTOP            = (DISPID_NORMAL_FIRST + 26);
+  DISPID_ONBEFOREEDITFOCUS = (DISPID_NORMAL_FIRST + 27);
+  DISPID_ONMOUSEHOVER      = (DISPID_NORMAL_FIRST + 28);
+  DISPID_ONCONTENTREADY    = (DISPID_NORMAL_FIRST + 29);
+  DISPID_ONLAYOUTCOMPLETE  = (DISPID_NORMAL_FIRST + 30);
+  DISPID_ONPAGE            = (DISPID_NORMAL_FIRST + 31);
+  DISPID_ONLINKEDOVERFLOW  = (DISPID_NORMAL_FIRST + 32);
+  DISPID_ONMOUSEWHEEL      = (DISPID_NORMAL_FIRST + 33);
+  DISPID_ONBEFOREDEACTIVATE= (DISPID_NORMAL_FIRST + 34);
+  DISPID_ONMOVE            = (DISPID_NORMAL_FIRST + 35);
+  DISPID_ONCONTROLSELECT   = (DISPID_NORMAL_FIRST + 36);
+  DISPID_ONSELECTIONCHANGE = (DISPID_NORMAL_FIRST + 37);
+  DISPID_ONMOVESTART       = (DISPID_NORMAL_FIRST + 38);
+  DISPID_ONMOVEEND         = (DISPID_NORMAL_FIRST + 39);
+  DISPID_ONRESIZESTART     = (DISPID_NORMAL_FIRST + 40);
+  DISPID_ONRESIZEEND       = (DISPID_NORMAL_FIRST + 41);
+  DISPID_ONMOUSEENTER      = (DISPID_NORMAL_FIRST + 42);
+  DISPID_ONMOUSELEAVE      = (DISPID_NORMAL_FIRST + 43);
+  DISPID_ONACTIVATE        = (DISPID_NORMAL_FIRST + 44);
+  DISPID_ONDEACTIVATE      = (DISPID_NORMAL_FIRST + 45);
+  DISPID_ONMULTILAYOUTCLEANUP = (DISPID_NORMAL_FIRST + 46);
+  DISPID_ONBEFOREACTIVATE  = (DISPID_NORMAL_FIRST + 47);
+  DISPID_ONFOCUSIN         = (DISPID_NORMAL_FIRST + 48);
+  DISPID_ONFOCUSOUT        = (DISPID_NORMAL_FIRST + 49);
+
+
+//;begin_internal
+//----------------------------------------------------------------------------
+//
+//  DISPID for each unique HtmlAttribute/CssAttribute
+//
+//----------------------------------------------------------------------------
+//;end_internal
+
+  DISPID_A_FIRST                    =      DISPID_ATTRS;
+  DISPID_A_MIN                      =      DISPID_ATTRS;
+  DISPID_A_MAX                      =      (DISPID_ATTRS+999);
+
+  DISPID_A_BACKGROUNDIMAGE          =      (DISPID_A_FIRST+1);
+  DISPID_A_COLOR                    =      (DISPID_A_FIRST+2);
+  DISPID_A_TEXTTRANSFORM            =      (DISPID_A_FIRST+4);
+  DISPID_A_NOWRAP                   =      (DISPID_A_FIRST+5);
+  DISPID_A_LINEHEIGHT               =      (DISPID_A_FIRST+6);
+  DISPID_A_TEXTINDENT               =      (DISPID_A_FIRST+7);
+  DISPID_A_LETTERSPACING            =      (DISPID_A_FIRST+8);
+  DISPID_A_LANG                     =      (DISPID_A_FIRST+9);
+  DISPID_A_OVERFLOW                 =      (DISPID_A_FIRST+10);
+
+  DISPID_A_PADDING                  =      (DISPID_A_FIRST+11);
+  DISPID_A_PADDINGTOP               =      (DISPID_A_FIRST+12);
+  DISPID_A_PADDINGRIGHT             =      (DISPID_A_FIRST+13);
+  DISPID_A_PADDINGBOTTOM            =      (DISPID_A_FIRST+14);
+  DISPID_A_PADDINGLEFT              =      (DISPID_A_FIRST+15);
+
+  DISPID_A_CLEAR                    =      (DISPID_A_FIRST+16);
+  DISPID_A_LISTTYPE                 =      (DISPID_A_FIRST+17);
+  DISPID_A_FONTFACE                 =      (DISPID_A_FIRST+18);
+  DISPID_A_FONTSIZE                 =      (DISPID_A_FIRST+19);
+
+  DISPID_A_TEXTDECORATIONLINETHROUGH=      (DISPID_A_FIRST+20);
+  DISPID_A_TEXTDECORATIONUNDERLINE  =      (DISPID_A_FIRST+21);
+  DISPID_A_TEXTDECORATIONBLINK      =      (DISPID_A_FIRST+22);
+  DISPID_A_TEXTDECORATIONNONE       =      (DISPID_A_FIRST+23);
+
+
+  DISPID_A_FONTSTYLE                =      (DISPID_A_FIRST+24);
+  DISPID_A_FONTVARIANT              =      (DISPID_A_FIRST+25);
+  DISPID_A_BASEFONT                 =      (DISPID_A_FIRST+26);
+  DISPID_A_FONTWEIGHT               =      (DISPID_A_FIRST+27);
+
+  DISPID_A_TABLEBORDERCOLOR         =      (DISPID_A_FIRST+28);
+  DISPID_A_TABLEBORDERCOLORLIGHT    =      (DISPID_A_FIRST+29);
+  DISPID_A_TABLEBORDERCOLORDARK     =      (DISPID_A_FIRST+30);
+  DISPID_A_TABLEVALIGN              =      (DISPID_A_FIRST+31);
+
+  DISPID_A_BACKGROUND               =      (DISPID_A_FIRST+32);
+  DISPID_A_BACKGROUNDPOSX           =      (DISPID_A_FIRST+33);
+  DISPID_A_BACKGROUNDPOSY           =      (DISPID_A_FIRST+34);
+
+  DISPID_A_TEXTDECORATION           =      (DISPID_A_FIRST+35);
+
+  DISPID_A_MARGIN                   =      (DISPID_A_FIRST+36);
+  DISPID_A_MARGINTOP                =      (DISPID_A_FIRST+37);
+  DISPID_A_MARGINRIGHT              =      (DISPID_A_FIRST+38);
+  DISPID_A_MARGINBOTTOM             =      (DISPID_A_FIRST+39);
+  DISPID_A_MARGINLEFT               =      (DISPID_A_FIRST+40);
+
+  DISPID_A_FONT                     =      (DISPID_A_FIRST+41);
+  DISPID_A_FONTSIZEKEYWORD          =      (DISPID_A_FIRST+42);
+  DISPID_A_FONTSIZECOMBINE          =      (DISPID_A_FIRST+43);
+
+  DISPID_A_BACKGROUNDREPEAT         =      (DISPID_A_FIRST+44);
+  DISPID_A_BACKGROUNDATTACHMENT     =      (DISPID_A_FIRST+45);
+  DISPID_A_BACKGROUNDPOSITION       =      (DISPID_A_FIRST+46);
+  DISPID_A_WORDSPACING              =      (DISPID_A_FIRST+47);
+  DISPID_A_VERTICALALIGN            =      (DISPID_A_FIRST+48);
+  DISPID_A_BORDER                   =      (DISPID_A_FIRST+49);
+  DISPID_A_BORDERTOP                =      (DISPID_A_FIRST+50);
+  DISPID_A_BORDERRIGHT              =      (DISPID_A_FIRST+51);
+  DISPID_A_BORDERBOTTOM             =      (DISPID_A_FIRST+52);
+  DISPID_A_BORDERLEFT               =      (DISPID_A_FIRST+53);
+  DISPID_A_BORDERCOLOR              =      (DISPID_A_FIRST+54);
+  DISPID_A_BORDERTOPCOLOR           =      (DISPID_A_FIRST+55);
+  DISPID_A_BORDERRIGHTCOLOR         =      (DISPID_A_FIRST+56);
+  DISPID_A_BORDERBOTTOMCOLOR        =      (DISPID_A_FIRST+57);
+  DISPID_A_BORDERLEFTCOLOR          =      (DISPID_A_FIRST+58);
+  DISPID_A_BORDERWIDTH              =      (DISPID_A_FIRST+59);
+  DISPID_A_BORDERTOPWIDTH           =      (DISPID_A_FIRST+60);
+  DISPID_A_BORDERRIGHTWIDTH         =      (DISPID_A_FIRST+61);
+  DISPID_A_BORDERBOTTOMWIDTH        =      (DISPID_A_FIRST+62);
+  DISPID_A_BORDERLEFTWIDTH          =      (DISPID_A_FIRST+63);
+  DISPID_A_BORDERSTYLE              =      (DISPID_A_FIRST+64);
+  DISPID_A_BORDERTOPSTYLE           =      (DISPID_A_FIRST+65);
+  DISPID_A_BORDERRIGHTSTYLE         =      (DISPID_A_FIRST+66);
+  DISPID_A_BORDERBOTTOMSTYLE        =      (DISPID_A_FIRST+67);
+  DISPID_A_BORDERLEFTSTYLE          =      (DISPID_A_FIRST+68);
+  DISPID_A_TEXTDECORATIONOVERLINE   =      (DISPID_A_FIRST+69);
+  DISPID_A_FLOAT                    =      (DISPID_A_FIRST+70);
+  DISPID_A_DISPLAY                  =      (DISPID_A_FIRST+71);
+  DISPID_A_LISTSTYLETYPE            =      (DISPID_A_FIRST+72);
+  DISPID_A_LISTSTYLEPOSITION        =      (DISPID_A_FIRST+73);
+  DISPID_A_LISTSTYLEIMAGE           =      (DISPID_A_FIRST+74);
+  DISPID_A_LISTSTYLE                =      (DISPID_A_FIRST+75);
+  DISPID_A_WHITESPACE               =      (DISPID_A_FIRST+76);
+  DISPID_A_PAGEBREAKBEFORE          =      (DISPID_A_FIRST+77);
+  DISPID_A_PAGEBREAKAFTER           =      (DISPID_A_FIRST+78);
+  DISPID_A_SCROLL                   =      (DISPID_A_FIRST+79);
+  DISPID_A_VISIBILITY               =      (DISPID_A_FIRST+80);
+//;begin_internal
+// This dispid is available
+  DISPID_A_HIDDEN                   =      (DISPID_A_FIRST+81);
+//;end_internal
+  DISPID_A_FILTER                   =      (DISPID_A_FIRST+82);
+
+  DISPID_DEFAULTVALUE               =      (DISPID_A_FIRST+83);
+
+  DISPID_A_BORDERCOLLAPSE           =      (DISPID_A_FIRST+84);
+
+  DISPID_A_POSITION                 =      (DISPID_A_FIRST+90);
+  DISPID_A_ZINDEX                   =      (DISPID_A_FIRST+91);
+  DISPID_A_CLIP                     =      (DISPID_A_FIRST+92);
+  DISPID_A_CLIPRECTTOP              =      (DISPID_A_FIRST+93);
+  DISPID_A_CLIPRECTRIGHT            =      (DISPID_A_FIRST+94);
+  DISPID_A_CLIPRECTBOTTOM           =      (DISPID_A_FIRST+95);
+  DISPID_A_CLIPRECTLEFT             =      (DISPID_A_FIRST+96);
+
+  DISPID_A_FONTFACESRC              =      (DISPID_A_FIRST+97);
+  DISPID_A_TABLELAYOUT              =      (DISPID_A_FIRST+98);
+
+//;begin_internal
+// The style as a text string
+//;end_internal
+  DISPID_A_STYLETEXT                 =     (DISPID_A_FIRST+99);
+
+//;begin_internal
+// Known attributes that have special meaning
+//;end_internal
+  DISPID_A_LANGUAGE                 =      (DISPID_A_FIRST+100);
+
+  DISPID_A_VALUE                    =      (DISPID_A_FIRST+101);
+  DISPID_A_CURSOR                   =      (DISPID_A_FIRST+102);
+
+
+//;begin_internal
+//+-----------------------------------------------------------------------
+//  A couple of dispids that are used internally for firing
+//  events and prop notifies.
+// Keep all the internal dispid's together, otherwise we'll trip up 
+
+  DISPID_A_EVENTSINK                   =   (DISPID_A_FIRST+103);
+  DISPID_A_PROPNOTIFYSINK              =   (DISPID_A_FIRST+104);
+  DISPID_A_ROWSETNOTIFYSINK            =   (DISPID_A_FIRST+105);
+  DISPID_INTERNAL_INLINESTYLEAA        =   (DISPID_A_FIRST+106); // In line style Attr Array
+  DISPID_INTERNAL_CSTYLEPTRCACHE       =   (DISPID_A_FIRST+107); // Cached CStyle Ptr
+  DISPID_INTERNAL_CRUNTIMESTYLEPTRCACHE=   (DISPID_A_FIRST+108); // runtime style ptr obj
+  DISPID_INTERNAL_INVOKECONTEXT        =   (DISPID_A_FIRST+109); // Cached Invoke context
+
+  DISPID_A_BGURLIMGCTXCACHEINDEX       =   (DISPID_A_FIRST+110);
+  DISPID_A_LIURLIMGCTXCACHEINDEX       =   (DISPID_A_FIRST+111);
+  DISPID_A_ROWSETASYNCHNOTIFYSINK      =   (DISPID_A_FIRST+112);
+  DISPID_INTERNAL_FILTERPTRCACHE       =   (DISPID_A_FIRST+113); // FilterCollection in AttrArray
+  DISPID_A_ROWPOSITIONCHANGESINK       =   (DISPID_A_FIRST+114);
+  DISPID_A_BEHAVIOR                    =   (DISPID_A_FIRST+115); // xtags
+  DISPID_A_READYSTATE                  =   (DISPID_A_FIRST+116); // ready state
+//;end_internal
+
+  DISPID_A_DIR                         =   (DISPID_A_FIRST+117); // Complex Text support for bidi
+  DISPID_A_UNICODEBIDI                 =   (DISPID_A_FIRST+118); // Complex Text support for CSS2 unicode-bidi
+  DISPID_A_DIRECTION                   =   (DISPID_A_FIRST+119); // Complex Text support for CSS2 direction
+
+  DISPID_A_IMEMODE                     =   (DISPID_A_FIRST+120);
+
+  DISPID_A_RUBYALIGN                   =   (DISPID_A_FIRST+121);
+  DISPID_A_RUBYPOSITION                =   (DISPID_A_FIRST+122);
+  DISPID_A_RUBYOVERHANG                =   (DISPID_A_FIRST+123);
+
+//;begin_internal
+  DISPID_INTERNAL_ONBEHAVIOR_CONTENTREADY = (DISPID_A_FIRST+124);
+  DISPID_INTERNAL_ONBEHAVIOR_DOCUMENTREADY= (DISPID_A_FIRST+125);
+  DISPID_INTERNAL_CDOMCHILDRENPTRCACHE    = (DISPID_A_FIRST+126);
+//;end_internal
+
+  DISPID_A_LAYOUTGRIDCHAR              =   (DISPID_A_FIRST+127);
+  DISPID_A_LAYOUTGRIDLINE              =   (DISPID_A_FIRST+128);
+  DISPID_A_LAYOUTGRIDMODE              =   (DISPID_A_FIRST+129);
+  DISPID_A_LAYOUTGRIDTYPE              =   (DISPID_A_FIRST+130);
+  DISPID_A_LAYOUTGRID                  =   (DISPID_A_FIRST+131);
+
+  DISPID_A_TEXTAUTOSPACE               =   (DISPID_A_FIRST+132);
+
+  DISPID_A_LINEBREAK                   =   (DISPID_A_FIRST+133);
+  DISPID_A_WORDBREAK                   =   (DISPID_A_FIRST+134);
+
+  DISPID_A_TEXTJUSTIFY                 =   (DISPID_A_FIRST+135);
+  DISPID_A_TEXTJUSTIFYTRIM             =   (DISPID_A_FIRST+136);
+  DISPID_A_TEXTKASHIDA                 =   (DISPID_A_FIRST+137);
+
+  DISPID_A_OVERFLOWX                   =   (DISPID_A_FIRST+139);
+  DISPID_A_OVERFLOWY                   =   (DISPID_A_FIRST+140);
+
+  DISPID_A_HTCDISPATCHITEM_VALUE       =   (DISPID_A_FIRST+141);
+  DISPID_A_DOCFRAGMENT                 =   (DISPID_A_FIRST+142);
+
+  DISPID_A_HTCDD_ELEMENT               =   (DISPID_A_FIRST+143);
+  DISPID_A_HTCDD_CREATEEVENTOBJECT     =   (DISPID_A_FIRST+144);
+
+  DISPID_A_URNATOM                     =   (DISPID_A_FIRST+145);
+  DISPID_A_UNIQUEPEERNUMBER            =   (DISPID_A_FIRST+146);
+
+  DISPID_A_ACCELERATOR                 =   (DISPID_A_FIRST+147);
+
+//;begin_internal
+  DISPID_INTERNAL_ONBEHAVIOR_APPLYSTYLE     =  (DISPID_A_FIRST+148);
+  DISPID_INTERNAL_RUNTIMESTYLEAA            =  (DISPID_A_FIRST+149);
+  DISPID_A_HTCDISPATCHITEM_VALUE_SCRIPTSONLY=  (DISPID_A_FIRST+150);
+//;end_internal
+
+  DISPID_A_EXTENDEDTAGDESC             =   (DISPID_A_FIRST+151);
+
+  DISPID_A_ROTATE                      =   (DISPID_A_FIRST+152);
+  DISPID_A_ZOOM                        =   (DISPID_A_FIRST+153);
+
+  DISPID_A_HTCDD_PROTECTEDELEMENT      =   (DISPID_A_FIRST+154);
+  DISPID_A_LAYOUTFLOW                  =   (DISPID_A_FIRST+155);
+// DISPID_A_FIRST+156 unused -- removing 'rectangular'
+//   DISPID_A_RECTANGULAR                    (DISPID_A_FIRST+156)
+
+  DISPID_A_HTCDD_ISMARKUPSHARED       =    (DISPID_A_FIRST+157);
+  DISPID_A_WORDWRAP                   =    (DISPID_A_FIRST+158);
+  DISPID_A_TEXTUNDERLINEPOSITION      =    (DISPID_A_FIRST+159);
+  DISPID_A_HASLAYOUT                  =    (DISPID_A_FIRST+160);
+  DISPID_A_MEDIA                      =    (DISPID_A_FIRST+161);
+  DISPID_A_EDITABLE                   =    (DISPID_A_FIRST+162);
+  DISPID_A_HIDEFOCUS                  =    (DISPID_A_FIRST+163);
+
+//;begin_internal
+  DISPID_INTERNAL_LAYOUTRECTREGISTRYPTRCACHE= (DISPID_A_FIRST+164);
+//;end_internal
+
+  DISPID_A_HTCDD_DEFAULTS             =    (DISPID_A_FIRST+165);
+
+  DISPID_A_TEXTLINETHROUGHSTYLE       =    (DISPID_A_FIRST+166);
+  DISPID_A_TEXTUNDERLINESTYLE         =    (DISPID_A_FIRST+167);
+  DISPID_A_TEXTEFFECT                 =    (DISPID_A_FIRST+168);
+  DISPID_A_TEXTBACKGROUNDCOLOR        =    (DISPID_A_FIRST+169);
+  DISPID_A_RENDERINGPRIORITY          =    (DISPID_A_FIRST+170);
+
+//#ifdef NATIVE_FRAME
+//;begin_internal
+  DISPID_INTERNAL_DWNPOSTPTRCACHE         =    (DISPID_A_FIRST+171);
+  DISPID_INTERNAL_CODEPAGESETTINGSPTRCACHE=    (DISPID_A_FIRST+172);
+  DISPID_INTERNAL_DWNDOCPTRCACHE          =    (DISPID_A_FIRST+173);
+  DISPID_INTERNAL_DATABINDTASKPTRCACHE    =    (DISPID_A_FIRST+174);
+  DISPID_INTERNAL_URLLOCATIONCACHE        =    (DISPID_A_FIRST+175);
+  DISPID_INTERNAL_ARYELEMENTRELEASENOTIFYPTRCACHE= (DISPID_A_FIRST+176);
+  DISPID_INTERNAL_PEERFACTORYURLMAPPTRCACHE=   (DISPID_A_FIRST+177);
+  DISPID_INTERNAL_STMDIRTYPTRCACHE        =    (DISPID_A_FIRST+178);
+//;end_internal
+//#endif
+
+//;begin_internal
+  DISPID_INTERNAL_COMPUTEFORMATSTATECACHE =    (DISPID_A_FIRST+179);
+//;end_internal
+
+//
+  DISPID_A_SCROLLBARBASECOLOR        =     (DISPID_A_FIRST+180);
+  DISPID_A_SCROLLBARFACECOLOR        =     (DISPID_A_FIRST+181);
+  DISPID_A_SCROLLBAR3DLIGHTCOLOR     =     (DISPID_A_FIRST+182);
+  DISPID_A_SCROLLBARSHADOWCOLOR      =     (DISPID_A_FIRST+183);
+  DISPID_A_SCROLLBARHIGHLIGHTCOLOR   =     (DISPID_A_FIRST+184);
+  DISPID_A_SCROLLBARDARKSHADOWCOLOR  =     (DISPID_A_FIRST+185);
+  DISPID_A_SCROLLBARARROWCOLOR       =     (DISPID_A_FIRST+186);
+
+//;begin_internal
+  DISPID_INTERNAL_ONBEHAVIOR_CONTENTSAVE = (DISPID_A_FIRST+187);
+//;end_internal
+
+  DISPID_A_DEFAULTTEXTSELECTION     =      (DISPID_A_FIRST+188);
+  DISPID_A_TEXTDECORATIONCOLOR      =      (DISPID_A_FIRST+189);
+  DISPID_A_TEXTCOLOR                =      (DISPID_A_FIRST+190);
+  DISPID_A_STYLETEXTDECORATION      =      (DISPID_A_FIRST+191);
+
+  DISPID_A_WRITINGMODE              =      (DISPID_A_FIRST+192);
+
+//;begin_internal
+  DISPID_INTERNAL_MEDIA_REFERENCE   =      (DISPID_A_FIRST+193);
+  DISPID_INTERNAL_GENERICCOMPLUSREF =      (DISPID_A_FIRST+194);
+//;end_internal
+
+//;begin_internal
+  DISPID_INTERNAL_FOCUSITEMS        =      (DISPID_A_FIRST+195);
+//;end_internal
+
+  DISPID_A_SCROLLBARTRACKCOLOR      =      (DISPID_A_FIRST+196);
+
+//;begin_internal
+  DISPID_INTERNAL_DWNHEADERCACHE    =      (DISPID_A_FIRST+197);
+//;end_internal
+
+  DISPID_A_FROZEN                    =     (DISPID_A_FIRST+198);
+  DISPID_A_VIEWINHERITSTYLE          =     (DISPID_A_FIRST+199);
+
+//;begin_internal
+  DISPID_INTERNAL_FRAMESCOLLECTION   =     (DISPID_A_FIRST+200);
+//;end_internal
+
+//;begin_internal
+  DISPID_A_BGURLIMGCTXCACHEINDEX_FLINE=    (DISPID_A_FIRST+201);
+  DISPID_A_BGURLIMGCTXCACHEINDEX_FLETTER = (DISPID_A_FIRST+202);
+//;end_internal
+
+  DISPID_A_TEXTALIGNLAST             =     (DISPID_A_FIRST+203);
+  DISPID_A_TEXTKASHIDASPACE          =     (DISPID_A_FIRST+204);
+
+//;begin_internal
+  DISPID_INTERNAL_FONTHISTORYINDEX   =     (DISPID_A_FIRST+205);
+//;end_internal
+
+  DISPID_A_ALLOWTRANSPARENCY         =     (DISPID_A_FIRST+206);
+
+  DISPID_INTERNAL_URLSEARCHCACHE     =     (DISPID_A_FIRST+207);
+
+  DISPID_A_ISBLOCK                   =     (DISPID_A_FIRST+208);
+
+
+//;begin_internal
+//------------------------------------------------------------------------
+//
+//  Event property and method dispids
+//
+//------------------------------------------------------------------------
+//;end_internal
+
+
+  DISPID_EVPROP_ONMOUSEOVER         = (DISPID_EVENTS +  0);
+  DISPID_EVMETH_ONMOUSEOVER         =  STDDISPID_XOBJ_ONMOUSEOVER;
+  DISPID_EVPROP_ONMOUSEOUT          = (DISPID_EVENTS +  1);
+  DISPID_EVMETH_ONMOUSEOUT          =  STDDISPID_XOBJ_ONMOUSEOUT;
+  DISPID_EVPROP_ONMOUSEDOWN         = (DISPID_EVENTS +  2);
+  DISPID_EVMETH_ONMOUSEDOWN         =  DISPID_MOUSEDOWN;
+  DISPID_EVPROP_ONMOUSEUP           = (DISPID_EVENTS +  3);
+  DISPID_EVMETH_ONMOUSEUP           =  DISPID_MOUSEUP;
+  DISPID_EVPROP_ONMOUSEMOVE         = (DISPID_EVENTS +  4);
+  DISPID_EVMETH_ONMOUSEMOVE         =  DISPID_MOUSEMOVE;
+  DISPID_EVPROP_ONKEYDOWN           = (DISPID_EVENTS +  5);
+  DISPID_EVMETH_ONKEYDOWN           =  DISPID_KEYDOWN;
+  DISPID_EVPROP_ONKEYUP             = (DISPID_EVENTS +  6);
+  DISPID_EVMETH_ONKEYUP             =  DISPID_KEYUP;
+  DISPID_EVPROP_ONKEYPRESS          = (DISPID_EVENTS +  7);
+  DISPID_EVMETH_ONKEYPRESS          =  DISPID_KEYPRESS;
+  DISPID_EVPROP_ONCLICK             = (DISPID_EVENTS +  8);
+  DISPID_EVMETH_ONCLICK             =  DISPID_CLICK;
+  DISPID_EVPROP_ONDBLCLICK          = (DISPID_EVENTS +  9);
+  DISPID_EVMETH_ONDBLCLICK          =  DISPID_DBLCLICK;
+  DISPID_EVPROP_ONSELECT            = (DISPID_EVENTS + 10);
+  DISPID_EVMETH_ONSELECT            =  DISPID_ONSELECT;
+  DISPID_EVPROP_ONSUBMIT            = (DISPID_EVENTS + 11);
+  DISPID_EVMETH_ONSUBMIT            =  DISPID_ONSUBMIT ;
+  DISPID_EVPROP_ONRESET             = (DISPID_EVENTS + 12);
+  DISPID_EVMETH_ONRESET             =  DISPID_ONRESET;
+  DISPID_EVPROP_ONHELP              = (DISPID_EVENTS + 13);
+  DISPID_EVMETH_ONHELP              =  STDDISPID_XOBJ_ONHELP;
+  DISPID_EVPROP_ONFOCUS             = (DISPID_EVENTS + 14);
+  DISPID_EVMETH_ONFOCUS             =  STDDISPID_XOBJ_ONFOCUS;
+  DISPID_EVPROP_ONBLUR              = (DISPID_EVENTS + 15);
+  DISPID_EVMETH_ONBLUR              =  STDDISPID_XOBJ_ONBLUR;
+  DISPID_EVPROP_ONROWEXIT           = (DISPID_EVENTS + 18);
+  DISPID_EVMETH_ONROWEXIT           =  STDDISPID_XOBJ_ONROWEXIT;
+  DISPID_EVPROP_ONROWENTER          = (DISPID_EVENTS + 19);
+  DISPID_EVMETH_ONROWENTER          =  STDDISPID_XOBJ_ONROWENTER;
+  DISPID_EVPROP_ONBOUNCE            = (DISPID_EVENTS + 20);
+  DISPID_EVMETH_ONBOUNCE            =  DISPID_ONBOUNCE;
+  DISPID_EVPROP_ONBEFOREUPDATE      = (DISPID_EVENTS + 21);
+  DISPID_EVMETH_ONBEFOREUPDATE      =  STDDISPID_XOBJ_BEFOREUPDATE;
+  DISPID_EVPROP_ONAFTERUPDATE       = (DISPID_EVENTS + 22);
+  DISPID_EVMETH_ONAFTERUPDATE       =  STDDISPID_XOBJ_AFTERUPDATE;
+  DISPID_EVPROP_ONBEFOREDRAGOVER    = (DISPID_EVENTS + 23);
+  //DISPID_EVMETH_ONBEFOREDRAGOVER    =  EVENTID_CommonCtrlEvent_BeforeDragOver;
+  DISPID_EVPROP_ONBEFOREDROPORPASTE = (DISPID_EVENTS + 24);
+  //DISPID_EVMETH_ONBEFOREDROPORPASTE =  EVENTID_CommonCtrlEvent_BeforeDropOrPaste ;
+  DISPID_EVPROP_ONREADYSTATECHANGE  = (DISPID_EVENTS + 25);
+  DISPID_EVMETH_ONREADYSTATECHANGE  =  DISPID_READYSTATECHANGE;
+  DISPID_EVPROP_ONFINISH            = (DISPID_EVENTS + 26);
+  DISPID_EVMETH_ONFINISH            =  DISPID_ONFINISH ;
+  DISPID_EVPROP_ONSTART             = (DISPID_EVENTS + 27);
+  DISPID_EVMETH_ONSTART             =  DISPID_ONSTART;
+  DISPID_EVPROP_ONABORT             = (DISPID_EVENTS + 28);
+  DISPID_EVMETH_ONABORT             =  DISPID_ONABORT ;
+  DISPID_EVPROP_ONERROR             = (DISPID_EVENTS + 29);
+  DISPID_EVMETH_ONERROR             =  DISPID_ONERROR ;
+  DISPID_EVPROP_ONCHANGE            = (DISPID_EVENTS + 30);
+  DISPID_EVMETH_ONCHANGE            =  DISPID_ONCHANGE;
+  DISPID_EVPROP_ONSCROLL            = (DISPID_EVENTS + 31);
+  DISPID_EVMETH_ONSCROLL            =  DISPID_ONSCROLL;
+  DISPID_EVPROP_ONLOAD              = (DISPID_EVENTS + 32);
+  DISPID_EVMETH_ONLOAD              =  DISPID_ONLOAD;
+  DISPID_EVPROP_ONUNLOAD            = (DISPID_EVENTS + 33);
+  DISPID_EVMETH_ONUNLOAD            =  DISPID_ONUNLOAD ;
+  DISPID_EVPROP_ONLAYOUT            = (DISPID_EVENTS + 34);
+  DISPID_EVMETH_ONLAYOUT            =  DISPID_ONLAYOUT ;
+  DISPID_EVPROP_ONDRAGSTART         = (DISPID_EVENTS + 35);
+  DISPID_EVMETH_ONDRAGSTART         =  STDDISPID_XOBJ_ONDRAGSTART;
+  DISPID_EVPROP_ONRESIZE            = (DISPID_EVENTS + 36);
+  DISPID_EVMETH_ONRESIZE            =  DISPID_ONRESIZE;
+  DISPID_EVPROP_ONSELECTSTART       = (DISPID_EVENTS + 37);
+  DISPID_EVMETH_ONSELECTSTART       =  STDDISPID_XOBJ_ONSELECTSTART;
+  DISPID_EVPROP_ONERRORUPDATE       = (DISPID_EVENTS + 38);
+  DISPID_EVMETH_ONERRORUPDATE       =  STDDISPID_XOBJ_ERRORUPDATE;
+  DISPID_EVPROP_ONBEFOREUNLOAD      = (DISPID_EVENTS + 39);
+  DISPID_EVMETH_ONBEFOREUNLOAD      =  DISPID_ONBEFOREUNLOAD ;
+  DISPID_EVPROP_ONDATASETCHANGED    = (DISPID_EVENTS + 40);
+  DISPID_EVMETH_ONDATASETCHANGED    =  STDDISPID_XOBJ_ONDATASETCHANGED;
+  DISPID_EVPROP_ONDATAAVAILABLE     = (DISPID_EVENTS + 41);
+  DISPID_EVMETH_ONDATAAVAILABLE     =  STDDISPID_XOBJ_ONDATAAVAILABLE;
+  DISPID_EVPROP_ONDATASETCOMPLETE   = (DISPID_EVENTS + 42);
+  DISPID_EVMETH_ONDATASETCOMPLETE   =  STDDISPID_XOBJ_ONDATASETCOMPLETE;
+  DISPID_EVPROP_ONFILTER            = (DISPID_EVENTS + 43);
+  DISPID_EVMETH_ONFILTER            =  STDDISPID_XOBJ_ONFILTER;
+  DISPID_EVPROP_ONCHANGEFOCUS       = (DISPID_EVENTS + 44);
+  DISPID_EVMETH_ONCHANGEFOCUS       =  DISPID_ONCHANGEFOCUS;
+  DISPID_EVPROP_ONCHANGEBLUR        = (DISPID_EVENTS + 45);
+  DISPID_EVMETH_ONCHANGEBLUR        =  DISPID_ONCHANGEBLUR;
+  DISPID_EVPROP_ONLOSECAPTURE       = (DISPID_EVENTS + 46);
+  DISPID_EVMETH_ONLOSECAPTURE       =  STDDISPID_XOBJ_ONLOSECAPTURE;
+  DISPID_EVPROP_ONPROPERTYCHANGE    = (DISPID_EVENTS + 47);
+  DISPID_EVMETH_ONPROPERTYCHANGE    =  STDDISPID_XOBJ_ONPROPERTYCHANGE;
+  DISPID_EVPROP_ONPERSISTSAVE       = (DISPID_EVENTS + 48);
+  DISPID_EVMETH_ONPERSISTSAVE       =  DISPID_ONPERSISTSAVE;
+  DISPID_EVPROP_ONDRAG              = (DISPID_EVENTS + 49);
+  DISPID_EVMETH_ONDRAG              =  STDDISPID_XOBJ_ONDRAG;
+  DISPID_EVPROP_ONDRAGEND           = (DISPID_EVENTS + 50);
+  DISPID_EVMETH_ONDRAGEND           =  STDDISPID_XOBJ_ONDRAGEND;
+  DISPID_EVPROP_ONDRAGENTER         = (DISPID_EVENTS + 51) ;
+  DISPID_EVMETH_ONDRAGENTER         =  STDDISPID_XOBJ_ONDRAGENTER;
+  DISPID_EVPROP_ONDRAGOVER          = (DISPID_EVENTS + 52);
+  DISPID_EVMETH_ONDRAGOVER          =  STDDISPID_XOBJ_ONDRAGOVER;
+  DISPID_EVPROP_ONDRAGLEAVE         = (DISPID_EVENTS + 53);
+  DISPID_EVMETH_ONDRAGLEAVE         =  STDDISPID_XOBJ_ONDRAGLEAVE;
+  DISPID_EVPROP_ONDROP              = (DISPID_EVENTS + 54);
+  DISPID_EVMETH_ONDROP              =  STDDISPID_XOBJ_ONDROP;
+  DISPID_EVPROP_ONCUT               = (DISPID_EVENTS + 55);
+  DISPID_EVMETH_ONCUT               =  STDDISPID_XOBJ_ONCUT;
+  DISPID_EVPROP_ONCOPY              = (DISPID_EVENTS + 56);
+  DISPID_EVMETH_ONCOPY              =  STDDISPID_XOBJ_ONCOPY;
+  DISPID_EVPROP_ONPASTE             = (DISPID_EVENTS + 57);
+  DISPID_EVMETH_ONPASTE             =  STDDISPID_XOBJ_ONPASTE;
+  DISPID_EVPROP_ONBEFORECUT         = (DISPID_EVENTS + 58);
+  DISPID_EVMETH_ONBEFORECUT         =  STDDISPID_XOBJ_ONBEFORECUT;
+  DISPID_EVPROP_ONBEFORECOPY        = (DISPID_EVENTS + 59);
+  DISPID_EVMETH_ONBEFORECOPY        =  STDDISPID_XOBJ_ONBEFORECOPY;
+  DISPID_EVPROP_ONBEFOREPASTE       = (DISPID_EVENTS + 60);
+  DISPID_EVMETH_ONBEFOREPASTE       =  STDDISPID_XOBJ_ONBEFOREPASTE;
+  DISPID_EVPROP_ONPERSISTLOAD       = (DISPID_EVENTS + 61);
+  DISPID_EVMETH_ONPERSISTLOAD       =  DISPID_ONPERSISTLOAD;
+  DISPID_EVPROP_ONROWSDELETE        = (DISPID_EVENTS + 62);
+  DISPID_EVMETH_ONROWSDELETE        =  STDDISPID_XOBJ_ONROWSDELETE;
+  DISPID_EVPROP_ONROWSINSERTED      = (DISPID_EVENTS + 63);
+  DISPID_EVMETH_ONROWSINSERTED      =  STDDISPID_XOBJ_ONROWSINSERTED;
+  DISPID_EVPROP_ONCELLCHANGE        = (DISPID_EVENTS + 64);
+  DISPID_EVMETH_ONCELLCHANGE        =  STDDISPID_XOBJ_ONCELLCHANGE;
+  DISPID_EVPROP_ONCONTEXTMENU       = (DISPID_EVENTS + 65);
+  DISPID_EVMETH_ONCONTEXTMENU       =  DISPID_ONCONTEXTMENU;
+  DISPID_EVPROP_ONBEFOREPRINT       = (DISPID_EVENTS + 66);
+  DISPID_EVMETH_ONBEFOREPRINT       =  DISPID_ONBEFOREPRINT ;
+  DISPID_EVPROP_ONAFTERPRINT        = (DISPID_EVENTS + 67);
+  DISPID_EVMETH_ONAFTERPRINT        =  DISPID_ONAFTERPRINT;
+  DISPID_EVPROP_ONSTOP              = (DISPID_EVENTS + 68);
+  DISPID_EVMETH_ONSTOP              = DISPID_ONSTOP;
+  DISPID_EVPROP_ONBEFOREEDITFOCUS   = (DISPID_EVENTS + 69);
+  DISPID_EVMETH_ONBEFOREEDITFOCUS   =  DISPID_ONBEFOREEDITFOCUS;
+  DISPID_EVPROP_ONATTACHEVENT       = (DISPID_EVENTS + 70);
+  DISPID_EVPROP_ONMOUSEHOVER        = (DISPID_EVENTS + 71);
+  DISPID_EVMETH_ONMOUSEHOVER        =  DISPID_ONMOUSEHOVER;
+  DISPID_EVPROP_ONCONTENTREADY      = (DISPID_EVENTS + 72);
+  DISPID_EVMETH_ONCONTENTREADY      =  DISPID_ONCONTENTREADY ;
+  DISPID_EVPROP_ONLAYOUTCOMPLETE    = (DISPID_EVENTS + 73);
+  DISPID_EVMETH_ONLAYOUTCOMPLETE    =  DISPID_ONLAYOUTCOMPLETE;
+  DISPID_EVPROP_ONPAGE              = (DISPID_EVENTS + 74);
+  DISPID_EVMETH_ONPAGE              =  DISPID_ONPAGE;
+  DISPID_EVPROP_ONLINKEDOVERFLOW    = (DISPID_EVENTS + 75);
+  DISPID_EVMETH_ONLINKEDOVERFLOW    =  DISPID_ONLINKEDOVERFLOW ;
+  DISPID_EVPROP_ONMOUSEWHEEL        =  (DISPID_EVENTS + 76);
+  DISPID_EVMETH_ONMOUSEWHEEL        =   DISPID_ONMOUSEWHEEL;
+  DISPID_EVPROP_ONBEFOREDEACTIVATE  = (DISPID_EVENTS + 77);
+  DISPID_EVMETH_ONBEFOREDEACTIVATE  =  DISPID_ONBEFOREDEACTIVATE;
+  DISPID_EVPROP_ONMOVE              = (DISPID_EVENTS + 78);
+  DISPID_EVMETH_ONMOVE              =  DISPID_ONMOVE;
+  DISPID_EVPROP_ONCONTROLSELECT     = (DISPID_EVENTS + 79);
+  DISPID_EVMETH_ONCONTROLSELECT     =  DISPID_ONCONTROLSELECT;
+  DISPID_EVPROP_ONSELECTIONCHANGE   = (DISPID_EVENTS + 80);
+  DISPID_EVMETH_ONSELECTIONCHANGE   =  DISPID_ONSELECTIONCHANGE ;
+  DISPID_EVPROP_ONMOVESTART         = (DISPID_EVENTS + 81) ;
+  DISPID_EVMETH_ONMOVESTART         =  DISPID_ONMOVESTART;
+  DISPID_EVPROP_ONMOVEEND           = (DISPID_EVENTS + 82);
+  DISPID_EVMETH_ONMOVEEND           =  DISPID_ONMOVEEND;
+  DISPID_EVPROP_ONRESIZESTART       = (DISPID_EVENTS + 83);
+  DISPID_EVMETH_ONRESIZESTART       =  DISPID_ONRESIZESTART;
+  DISPID_EVPROP_ONRESIZEEND         = (DISPID_EVENTS + 84);
+  DISPID_EVMETH_ONRESIZEEND         =  DISPID_ONRESIZEEND;
+  DISPID_EVPROP_ONMOUSEENTER        = (DISPID_EVENTS + 85);
+  DISPID_EVMETH_ONMOUSEENTER        =  DISPID_ONMOUSEENTER;
+  DISPID_EVPROP_ONMOUSELEAVE        = (DISPID_EVENTS + 86);
+  DISPID_EVMETH_ONMOUSELEAVE        =  DISPID_ONMOUSELEAVE;
+  DISPID_EVPROP_ONACTIVATE          = (DISPID_EVENTS + 87);
+  DISPID_EVMETH_ONACTIVATE          =  DISPID_ONACTIVATE;
+  DISPID_EVPROP_ONDEACTIVATE        = (DISPID_EVENTS + 88) ;
+  DISPID_EVMETH_ONDEACTIVATE        =  DISPID_ONDEACTIVATE;
+  DISPID_EVPROP_ONMULTILAYOUTCLEANUP =(DISPID_EVENTS + 89);
+  DISPID_EVMETH_ONMULTILAYOUTCLEANUP = DISPID_ONMULTILAYOUTCLEANUP ;
+  DISPID_EVPROP_ONBEFOREACTIVATE    =  (DISPID_EVENTS + 90);
+  DISPID_EVMETH_ONBEFOREACTIVATE    =   DISPID_ONBEFOREACTIVATE;
+  DISPID_EVPROP_ONFOCUSIN           =  (DISPID_EVENTS + 91);
+  DISPID_EVMETH_ONFOCUSIN           =   DISPID_ONFOCUSIN;
+  DISPID_EVPROP_ONFOCUSOUT          =  (DISPID_EVENTS + 92);
+  DISPID_EVMETH_ONFOCUSOUT          =   DISPID_ONFOCUSOUT;
+  DISPID_EVPROPS_COUNT              =  (                93);
+
+
+
+
+//;begin_internal
+//#endif // __COREDISP_H__
+//;end_internal
+
+//    DISPIDs for interface IHTMLFiltersCollection
+
+  DISPID_IHTMLFILTERSCOLLECTION_LENGTH    =                  DISPID_FILTERS+1;
+  DISPID_IHTMLFILTERSCOLLECTION__NEWENUM  =                  DISPID_NEWENUM;
+  DISPID_IHTMLFILTERSCOLLECTION_ITEM      =                  DISPID_VALUE;
+(*
+//    DISPIDs for interface IDispatchEx
+
+  DISPID_IDISPATCHEX_GETDISPID
+  DISPID_IDISPATCHEX_INVOKEEX
+  DISPID_IDISPATCHEX_DELETEMEMBERBYNAME
+  DISPID_IDISPATCHEX_DELETEMEMBERBYDISPID
+  DISPID_IDISPATCHEX_GETMEMBERPROPERTIES
+  DISPID_IDISPATCHEX_GETMEMBERNAME
+  DISPID_IDISPATCHEX_GETNEXTDISPID
+  DISPID_IDISPATCHEX_GETNAMESPACEPARENT
+
+//    DISPIDs for interface IObjectIdentity
+
+  DISPID_IOBJECTIDENTITY_ISEQUALOBJECT
+
+//    DISPIDs for interface IPerPropertyBrowsing
+
+  DISPID_IPERPROPERTYBROWSING_GETDISPLAYSTRING
+  DISPID_IPERPROPERTYBROWSING_MAPPROPERTYTOPAGE
+  DISPID_IPERPROPERTYBROWSING_GETPREDEFINEDSTRINGS
+  DISPID_IPERPROPERTYBROWSING_GETPREDEFINEDVALUE
+ *)
+//    DISPIDs for interface IHTMLStyle
+
+  DISPID_IHTMLSTYLE_FONTFAMILY             =                 DISPID_A_FONTFACE;
+  DISPID_IHTMLSTYLE_FONTSTYLE              =                 DISPID_A_FONTSTYLE;
+  DISPID_IHTMLSTYLE_FONTVARIANT            =                 DISPID_A_FONTVARIANT;
+  DISPID_IHTMLSTYLE_FONTWEIGHT             =                 DISPID_A_FONTWEIGHT ;
+  DISPID_IHTMLSTYLE_FONTSIZE               =                 DISPID_A_FONTSIZE ;
+  DISPID_IHTMLSTYLE_FONT                   =                 DISPID_A_FONT;
+  DISPID_IHTMLSTYLE_COLOR                  =                 DISPID_A_COLOR ;
+  DISPID_IHTMLSTYLE_BACKGROUND             =                 DISPID_A_BACKGROUND ;
+  DISPID_IHTMLSTYLE_BACKGROUNDCOLOR        =                 DISPID_BACKCOLOR;
+  DISPID_IHTMLSTYLE_BACKGROUNDIMAGE        =                 DISPID_A_BACKGROUNDIMAGE;
+  DISPID_IHTMLSTYLE_BACKGROUNDREPEAT       =                 DISPID_A_BACKGROUNDREPEAT;
+  DISPID_IHTMLSTYLE_BACKGROUNDATTACHMENT   =                 DISPID_A_BACKGROUNDATTACHMENT;
+  DISPID_IHTMLSTYLE_BACKGROUNDPOSITION     =                 DISPID_A_BACKGROUNDPOSITION;
+  DISPID_IHTMLSTYLE_BACKGROUNDPOSITIONX    =                 DISPID_A_BACKGROUNDPOSX ;
+  DISPID_IHTMLSTYLE_BACKGROUNDPOSITIONY    =                 DISPID_A_BACKGROUNDPOSY ;
+  DISPID_IHTMLSTYLE_WORDSPACING            =  DISPID_A_WORDSPACING ;
+  DISPID_IHTMLSTYLE_LETTERSPACING          =  DISPID_A_LETTERSPACING ;
+  DISPID_IHTMLSTYLE_TEXTDECORATION         =  DISPID_A_TEXTDECORATION;
+  DISPID_IHTMLSTYLE_TEXTDECORATIONNONE     =  DISPID_A_TEXTDECORATIONNONE ;
+  DISPID_IHTMLSTYLE_TEXTDECORATIONUNDERLINE=  DISPID_A_TEXTDECORATIONUNDERLINE ;
+  DISPID_IHTMLSTYLE_TEXTDECORATIONOVERLINE =  DISPID_A_TEXTDECORATIONOVERLINE;
+  DISPID_IHTMLSTYLE_TEXTDECORATIONLINETHROUGH = DISPID_A_TEXTDECORATIONLINETHROUGH ;
+  DISPID_IHTMLSTYLE_TEXTDECORATIONBLINK    =  DISPID_A_TEXTDECORATIONBLINK ;
+  DISPID_IHTMLSTYLE_VERTICALALIGN          =  DISPID_A_VERTICALALIGN ;
+  DISPID_IHTMLSTYLE_TEXTTRANSFORM          =  DISPID_A_TEXTTRANSFORM ;
+  DISPID_IHTMLSTYLE_TEXTALIGN              =  STDPROPID_XOBJ_BLOCKALIGN ;
+  DISPID_IHTMLSTYLE_TEXTINDENT             =  DISPID_A_TEXTINDENT ;
+  DISPID_IHTMLSTYLE_LINEHEIGHT             =  DISPID_A_LINEHEIGHT ;
+  DISPID_IHTMLSTYLE_MARGINTOP              =  DISPID_A_MARGINTOP  ;
+  DISPID_IHTMLSTYLE_MARGINRIGHT            =  DISPID_A_MARGINRIGHT ;
+  DISPID_IHTMLSTYLE_MARGINBOTTOM           =  DISPID_A_MARGINBOTTOM ;
+  DISPID_IHTMLSTYLE_MARGINLEFT             =  DISPID_A_MARGINLEFT;
+  DISPID_IHTMLSTYLE_MARGIN                 =  DISPID_A_MARGIN ;
+  DISPID_IHTMLSTYLE_PADDINGTOP             =  DISPID_A_PADDINGTOP ;
+  DISPID_IHTMLSTYLE_PADDINGRIGHT           =  DISPID_A_PADDINGRIGHT ;
+  DISPID_IHTMLSTYLE_PADDINGBOTTOM          =  DISPID_A_PADDINGBOTTOM ;
+  DISPID_IHTMLSTYLE_PADDINGLEFT            =  DISPID_A_PADDINGLEFT;
+  DISPID_IHTMLSTYLE_PADDING                =  DISPID_A_PADDING ;
+  DISPID_IHTMLSTYLE_BORDER                 =  DISPID_A_BORDER ;
+  DISPID_IHTMLSTYLE_BORDERTOP              =  DISPID_A_BORDERTOP ;
+  DISPID_IHTMLSTYLE_BORDERRIGHT            =  DISPID_A_BORDERRIGHT;
+  DISPID_IHTMLSTYLE_BORDERBOTTOM           =  DISPID_A_BORDERBOTTOM;
+  DISPID_IHTMLSTYLE_BORDERLEFT             =  DISPID_A_BORDERLEFT ;
+  DISPID_IHTMLSTYLE_BORDERCOLOR            =  DISPID_A_BORDERCOLOR;
+  DISPID_IHTMLSTYLE_BORDERTOPCOLOR         =  DISPID_A_BORDERTOPCOLOR;
+  DISPID_IHTMLSTYLE_BORDERRIGHTCOLOR       =  DISPID_A_BORDERRIGHTCOLOR;
+  DISPID_IHTMLSTYLE_BORDERBOTTOMCOLOR      =  DISPID_A_BORDERBOTTOMCOLOR ;
+  DISPID_IHTMLSTYLE_BORDERLEFTCOLOR        =  DISPID_A_BORDERLEFTCOLOR;
+  DISPID_IHTMLSTYLE_BORDERWIDTH            =  DISPID_A_BORDERWIDTH;
+  DISPID_IHTMLSTYLE_BORDERTOPWIDTH         =  DISPID_A_BORDERTOPWIDTH;
+  DISPID_IHTMLSTYLE_BORDERRIGHTWIDTH       =  DISPID_A_BORDERRIGHTWIDTH;
+  DISPID_IHTMLSTYLE_BORDERBOTTOMWIDTH      =  DISPID_A_BORDERBOTTOMWIDTH;
+  DISPID_IHTMLSTYLE_BORDERLEFTWIDTH        =  DISPID_A_BORDERLEFTWIDTH;
+  DISPID_IHTMLSTYLE_BORDERSTYLE            =  DISPID_A_BORDERSTYLE ;
+  DISPID_IHTMLSTYLE_BORDERTOPSTYLE         =  DISPID_A_BORDERTOPSTYLE ;
+  DISPID_IHTMLSTYLE_BORDERRIGHTSTYLE       =  DISPID_A_BORDERRIGHTSTYLE;
+  DISPID_IHTMLSTYLE_BORDERBOTTOMSTYLE      =  DISPID_A_BORDERBOTTOMSTYLE;
+  DISPID_IHTMLSTYLE_BORDERLEFTSTYLE        =  DISPID_A_BORDERLEFTSTYLE;
+  DISPID_IHTMLSTYLE_WIDTH                  = STDPROPID_XOBJ_WIDTH;
+  DISPID_IHTMLSTYLE_HEIGHT                 = STDPROPID_XOBJ_HEIGHT ;
+  DISPID_IHTMLSTYLE_STYLEFLOAT             =  DISPID_A_FLOAT;
+  DISPID_IHTMLSTYLE_CLEAR                  =  DISPID_A_CLEAR ;
+  DISPID_IHTMLSTYLE_DISPLAY                =  DISPID_A_DISPLAY ;
+  DISPID_IHTMLSTYLE_VISIBILITY             =  DISPID_A_VISIBILITY ;
+  DISPID_IHTMLSTYLE_LISTSTYLETYPE          =  DISPID_A_LISTSTYLETYPE ;
+  DISPID_IHTMLSTYLE_LISTSTYLEPOSITION      =  DISPID_A_LISTSTYLEPOSITION;
+  DISPID_IHTMLSTYLE_LISTSTYLEIMAGE         =  DISPID_A_LISTSTYLEIMAGE;
+  DISPID_IHTMLSTYLE_LISTSTYLE              =  DISPID_A_LISTSTYLE;
+  DISPID_IHTMLSTYLE_WHITESPACE             =  DISPID_A_WHITESPACE ;
+  DISPID_IHTMLSTYLE_TOP                    =  STDPROPID_XOBJ_TOP ;
+  DISPID_IHTMLSTYLE_LEFT                   = STDPROPID_XOBJ_LEFT;
+  DISPID_IHTMLSTYLE_POSITION               =  DISPID_A_POSITION;
+  DISPID_IHTMLSTYLE_ZINDEX                 =  DISPID_A_ZINDEX ;
+  DISPID_IHTMLSTYLE_OVERFLOW               =  DISPID_A_OVERFLOW ;
+  DISPID_IHTMLSTYLE_PAGEBREAKBEFORE        =  DISPID_A_PAGEBREAKBEFORE ;
+  DISPID_IHTMLSTYLE_PAGEBREAKAFTER         =  DISPID_A_PAGEBREAKAFTER;
+  DISPID_IHTMLSTYLE_CSSTEXT                =  DISPID_A_STYLETEXT ;
+  DISPID_IHTMLSTYLE_PIXELTOP               = DISPID_STYLE+0;
+  DISPID_IHTMLSTYLE_PIXELLEFT              = DISPID_STYLE+1;
+  DISPID_IHTMLSTYLE_PIXELWIDTH             = DISPID_STYLE+2;
+  DISPID_IHTMLSTYLE_PIXELHEIGHT            = DISPID_STYLE+3 ;
+  DISPID_IHTMLSTYLE_POSTOP                 = DISPID_STYLE+4;
+  DISPID_IHTMLSTYLE_POSLEFT                = DISPID_STYLE+5;
+  DISPID_IHTMLSTYLE_POSWIDTH               = DISPID_STYLE+6;
+  DISPID_IHTMLSTYLE_POSHEIGHT              = DISPID_STYLE+7;
+  DISPID_IHTMLSTYLE_CURSOR                 =  DISPID_A_CURSOR;
+  DISPID_IHTMLSTYLE_CLIP                   =  DISPID_A_CLIP;
+  DISPID_IHTMLSTYLE_FILTER                 =  DISPID_A_FILTER ;
+  DISPID_IHTMLSTYLE_SETATTRIBUTE           = DISPID_HTMLOBJECT+1 ;
+  DISPID_IHTMLSTYLE_GETATTRIBUTE           = DISPID_HTMLOBJECT+2;
+  DISPID_IHTMLSTYLE_REMOVEATTRIBUTE        = DISPID_HTMLOBJECT+3;
+  DISPID_IHTMLSTYLE_TOSTRING               = DISPID_STYLE+8 ;
+
+//    DISPIDs for interface IHTMLStyle2
+
+  DISPID_IHTMLSTYLE2_TABLELAYOUT           =  DISPID_A_TABLELAYOUT;
+  DISPID_IHTMLSTYLE2_BORDERCOLLAPSE        =  DISPID_A_BORDERCOLLAPSE ;
+  DISPID_IHTMLSTYLE2_DIRECTION             =  DISPID_A_DIRECTION ;
+  DISPID_IHTMLSTYLE2_BEHAVIOR              =  DISPID_A_BEHAVIOR;
+  DISPID_IHTMLSTYLE2_SETEXPRESSION         = DISPID_HTMLOBJECT+4;
+  DISPID_IHTMLSTYLE2_GETEXPRESSION         = DISPID_HTMLOBJECT+5;
+  DISPID_IHTMLSTYLE2_REMOVEEXPRESSION      = DISPID_HTMLOBJECT+6;
+  DISPID_IHTMLSTYLE2_POSITION              =  DISPID_A_POSITION;
+  DISPID_IHTMLSTYLE2_UNICODEBIDI           =  DISPID_A_UNICODEBIDI;
+  DISPID_IHTMLSTYLE2_BOTTOM                = STDPROPID_XOBJ_BOTTOM ;
+  DISPID_IHTMLSTYLE2_RIGHT                 = STDPROPID_XOBJ_RIGHT;
+  DISPID_IHTMLSTYLE2_PIXELBOTTOM           = DISPID_STYLE+9;
+  DISPID_IHTMLSTYLE2_PIXELRIGHT            = DISPID_STYLE+10;
+  DISPID_IHTMLSTYLE2_POSBOTTOM             = DISPID_STYLE+11;
+  DISPID_IHTMLSTYLE2_POSRIGHT              = DISPID_STYLE+12;
+  DISPID_IHTMLSTYLE2_IMEMODE               =  DISPID_A_IMEMODE ;
+  DISPID_IHTMLSTYLE2_RUBYALIGN             =  DISPID_A_RUBYALIGN;
+  DISPID_IHTMLSTYLE2_RUBYPOSITION          =  DISPID_A_RUBYPOSITION ;
+  DISPID_IHTMLSTYLE2_RUBYOVERHANG          =  DISPID_A_RUBYOVERHANG ;
+  DISPID_IHTMLSTYLE2_LAYOUTGRIDCHAR        =  DISPID_A_LAYOUTGRIDCHAR;
+  DISPID_IHTMLSTYLE2_LAYOUTGRIDLINE        =  DISPID_A_LAYOUTGRIDLINE;
+  DISPID_IHTMLSTYLE2_LAYOUTGRIDMODE        =  DISPID_A_LAYOUTGRIDMODE;
+  DISPID_IHTMLSTYLE2_LAYOUTGRIDTYPE        =  DISPID_A_LAYOUTGRIDTYPE;
+  DISPID_IHTMLSTYLE2_LAYOUTGRID            =  DISPID_A_LAYOUTGRID;
+  DISPID_IHTMLSTYLE2_WORDBREAK             =  DISPID_A_WORDBREAK;
+  DISPID_IHTMLSTYLE2_LINEBREAK             =  DISPID_A_LINEBREAK ;
+  DISPID_IHTMLSTYLE2_TEXTJUSTIFY           =  DISPID_A_TEXTJUSTIFY;
+  DISPID_IHTMLSTYLE2_TEXTJUSTIFYTRIM       =  DISPID_A_TEXTJUSTIFYTRIM;
+  DISPID_IHTMLSTYLE2_TEXTKASHIDA           =  DISPID_A_TEXTKASHIDA;
+  DISPID_IHTMLSTYLE2_TEXTAUTOSPACE         =  DISPID_A_TEXTAUTOSPACE ;
+  DISPID_IHTMLSTYLE2_OVERFLOWX             =  DISPID_A_OVERFLOWX;
+  DISPID_IHTMLSTYLE2_OVERFLOWY             =  DISPID_A_OVERFLOWY;
+  DISPID_IHTMLSTYLE2_ACCELERATOR           =  DISPID_A_ACCELERATOR;
+
+//    DISPIDs for interface IHTMLStyle3
+
+  DISPID_IHTMLSTYLE3_LAYOUTFLOW            =  DISPID_A_LAYOUTFLOW ;
+  DISPID_IHTMLSTYLE3_ZOOM                  =  DISPID_A_ZOOM ;
+  DISPID_IHTMLSTYLE3_WORDWRAP              =  DISPID_A_WORDWRAP;
+  DISPID_IHTMLSTYLE3_TEXTUNDERLINEPOSITION =  DISPID_A_TEXTUNDERLINEPOSITION;
+  DISPID_IHTMLSTYLE3_SCROLLBARBASECOLOR    =  DISPID_A_SCROLLBARBASECOLOR ;
+  DISPID_IHTMLSTYLE3_SCROLLBARFACECOLOR    =  DISPID_A_SCROLLBARFACECOLOR;
+  DISPID_IHTMLSTYLE3_SCROLLBAR3DLIGHTCOLOR =  DISPID_A_SCROLLBAR3DLIGHTCOLOR;
+  DISPID_IHTMLSTYLE3_SCROLLBARSHADOWCOLOR  =  DISPID_A_SCROLLBARSHADOWCOLOR;
+  DISPID_IHTMLSTYLE3_SCROLLBARHIGHLIGHTCOLOR  = DISPID_A_SCROLLBARHIGHLIGHTCOLOR;
+  DISPID_IHTMLSTYLE3_SCROLLBARDARKSHADOWCOLOR = DISPID_A_SCROLLBARDARKSHADOWCOLOR ;
+  DISPID_IHTMLSTYLE3_SCROLLBARARROWCOLOR   =  DISPID_A_SCROLLBARARROWCOLOR;
+  DISPID_IHTMLSTYLE3_SCROLLBARTRACKCOLOR   =  DISPID_A_SCROLLBARTRACKCOLOR ;
+  DISPID_IHTMLSTYLE3_WRITINGMODE           =  DISPID_A_WRITINGMODE;
+  DISPID_IHTMLSTYLE3_TEXTALIGNLAST         =  DISPID_A_TEXTALIGNLAST ;
+  DISPID_IHTMLSTYLE3_TEXTKASHIDASPACE      =  DISPID_A_TEXTKASHIDASPACE;
+
+//    DISPIDs for interface IHTMLRuleStyle
+
+  DISPID_IHTMLRULESTYLE_FONTFAMILY         =  DISPID_A_FONTFACE ;
+  DISPID_IHTMLRULESTYLE_FONTSTYLE          =  DISPID_A_FONTSTYLE ;
+  DISPID_IHTMLRULESTYLE_FONTVARIANT        =  DISPID_A_FONTVARIANT ;
+  DISPID_IHTMLRULESTYLE_FONTWEIGHT         =  DISPID_A_FONTWEIGHT ;
+  DISPID_IHTMLRULESTYLE_FONTSIZE           =  DISPID_A_FONTSIZE;
+  DISPID_IHTMLRULESTYLE_FONT               =  DISPID_A_FONT ;
+  DISPID_IHTMLRULESTYLE_COLOR              =  DISPID_A_COLOR ;
+  DISPID_IHTMLRULESTYLE_BACKGROUND         =  DISPID_A_BACKGROUND ;
+  DISPID_IHTMLRULESTYLE_BACKGROUNDCOLOR    = DISPID_BACKCOLOR ;
+  DISPID_IHTMLRULESTYLE_BACKGROUNDIMAGE    =  DISPID_A_BACKGROUNDIMAGE ;
+  DISPID_IHTMLRULESTYLE_BACKGROUNDREPEAT   =  DISPID_A_BACKGROUNDREPEAT ;
+  DISPID_IHTMLRULESTYLE_BACKGROUNDATTACHMENT = DISPID_A_BACKGROUNDATTACHMENT;
+  DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITION =  DISPID_A_BACKGROUNDPOSITION ;
+  DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITIONX=  DISPID_A_BACKGROUNDPOSX ;
+  DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITIONY=  DISPID_A_BACKGROUNDPOSY ;
+  DISPID_IHTMLRULESTYLE_WORDSPACING        =  DISPID_A_WORDSPACING ;
+  DISPID_IHTMLRULESTYLE_LETTERSPACING      =  DISPID_A_LETTERSPACING ;
+  DISPID_IHTMLRULESTYLE_TEXTDECORATION     =  DISPID_A_TEXTDECORATION ;
+  DISPID_IHTMLRULESTYLE_TEXTDECORATIONNONE =  DISPID_A_TEXTDECORATIONNONE;
+  DISPID_IHTMLRULESTYLE_TEXTDECORATIONUNDERLINE = DISPID_A_TEXTDECORATIONUNDERLINE;
+  DISPID_IHTMLRULESTYLE_TEXTDECORATIONOVERLINE  = DISPID_A_TEXTDECORATIONOVERLINE ;
+  DISPID_IHTMLRULESTYLE_TEXTDECORATIONLINETHROUGH = DISPID_A_TEXTDECORATIONLINETHROUGH ;
+  DISPID_IHTMLRULESTYLE_TEXTDECORATIONBLINK=  DISPID_A_TEXTDECORATIONBLINK ;
+  DISPID_IHTMLRULESTYLE_VERTICALALIGN      =  DISPID_A_VERTICALALIGN ;
+  DISPID_IHTMLRULESTYLE_TEXTTRANSFORM      =  DISPID_A_TEXTTRANSFORM;
+  DISPID_IHTMLRULESTYLE_TEXTALIGN          = STDPROPID_XOBJ_BLOCKALIGN ;
+  DISPID_IHTMLRULESTYLE_TEXTINDENT         =  DISPID_A_TEXTINDENT ;
+  DISPID_IHTMLRULESTYLE_LINEHEIGHT         =  DISPID_A_LINEHEIGHT;
+  DISPID_IHTMLRULESTYLE_MARGINTOP          =  DISPID_A_MARGINTOP;
+  DISPID_IHTMLRULESTYLE_MARGINRIGHT        =  DISPID_A_MARGINRIGHT;
+  DISPID_IHTMLRULESTYLE_MARGINBOTTOM       =  DISPID_A_MARGINBOTTOM ;
+  DISPID_IHTMLRULESTYLE_MARGINLEFT         =  DISPID_A_MARGINLEFT ;
+  DISPID_IHTMLRULESTYLE_MARGIN             =  DISPID_A_MARGIN ;
+  DISPID_IHTMLRULESTYLE_PADDINGTOP         =  DISPID_A_PADDINGTOP;
+  DISPID_IHTMLRULESTYLE_PADDINGRIGHT       =  DISPID_A_PADDINGRIGHT ;
+  DISPID_IHTMLRULESTYLE_PADDINGBOTTOM      =  DISPID_A_PADDINGBOTTOM ;
+  DISPID_IHTMLRULESTYLE_PADDINGLEFT        =  DISPID_A_PADDINGLEFT ;
+  DISPID_IHTMLRULESTYLE_PADDING            =  DISPID_A_PADDING ;
+  DISPID_IHTMLRULESTYLE_BORDER             =  DISPID_A_BORDER ;
+  DISPID_IHTMLRULESTYLE_BORDERTOP          =  DISPID_A_BORDERTOP ;
+  DISPID_IHTMLRULESTYLE_BORDERRIGHT        =  DISPID_A_BORDERRIGHT ;
+  DISPID_IHTMLRULESTYLE_BORDERBOTTOM       =  DISPID_A_BORDERBOTTOM;
+  DISPID_IHTMLRULESTYLE_BORDERLEFT         =  DISPID_A_BORDERLEFT ;
+  DISPID_IHTMLRULESTYLE_BORDERCOLOR        =  DISPID_A_BORDERCOLOR ;
+  DISPID_IHTMLRULESTYLE_BORDERTOPCOLOR     =  DISPID_A_BORDERTOPCOLOR ;
+  DISPID_IHTMLRULESTYLE_BORDERRIGHTCOLOR   =  DISPID_A_BORDERRIGHTCOLOR ;
+  DISPID_IHTMLRULESTYLE_BORDERBOTTOMCOLOR  =  DISPID_A_BORDERBOTTOMCOLOR;
+  DISPID_IHTMLRULESTYLE_BORDERLEFTCOLOR    =  DISPID_A_BORDERLEFTCOLOR;
+  DISPID_IHTMLRULESTYLE_BORDERWIDTH        =  DISPID_A_BORDERWIDTH ;
+  DISPID_IHTMLRULESTYLE_BORDERTOPWIDTH     =  DISPID_A_BORDERTOPWIDTH ;
+  DISPID_IHTMLRULESTYLE_BORDERRIGHTWIDTH   =  DISPID_A_BORDERRIGHTWIDTH ;
+  DISPID_IHTMLRULESTYLE_BORDERBOTTOMWIDTH  =  DISPID_A_BORDERBOTTOMWIDTH;
+  DISPID_IHTMLRULESTYLE_BORDERLEFTWIDTH    =  DISPID_A_BORDERLEFTWIDTH ;
+  DISPID_IHTMLRULESTYLE_BORDERSTYLE        =  DISPID_A_BORDERSTYLE;
+  DISPID_IHTMLRULESTYLE_BORDERTOPSTYLE     =  DISPID_A_BORDERTOPSTYLE ;
+  DISPID_IHTMLRULESTYLE_BORDERRIGHTSTYLE   =  DISPID_A_BORDERRIGHTSTYLE ;
+  DISPID_IHTMLRULESTYLE_BORDERBOTTOMSTYLE  =  DISPID_A_BORDERBOTTOMSTYLE;
+  DISPID_IHTMLRULESTYLE_BORDERLEFTSTYLE    =  DISPID_A_BORDERLEFTSTYLE;
+  DISPID_IHTMLRULESTYLE_WIDTH              = STDPROPID_XOBJ_WIDTH  ;
+  DISPID_IHTMLRULESTYLE_HEIGHT             =  STDPROPID_XOBJ_HEIGHT ;
+  DISPID_IHTMLRULESTYLE_STYLEFLOAT         =  DISPID_A_FLOAT ;
+  DISPID_IHTMLRULESTYLE_CLEAR              =  DISPID_A_CLEAR ;
+  DISPID_IHTMLRULESTYLE_DISPLAY            =  DISPID_A_DISPLAY ;
+  DISPID_IHTMLRULESTYLE_VISIBILITY         =  DISPID_A_VISIBILITY ;
+  DISPID_IHTMLRULESTYLE_LISTSTYLETYPE      =  DISPID_A_LISTSTYLETYPE ;
+  DISPID_IHTMLRULESTYLE_LISTSTYLEPOSITION  =  DISPID_A_LISTSTYLEPOSITION;
+  DISPID_IHTMLRULESTYLE_LISTSTYLEIMAGE     =  DISPID_A_LISTSTYLEIMAGE ;
+  DISPID_IHTMLRULESTYLE_LISTSTYLE          =  DISPID_A_LISTSTYLE ;
+  DISPID_IHTMLRULESTYLE_WHITESPACE         =  DISPID_A_WHITESPACE ;
+  DISPID_IHTMLRULESTYLE_TOP                =  STDPROPID_XOBJ_TOP;
+  DISPID_IHTMLRULESTYLE_LEFT               = STDPROPID_XOBJ_LEFT;
+  DISPID_IHTMLRULESTYLE_POSITION           =  DISPID_A_POSITION ;
+  DISPID_IHTMLRULESTYLE_ZINDEX             =  DISPID_A_ZINDEX ;
+  DISPID_IHTMLRULESTYLE_OVERFLOW           =  DISPID_A_OVERFLOW ;
+  DISPID_IHTMLRULESTYLE_PAGEBREAKBEFORE    =  DISPID_A_PAGEBREAKBEFORE ;
+  DISPID_IHTMLRULESTYLE_PAGEBREAKAFTER     =  DISPID_A_PAGEBREAKAFTER ;
+  DISPID_IHTMLRULESTYLE_CSSTEXT            =  DISPID_A_STYLETEXT ;
+  DISPID_IHTMLRULESTYLE_CURSOR             =  DISPID_A_CURSOR ;
+  DISPID_IHTMLRULESTYLE_CLIP               =  DISPID_A_CLIP ;
+  DISPID_IHTMLRULESTYLE_FILTER             =  DISPID_A_FILTER;
+  DISPID_IHTMLRULESTYLE_SETATTRIBUTE       =  DISPID_HTMLOBJECT+1 ;
+  DISPID_IHTMLRULESTYLE_GETATTRIBUTE       =   DISPID_HTMLOBJECT+2 ;
+  DISPID_IHTMLRULESTYLE_REMOVEATTRIBUTE    =  DISPID_HTMLOBJECT+3;
+
+//    DISPIDs for interface IHTMLRuleStyle2
+
+  DISPID_IHTMLRULESTYLE2_TABLELAYOUT       =  DISPID_A_TABLELAYOUT ;
+  DISPID_IHTMLRULESTYLE2_BORDERCOLLAPSE    =  DISPID_A_BORDERCOLLAPSE;
+  DISPID_IHTMLRULESTYLE2_DIRECTION         =  DISPID_A_DIRECTION  ;
+  DISPID_IHTMLRULESTYLE2_BEHAVIOR          =  DISPID_A_BEHAVIOR ;
+  DISPID_IHTMLRULESTYLE2_POSITION          =  DISPID_A_POSITION ;
+  DISPID_IHTMLRULESTYLE2_UNICODEBIDI       =  DISPID_A_UNICODEBIDI ;
+  DISPID_IHTMLRULESTYLE2_BOTTOM            =  STDPROPID_XOBJ_BOTTOM ;
+  DISPID_IHTMLRULESTYLE2_RIGHT             =  STDPROPID_XOBJ_RIGHT ;
+  DISPID_IHTMLRULESTYLE2_PIXELBOTTOM       = DISPID_STYLE+9   ;
+  DISPID_IHTMLRULESTYLE2_PIXELRIGHT        =  DISPID_STYLE+10 ;
+  DISPID_IHTMLRULESTYLE2_POSBOTTOM         =  DISPID_STYLE+11 ;
+  DISPID_IHTMLRULESTYLE2_POSRIGHT          =  DISPID_STYLE+12 ;
+  DISPID_IHTMLRULESTYLE2_IMEMODE           =  DISPID_A_IMEMODE ;
+  DISPID_IHTMLRULESTYLE2_RUBYALIGN         =  DISPID_A_RUBYALIGN ;
+  DISPID_IHTMLRULESTYLE2_RUBYPOSITION      =  DISPID_A_RUBYPOSITION ;
+  DISPID_IHTMLRULESTYLE2_RUBYOVERHANG      =  DISPID_A_RUBYOVERHANG ;
+  DISPID_IHTMLRULESTYLE2_LAYOUTGRIDCHAR    =  DISPID_A_LAYOUTGRIDCHAR ;
+  DISPID_IHTMLRULESTYLE2_LAYOUTGRIDLINE    =  DISPID_A_LAYOUTGRIDLINE ;
+  DISPID_IHTMLRULESTYLE2_LAYOUTGRIDMODE    =  DISPID_A_LAYOUTGRIDMODE ;
+  DISPID_IHTMLRULESTYLE2_LAYOUTGRIDTYPE    =  DISPID_A_LAYOUTGRIDTYPE ;
+  DISPID_IHTMLRULESTYLE2_LAYOUTGRID        =  DISPID_A_LAYOUTGRID ;
+  DISPID_IHTMLRULESTYLE2_TEXTAUTOSPACE     =  DISPID_A_TEXTAUTOSPACE ;
+  DISPID_IHTMLRULESTYLE2_WORDBREAK         =  DISPID_A_WORDBREAK  ;
+  DISPID_IHTMLRULESTYLE2_LINEBREAK         =  DISPID_A_LINEBREAK ;
+  DISPID_IHTMLRULESTYLE2_TEXTJUSTIFY       =  DISPID_A_TEXTJUSTIFY ;
+  DISPID_IHTMLRULESTYLE2_TEXTJUSTIFYTRIM   =  DISPID_A_TEXTJUSTIFYTRIM ;
+  DISPID_IHTMLRULESTYLE2_TEXTKASHIDA       =  DISPID_A_TEXTKASHIDA ;
+  DISPID_IHTMLRULESTYLE2_OVERFLOWX         =  DISPID_A_OVERFLOWX ;
+  DISPID_IHTMLRULESTYLE2_OVERFLOWY         =  DISPID_A_OVERFLOWY ;
+  DISPID_IHTMLRULESTYLE2_ACCELERATOR       =  DISPID_A_ACCELERATOR ;
+
+//    DISPIDs for interface IHTMLRuleStyle3
+
+  DISPID_IHTMLRULESTYLE3_LAYOUTFLOW        =  DISPID_A_LAYOUTFLOW ;
+  DISPID_IHTMLRULESTYLE3_ZOOM              =  DISPID_A_ZOOM ;
+  DISPID_IHTMLRULESTYLE3_WORDWRAP          =  DISPID_A_WORDWRAP ;
+  DISPID_IHTMLRULESTYLE3_TEXTUNDERLINEPOSITION = DISPID_A_TEXTUNDERLINEPOSITION;
+  DISPID_IHTMLRULESTYLE3_SCROLLBARBASECOLOR =  DISPID_A_SCROLLBARBASECOLOR  ;
+  DISPID_IHTMLRULESTYLE3_SCROLLBARFACECOLOR =  DISPID_A_SCROLLBARFACECOLOR ;
+  DISPID_IHTMLRULESTYLE3_SCROLLBAR3DLIGHTCOLOR = DISPID_A_SCROLLBAR3DLIGHTCOLOR ;
+  DISPID_IHTMLRULESTYLE3_SCROLLBARSHADOWCOLOR = DISPID_A_SCROLLBARSHADOWCOLOR ;
+  DISPID_IHTMLRULESTYLE3_SCROLLBARHIGHLIGHTCOLOR = DISPID_A_SCROLLBARHIGHLIGHTCOLOR ;
+  DISPID_IHTMLRULESTYLE3_SCROLLBARDARKSHADOWCOLOR = DISPID_A_SCROLLBARDARKSHADOWCOLOR;
+  DISPID_IHTMLRULESTYLE3_SCROLLBARARROWCOLOR     = DISPID_A_SCROLLBARARROWCOLOR;
+  DISPID_IHTMLRULESTYLE3_SCROLLBARTRACKCOLOR   = DISPID_A_SCROLLBARTRACKCOLOR;
+  DISPID_IHTMLRULESTYLE3_WRITINGMODE       =  DISPID_A_WRITINGMODE ;
+  DISPID_IHTMLRULESTYLE3_TEXTALIGNLAST     =  DISPID_A_TEXTALIGNLAST ;
+  DISPID_IHTMLRULESTYLE3_TEXTKASHIDASPACE  =  DISPID_A_TEXTKASHIDASPACE ;
+
+//    DISPIDs for interface IHTMLRenderStyle
+
+  DISPID_IHTMLRENDERSTYLE_TEXTLINETHROUGHSTYLE = DISPID_A_TEXTLINETHROUGHSTYLE ;
+  DISPID_IHTMLRENDERSTYLE_TEXTUNDERLINESTYLE = DISPID_A_TEXTUNDERLINESTYLE ;
+  DISPID_IHTMLRENDERSTYLE_TEXTEFFECT       =  DISPID_A_TEXTEFFECT ;
+  DISPID_IHTMLRENDERSTYLE_TEXTCOLOR        =  DISPID_A_TEXTCOLOR ;
+  DISPID_IHTMLRENDERSTYLE_TEXTBACKGROUNDCOLOR = DISPID_A_TEXTBACKGROUNDCOLOR ;
+  DISPID_IHTMLRENDERSTYLE_TEXTDECORATIONCOLOR = DISPID_A_TEXTDECORATIONCOLOR;
+  DISPID_IHTMLRENDERSTYLE_RENDERINGPRIORITY=  DISPID_A_RENDERINGPRIORITY ;
+  DISPID_IHTMLRENDERSTYLE_DEFAULTTEXTSELECTION = DISPID_A_DEFAULTTEXTSELECTION ;
+  DISPID_IHTMLRENDERSTYLE_TEXTDECORATION   =  DISPID_A_STYLETEXTDECORATION;
+
+//    DISPIDs for interface IHTMLCurrentStyle
+
+  DISPID_IHTMLCURRENTSTYLE_POSITION        =  DISPID_A_POSITION ;
+  DISPID_IHTMLCURRENTSTYLE_STYLEFLOAT      =  DISPID_A_FLOAT ;
+  DISPID_IHTMLCURRENTSTYLE_COLOR           =  DISPID_A_COLOR ;
+  DISPID_IHTMLCURRENTSTYLE_BACKGROUNDCOLOR = DISPID_BACKCOLOR ;
+  DISPID_IHTMLCURRENTSTYLE_FONTFAMILY      =  DISPID_A_FONTFACE ;
+  DISPID_IHTMLCURRENTSTYLE_FONTSTYLE       =  DISPID_A_FONTSTYLE ;
+  DISPID_IHTMLCURRENTSTYLE_FONTVARIANT     =  DISPID_A_FONTVARIANT ;
+  DISPID_IHTMLCURRENTSTYLE_FONTWEIGHT      =  DISPID_A_FONTWEIGHT ;
+  DISPID_IHTMLCURRENTSTYLE_FONTSIZE        =  DISPID_A_FONTSIZE  ;
+  DISPID_IHTMLCURRENTSTYLE_BACKGROUNDIMAGE =  DISPID_A_BACKGROUNDIMAGE ;
+  DISPID_IHTMLCURRENTSTYLE_BACKGROUNDPOSITIONX = DISPID_A_BACKGROUNDPOSX  ;
+  DISPID_IHTMLCURRENTSTYLE_BACKGROUNDPOSITIONY = DISPID_A_BACKGROUNDPOSY ;
+  DISPID_IHTMLCURRENTSTYLE_BACKGROUNDREPEAT=  DISPID_A_BACKGROUNDREPEAT ;
+  DISPID_IHTMLCURRENTSTYLE_BORDERLEFTCOLOR =  DISPID_A_BORDERLEFTCOLOR ;
+  DISPID_IHTMLCURRENTSTYLE_BORDERTOPCOLOR  =  DISPID_A_BORDERTOPCOLOR  ;
+  DISPID_IHTMLCURRENTSTYLE_BORDERRIGHTCOLOR=  DISPID_A_BORDERRIGHTCOLOR ;
+  DISPID_IHTMLCURRENTSTYLE_BORDERBOTTOMCOLOR  = DISPID_A_BORDERBOTTOMCOLOR ;
+  DISPID_IHTMLCURRENTSTYLE_BORDERTOPSTYLE  =  DISPID_A_BORDERTOPSTYLE ;
+  DISPID_IHTMLCURRENTSTYLE_BORDERRIGHTSTYLE=  DISPID_A_BORDERRIGHTSTYLE ;
+  DISPID_IHTMLCURRENTSTYLE_BORDERBOTTOMSTYLE  = DISPID_A_BORDERBOTTOMSTYLE;
+  DISPID_IHTMLCURRENTSTYLE_BORDERLEFTSTYLE =  DISPID_A_BORDERLEFTSTYLE ;
+  DISPID_IHTMLCURRENTSTYLE_BORDERTOPWIDTH  =  DISPID_A_BORDERTOPWIDTH ;
+  DISPID_IHTMLCURRENTSTYLE_BORDERRIGHTWIDTH=  DISPID_A_BORDERRIGHTWIDTH ;
+  DISPID_IHTMLCURRENTSTYLE_BORDERBOTTOMWIDTH  = DISPID_A_BORDERBOTTOMWIDTH ;
+  DISPID_IHTMLCURRENTSTYLE_BORDERLEFTWIDTH =  DISPID_A_BORDERLEFTWIDTH ;
+  DISPID_IHTMLCURRENTSTYLE_LEFT            =  STDPROPID_XOBJ_LEFT ;
+  DISPID_IHTMLCURRENTSTYLE_TOP             =  STDPROPID_XOBJ_TOP ;
+  DISPID_IHTMLCURRENTSTYLE_WIDTH           = STDPROPID_XOBJ_WIDTH;
+  DISPID_IHTMLCURRENTSTYLE_HEIGHT          =  STDPROPID_XOBJ_HEIGHT ;
+  DISPID_IHTMLCURRENTSTYLE_PADDINGLEFT     =  DISPID_A_PADDINGLEFT;
+  DISPID_IHTMLCURRENTSTYLE_PADDINGTOP      =  DISPID_A_PADDINGTOP ;
+  DISPID_IHTMLCURRENTSTYLE_PADDINGRIGHT    =  DISPID_A_PADDINGRIGHT  ;
+  DISPID_IHTMLCURRENTSTYLE_PADDINGBOTTOM   =  DISPID_A_PADDINGBOTTOM  ;
+  DISPID_IHTMLCURRENTSTYLE_TEXTALIGN       = STDPROPID_XOBJ_BLOCKALIGN ;
+  DISPID_IHTMLCURRENTSTYLE_TEXTDECORATION  =  DISPID_A_TEXTDECORATION ;
+  DISPID_IHTMLCURRENTSTYLE_DISPLAY         =  DISPID_A_DISPLAY ;
+  DISPID_IHTMLCURRENTSTYLE_VISIBILITY      =  DISPID_A_VISIBILITY ;
+  DISPID_IHTMLCURRENTSTYLE_ZINDEX          =  DISPID_A_ZINDEX ;
+  DISPID_IHTMLCURRENTSTYLE_LETTERSPACING   =  DISPID_A_LETTERSPACING ;
+  DISPID_IHTMLCURRENTSTYLE_LINEHEIGHT      =  DISPID_A_LINEHEIGHT ;
+  DISPID_IHTMLCURRENTSTYLE_TEXTINDENT      =  DISPID_A_TEXTINDENT ;
+  DISPID_IHTMLCURRENTSTYLE_VERTICALALIGN   =  DISPID_A_VERTICALALIGN ;
+  DISPID_IHTMLCURRENTSTYLE_BACKGROUNDATTACHMENT = DISPID_A_BACKGROUNDATTACHMENT ;
+  DISPID_IHTMLCURRENTSTYLE_MARGINTOP       =  DISPID_A_MARGINTOP ;
+  DISPID_IHTMLCURRENTSTYLE_MARGINRIGHT     =  DISPID_A_MARGINRIGHT ;
+  DISPID_IHTMLCURRENTSTYLE_MARGINBOTTOM    =  DISPID_A_MARGINBOTTOM  ;
+  DISPID_IHTMLCURRENTSTYLE_MARGINLEFT      =  DISPID_A_MARGINLEFT ;
+  DISPID_IHTMLCURRENTSTYLE_CLEAR           =  DISPID_A_CLEAR ;
+  DISPID_IHTMLCURRENTSTYLE_LISTSTYLETYPE   =  DISPID_A_LISTSTYLETYPE ;
+  DISPID_IHTMLCURRENTSTYLE_LISTSTYLEPOSITION = DISPID_A_LISTSTYLEPOSITION ;
+  DISPID_IHTMLCURRENTSTYLE_LISTSTYLEIMAGE  =  DISPID_A_LISTSTYLEIMAGE ;
+  DISPID_IHTMLCURRENTSTYLE_CLIPTOP         =  DISPID_A_CLIPRECTTOP ;
+  DISPID_IHTMLCURRENTSTYLE_CLIPRIGHT       =  DISPID_A_CLIPRECTRIGHT;
+  DISPID_IHTMLCURRENTSTYLE_CLIPBOTTOM      =  DISPID_A_CLIPRECTBOTTOM ;
+  DISPID_IHTMLCURRENTSTYLE_CLIPLEFT        =  DISPID_A_CLIPRECTLEFT ;
+  DISPID_IHTMLCURRENTSTYLE_OVERFLOW        =  DISPID_A_OVERFLOW;
+  DISPID_IHTMLCURRENTSTYLE_PAGEBREAKBEFORE =  DISPID_A_PAGEBREAKBEFORE ;
+  DISPID_IHTMLCURRENTSTYLE_PAGEBREAKAFTER  =  DISPID_A_PAGEBREAKAFTER;
+  DISPID_IHTMLCURRENTSTYLE_CURSOR          =  DISPID_A_CURSOR ;
+  DISPID_IHTMLCURRENTSTYLE_TABLELAYOUT     =  DISPID_A_TABLELAYOUT;
+  DISPID_IHTMLCURRENTSTYLE_BORDERCOLLAPSE  =  DISPID_A_BORDERCOLLAPSE  ;
+  DISPID_IHTMLCURRENTSTYLE_DIRECTION       =  DISPID_A_DIRECTION ;
+  DISPID_IHTMLCURRENTSTYLE_BEHAVIOR        =  DISPID_A_BEHAVIOR ;
+  DISPID_IHTMLCURRENTSTYLE_GETATTRIBUTE    = DISPID_HTMLOBJECT+2 ;
+  DISPID_IHTMLCURRENTSTYLE_UNICODEBIDI     =  DISPID_A_UNICODEBIDI ;
+  DISPID_IHTMLCURRENTSTYLE_RIGHT           = STDPROPID_XOBJ_RIGHT ;
+  DISPID_IHTMLCURRENTSTYLE_BOTTOM          = STDPROPID_XOBJ_BOTTOM;
+  DISPID_IHTMLCURRENTSTYLE_IMEMODE         =  DISPID_A_IMEMODE  ;
+  DISPID_IHTMLCURRENTSTYLE_RUBYALIGN       =  DISPID_A_RUBYALIGN ;
+  DISPID_IHTMLCURRENTSTYLE_RUBYPOSITION    =  DISPID_A_RUBYPOSITION ;
+  DISPID_IHTMLCURRENTSTYLE_RUBYOVERHANG    =  DISPID_A_RUBYOVERHANG ;
+  DISPID_IHTMLCURRENTSTYLE_TEXTAUTOSPACE   =  DISPID_A_TEXTAUTOSPACE  ;
+  DISPID_IHTMLCURRENTSTYLE_LINEBREAK       =  DISPID_A_LINEBREAK ;
+  DISPID_IHTMLCURRENTSTYLE_WORDBREAK       =  DISPID_A_WORDBREAK ;
+  DISPID_IHTMLCURRENTSTYLE_TEXTJUSTIFY     =  DISPID_A_TEXTJUSTIFY ;
+  DISPID_IHTMLCURRENTSTYLE_TEXTJUSTIFYTRIM =  DISPID_A_TEXTJUSTIFYTRIM ;
+  DISPID_IHTMLCURRENTSTYLE_TEXTKASHIDA     =  DISPID_A_TEXTKASHIDA ;
+  DISPID_IHTMLCURRENTSTYLE_BLOCKDIRECTION  =  DISPID_A_DIR  ;
+  DISPID_IHTMLCURRENTSTYLE_LAYOUTGRIDCHAR  =  DISPID_A_LAYOUTGRIDCHAR ;
+  DISPID_IHTMLCURRENTSTYLE_LAYOUTGRIDLINE  =  DISPID_A_LAYOUTGRIDLINE ;
+  DISPID_IHTMLCURRENTSTYLE_LAYOUTGRIDMODE  =  DISPID_A_LAYOUTGRIDMODE;
+  DISPID_IHTMLCURRENTSTYLE_LAYOUTGRIDTYPE  =  DISPID_A_LAYOUTGRIDTYPE ;
+  DISPID_IHTMLCURRENTSTYLE_BORDERSTYLE     =  DISPID_A_BORDERSTYLE;
+  DISPID_IHTMLCURRENTSTYLE_BORDERCOLOR     =  DISPID_A_BORDERCOLOR;
+  DISPID_IHTMLCURRENTSTYLE_BORDERWIDTH     =  DISPID_A_BORDERWIDTH;
+  DISPID_IHTMLCURRENTSTYLE_PADDING         =  DISPID_A_PADDING ;
+  DISPID_IHTMLCURRENTSTYLE_MARGIN          =  DISPID_A_MARGIN ;
+  DISPID_IHTMLCURRENTSTYLE_ACCELERATOR     =  DISPID_A_ACCELERATOR ;
+  DISPID_IHTMLCURRENTSTYLE_OVERFLOWX       =  DISPID_A_OVERFLOWX;
+  DISPID_IHTMLCURRENTSTYLE_OVERFLOWY       =  DISPID_A_OVERFLOWY;
+  DISPID_IHTMLCURRENTSTYLE_TEXTTRANSFORM   =  DISPID_A_TEXTTRANSFORM ;
+
+//    DISPIDs for interface IHTMLCurrentStyle2
+
+  DISPID_IHTMLCURRENTSTYLE2_LAYOUTFLOW     =  DISPID_A_LAYOUTFLOW;
+  DISPID_IHTMLCURRENTSTYLE2_WORDWRAP       =  DISPID_A_WORDWRAP ;
+  DISPID_IHTMLCURRENTSTYLE2_TEXTUNDERLINEPOSITION = DISPID_A_TEXTUNDERLINEPOSITION ;
+  DISPID_IHTMLCURRENTSTYLE2_HASLAYOUT      =  DISPID_A_HASLAYOUT ;
+  DISPID_IHTMLCURRENTSTYLE2_SCROLLBARBASECOLOR = DISPID_A_SCROLLBARBASECOLOR ;
+  DISPID_IHTMLCURRENTSTYLE2_SCROLLBARFACECOLOR = DISPID_A_SCROLLBARFACECOLOR ;
+  DISPID_IHTMLCURRENTSTYLE2_SCROLLBAR3DLIGHTCOLOR = DISPID_A_SCROLLBAR3DLIGHTCOLOR;
+  DISPID_IHTMLCURRENTSTYLE2_SCROLLBARSHADOWCOLOR  = DISPID_A_SCROLLBARSHADOWCOLOR ;
+  DISPID_IHTMLCURRENTSTYLE2_SCROLLBARHIGHLIGHTCOLOR = DISPID_A_SCROLLBARHIGHLIGHTCOLOR ;
+  DISPID_IHTMLCURRENTSTYLE2_SCROLLBARDARKSHADOWCOLOR = DISPID_A_SCROLLBARDARKSHADOWCOLOR ;
+  DISPID_IHTMLCURRENTSTYLE2_SCROLLBARARROWCOLOR = DISPID_A_SCROLLBARARROWCOLOR;
+  DISPID_IHTMLCURRENTSTYLE2_SCROLLBARTRACKCOLOR = DISPID_A_SCROLLBARTRACKCOLOR;
+  DISPID_IHTMLCURRENTSTYLE2_WRITINGMODE    =  DISPID_A_WRITINGMODE;
+  DISPID_IHTMLCURRENTSTYLE2_ZOOM           =  DISPID_A_ZOOM ;
+  DISPID_IHTMLCURRENTSTYLE2_FILTER         =  DISPID_A_FILTER ;
+  DISPID_IHTMLCURRENTSTYLE2_TEXTALIGNLAST  =  DISPID_A_TEXTALIGNLAST ;
+  DISPID_IHTMLCURRENTSTYLE2_TEXTKASHIDASPACE = DISPID_A_TEXTKASHIDASPACE ;
+  DISPID_IHTMLCURRENTSTYLE2_ISBLOCK        =  DISPID_A_ISBLOCK;
+
+//    DISPIDs for interface IHTMLRect
+
+  DISPID_IHTMLRECT_LEFT                        =  DISPID_OMRECT+1;
+  DISPID_IHTMLRECT_TOP                         =  DISPID_OMRECT+2;
+  DISPID_IHTMLRECT_RIGHT                       =  DISPID_OMRECT+3;
+  DISPID_IHTMLRECT_BOTTOM                      =  DISPID_OMRECT+4;
+
+//    DISPIDs for interface IHTMLRectCollection
+
+  DISPID_IHTMLRECTCOLLECTION_LENGTH            =  DISPID_COLLECTION ;
+  DISPID_IHTMLRECTCOLLECTION__NEWENUM          =  DISPID_NEWENUM;
+  DISPID_IHTMLRECTCOLLECTION_ITEM              =  DISPID_VALUE ;
+
+//    DISPIDs for interface IHTMLDOMNode
+
+  DISPID_IHTMLDOMNODE_NODETYPE                 =  DISPID_ELEMENT+46;
+  DISPID_IHTMLDOMNODE_PARENTNODE               =  DISPID_ELEMENT+47 ;
+  DISPID_IHTMLDOMNODE_HASCHILDNODES            =  DISPID_ELEMENT+48;
+  DISPID_IHTMLDOMNODE_CHILDNODES               =  DISPID_ELEMENT+49;
+  DISPID_IHTMLDOMNODE_ATTRIBUTES               =  DISPID_ELEMENT+50;
+  DISPID_IHTMLDOMNODE_INSERTBEFORE             =  DISPID_ELEMENT+51;
+  DISPID_IHTMLDOMNODE_REMOVECHILD              =  DISPID_ELEMENT+52;
+  DISPID_IHTMLDOMNODE_REPLACECHILD             =  DISPID_ELEMENT+53;
+  DISPID_IHTMLDOMNODE_CLONENODE                =  DISPID_ELEMENT+61;
+  DISPID_IHTMLDOMNODE_REMOVENODE               =  DISPID_ELEMENT+66;
+  DISPID_IHTMLDOMNODE_SWAPNODE                 =  DISPID_ELEMENT+68;
+  DISPID_IHTMLDOMNODE_REPLACENODE              =  DISPID_ELEMENT+67;
+  DISPID_IHTMLDOMNODE_APPENDCHILD              =  DISPID_ELEMENT+73;
+  DISPID_IHTMLDOMNODE_NODENAME                 =  DISPID_ELEMENT+74;
+  DISPID_IHTMLDOMNODE_NODEVALUE                =  DISPID_ELEMENT+75;
+  DISPID_IHTMLDOMNODE_FIRSTCHILD               =  DISPID_ELEMENT+76;
+  DISPID_IHTMLDOMNODE_LASTCHILD                =  DISPID_ELEMENT+77;
+  DISPID_IHTMLDOMNODE_PREVIOUSSIBLING          =  DISPID_ELEMENT+78;
+  DISPID_IHTMLDOMNODE_NEXTSIBLING              =  DISPID_ELEMENT+79;
+
+//    DISPIDs for interface IHTMLDOMAttribute
+
+  DISPID_IHTMLDOMATTRIBUTE_NODENAME            =  DISPID_DOMATTRIBUTE;
+  DISPID_IHTMLDOMATTRIBUTE_NODEVALUE           =  DISPID_VALUE;
+  DISPID_IHTMLDOMATTRIBUTE_SPECIFIED           =  DISPID_DOMATTRIBUTE+1 ;
+
+//    DISPIDs for interface IHTMLDOMTextNode
+
+  DISPID_IHTMLDOMTEXTNODE_DATA                 =  DISPID_DOMTEXTNODE;
+  DISPID_IHTMLDOMTEXTNODE_TOSTRING             =  DISPID_DOMTEXTNODE+1 ;
+  DISPID_IHTMLDOMTEXTNODE_LENGTH               =  DISPID_DOMTEXTNODE+2;
+  DISPID_IHTMLDOMTEXTNODE_SPLITTEXT            =  DISPID_DOMTEXTNODE+3;
+
+//    DISPIDs for interface IHTMLAttributeCollection
+
+  DISPID_IHTMLATTRIBUTECOLLECTION_LENGTH       =  DISPID_COLLECTION ;
+  DISPID_IHTMLATTRIBUTECOLLECTION__NEWENUM     =  DISPID_NEWENUM ;
+  DISPID_IHTMLATTRIBUTECOLLECTION_ITEM         =  DISPID_VALUE ;
+
+//    DISPIDs for interface IHTMLDOMChildrenCollection
+
+  DISPID_IHTMLDOMCHILDRENCOLLECTION_LENGTH     =  DISPID_COLLECTION ;
+  DISPID_IHTMLDOMCHILDRENCOLLECTION__NEWENUM   =  DISPID_NEWENUM;
+  DISPID_IHTMLDOMCHILDRENCOLLECTION_ITEM       =  DISPID_VALUE;
+
+//    DISPIDs for interface IHTMLElement
+
+  DISPID_IHTMLELEMENT_SETATTRIBUTE             =  DISPID_HTMLOBJECT+1 ;
+  DISPID_IHTMLELEMENT_GETATTRIBUTE             =  DISPID_HTMLOBJECT+2;
+  DISPID_IHTMLELEMENT_REMOVEATTRIBUTE          =  DISPID_HTMLOBJECT+3;
+  DISPID_IHTMLELEMENT_CLASSNAME                =  DISPID_ELEMENT+1 ;
+  DISPID_IHTMLELEMENT_ID                       =  DISPID_ELEMENT+2 ;
+  DISPID_IHTMLELEMENT_TAGNAME                  =  DISPID_ELEMENT+4;
+  DISPID_IHTMLELEMENT_PARENTELEMENT            = STDPROPID_XOBJ_PARENT ;
+  DISPID_IHTMLELEMENT_STYLE                    = STDPROPID_XOBJ_STYLE ;
+  DISPID_IHTMLELEMENT_ONHELP                   =  DISPID_EVPROP_ONHELP;
+  DISPID_IHTMLELEMENT_ONCLICK                  =  DISPID_EVPROP_ONCLICK  ;
+  DISPID_IHTMLELEMENT_ONDBLCLICK               =  DISPID_EVPROP_ONDBLCLICK ;
+  DISPID_IHTMLELEMENT_ONKEYDOWN                =  DISPID_EVPROP_ONKEYDOWN ;
+  DISPID_IHTMLELEMENT_ONKEYUP                  =  DISPID_EVPROP_ONKEYUP ;
+  DISPID_IHTMLELEMENT_ONKEYPRESS               =  DISPID_EVPROP_ONKEYPRESS ;
+  DISPID_IHTMLELEMENT_ONMOUSEOUT               =  DISPID_EVPROP_ONMOUSEOUT ;
+  DISPID_IHTMLELEMENT_ONMOUSEOVER              =  DISPID_EVPROP_ONMOUSEOVER;
+  DISPID_IHTMLELEMENT_ONMOUSEMOVE              =  DISPID_EVPROP_ONMOUSEMOVE;
+  DISPID_IHTMLELEMENT_ONMOUSEDOWN              =  DISPID_EVPROP_ONMOUSEDOWN;
+  DISPID_IHTMLELEMENT_ONMOUSEUP                =  DISPID_EVPROP_ONMOUSEUP;
+  DISPID_IHTMLELEMENT_DOCUMENT                 =  DISPID_ELEMENT+18;
+  DISPID_IHTMLELEMENT_TITLE                    = STDPROPID_XOBJ_CONTROLTIPTEXT ;
+  DISPID_IHTMLELEMENT_LANGUAGE                 =  DISPID_A_LANGUAGE;
+  DISPID_IHTMLELEMENT_ONSELECTSTART            =  DISPID_EVPROP_ONSELECTSTART ;
+  DISPID_IHTMLELEMENT_SCROLLINTOVIEW           =  DISPID_ELEMENT+19;
+  DISPID_IHTMLELEMENT_CONTAINS                 =  DISPID_ELEMENT+20;
+  DISPID_IHTMLELEMENT_SOURCEINDEX              =  DISPID_ELEMENT+24;
+  DISPID_IHTMLELEMENT_RECORDNUMBER             =  DISPID_ELEMENT+25 ;
+  DISPID_IHTMLELEMENT_LANG                     =  DISPID_A_LANG ;
+  DISPID_IHTMLELEMENT_OFFSETLEFT               =  DISPID_ELEMENT+8 ;
+  DISPID_IHTMLELEMENT_OFFSETTOP                =  DISPID_ELEMENT+9 ;
+  DISPID_IHTMLELEMENT_OFFSETWIDTH              =  DISPID_ELEMENT+10;
+  DISPID_IHTMLELEMENT_OFFSETHEIGHT             =  DISPID_ELEMENT+11 ;
+  DISPID_IHTMLELEMENT_OFFSETPARENT             =  DISPID_ELEMENT+12;
+  DISPID_IHTMLELEMENT_INNERHTML                =  DISPID_ELEMENT+26;
+  DISPID_IHTMLELEMENT_INNERTEXT                =  DISPID_ELEMENT+27;
+  DISPID_IHTMLELEMENT_OUTERHTML                =  DISPID_ELEMENT+28;
+  DISPID_IHTMLELEMENT_OUTERTEXT                =  DISPID_ELEMENT+29;
+  DISPID_IHTMLELEMENT_INSERTADJACENTHTML       =  DISPID_ELEMENT+30;
+  DISPID_IHTMLELEMENT_INSERTADJACENTTEXT       =  DISPID_ELEMENT+31;
+  DISPID_IHTMLELEMENT_PARENTTEXTEDIT           =  DISPID_ELEMENT+32;
+  DISPID_IHTMLELEMENT_ISTEXTEDIT               =  DISPID_ELEMENT+34;
+  DISPID_IHTMLELEMENT_CLICK                    =  DISPID_ELEMENT+33;
+  DISPID_IHTMLELEMENT_FILTERS                  =  DISPID_ELEMENT+35;
+  DISPID_IHTMLELEMENT_ONDRAGSTART              =  DISPID_EVPROP_ONDRAGSTART;
+  DISPID_IHTMLELEMENT_TOSTRING                 =  DISPID_ELEMENT+36;
+  DISPID_IHTMLELEMENT_ONBEFOREUPDATE           =  DISPID_EVPROP_ONBEFOREUPDATE;
+  DISPID_IHTMLELEMENT_ONAFTERUPDATE            =  DISPID_EVPROP_ONAFTERUPDATE;
+  DISPID_IHTMLELEMENT_ONERRORUPDATE            =  DISPID_EVPROP_ONERRORUPDATE;
+  DISPID_IHTMLELEMENT_ONROWEXIT                =  DISPID_EVPROP_ONROWEXIT ;
+  DISPID_IHTMLELEMENT_ONROWENTER               =  DISPID_EVPROP_ONROWENTER;
+  DISPID_IHTMLELEMENT_ONDATASETCHANGED         =  DISPID_EVPROP_ONDATASETCHANGED ;
+  DISPID_IHTMLELEMENT_ONDATAAVAILABLE          =  DISPID_EVPROP_ONDATAAVAILABLE ;
+  DISPID_IHTMLELEMENT_ONDATASETCOMPLETE        =  DISPID_EVPROP_ONDATASETCOMPLETE ;
+  DISPID_IHTMLELEMENT_ONFILTERCHANGE           =  DISPID_EVPROP_ONFILTER ;
+  DISPID_IHTMLELEMENT_CHILDREN                 =  DISPID_ELEMENT+37 ;
+  DISPID_IHTMLELEMENT_ALL                      =  DISPID_ELEMENT+38 ;
+
+//    DISPIDs for interface IHTMLElement2
+
+  DISPID_IHTMLELEMENT2_SCOPENAME               =  DISPID_ELEMENT+39 ;
+  DISPID_IHTMLELEMENT2_SETCAPTURE              =  DISPID_ELEMENT+40 ;
+  DISPID_IHTMLELEMENT2_RELEASECAPTURE          =  DISPID_ELEMENT+41 ;
+  DISPID_IHTMLELEMENT2_ONLOSECAPTURE           =  DISPID_EVPROP_ONLOSECAPTURE;
+  DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT      =  DISPID_ELEMENT+42 ;
+  DISPID_IHTMLELEMENT2_DOSCROLL                =  DISPID_ELEMENT+43;
+  DISPID_IHTMLELEMENT2_ONSCROLL                =  DISPID_EVPROP_ONSCROLL ;
+  DISPID_IHTMLELEMENT2_ONDRAG                  =  DISPID_EVPROP_ONDRAG ;
+  DISPID_IHTMLELEMENT2_ONDRAGEND               =  DISPID_EVPROP_ONDRAGEND ;
+  DISPID_IHTMLELEMENT2_ONDRAGENTER             =  DISPID_EVPROP_ONDRAGENTER;
+  DISPID_IHTMLELEMENT2_ONDRAGOVER              =  DISPID_EVPROP_ONDRAGOVER ;
+  DISPID_IHTMLELEMENT2_ONDRAGLEAVE             =  DISPID_EVPROP_ONDRAGLEAVE ;
+  DISPID_IHTMLELEMENT2_ONDROP                  =  DISPID_EVPROP_ONDROP  ;
+  DISPID_IHTMLELEMENT2_ONBEFORECUT             =  DISPID_EVPROP_ONBEFORECUT ;
+  DISPID_IHTMLELEMENT2_ONCUT                   =  DISPID_EVPROP_ONCUT ;
+  DISPID_IHTMLELEMENT2_ONBEFORECOPY            =  DISPID_EVPROP_ONBEFORECOPY ;
+  DISPID_IHTMLELEMENT2_ONCOPY                  =  DISPID_EVPROP_ONCOPY;
+  DISPID_IHTMLELEMENT2_ONBEFOREPASTE           =  DISPID_EVPROP_ONBEFOREPASTE ;
+  DISPID_IHTMLELEMENT2_ONPASTE                 =  DISPID_EVPROP_ONPASTE;
+  DISPID_IHTMLELEMENT2_CURRENTSTYLE            =  DISPID_ELEMENT+7 ;
+  DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE        =  DISPID_EVPROP_ONPROPERTYCHANGE ;
+  DISPID_IHTMLELEMENT2_GETCLIENTRECTS          =  DISPID_ELEMENT+44 ;
+  DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT   =  DISPID_ELEMENT+45 ;
+  DISPID_IHTMLELEMENT2_SETEXPRESSION           =  DISPID_HTMLOBJECT+4 ;
+  DISPID_IHTMLELEMENT2_GETEXPRESSION           =  DISPID_HTMLOBJECT+5 ;
+  DISPID_IHTMLELEMENT2_REMOVEEXPRESSION        =  DISPID_HTMLOBJECT+6;
+  DISPID_IHTMLELEMENT2_TABINDEX                = STDPROPID_XOBJ_TABINDEX ;
+  DISPID_IHTMLELEMENT2_FOCUS                   =  DISPID_SITE+0 ;
+  DISPID_IHTMLELEMENT2_ACCESSKEY               =  DISPID_SITE+5;
+  DISPID_IHTMLELEMENT2_ONBLUR                  =  DISPID_EVPROP_ONBLUR ;
+  DISPID_IHTMLELEMENT2_ONFOCUS                 =  DISPID_EVPROP_ONFOCUS;
+  DISPID_IHTMLELEMENT2_ONRESIZE                =  DISPID_EVPROP_ONRESIZE ;
+  DISPID_IHTMLELEMENT2_BLUR                    =  DISPID_SITE+2 ;
+  DISPID_IHTMLELEMENT2_ADDFILTER               =  DISPID_SITE+17;
+  DISPID_IHTMLELEMENT2_REMOVEFILTER            =  DISPID_SITE+18;
+  DISPID_IHTMLELEMENT2_CLIENTHEIGHT            =  DISPID_SITE+19;
+  DISPID_IHTMLELEMENT2_CLIENTWIDTH             =  DISPID_SITE+20;
+  DISPID_IHTMLELEMENT2_CLIENTTOP               =  DISPID_SITE+21;
+  DISPID_IHTMLELEMENT2_CLIENTLEFT              =  DISPID_SITE+22 ;
+  DISPID_IHTMLELEMENT2_ATTACHEVENT             =  DISPID_HTMLOBJECT+7;
+  DISPID_IHTMLELEMENT2_DETACHEVENT             =  DISPID_HTMLOBJECT+8 ;
+  DISPID_IHTMLELEMENT2_READYSTATE              =  DISPID_A_READYSTATE ;
+  DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE      =  DISPID_EVPROP_ONREADYSTATECHANGE ;
+  DISPID_IHTMLELEMENT2_ONROWSDELETE            =  DISPID_EVPROP_ONROWSDELETE ;
+  DISPID_IHTMLELEMENT2_ONROWSINSERTED          =  DISPID_EVPROP_ONROWSINSERTED ;
+  DISPID_IHTMLELEMENT2_ONCELLCHANGE            =  DISPID_EVPROP_ONCELLCHANGE;
+  DISPID_IHTMLELEMENT2_DIR                     =  DISPID_A_DIR ;
+  DISPID_IHTMLELEMENT2_CREATECONTROLRANGE      =  DISPID_ELEMENT+56 ;
+  DISPID_IHTMLELEMENT2_SCROLLHEIGHT            =  DISPID_ELEMENT+57 ;
+  DISPID_IHTMLELEMENT2_SCROLLWIDTH             =  DISPID_ELEMENT+58 ;
+  DISPID_IHTMLELEMENT2_SCROLLTOP               =  DISPID_ELEMENT+59 ;
+  DISPID_IHTMLELEMENT2_SCROLLLEFT              =  DISPID_ELEMENT+60 ;
+  DISPID_IHTMLELEMENT2_CLEARATTRIBUTES         =  DISPID_ELEMENT+62 ;
+  DISPID_IHTMLELEMENT2_MERGEATTRIBUTES         =  DISPID_ELEMENT+63 ;
+  DISPID_IHTMLELEMENT2_ONCONTEXTMENU           =  DISPID_EVPROP_ONCONTEXTMENU ;
+  DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT   =  DISPID_ELEMENT+69 ;
+  DISPID_IHTMLELEMENT2_APPLYELEMENT            =  DISPID_ELEMENT+65 ;
+  DISPID_IHTMLELEMENT2_GETADJACENTTEXT         =  DISPID_ELEMENT+70 ;
+  DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT     =  DISPID_ELEMENT+71 ;
+  DISPID_IHTMLELEMENT2_CANHAVECHILDREN         =  DISPID_ELEMENT+72 ;
+  DISPID_IHTMLELEMENT2_ADDBEHAVIOR             =  DISPID_ELEMENT+80 ;
+  DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR          =  DISPID_ELEMENT+81 ;
+  DISPID_IHTMLELEMENT2_RUNTIMESTYLE            =  DISPID_ELEMENT+64 ;
+  DISPID_IHTMLELEMENT2_BEHAVIORURNS            =  DISPID_ELEMENT+82 ;
+  DISPID_IHTMLELEMENT2_TAGURN                  =  DISPID_ELEMENT+83 ;
+  DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS       =  DISPID_EVPROP_ONBEFOREEDITFOCUS;
+  DISPID_IHTMLELEMENT2_READYSTATEVALUE         =  DISPID_ELEMENT+84 ;
+  DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME    =  DISPID_ELEMENT+85;
+
+//    DISPIDs for interface IHTMLElement3
+
+  DISPID_IHTMLELEMENT3_MERGEATTRIBUTES         =  DISPID_ELEMENT+96 ;
+  DISPID_IHTMLELEMENT3_ISMULTILINE             =  DISPID_ELEMENT+97;
+  DISPID_IHTMLELEMENT3_CANHAVEHTML             =  DISPID_ELEMENT+98;
+  DISPID_IHTMLELEMENT3_ONLAYOUTCOMPLETE        =  DISPID_EVPROP_ONLAYOUTCOMPLETE;
+  DISPID_IHTMLELEMENT3_ONPAGE                  =  DISPID_EVPROP_ONPAGE;
+  DISPID_IHTMLELEMENT3_INFLATEBLOCK            =  DISPID_ELEMENT+100;
+  DISPID_IHTMLELEMENT3_ONBEFOREDEACTIVATE      =  DISPID_EVPROP_ONBEFOREDEACTIVATE ;
+  DISPID_IHTMLELEMENT3_SETACTIVE               =  DISPID_ELEMENT+101 ;
+  DISPID_IHTMLELEMENT3_CONTENTEDITABLE         =  DISPID_A_EDITABLE ;
+  DISPID_IHTMLELEMENT3_ISCONTENTEDITABLE       =  DISPID_ELEMENT+102;
+  DISPID_IHTMLELEMENT3_HIDEFOCUS               =  DISPID_A_HIDEFOCUS ;
+  DISPID_IHTMLELEMENT3_DISABLED                = STDPROPID_XOBJ_DISABLED ;
+  DISPID_IHTMLELEMENT3_ISDISABLED              =  DISPID_ELEMENT+105;
+  DISPID_IHTMLELEMENT3_ONMOVE                  =  DISPID_EVPROP_ONMOVE ;
+  DISPID_IHTMLELEMENT3_ONCONTROLSELECT         =  DISPID_EVPROP_ONCONTROLSELECT ;
+  DISPID_IHTMLELEMENT3_FIREEVENT               =  DISPID_ELEMENT+106 ;
+  DISPID_IHTMLELEMENT3_ONRESIZESTART           =  DISPID_EVPROP_ONRESIZESTART;
+  DISPID_IHTMLELEMENT3_ONRESIZEEND             =  DISPID_EVPROP_ONRESIZEEND ;
+  DISPID_IHTMLELEMENT3_ONMOVESTART             =  DISPID_EVPROP_ONMOVESTART ;
+  DISPID_IHTMLELEMENT3_ONMOVEEND               =  DISPID_EVPROP_ONMOVEEND;
+  DISPID_IHTMLELEMENT3_ONMOUSEENTER            =  DISPID_EVPROP_ONMOUSEENTER;
+  DISPID_IHTMLELEMENT3_ONMOUSELEAVE            =  DISPID_EVPROP_ONMOUSELEAVE;
+  DISPID_IHTMLELEMENT3_ONACTIVATE              =  DISPID_EVPROP_ONACTIVATE ;
+  DISPID_IHTMLELEMENT3_ONDEACTIVATE            =  DISPID_EVPROP_ONDEACTIVATE;
+  DISPID_IHTMLELEMENT3_DRAGDROP                =  DISPID_ELEMENT+107;
+  DISPID_IHTMLELEMENT3_GLYPHMODE               =  DISPID_ELEMENT+108;
+
+//    DISPIDs for interface IHTMLElementRender
+
+  //DISPID_IHTMLELEMENTRENDER_DRAWTODC
+  //DISPID_IHTMLELEMENTRENDER_SETDOCUMENTPRINTER
+
+//    DISPIDs for interface IHTMLUniqueName
+
+  DISPID_IHTMLUNIQUENAME_UNIQUENUMBER          =  DISPID_ELEMENT+54;
+  DISPID_IHTMLUNIQUENAME_UNIQUEID              =  DISPID_ELEMENT+55;
+
+//    DISPIDs for interface IHTMLDatabinding
+
+  DISPID_IHTMLDATABINDING_DATAFLD              =  DISPID_ELEMENT+21;
+  DISPID_IHTMLDATABINDING_DATASRC              =  DISPID_ELEMENT+22;
+  DISPID_IHTMLDATABINDING_DATAFORMATAS         =  DISPID_ELEMENT+23;
+
+//    DISPIDs for event set HTMLElementEvents2
+
+
+
+  //DISPID_HTMLELEMENTEVENTS2_ONBEFOREEDITFOCUS = ??
+     //Fires before an object contained in an editable element enters a UI-activated state or when an editable container object is control selected.
+
+  DISPID_HTMLELEMENTEVENTS2_ONHELP             =  DISPID_EVMETH_ONHELP ;
+     //Fires when the user presses the F1 key while the browser is the active window
+  DISPID_HTMLELEMENTEVENTS2_ONCLICK            =  DISPID_EVMETH_ONCLICK ;
+     //Fires when the user clicks the left mouse button on the object.
+  DISPID_HTMLELEMENTEVENTS2_ONDBLCLICK         =  DISPID_EVMETH_ONDBLCLICK ;
+     //Fires when the user double-clicks the object.
+  DISPID_HTMLELEMENTEVENTS2_ONKEYPRESS         =  DISPID_EVMETH_ONKEYPRESS;
+     //Fires when the user presses an alphanumeric key
+  DISPID_HTMLELEMENTEVENTS2_ONKEYDOWN          =  DISPID_EVMETH_ONKEYDOWN;
+     //Fires when the user presses a key
+  DISPID_HTMLELEMENTEVENTS2_ONKEYUP            =  DISPID_EVMETH_ONKEYUP  ;
+     //Fires when the user releases a key
+  DISPID_HTMLELEMENTEVENTS2_ONMOUSEOUT         =  DISPID_EVMETH_ONMOUSEOUT ;
+     //Fires when the user moves the mouse pointer outside the boundaries of the object
+  DISPID_HTMLELEMENTEVENTS2_ONMOUSEOVER        =  DISPID_EVMETH_ONMOUSEOVER;
+     //Fires when the user moves the mouse pointer into the object
+  DISPID_HTMLELEMENTEVENTS2_ONMOUSEMOVE        =  DISPID_EVMETH_ONMOUSEMOVE;
+     //Fires when the user moves the mouse over the object.
+  DISPID_HTMLELEMENTEVENTS2_ONMOUSEDOWN        =  DISPID_EVMETH_ONMOUSEDOWN ;
+     //Fires when the user clicks the object with either mouse button
+  DISPID_HTMLELEMENTEVENTS2_ONMOUSEUP          =  DISPID_EVMETH_ONMOUSEUP ;
+     //Fires when the user releases a mouse button while the mouse is over the object
+  DISPID_HTMLELEMENTEVENTS2_ONSELECTSTART      =  DISPID_EVMETH_ONSELECTSTART ;
+     //Fires when the object is being selected
+  DISPID_HTMLELEMENTEVENTS2_ONFILTERCHANGE     =  DISPID_EVMETH_ONFILTER;
+     //Fires when a visual filter changes state or completes a transition
+  DISPID_HTMLELEMENTEVENTS2_ONDRAGSTART        =  DISPID_EVMETH_ONDRAGSTART;
+     //Fires on the source object when the user starts to drag a text selection or selected object.
+  DISPID_HTMLELEMENTEVENTS2_ONBEFOREUPDATE     =  DISPID_EVMETH_ONBEFOREUPDATE;
+     //Fires on a databound object before updating the associated data in the data source object
+  DISPID_HTMLELEMENTEVENTS2_ONAFTERUPDATE      =  DISPID_EVMETH_ONAFTERUPDATE;
+     //Fires on a databound object after successfully updating the associated data in the data source object.
+  DISPID_HTMLELEMENTEVENTS2_ONERRORUPDATE      =  DISPID_EVMETH_ONERRORUPDATE;
+     //Fires on a databound object when an error occurs while updating the associated data in the data source object
+  DISPID_HTMLELEMENTEVENTS2_ONROWEXIT          =  DISPID_EVMETH_ONROWEXIT;
+     //Fires just before the data source control changes the current row in the object.
+  DISPID_HTMLELEMENTEVENTS2_ONROWENTER         =  DISPID_EVMETH_ONROWENTER;
+     //Fires to indicate that the current row has changed in the data source and new data values are available on the object.
+  DISPID_HTMLELEMENTEVENTS2_ONDATASETCHANGED   =  DISPID_EVMETH_ONDATASETCHANGED;
+     //Fires when the data set exposed by a data source object changes.
+  DISPID_HTMLELEMENTEVENTS2_ONDATAAVAILABLE    =  DISPID_EVMETH_ONDATAAVAILABLE;
+     //Fires periodically as data arrives from data source objects that asynchronously transmit their data
+  DISPID_HTMLELEMENTEVENTS2_ONDATASETCOMPLETE  =  DISPID_EVMETH_ONDATASETCOMPLETE;
+     //Fires to indicate that all data is available from the data source object.
+  DISPID_HTMLELEMENTEVENTS2_ONLOSECAPTURE      =  DISPID_EVMETH_ONLOSECAPTURE;
+     //Fires when the object loses the mouse capture
+  DISPID_HTMLELEMENTEVENTS2_ONPROPERTYCHANGE   =  DISPID_EVMETH_ONPROPERTYCHANGE ;
+     //Fires when a property changes on the object.
+  DISPID_HTMLELEMENTEVENTS2_ONSCROLL           =  DISPID_EVMETH_ONSCROLL;
+     //Fires when the user repositions the scroll box in the scroll bar on the object
+  DISPID_HTMLELEMENTEVENTS2_ONFOCUS            =  DISPID_EVMETH_ONFOCUS ;
+     //Fires when the object receives focus
+  DISPID_HTMLELEMENTEVENTS2_ONBLUR             =  DISPID_EVMETH_ONBLUR;
+  //Fires when the object loses the input focus
+  DISPID_HTMLELEMENTEVENTS2_ONRESIZE           =  DISPID_EVMETH_ONRESIZE;
+     //Fires when the size of the object is about to change
+  DISPID_HTMLELEMENTEVENTS2_ONDRAG             =  DISPID_EVMETH_ONDRAG;
+     //Fires on the source object continuously during a drag operation
+  DISPID_HTMLELEMENTEVENTS2_ONDRAGEND          =  DISPID_EVMETH_ONDRAGEND ;
+     //Fires on the source object when the user releases the mouse at the close of a drag operation.
+  DISPID_HTMLELEMENTEVENTS2_ONDRAGENTER        =  DISPID_EVMETH_ONDRAGENTER;
+     //Fires on the target element when the user drags the object to a valid drop target
+  DISPID_HTMLELEMENTEVENTS2_ONDRAGOVER         =  DISPID_EVMETH_ONDRAGOVER;
+     //Fires on the target element continuously while the user drags the object over a valid drop target
+  DISPID_HTMLELEMENTEVENTS2_ONDRAGLEAVE        =  DISPID_EVMETH_ONDRAGLEAVE;
+     //Fires on the target object when the user moves the mouse out of a valid drop target during a drag operation
+  DISPID_HTMLELEMENTEVENTS2_ONDROP             =  DISPID_EVMETH_ONDROP;
+     //Fires on the target object when the mouse button is released during a drag-and-drop operation
+  DISPID_HTMLELEMENTEVENTS2_ONBEFORECUT        =  DISPID_EVMETH_ONBEFORECUT ;
+     //Fires on the source object before the selection is deleted from the document
+  DISPID_HTMLELEMENTEVENTS2_ONCUT              =  DISPID_EVMETH_ONCUT ;
+     //Fires on the source element when the object or selection is removed from the document and added to the system clipboard
+  DISPID_HTMLELEMENTEVENTS2_ONBEFORECOPY       =  DISPID_EVMETH_ONBEFORECOPY ;
+     //Fires on the source object before the selection is copied to the system clipboard
+  DISPID_HTMLELEMENTEVENTS2_ONCOPY             =  DISPID_EVMETH_ONCOPY;
+     //Fires on the source element when the user copies the object or selection, adding it to the system clipboard.
+  DISPID_HTMLELEMENTEVENTS2_ONBEFOREPASTE      =  DISPID_EVMETH_ONBEFOREPASTE ;
+     //Fires on the target object before the selection is pasted from the system clipboard to the document
+  DISPID_HTMLELEMENTEVENTS2_ONPASTE            =  DISPID_EVMETH_ONPASTE ;
+     //Fires on the target object when the user pastes data, transferring the data from the system clipboard to the document
+  DISPID_HTMLELEMENTEVENTS2_ONCONTEXTMENU      =  DISPID_EVMETH_ONCONTEXTMENU ;
+     //Fires when the user clicks the right mouse button in the client area, opening the context menu
+  DISPID_HTMLELEMENTEVENTS2_ONROWSDELETE       =  DISPID_EVMETH_ONROWSDELETE ;
+     //Fires when rows are about to be deleted from the recordset.
+  DISPID_HTMLELEMENTEVENTS2_ONROWSINSERTED     =  DISPID_EVMETH_ONROWSINSERTED ;
+     //Fires just after new rows are inserted in the current recordset
+  DISPID_HTMLELEMENTEVENTS2_ONCELLCHANGE       =  DISPID_EVMETH_ONCELLCHANGE;
+     //Fires when data changes in the data provider
+  DISPID_HTMLELEMENTEVENTS2_ONREADYSTATECHANGE =  DISPID_EVMETH_ONREADYSTATECHANGE;
+     //Fires when the state of the object has changed
+  DISPID_HTMLELEMENTEVENTS2_ONLAYOUTCOMPLETE   =  DISPID_EVMETH_ONLAYOUTCOMPLETE;
+     //Fires when the print or print preview layout process finishes filling the current LayoutRect object with content from the source document
+  DISPID_HTMLELEMENTEVENTS2_ONPAGE             =  DISPID_EVMETH_ONPAGE;
+     //Not currently implemented
+  DISPID_HTMLELEMENTEVENTS2_ONMOUSEENTER       =  DISPID_EVMETH_ONMOUSEENTER;
+     //Fires when the user moves the mouse pointer into the object
+  DISPID_HTMLELEMENTEVENTS2_ONMOUSELEAVE       =  DISPID_EVMETH_ONMOUSELEAVE;
+     //Fires when the user moves the mouse pointer outside the boundaries of the object
+  DISPID_HTMLELEMENTEVENTS2_ONACTIVATE         =  DISPID_EVMETH_ONACTIVATE ;
+     //Fires when the object is set as the active element.
+  DISPID_HTMLELEMENTEVENTS2_ONDEACTIVATE       =  DISPID_EVMETH_ONDEACTIVATE ;
+  //Fires when the IHTMLDocument2::activeElement is changed from the current object to another object in the parent document.
+  DISPID_HTMLELEMENTEVENTS2_ONBEFOREACTIVATE  = DISPID_EVMETH_ONBEFOREACTIVATE;
+     //Fires immediately before the object is set as the active element.
+  DISPID_HTMLELEMENTEVENTS2_ONBEFOREDEACTIVATE =  DISPID_EVMETH_ONBEFOREDEACTIVATE;
+  //Fires immediately before the IHTMLDocument2::activeElement is changed from the current object to another object in the parent document.
+  DISPID_HTMLELEMENTEVENTS2_ONFOCUSIN          =  DISPID_EVMETH_ONFOCUSIN;
+     //Fires for an element just prior to setting focus on that element
+  DISPID_HTMLELEMENTEVENTS2_ONFOCUSOUT         =  DISPID_EVMETH_ONFOCUSOUT;
+  //Fires for the current element with focus immediately after moving focus to another element
+  DISPID_HTMLELEMENTEVENTS2_ONMOVE             =  DISPID_EVMETH_ONMOVE ;
+     //Fires when the object moves
+  DISPID_HTMLELEMENTEVENTS2_ONCONTROLSELECT    =  DISPID_EVMETH_ONCONTROLSELECT ;
+  //Fires when the user is about to make a control selection of the object
+  DISPID_HTMLELEMENTEVENTS2_ONMOVESTART        =  DISPID_EVMETH_ONMOVESTART ;
+     //Fires when the object starts to move
+  DISPID_HTMLELEMENTEVENTS2_ONMOVEEND          =  DISPID_EVMETH_ONMOVEEND;
+     //Fires when the object stops moving
+  DISPID_HTMLELEMENTEVENTS2_ONRESIZESTART      =  DISPID_EVMETH_ONRESIZESTART ;
+     //Fires when the user begins to change the dimensions of the object in a control selection.
+  DISPID_HTMLELEMENTEVENTS2_ONRESIZEEND        =  DISPID_EVMETH_ONRESIZEEND;
+     //Fires when the user finishes changing the dimensions of the object in a control selection
+  DISPID_HTMLELEMENTEVENTS2_ONMOUSEWHEEL      =  DISPID_EVMETH_ONMOUSEWHEEL;
+     //Fires when the wheel button is rotated
+
+
+//    DISPIDs for event set HTMLElementEvents
+
+
+
+  DISPID_HTMLELEMENTEVENTS_ONHELP             = DISPID_EVMETH_ONHELP;
+  DISPID_HTMLELEMENTEVENTS_ONCLICK            = DISPID_EVMETH_ONCLICK;
+  DISPID_HTMLELEMENTEVENTS_ONDBLCLICK         = DISPID_EVMETH_ONDBLCLICK;
+  DISPID_HTMLELEMENTEVENTS_ONKEYPRESS         = DISPID_EVMETH_ONKEYPRESS;
+  DISPID_HTMLELEMENTEVENTS_ONKEYDOWN          = DISPID_EVMETH_ONKEYDOWN;
+  DISPID_HTMLELEMENTEVENTS_ONKEYUP            = DISPID_EVMETH_ONKEYUP;
+  DISPID_HTMLELEMENTEVENTS_ONMOUSEOUT         = DISPID_EVMETH_ONMOUSEOUT;
+  DISPID_HTMLELEMENTEVENTS_ONMOUSEOVER        = DISPID_EVMETH_ONMOUSEOVER;
+  DISPID_HTMLELEMENTEVENTS_ONMOUSEMOVE        = DISPID_EVMETH_ONMOUSEMOVE;
+  DISPID_HTMLELEMENTEVENTS_ONMOUSEDOWN        = DISPID_EVMETH_ONMOUSEDOWN;
+  DISPID_HTMLELEMENTEVENTS_ONMOUSEUP          = DISPID_EVMETH_ONMOUSEUP;
+  DISPID_HTMLELEMENTEVENTS_ONSELECTSTART      = DISPID_EVMETH_ONSELECTSTART;
+  DISPID_HTMLELEMENTEVENTS_ONFILTERCHANGE     = DISPID_EVMETH_ONFILTER;
+  DISPID_HTMLELEMENTEVENTS_ONDRAGSTART        = DISPID_EVMETH_ONDRAGSTART;
+  DISPID_HTMLELEMENTEVENTS_ONBEFOREUPDATE     = DISPID_EVMETH_ONBEFOREUPDATE;
+  DISPID_HTMLELEMENTEVENTS_ONAFTERUPDATE      = DISPID_EVMETH_ONAFTERUPDATE;
+  DISPID_HTMLELEMENTEVENTS_ONERRORUPDATE      = DISPID_EVMETH_ONERRORUPDATE;
+  DISPID_HTMLELEMENTEVENTS_ONROWEXIT          = DISPID_EVMETH_ONROWEXIT;
+  DISPID_HTMLELEMENTEVENTS_ONROWENTER         = DISPID_EVMETH_ONROWENTER;
+  DISPID_HTMLELEMENTEVENTS_ONDATASETCHANGED   = DISPID_EVMETH_ONDATASETCHANGED;
+  DISPID_HTMLELEMENTEVENTS_ONDATAAVAILABLE    = DISPID_EVMETH_ONDATAAVAILABLE;
+  DISPID_HTMLELEMENTEVENTS_ONDATASETCOMPLETE  = DISPID_EVMETH_ONDATASETCOMPLETE;
+  DISPID_HTMLELEMENTEVENTS_ONLOSECAPTURE      = DISPID_EVMETH_ONLOSECAPTURE;
+  DISPID_HTMLELEMENTEVENTS_ONPROPERTYCHANGE   = DISPID_EVMETH_ONPROPERTYCHANGE;
+  DISPID_HTMLELEMENTEVENTS_ONSCROLL           = DISPID_EVMETH_ONSCROLL;
+  DISPID_HTMLELEMENTEVENTS_ONFOCUS            = DISPID_EVMETH_ONFOCUS;
+  DISPID_HTMLELEMENTEVENTS_ONBLUR             = DISPID_EVMETH_ONBLUR;
+  DISPID_HTMLELEMENTEVENTS_ONRESIZE           = DISPID_EVMETH_ONRESIZE;
+  DISPID_HTMLELEMENTEVENTS_ONDRAG             = DISPID_EVMETH_ONDRAG;
+  DISPID_HTMLELEMENTEVENTS_ONDRAGEND          = DISPID_EVMETH_ONDRAGEND;
+  DISPID_HTMLELEMENTEVENTS_ONDRAGENTER        = DISPID_EVMETH_ONDRAGENTER;
+  DISPID_HTMLELEMENTEVENTS_ONDRAGOVER         = DISPID_EVMETH_ONDRAGOVER;
+  DISPID_HTMLELEMENTEVENTS_ONDRAGLEAVE        = DISPID_EVMETH_ONDRAGLEAVE;
+  DISPID_HTMLELEMENTEVENTS_ONDROP             = DISPID_EVMETH_ONDROP;
+  DISPID_HTMLELEMENTEVENTS_ONBEFORECUT        = DISPID_EVMETH_ONBEFORECUT;
+  DISPID_HTMLELEMENTEVENTS_ONCUT              = DISPID_EVMETH_ONCUT;
+  DISPID_HTMLELEMENTEVENTS_ONBEFORECOPY       = DISPID_EVMETH_ONBEFORECOPY;
+  DISPID_HTMLELEMENTEVENTS_ONCOPY             = DISPID_EVMETH_ONCOPY;
+  DISPID_HTMLELEMENTEVENTS_ONBEFOREPASTE      = DISPID_EVMETH_ONBEFOREPASTE;
+  DISPID_HTMLELEMENTEVENTS_ONPASTE            = DISPID_EVMETH_ONPASTE;
+  DISPID_HTMLELEMENTEVENTS_ONCONTEXTMENU      = DISPID_EVMETH_ONCONTEXTMENU;
+  DISPID_HTMLELEMENTEVENTS_ONROWSDELETE       = DISPID_EVMETH_ONROWSDELETE;
+  DISPID_HTMLELEMENTEVENTS_ONROWSINSERTED     = DISPID_EVMETH_ONROWSINSERTED;
+  DISPID_HTMLELEMENTEVENTS_ONCELLCHANGE       = DISPID_EVMETH_ONCELLCHANGE;
+  DISPID_HTMLELEMENTEVENTS_ONREADYSTATECHANGE = DISPID_EVMETH_ONREADYSTATECHANGE;
+  DISPID_HTMLELEMENTEVENTS_ONBEFOREEDITFOCUS  = DISPID_EVMETH_ONBEFOREEDITFOCUS;
+  DISPID_HTMLELEMENTEVENTS_ONLAYOUTCOMPLETE   = DISPID_EVMETH_ONLAYOUTCOMPLETE;
+  DISPID_HTMLELEMENTEVENTS_ONPAGE             = DISPID_EVMETH_ONPAGE;
+  DISPID_HTMLELEMENTEVENTS_ONBEFOREDEACTIVATE = DISPID_EVMETH_ONBEFOREDEACTIVATE;
+  DISPID_HTMLELEMENTEVENTS_ONMOVE             = DISPID_EVMETH_ONMOVE;
+  DISPID_HTMLELEMENTEVENTS_ONCONTROLSELECT    = DISPID_EVMETH_ONCONTROLSELECT;
+  DISPID_HTMLELEMENTEVENTS_ONMOVESTART        = DISPID_EVMETH_ONMOVESTART;
+  DISPID_HTMLELEMENTEVENTS_ONMOVEEND          = DISPID_EVMETH_ONMOVEEND;
+  DISPID_HTMLELEMENTEVENTS_ONRESIZESTART      = DISPID_EVMETH_ONRESIZESTART;
+  DISPID_HTMLELEMENTEVENTS_ONRESIZEEND        = DISPID_EVMETH_ONRESIZEEND;
+  DISPID_HTMLELEMENTEVENTS_ONMOUSEENTER       = DISPID_EVMETH_ONMOUSEENTER;
+  DISPID_HTMLELEMENTEVENTS_ONMOUSELEAVE       = DISPID_EVMETH_ONMOUSELEAVE;
+  DISPID_HTMLELEMENTEVENTS_ONACTIVATE         = DISPID_EVMETH_ONACTIVATE;
+  DISPID_HTMLELEMENTEVENTS_ONDEACTIVATE       = DISPID_EVMETH_ONDEACTIVATE;
+
+
+//    DISPIDs for interface IHTMLElementDefaults
+
+  DISPID_IHTMLELEMENTDEFAULTS_STYLE                        = DISPID_DEFAULTS+1;
+  DISPID_IHTMLELEMENTDEFAULTS_TABSTOP                      =  DISPID_DEFAULTS+2;
+  DISPID_IHTMLELEMENTDEFAULTS_VIEWINHERITSTYLE             =  DISPID_A_VIEWINHERITSTYLE;
+  DISPID_IHTMLELEMENTDEFAULTS_VIEWMASTERTAB                =  DISPID_DEFAULTS+6;
+  DISPID_IHTMLELEMENTDEFAULTS_SCROLLSEGMENTX               =  DISPID_DEFAULTS+3;
+  DISPID_IHTMLELEMENTDEFAULTS_SCROLLSEGMENTY               =  DISPID_DEFAULTS+4;
+  DISPID_IHTMLELEMENTDEFAULTS_ISMULTILINE                  =  DISPID_DEFAULTS+8;
+  DISPID_IHTMLELEMENTDEFAULTS_CONTENTEDITABLE              =  DISPID_A_EDITABLE;
+  DISPID_IHTMLELEMENTDEFAULTS_CANHAVEHTML                  =  DISPID_DEFAULTS+9;
+  DISPID_IHTMLELEMENTDEFAULTS_VIEWLINK                     =  DISPID_DEFAULTS+11;
+  DISPID_IHTMLELEMENTDEFAULTS_FROZEN                       =  DISPID_A_FROZEN;
+
+//    DISPIDs for interface IHTCDefaultDispatch
+
+  DISPID_IHTCDEFAULTDISPATCH_ELEMENT                       =  DISPID_A_HTCDD_ELEMENT;
+  DISPID_IHTCDEFAULTDISPATCH_CREATEEVENTOBJECT             =  DISPID_A_HTCDD_CREATEEVENTOBJECT;
+  DISPID_IHTCDEFAULTDISPATCH_DEFAULTS                      =  DISPID_A_HTCDD_DEFAULTS ;
+  DISPID_IHTCDEFAULTDISPATCH_DOCUMENT                      =  DISPID_A_DOCFRAGMENT;
+
+//    DISPIDs for interface IHTCPropertyBehavior
+
+  DISPID_IHTCPROPERTYBEHAVIOR_FIRECHANGE                   =  DISPID_HTMLOBJECT+0 ;
+  DISPID_IHTCPROPERTYBEHAVIOR_VALUE                        =  DISPID_A_HTCDISPATCHITEM_VALUE ;
+
+//    DISPIDs for interface IHTCEventBehavior
+
+  DISPID_IHTCEVENTBEHAVIOR_FIRE                            =  DISPID_HTMLOBJECT+0 ;
+
+//    DISPIDs for interface IHTCAttachBehavior
+
+  DISPID_IHTCATTACHBEHAVIOR_FIREEVENT                      =  DISPID_VALUE ;
+  DISPID_IHTCATTACHBEHAVIOR_DETACHEVENT                    =  DISPID_HTMLOBJECT+0 ;
+
+//    DISPIDs for interface IHTCAttachBehavior2
+
+  DISPID_IHTCATTACHBEHAVIOR2_FIREEVENT                     =  DISPID_VALUE ;
+
+//    DISPIDs for interface IHTCDescBehavior
+
+  DISPID_IHTCDESCBEHAVIOR_URN                             =   DISPID_HTMLOBJECT+0;
+  DISPID_IHTCDESCBEHAVIOR_NAME                             =  DISPID_HTMLOBJECT+1;
+
+//    DISPIDs for interface IHTMLUrnCollection
+
+  DISPID_IHTMLURNCOLLECTION_LENGTH                         =  DISPID_URN_COLL+1;
+  DISPID_IHTMLURNCOLLECTION_ITEM                           =  DISPID_VALUE;
+
+//    DISPIDs for interface IHTMLGenericElement
+
+  DISPID_IHTMLGENERICELEMENT_RECORDSET                     =  DISPID_GENERIC+1;
+  DISPID_IHTMLGENERICELEMENT_NAMEDRECORDSET                =  DISPID_GENERIC+2;
+
+//    DISPIDs for interface IHTMLStyleSheetRule
+
+  DISPID_IHTMLSTYLESHEETRULE_SELECTORTEXT                  =  DISPID_STYLERULE+1 ;
+  DISPID_IHTMLSTYLESHEETRULE_STYLE                         =  STDPROPID_XOBJ_STYLE ;
+  DISPID_IHTMLSTYLESHEETRULE_READONLY                      =  DISPID_STYLERULE+2;
+
+//    DISPIDs for interface IHTMLStyleSheetRulesCollection
+
+  DISPID_IHTMLSTYLESHEETRULESCOLLECTION_LENGTH             =  DISPID_STYLERULES_COL+1;
+  DISPID_IHTMLSTYLESHEETRULESCOLLECTION_ITEM               =  DISPID_VALUE;
+
+//    DISPIDs for interface IHTMLStyleSheetPage
+
+  DISPID_IHTMLSTYLESHEETPAGE_SELECTOR                      =  DISPID_STYLEPAGE+1 ;
+  DISPID_IHTMLSTYLESHEETPAGE_PSEUDOCLASS                   =  DISPID_STYLEPAGE+2;
+
+//    DISPIDs for interface IHTMLStyleSheetPagesCollection
+
+  DISPID_IHTMLSTYLESHEETPAGESCOLLECTION_LENGTH             =  DISPID_STYLEPAGES_COL+1;
+  DISPID_IHTMLSTYLESHEETPAGESCOLLECTION_ITEM               =  DISPID_VALUE;
+
+//    DISPIDs for interface IHTMLStyleSheet
+
+  DISPID_IHTMLSTYLESHEET_TITLE                             =  DISPID_STYLESHEET+1 ;
+  DISPID_IHTMLSTYLESHEET_PARENTSTYLESHEET                  =  DISPID_STYLESHEET+2;
+  DISPID_IHTMLSTYLESHEET_OWNINGELEMENT                     =  DISPID_STYLESHEET+3 ;
+  DISPID_IHTMLSTYLESHEET_DISABLED                          = STDPROPID_XOBJ_DISABLED ;
+  DISPID_IHTMLSTYLESHEET_READONLY                        =  DISPID_STYLESHEET+4;
+  DISPID_IHTMLSTYLESHEET_IMPORTS                        =  DISPID_STYLESHEET+5;
+  DISPID_IHTMLSTYLESHEET_HREF                           =  DISPID_STYLESHEET+6;
+  DISPID_IHTMLSTYLESHEET_TYPE                           =  DISPID_STYLESHEET+7;
+  DISPID_IHTMLSTYLESHEET_ID                             =  DISPID_STYLESHEET+8;
+  DISPID_IHTMLSTYLESHEET_ADDIMPORT                      =  DISPID_STYLESHEET+9;
+  DISPID_IHTMLSTYLESHEET_ADDRULE                        =  DISPID_STYLESHEET+10;
+  DISPID_IHTMLSTYLESHEET_REMOVEIMPORT                   =  DISPID_STYLESHEET+11;
+  DISPID_IHTMLSTYLESHEET_REMOVERULE                     =  DISPID_STYLESHEET+12;
+  DISPID_IHTMLSTYLESHEET_MEDIA                          =  DISPID_STYLESHEET+13;
+  DISPID_IHTMLSTYLESHEET_CSSTEXT                        =  DISPID_STYLESHEET+14;
+  DISPID_IHTMLSTYLESHEET_RULES                          =  DISPID_STYLESHEET+15;
+
+//    DISPIDs for interface IHTMLStyleSheet2
+
+  DISPID_IHTMLSTYLESHEET2_PAGES                         =  DISPID_STYLESHEET+16 ;
+  DISPID_IHTMLSTYLESHEET2_ADDPAGERULE                   =  DISPID_STYLESHEET+17 ;
+
+//    DISPIDs for interface IHTMLStyleSheetsCollection
+
+  DISPID_IHTMLSTYLESHEETSCOLLECTION_LENGTH              =  DISPID_STYLESHEETS_COL+1 ;
+  DISPID_IHTMLSTYLESHEETSCOLLECTION__NEWENUM            =  DISPID_NEWENUM ;
+  DISPID_IHTMLSTYLESHEETSCOLLECTION_ITEM                =  DISPID_VALUE ;
+
+//    DISPIDs for interface IHTMLLinkElement
+
+  DISPID_IHTMLLINKELEMENT_HREF                          =  DISPID_HEDELEMS+5 ;
+  DISPID_IHTMLLINKELEMENT_REL                           =  DISPID_HEDELEMS+6 ;
+  DISPID_IHTMLLINKELEMENT_REV                           =  DISPID_HEDELEMS+7 ;
+  DISPID_IHTMLLINKELEMENT_TYPE                          =  DISPID_HEDELEMS+8 ;
+  DISPID_IHTMLLINKELEMENT_READYSTATE                    =  DISPID_A_READYSTATE ;
+  DISPID_IHTMLLINKELEMENT_ONREADYSTATECHANGE            =  DISPID_EVPROP_ONREADYSTATECHANGE ;
+  DISPID_IHTMLLINKELEMENT_ONLOAD                        =  DISPID_EVPROP_ONLOAD;
+  DISPID_IHTMLLINKELEMENT_ONERROR                       =  DISPID_EVPROP_ONERROR;
+  DISPID_IHTMLLINKELEMENT_STYLESHEET                    =  DISPID_HEDELEMS+14;
+  DISPID_IHTMLLINKELEMENT_DISABLED                      =    STDPROPID_XOBJ_DISABLED;
+  DISPID_IHTMLLINKELEMENT_MEDIA                         =  DISPID_HEDELEMS+16;
+
+//    DISPIDs for interface IHTMLLinkElement2
+
+  DISPID_IHTMLLINKELEMENT2_TARGET                       =  DISPID_HEDELEMS+17;
+
+//    DISPIDs for event set HTMLLinkElementEvents2
+
+  DISPID_HTMLLINKELEMENTEVENTS2_ONLOAD                  =  DISPID_EVMETH_ONLOAD;
+  DISPID_HTMLLINKELEMENTEVENTS2_ONERROR                 =  DISPID_EVMETH_ONERROR ;
+
+//    DISPIDs for event set HTMLLinkElementEvents
+
+  DISPID_HTMLLINKELEMENTEVENTS_ONLOAD                   =  DISPID_EVMETH_ONLOAD;
+  DISPID_HTMLLINKELEMENTEVENTS_ONERROR                  =  DISPID_EVMETH_ONERROR ;
+
+//    DISPIDs for interface IHTMLTxtRange
+
+  DISPID_IHTMLTXTRANGE_HTMLTEXT                         =  DISPID_RANGE+3 ;
+  DISPID_IHTMLTXTRANGE_TEXT                             =  DISPID_RANGE+4;
+  DISPID_IHTMLTXTRANGE_PARENTELEMENT                    =  DISPID_RANGE+6 ;
+  DISPID_IHTMLTXTRANGE_DUPLICATE                        =  DISPID_RANGE+8 ;
+  DISPID_IHTMLTXTRANGE_INRANGE                          =  DISPID_RANGE+10 ;
+  DISPID_IHTMLTXTRANGE_ISEQUAL                          =  DISPID_RANGE+11;
+  DISPID_IHTMLTXTRANGE_SCROLLINTOVIEW                   =  DISPID_RANGE+12;
+  DISPID_IHTMLTXTRANGE_COLLAPSE                         =  DISPID_RANGE+13 ;
+  DISPID_IHTMLTXTRANGE_EXPAND                           =  DISPID_RANGE+14;
+  DISPID_IHTMLTXTRANGE_MOVE                             =  DISPID_RANGE+15 ;
+  DISPID_IHTMLTXTRANGE_MOVESTART                        =  DISPID_RANGE+16;
+  DISPID_IHTMLTXTRANGE_MOVEEND                          =  DISPID_RANGE+17;
+  DISPID_IHTMLTXTRANGE_SELECT                           =  DISPID_RANGE+24 ;
+  DISPID_IHTMLTXTRANGE_PASTEHTML                        =  DISPID_RANGE+26;
+  DISPID_IHTMLTXTRANGE_MOVETOELEMENTTEXT                =  DISPID_RANGE+1 ;
+  DISPID_IHTMLTXTRANGE_SETENDPOINT                      =  DISPID_RANGE+25 ;
+  DISPID_IHTMLTXTRANGE_COMPAREENDPOINTS                 =  DISPID_RANGE+18;
+  DISPID_IHTMLTXTRANGE_FINDTEXT                         =  DISPID_RANGE+19 ;
+  DISPID_IHTMLTXTRANGE_MOVETOPOINT                      =  DISPID_RANGE+20;
+  DISPID_IHTMLTXTRANGE_GETBOOKMARK                      =  DISPID_RANGE+21 ;
+  DISPID_IHTMLTXTRANGE_MOVETOBOOKMARK                   =  DISPID_RANGE+9  ;
+  DISPID_IHTMLTXTRANGE_QUERYCOMMANDSUPPORTED            =  DISPID_RANGE+27 ;
+  DISPID_IHTMLTXTRANGE_QUERYCOMMANDENABLED              =  DISPID_RANGE+28;
+  DISPID_IHTMLTXTRANGE_QUERYCOMMANDSTATE                =  DISPID_RANGE+29 ;
+  DISPID_IHTMLTXTRANGE_QUERYCOMMANDINDETERM             =  DISPID_RANGE+30 ;
+  DISPID_IHTMLTXTRANGE_QUERYCOMMANDTEXT                 =  DISPID_RANGE+31 ;
+  DISPID_IHTMLTXTRANGE_QUERYCOMMANDVALUE                =  DISPID_RANGE+32 ;
+  DISPID_IHTMLTXTRANGE_EXECCOMMAND                      =  DISPID_RANGE+33 ;
+  DISPID_IHTMLTXTRANGE_EXECCOMMANDSHOWHELP              =  DISPID_RANGE+34 ;
+
+//    DISPIDs for interface IHTMLTextRangeMetrics
+
+  DISPID_IHTMLTEXTRANGEMETRICS_OFFSETTOP                =  DISPID_RANGE+35 ;
+  DISPID_IHTMLTEXTRANGEMETRICS_OFFSETLEFT               =  DISPID_RANGE+36 ;
+  DISPID_IHTMLTEXTRANGEMETRICS_BOUNDINGTOP              =  DISPID_RANGE+37;
+  DISPID_IHTMLTEXTRANGEMETRICS_BOUNDINGLEFT             =  DISPID_RANGE+38 ;
+  DISPID_IHTMLTEXTRANGEMETRICS_BOUNDINGWIDTH            =  DISPID_RANGE+39;
+  DISPID_IHTMLTEXTRANGEMETRICS_BOUNDINGHEIGHT            =   DISPID_RANGE+40 ;
+
+//    DISPIDs for interface IHTMLTextRangeMetrics2
+
+  DISPID_IHTMLTEXTRANGEMETRICS2_GETCLIENTRECTS            =  DISPID_RANGE+41 ;
+  DISPID_IHTMLTEXTRANGEMETRICS2_GETBOUNDINGCLIENTRECT      = DISPID_RANGE+42;
+
+//    DISPIDs for interface IHTMLTxtRangeCollection
+
+  DISPID_IHTMLTXTRANGECOLLECTION_LENGTH                 =  DISPID_COLLECTION;
+  DISPID_IHTMLTXTRANGECOLLECTION__NEWENUM               =  DISPID_NEWENUM ;
+  DISPID_IHTMLTXTRANGECOLLECTION_ITEM                   =  DISPID_VALUE;
+
+//    DISPIDs for interface IHTMLFormElement
+
+  DISPID_IHTMLFORMELEMENT_ACTION                        =  DISPID_FORM+1;
+  DISPID_IHTMLFORMELEMENT_DIR                           =  DISPID_A_DIR ;
+  DISPID_IHTMLFORMELEMENT_ENCODING                      =  DISPID_FORM+3 ;
+  DISPID_IHTMLFORMELEMENT_METHOD                        =  DISPID_FORM+4 ;
+  DISPID_IHTMLFORMELEMENT_ELEMENTS                      =  DISPID_FORM+5 ;
+  DISPID_IHTMLFORMELEMENT_TARGET                        =  DISPID_FORM+6 ;
+  DISPID_IHTMLFORMELEMENT_NAME                          =    STDPROPID_XOBJ_NAME  ;
+  DISPID_IHTMLFORMELEMENT_ONSUBMIT                      =  DISPID_EVPROP_ONSUBMIT ;
+  DISPID_IHTMLFORMELEMENT_ONRESET                       =  DISPID_EVPROP_ONRESET ;
+  DISPID_IHTMLFORMELEMENT_SUBMIT                        =  DISPID_FORM+9 ;
+  DISPID_IHTMLFORMELEMENT_RESET                         =  DISPID_FORM+10 ;
+  DISPID_IHTMLFORMELEMENT_LENGTH                        =  DISPID_COLLECTION ;
+  DISPID_IHTMLFORMELEMENT__NEWENUM                      =  DISPID_NEWENUM ;
+  DISPID_IHTMLFORMELEMENT_ITEM                          =  DISPID_VALUE  ;
+  DISPID_IHTMLFORMELEMENT_TAGS                          =  DISPID_COLLECTION+2 ;
+
+//    DISPIDs for interface IHTMLFormElement2
+
+  DISPID_IHTMLFORMELEMENT2_ACCEPTCHARSET                =  DISPID_FORM+11 ;
+  DISPID_IHTMLFORMELEMENT2_URNS                         =  DISPID_COLLECTION+5 ;
+
+//    DISPIDs for interface IHTMLSubmitData
+
+  DISPID_IHTMLSUBMITDATA_APPENDNAMEVALUEPAIR            =  DISPID_FORM+12 ;
+  DISPID_IHTMLSUBMITDATA_APPENDNAMEFILEPAIR             =  DISPID_FORM+13 ;
+  DISPID_IHTMLSUBMITDATA_APPENDITEMSEPARATOR            =  DISPID_FORM+14  ;
+
+//    DISPIDs for event set HTMLFormElementEvents2
+
+  DISPID_HTMLFORMELEMENTEVENTS2_ONSUBMIT                =  DISPID_EVMETH_ONSUBMIT ;
+  DISPID_HTMLFORMELEMENTEVENTS2_ONRESET                 =  DISPID_EVMETH_ONRESET ;
+
+//    DISPIDs for event set HTMLFormElementEvents
+
+  DISPID_HTMLFORMELEMENTEVENTS_ONSUBMIT                 =  DISPID_EVMETH_ONSUBMIT ;
+  DISPID_HTMLFORMELEMENTEVENTS_ONRESET                  =  DISPID_EVMETH_ONRESET ;
+
+//    DISPIDs for interface IHTMLControlElement
+
+  DISPID_IHTMLCONTROLELEMENT_TABINDEX                   =   STDPROPID_XOBJ_TABINDEX ;
+  DISPID_IHTMLCONTROLELEMENT_FOCUS                      =  DISPID_SITE+0  ;
+  DISPID_IHTMLCONTROLELEMENT_ACCESSKEY                  =  DISPID_SITE+5  ;
+  DISPID_IHTMLCONTROLELEMENT_ONBLUR                     =  DISPID_EVPROP_ONBLUR  ;
+  DISPID_IHTMLCONTROLELEMENT_ONFOCUS                    =  DISPID_EVPROP_ONFOCUS ;
+  DISPID_IHTMLCONTROLELEMENT_ONRESIZE                   =  DISPID_EVPROP_ONRESIZE ;
+  DISPID_IHTMLCONTROLELEMENT_BLUR                       =  DISPID_SITE+2  ;
+  DISPID_IHTMLCONTROLELEMENT_ADDFILTER                  =  DISPID_SITE+17  ;
+  DISPID_IHTMLCONTROLELEMENT_REMOVEFILTER               =  DISPID_SITE+18  ;
+  DISPID_IHTMLCONTROLELEMENT_CLIENTHEIGHT               =  DISPID_SITE+19 ;
+  DISPID_IHTMLCONTROLELEMENT_CLIENTWIDTH                =  DISPID_SITE+20 ;
+  DISPID_IHTMLCONTROLELEMENT_CLIENTTOP                  =  DISPID_SITE+21  ;
+  DISPID_IHTMLCONTROLELEMENT_CLIENTLEFT                 =  DISPID_SITE+22  ;
+
+//    DISPIDs for interface IHTMLTextContainer
+
+  DISPID_IHTMLTEXTCONTAINER_CREATECONTROLRANGE          =   DISPID_TEXTSITE+1 ;
+  DISPID_IHTMLTEXTCONTAINER_SCROLLHEIGHT                =  DISPID_TEXTSITE+2 ;
+  DISPID_IHTMLTEXTCONTAINER_SCROLLWIDTH                 =  DISPID_TEXTSITE+3 ;
+  DISPID_IHTMLTEXTCONTAINER_SCROLLTOP                   =  DISPID_TEXTSITE+4 ;
+  DISPID_IHTMLTEXTCONTAINER_SCROLLLEFT                  =  DISPID_TEXTSITE+5 ;
+  DISPID_IHTMLTEXTCONTAINER_ONSCROLL                    =  DISPID_EVPROP_ONSCROLL ;
+
+//    DISPIDs for event set HTMLTextContainerEvents2
+
+  DISPID_HTMLTEXTCONTAINEREVENTS2_ONCHANGE              =  DISPID_EVMETH_ONCHANGE ;
+  DISPID_HTMLTEXTCONTAINEREVENTS2_ONSELECT              =  DISPID_EVMETH_ONSELECT ;
+
+//    DISPIDs for event set HTMLTextContainerEvents
+
+  DISPID_HTMLTEXTCONTAINEREVENTS_ONCHANGE               =  DISPID_EVMETH_ONCHANGE ;
+  DISPID_HTMLTEXTCONTAINEREVENTS_ONSELECT               =  DISPID_EVMETH_ONSELECT;
+
+//    DISPIDs for interface IHTMLControlRange
+
+  DISPID_IHTMLCONTROLRANGE_SELECT                       =  DISPID_RANGE+2 ;
+  DISPID_IHTMLCONTROLRANGE_ADD                          =  DISPID_RANGE+3 ;
+  DISPID_IHTMLCONTROLRANGE_REMOVE                       =  DISPID_RANGE+4 ;
+  DISPID_IHTMLCONTROLRANGE_ITEM                         =  DISPID_VALUE  ;
+  DISPID_IHTMLCONTROLRANGE_SCROLLINTOVIEW               =  DISPID_RANGE+6  ;
+  DISPID_IHTMLCONTROLRANGE_QUERYCOMMANDSUPPORTED        =    DISPID_RANGE+7 ;
+  DISPID_IHTMLCONTROLRANGE_QUERYCOMMANDENABLED           =   DISPID_RANGE+8 ;
+  DISPID_IHTMLCONTROLRANGE_QUERYCOMMANDSTATE            =  DISPID_RANGE+9 ;
+  DISPID_IHTMLCONTROLRANGE_QUERYCOMMANDINDETERM         =   DISPID_RANGE+10  ;
+  DISPID_IHTMLCONTROLRANGE_QUERYCOMMANDTEXT             =  DISPID_RANGE+11 ;
+  DISPID_IHTMLCONTROLRANGE_QUERYCOMMANDVALUE            =  DISPID_RANGE+12 ;
+  DISPID_IHTMLCONTROLRANGE_EXECCOMMAND                  =  DISPID_RANGE+13 ;
+  DISPID_IHTMLCONTROLRANGE_EXECCOMMANDSHOWHELP           =   DISPID_RANGE+14 ;
+  DISPID_IHTMLCONTROLRANGE_COMMONPARENTELEMENT           =   DISPID_RANGE+15 ;
+  DISPID_IHTMLCONTROLRANGE_LENGTH                       =  DISPID_RANGE+5  ;
+
+//    DISPIDs for interface IHTMLControlRange2
+
+  DISPID_IHTMLCONTROLRANGE2_ADDELEMENT                  =  DISPID_RANGE+16 ;
+
+//    DISPIDs for interface IHTMLImgElement
+
+  DISPID_IHTMLIMGELEMENT_ISMAP                          =  DISPID_IMG+2  ;
+  DISPID_IHTMLIMGELEMENT_USEMAP                         =  DISPID_IMG+8  ;
+  DISPID_IHTMLIMGELEMENT_MIMETYPE                       =  DISPID_IMG+10  ;
+  DISPID_IHTMLIMGELEMENT_FILESIZE                       =  DISPID_IMG+11 ;
+  DISPID_IHTMLIMGELEMENT_FILECREATEDDATE                =  DISPID_IMG+12 ;
+  DISPID_IHTMLIMGELEMENT_FILEMODIFIEDDATE               =  DISPID_IMG+13 ;
+  DISPID_IHTMLIMGELEMENT_FILEUPDATEDDATE                =  DISPID_IMG+14 ;
+  DISPID_IHTMLIMGELEMENT_PROTOCOL                       =  DISPID_IMG+15 ;
+  DISPID_IHTMLIMGELEMENT_HREF                           =  DISPID_IMG+16 ;
+  DISPID_IHTMLIMGELEMENT_NAMEPROP                       =  DISPID_IMG+17 ;
+  DISPID_IHTMLIMGELEMENT_BORDER                         =  DISPID_IMGBASE+4 ;
+  DISPID_IHTMLIMGELEMENT_VSPACE                         =  DISPID_IMGBASE+5  ;
+  DISPID_IHTMLIMGELEMENT_HSPACE                         =  DISPID_IMGBASE+6 ;
+  DISPID_IHTMLIMGELEMENT_ALT                            =  DISPID_IMGBASE+2 ;
+  DISPID_IHTMLIMGELEMENT_SRC                            =  DISPID_IMGBASE+3 ;
+  DISPID_IHTMLIMGELEMENT_LOWSRC                         =  DISPID_IMGBASE+7 ;
+  DISPID_IHTMLIMGELEMENT_VRML                           =  DISPID_IMGBASE+8 ;
+  DISPID_IHTMLIMGELEMENT_DYNSRC                         =  DISPID_IMGBASE+9 ;
+  DISPID_IHTMLIMGELEMENT_READYSTATE                     =  DISPID_A_READYSTATE  ;
+  DISPID_IHTMLIMGELEMENT_COMPLETE                       =  DISPID_IMGBASE+10 ;
+  DISPID_IHTMLIMGELEMENT_LOOP                           =  DISPID_IMGBASE+11  ;
+  DISPID_IHTMLIMGELEMENT_ALIGN                           =   STDPROPID_XOBJ_CONTROLALIGN ;
+  DISPID_IHTMLIMGELEMENT_ONLOAD                         =  DISPID_EVPROP_ONLOAD ;
+  DISPID_IHTMLIMGELEMENT_ONERROR                        =  DISPID_EVPROP_ONERROR ;
+  DISPID_IHTMLIMGELEMENT_ONABORT                        =  DISPID_EVPROP_ONABORT ;
+  DISPID_IHTMLIMGELEMENT_NAME                           =    STDPROPID_XOBJ_NAME ;
+  DISPID_IHTMLIMGELEMENT_WIDTH                           =   STDPROPID_XOBJ_WIDTH  ;
+  DISPID_IHTMLIMGELEMENT_HEIGHT                          =   STDPROPID_XOBJ_HEIGHT;
+  DISPID_IHTMLIMGELEMENT_START                          =  DISPID_IMGBASE+13 ;
+
+//    DISPIDs for interface IHTMLImageElementFactory
+
+  DISPID_IHTMLIMAGEELEMENTFACTORY_CREATE                =  DISPID_VALUE ;
+
+//    DISPIDs for event set HTMLImgEvents2
+
+  DISPID_HTMLIMGEVENTS2_ONLOAD                          =  DISPID_EVMETH_ONLOAD ;
+  DISPID_HTMLIMGEVENTS2_ONERROR                         =  DISPID_EVMETH_ONERROR ;
+  DISPID_HTMLIMGEVENTS2_ONABORT                         =  DISPID_EVMETH_ONABORT ;
+
+//    DISPIDs for event set HTMLImgEvents
+
+  DISPID_HTMLIMGEVENTS_ONLOAD                           =  DISPID_EVMETH_ONLOAD ;
+  DISPID_HTMLIMGEVENTS_ONERROR                          =  DISPID_EVMETH_ONERROR;
+  DISPID_HTMLIMGEVENTS_ONABORT                          =  DISPID_EVMETH_ONABORT ;
+
+//    DISPIDs for interface IHTMLBodyElement
+
+  DISPID_IHTMLBODYELEMENT_BACKGROUND                    =  DISPID_A_BACKGROUNDIMAGE ;
+  DISPID_IHTMLBODYELEMENT_BGPROPERTIES                  =  DISPID_A_BACKGROUNDATTACHMENT ;
+  DISPID_IHTMLBODYELEMENT_LEFTMARGIN                    =  DISPID_A_MARGINLEFT ;
+  DISPID_IHTMLBODYELEMENT_TOPMARGIN                     =  DISPID_A_MARGINTOP ;
+  DISPID_IHTMLBODYELEMENT_RIGHTMARGIN                   =  DISPID_A_MARGINRIGHT ;
+  DISPID_IHTMLBODYELEMENT_BOTTOMMARGIN                  =  DISPID_A_MARGINBOTTOM ;
+  DISPID_IHTMLBODYELEMENT_NOWRAP                        =  DISPID_A_NOWRAP ;
+  DISPID_IHTMLBODYELEMENT_BGCOLOR                       =  DISPID_BACKCOLOR ;
+  DISPID_IHTMLBODYELEMENT_TEXT                          =  DISPID_A_COLOR ;
+  DISPID_IHTMLBODYELEMENT_LINK                          =  DISPID_BODY+10 ;
+  DISPID_IHTMLBODYELEMENT_VLINK                         =  DISPID_BODY+12 ;
+  DISPID_IHTMLBODYELEMENT_ALINK                         =  DISPID_BODY+11 ;
+  DISPID_IHTMLBODYELEMENT_ONLOAD                        =  DISPID_EVPROP_ONLOAD ;
+  DISPID_IHTMLBODYELEMENT_ONUNLOAD                      =  DISPID_EVPROP_ONUNLOAD ;
+  DISPID_IHTMLBODYELEMENT_SCROLL                        =  DISPID_A_SCROLL ;
+  DISPID_IHTMLBODYELEMENT_ONSELECT                      =  DISPID_EVPROP_ONSELECT ;
+  DISPID_IHTMLBODYELEMENT_ONBEFOREUNLOAD                =  DISPID_EVPROP_ONBEFOREUNLOAD ;
+  DISPID_IHTMLBODYELEMENT_CREATETEXTRANGE               =  DISPID_BODY+13 ;
+
+//    DISPIDs for interface IHTMLBodyElement2
+
+  DISPID_IHTMLBODYELEMENT2_ONBEFOREPRINT                =  DISPID_EVPROP_ONBEFOREPRINT ;
+  DISPID_IHTMLBODYELEMENT2_ONAFTERPRINT                 =  DISPID_EVPROP_ONAFTERPRINT ;
+
+//    DISPIDs for interface IHTMLFontElement
+
+  DISPID_IHTMLFONTELEMENT_COLOR                         =  DISPID_A_COLOR ;
+  DISPID_IHTMLFONTELEMENT_FACE                          =  DISPID_A_FONTFACE  ;
+  DISPID_IHTMLFONTELEMENT_SIZE                          =  DISPID_A_FONTSIZE ;
+
+//    DISPIDs for interface IHTMLAnchorElement
+
+  DISPID_IHTMLANCHORELEMENT_HREF                        =  DISPID_VALUE ;
+  DISPID_IHTMLANCHORELEMENT_TARGET                      =  DISPID_ANCHOR+3 ;
+  DISPID_IHTMLANCHORELEMENT_REL                         =  DISPID_ANCHOR+5 ;
+  DISPID_IHTMLANCHORELEMENT_REV                         =  DISPID_ANCHOR+6 ;
+  DISPID_IHTMLANCHORELEMENT_URN                         =  DISPID_ANCHOR+7 ;
+  DISPID_IHTMLANCHORELEMENT_METHODS                     =  DISPID_ANCHOR+8 ;
+  DISPID_IHTMLANCHORELEMENT_NAME                        =    STDPROPID_XOBJ_NAME ;
+  DISPID_IHTMLANCHORELEMENT_HOST                        =  DISPID_ANCHOR+12 ;
+  DISPID_IHTMLANCHORELEMENT_HOSTNAME                    =  DISPID_ANCHOR+13 ;
+  DISPID_IHTMLANCHORELEMENT_PATHNAME                    =  DISPID_ANCHOR+14 ;
+  DISPID_IHTMLANCHORELEMENT_PORT                        =  DISPID_ANCHOR+15 ;
+  DISPID_IHTMLANCHORELEMENT_PROTOCOL                    =  DISPID_ANCHOR+16 ;
+  DISPID_IHTMLANCHORELEMENT_SEARCH                      =  DISPID_ANCHOR+17 ;
+  DISPID_IHTMLANCHORELEMENT_HASH                        =  DISPID_ANCHOR+18 ;
+  DISPID_IHTMLANCHORELEMENT_ONBLUR                      =  DISPID_EVPROP_ONBLUR ;
+  DISPID_IHTMLANCHORELEMENT_ONFOCUS                     =  DISPID_EVPROP_ONFOCUS;
+  DISPID_IHTMLANCHORELEMENT_ACCESSKEY                   =  DISPID_SITE+5  ;
+  DISPID_IHTMLANCHORELEMENT_PROTOCOLLONG                =  DISPID_ANCHOR+31 ;
+  DISPID_IHTMLANCHORELEMENT_MIMETYPE                    =  DISPID_ANCHOR+30 ;
+  DISPID_IHTMLANCHORELEMENT_NAMEPROP                    =  DISPID_ANCHOR+32 ;
+  DISPID_IHTMLANCHORELEMENT_TABINDEX                     =   STDPROPID_XOBJ_TABINDEX ;
+  DISPID_IHTMLANCHORELEMENT_FOCUS                       =  DISPID_SITE+0 ;
+  DISPID_IHTMLANCHORELEMENT_BLUR                        =  DISPID_SITE+2 ;
+
+//    DISPIDs for interface IHTMLLabelElement
+
+  DISPID_IHTMLLABELELEMENT_HTMLFOR                      =  DISPID_LABEL ;
+  DISPID_IHTMLLABELELEMENT_ACCESSKEY                    =  DISPID_SITE+5;
+
+//    DISPIDs for interface IHTMLUListElement
+
+  DISPID_IHTMLULISTELEMENT_COMPACT                      =  DISPID_UL+2  ;
+  DISPID_IHTMLULISTELEMENT_TYPE                         =  DISPID_A_LISTTYPE ;
+
+//    DISPIDs for interface IHTMLOListElement
+
+  DISPID_IHTMLOLISTELEMENT_COMPACT                      =  DISPID_OL+2  ;
+  DISPID_IHTMLOLISTELEMENT_START                        =  DISPID_OL+3 ;
+  DISPID_IHTMLOLISTELEMENT_TYPE                         =  DISPID_A_LISTTYPE ;
+
+//    DISPIDs for interface IHTMLLIElement
+
+  DISPID_IHTMLLIELEMENT_TYPE                            =  DISPID_A_LISTTYPE;
+  DISPID_IHTMLLIELEMENT_VALUE                           =  DISPID_LI+1 ;
+
+//    DISPIDs for interface IHTMLBlockElement
+
+  DISPID_IHTMLBLOCKELEMENT_CLEAR                        =  DISPID_A_CLEAR;
+
+//    DISPIDs for interface IHTMLDivElement
+
+  DISPID_IHTMLDIVELEMENT_ALIGN                           =   STDPROPID_XOBJ_BLOCKALIGN;
+  DISPID_IHTMLDIVELEMENT_NOWRAP                         =  DISPID_A_NOWRAP;
+
+//    DISPIDs for interface IHTMLDDElement
+
+  DISPID_IHTMLDDELEMENT_NOWRAP                          =  DISPID_A_NOWRAP ;
+
+//    DISPIDs for interface IHTMLDTElement
+
+  DISPID_IHTMLDTELEMENT_NOWRAP                          =  DISPID_A_NOWRAP ;
+
+//    DISPIDs for interface IHTMLBRElement
+
+  DISPID_IHTMLBRELEMENT_CLEAR                           =  DISPID_A_CLEAR ;
+
+//    DISPIDs for interface IHTMLDListElement
+
+  DISPID_IHTMLDLISTELEMENT_COMPACT                      =  DISPID_DL+1;
+
+//    DISPIDs for interface IHTMLHRElement
+
+  DISPID_IHTMLHRELEMENT_ALIGN                            =   STDPROPID_XOBJ_BLOCKALIGN ;
+  DISPID_IHTMLHRELEMENT_COLOR                           =  DISPID_A_COLOR ;
+  DISPID_IHTMLHRELEMENT_NOSHADE                         =  DISPID_HR+1   ;
+  DISPID_IHTMLHRELEMENT_WIDTH                            =   STDPROPID_XOBJ_WIDTH ;
+  DISPID_IHTMLHRELEMENT_SIZE                             =   STDPROPID_XOBJ_HEIGHT ;
+
+//    DISPIDs for interface IHTMLParaElement
+
+  DISPID_IHTMLPARAELEMENT_ALIGN                          =   STDPROPID_XOBJ_BLOCKALIGN ;
+
+//    DISPIDs for interface IHTMLElementCollection
+
+  DISPID_IHTMLELEMENTCOLLECTION_TOSTRING                =  DISPID_COLLECTION+1 ;
+  DISPID_IHTMLELEMENTCOLLECTION_LENGTH                  =  DISPID_COLLECTION  ;
+  DISPID_IHTMLELEMENTCOLLECTION__NEWENUM                =  DISPID_NEWENUM  ;
+  DISPID_IHTMLELEMENTCOLLECTION_ITEM                    =  DISPID_VALUE ;
+  DISPID_IHTMLELEMENTCOLLECTION_TAGS                    =  DISPID_COLLECTION+2 ;
+
+//    DISPIDs for interface IHTMLElementCollection2
+
+  DISPID_IHTMLELEMENTCOLLECTION2_URNS                   =  DISPID_COLLECTION+5 ;
+
+//    DISPIDs for interface IHTMLHeaderElement
+
+  DISPID_IHTMLHEADERELEMENT_ALIGN                        =   STDPROPID_XOBJ_BLOCKALIGN  ;
+
+//    DISPIDs for interface IHTMLSelectElement
+
+  DISPID_IHTMLSELECTELEMENT_SIZE                        =  DISPID_SELECT+2  ;
+  DISPID_IHTMLSELECTELEMENT_MULTIPLE                    =  DISPID_SELECT+3 ;
+  DISPID_IHTMLSELECTELEMENT_NAME                         =   STDPROPID_XOBJ_NAME ;
+  DISPID_IHTMLSELECTELEMENT_OPTIONS                     =  DISPID_SELECT+5 ;
+  DISPID_IHTMLSELECTELEMENT_ONCHANGE                    =  DISPID_EVPROP_ONCHANGE  ;
+  DISPID_IHTMLSELECTELEMENT_SELECTEDINDEX               =  DISPID_SELECT+10  ;
+  DISPID_IHTMLSELECTELEMENT_TYPE                        =  DISPID_SELECT+12 ;
+  DISPID_IHTMLSELECTELEMENT_VALUE                       =  DISPID_SELECT+11 ;
+  DISPID_IHTMLSELECTELEMENT_DISABLED                    =    STDPROPID_XOBJ_DISABLED ;
+  DISPID_IHTMLSELECTELEMENT_FORM                        =  DISPID_SITE+4  ;
+  DISPID_IHTMLSELECTELEMENT_ADD                         =  DISPID_COLLECTION+3  ;
+  DISPID_IHTMLSELECTELEMENT_REMOVE                      =  DISPID_COLLECTION+4  ;
+  DISPID_IHTMLSELECTELEMENT_LENGTH                      =  DISPID_COLLECTION ;
+  DISPID_IHTMLSELECTELEMENT__NEWENUM                    =  DISPID_NEWENUM  ;
+  DISPID_IHTMLSELECTELEMENT_ITEM                        =  DISPID_VALUE  ;
+  DISPID_IHTMLSELECTELEMENT_TAGS                        =  DISPID_COLLECTION+2  ;
+
+//    DISPIDs for interface IHTMLSelectElement2
+
+  DISPID_IHTMLSELECTELEMENT2_URNS                       =  DISPID_COLLECTION+5;
+
+//    DISPIDs for event set HTMLSelectElementEvents2
+
+  DISPID_HTMLSELECTELEMENTEVENTS2_ONCHANGE              =  DISPID_EVMETH_ONCHANGE;
+
+//    DISPIDs for event set HTMLSelectElementEvents
+
+  DISPID_HTMLSELECTELEMENTEVENTS_ONCHANGE               =  DISPID_EVMETH_ONCHANGE ;
+
+//    DISPIDs for interface IHTMLSelectionObject
+
+  DISPID_IHTMLSELECTIONOBJECT_CREATERANGE               =  DISPID_SELECTOBJ+1 ;
+  DISPID_IHTMLSELECTIONOBJECT_EMPTY                     =  DISPID_SELECTOBJ+2 ;
+  DISPID_IHTMLSELECTIONOBJECT_CLEAR                     =  DISPID_SELECTOBJ+3 ;
+  DISPID_IHTMLSELECTIONOBJECT_TYPE                      =  DISPID_SELECTOBJ+4 ;
+
+//    DISPIDs for interface IHTMLSelectionObject2
+
+  DISPID_IHTMLSELECTIONOBJECT2_CREATERANGECOLLECTION     =   DISPID_SELECTOBJ+5 ;
+  DISPID_IHTMLSELECTIONOBJECT2_TYPEDETAIL               =  DISPID_SELECTOBJ+6;
+
+//    DISPIDs for interface IHTMLOptionElement
+
+  DISPID_IHTMLOPTIONELEMENT_SELECTED                    =  DISPID_OPTION+1 ;
+  DISPID_IHTMLOPTIONELEMENT_VALUE                       =  DISPID_OPTION+2 ;
+  DISPID_IHTMLOPTIONELEMENT_DEFAULTSELECTED             =  DISPID_OPTION+3  ;
+  DISPID_IHTMLOPTIONELEMENT_INDEX                       =  DISPID_OPTION+5  ;
+  DISPID_IHTMLOPTIONELEMENT_TEXT                        =  DISPID_OPTION+4 ;
+  DISPID_IHTMLOPTIONELEMENT_FORM                        =  DISPID_OPTION+6 ;
+
+//    DISPIDs for interface IHTMLOptionElementFactory
+
+  DISPID_IHTMLOPTIONELEMENTFACTORY_CREATE               =  DISPID_VALUE;
+
+//    DISPIDs for interface IHTMLInputElement
+
+  DISPID_IHTMLINPUTELEMENT_TYPE                         =  DISPID_INPUT ;
+  DISPID_IHTMLINPUTELEMENT_VALUE                        =  DISPID_A_VALUE ;
+  DISPID_IHTMLINPUTELEMENT_NAME                          =   STDPROPID_XOBJ_NAME ;
+  DISPID_IHTMLINPUTELEMENT_STATUS                       =  DISPID_INPUT+1  ;
+  DISPID_IHTMLINPUTELEMENT_DISABLED                     =    STDPROPID_XOBJ_DISABLED ;
+  DISPID_IHTMLINPUTELEMENT_FORM                         =  DISPID_SITE+4 ;
+  DISPID_IHTMLINPUTELEMENT_SIZE                         =  DISPID_INPUT+2 ;
+  DISPID_IHTMLINPUTELEMENT_MAXLENGTH                    =  DISPID_INPUT+3 ;
+  DISPID_IHTMLINPUTELEMENT_SELECT                       =  DISPID_INPUT+4 ;
+  DISPID_IHTMLINPUTELEMENT_ONCHANGE                     =  DISPID_EVPROP_ONCHANGE  ;
+  DISPID_IHTMLINPUTELEMENT_ONSELECT                     =  DISPID_EVPROP_ONSELECT ;
+  DISPID_IHTMLINPUTELEMENT_DEFAULTVALUE                 =  DISPID_DEFAULTVALUE ;
+  DISPID_IHTMLINPUTELEMENT_READONLY                     =  DISPID_INPUT+5 ;
+  DISPID_IHTMLINPUTELEMENT_CREATETEXTRANGE              =  DISPID_INPUT+6  ;
+  DISPID_IHTMLINPUTELEMENT_INDETERMINATE                =  DISPID_INPUT+7  ;
+  DISPID_IHTMLINPUTELEMENT_DEFAULTCHECKED               =  DISPID_INPUT+8  ;
+  DISPID_IHTMLINPUTELEMENT_CHECKED                      =  DISPID_INPUT+9  ;
+  DISPID_IHTMLINPUTELEMENT_BORDER                       =  DISPID_INPUT+12 ;
+  DISPID_IHTMLINPUTELEMENT_VSPACE                       =  DISPID_INPUT+13 ;
+  DISPID_IHTMLINPUTELEMENT_HSPACE                       =  DISPID_INPUT+14 ;
+  DISPID_IHTMLINPUTELEMENT_ALT                          =  DISPID_INPUT+10 ;
+  DISPID_IHTMLINPUTELEMENT_SRC                          =  DISPID_INPUT+11 ;
+  DISPID_IHTMLINPUTELEMENT_LOWSRC                       =  DISPID_INPUT+15 ;
+  DISPID_IHTMLINPUTELEMENT_VRML                         =  DISPID_INPUT+16  ;
+  DISPID_IHTMLINPUTELEMENT_DYNSRC                       =  DISPID_INPUT+17 ;
+  DISPID_IHTMLINPUTELEMENT_READYSTATE                   =  DISPID_A_READYSTATE;
+  DISPID_IHTMLINPUTELEMENT_COMPLETE                     =  DISPID_INPUT+18;
+  DISPID_IHTMLINPUTELEMENT_LOOP                         =  DISPID_INPUT+19  ;
+  DISPID_IHTMLINPUTELEMENT_ALIGN                        =    STDPROPID_XOBJ_CONTROLALIGN ;
+  DISPID_IHTMLINPUTELEMENT_ONLOAD                       =  DISPID_EVPROP_ONLOAD ;
+  DISPID_IHTMLINPUTELEMENT_ONERROR                      =  DISPID_EVPROP_ONERROR ;
+  DISPID_IHTMLINPUTELEMENT_ONABORT                      =  DISPID_EVPROP_ONABORT  ;
+  DISPID_IHTMLINPUTELEMENT_WIDTH                        =    STDPROPID_XOBJ_WIDTH  ;
+  DISPID_IHTMLINPUTELEMENT_HEIGHT                       =    STDPROPID_XOBJ_HEIGHT ;
+  DISPID_IHTMLINPUTELEMENT_START                        =  DISPID_INPUT+20 ;
+
+//    DISPIDs for interface IHTMLInputButtonElement
+
+  DISPID_IHTMLINPUTBUTTONELEMENT_TYPE                   =  DISPID_INPUT ;
+  DISPID_IHTMLINPUTBUTTONELEMENT_VALUE                  =  DISPID_A_VALUE ;
+  DISPID_IHTMLINPUTBUTTONELEMENT_NAME                    =   STDPROPID_XOBJ_NAME ;
+  DISPID_IHTMLINPUTBUTTONELEMENT_STATUS                 =  DISPID_INPUT+21;
+  DISPID_IHTMLINPUTBUTTONELEMENT_DISABLED               =    STDPROPID_XOBJ_DISABLED;
+  DISPID_IHTMLINPUTBUTTONELEMENT_FORM                   =  DISPID_SITE+4 ;
+  DISPID_IHTMLINPUTBUTTONELEMENT_CREATETEXTRANGE        =    DISPID_INPUT+6 ;
+
+//    DISPIDs for interface IHTMLInputHiddenElement
+
+  DISPID_IHTMLINPUTHIDDENELEMENT_TYPE                   =  DISPID_INPUT  ;
+  DISPID_IHTMLINPUTHIDDENELEMENT_VALUE                  =  DISPID_A_VALUE  ;
+  DISPID_IHTMLINPUTHIDDENELEMENT_NAME                   =    STDPROPID_XOBJ_NAME ;
+  DISPID_IHTMLINPUTHIDDENELEMENT_STATUS                 =  DISPID_INPUT+21 ;
+  DISPID_IHTMLINPUTHIDDENELEMENT_DISABLED               =    STDPROPID_XOBJ_DISABLED ;
+  DISPID_IHTMLINPUTHIDDENELEMENT_FORM                   =  DISPID_SITE+4 ;
+  DISPID_IHTMLINPUTHIDDENELEMENT_CREATETEXTRANGE        =    DISPID_INPUT+6;
+
+//    DISPIDs for interface IHTMLInputTextElement
+
+  DISPID_IHTMLINPUTTEXTELEMENT_TYPE                     =  DISPID_INPUT ;
+  DISPID_IHTMLINPUTTEXTELEMENT_VALUE                    =  DISPID_A_VALUE ;
+  DISPID_IHTMLINPUTTEXTELEMENT_NAME                     =    STDPROPID_XOBJ_NAME ;
+  DISPID_IHTMLINPUTTEXTELEMENT_STATUS                   =  DISPID_INPUT+21 ;
+  DISPID_IHTMLINPUTTEXTELEMENT_DISABLED                  =   STDPROPID_XOBJ_DISABLED ;
+  DISPID_IHTMLINPUTTEXTELEMENT_FORM                     =  DISPID_SITE+4 ;
+  DISPID_IHTMLINPUTTEXTELEMENT_DEFAULTVALUE             =  DISPID_DEFAULTVALUE ;
+  DISPID_IHTMLINPUTTEXTELEMENT_SIZE                     =  DISPID_INPUT+2 ;
+  DISPID_IHTMLINPUTTEXTELEMENT_MAXLENGTH                =  DISPID_INPUT+3 ;
+  DISPID_IHTMLINPUTTEXTELEMENT_SELECT                   =  DISPID_INPUT+4 ;
+  DISPID_IHTMLINPUTTEXTELEMENT_ONCHANGE                 =  DISPID_EVPROP_ONCHANGE ;
+  DISPID_IHTMLINPUTTEXTELEMENT_ONSELECT                 =  DISPID_EVPROP_ONSELECT;
+  DISPID_IHTMLINPUTTEXTELEMENT_READONLY                 =  DISPID_INPUT+5;
+  DISPID_IHTMLINPUTTEXTELEMENT_CREATETEXTRANGE           =   DISPID_INPUT+6 ;
+
+//    DISPIDs for interface IHTMLInputFileElement
+
+  DISPID_IHTMLINPUTFILEELEMENT_TYPE                     =  DISPID_INPUT ;
+  DISPID_IHTMLINPUTFILEELEMENT_NAME                     =    STDPROPID_XOBJ_NAME ;
+  DISPID_IHTMLINPUTFILEELEMENT_STATUS                   =  DISPID_INPUT+21 ;
+  DISPID_IHTMLINPUTFILEELEMENT_DISABLED                 =   STDPROPID_XOBJ_DISABLED ;
+  DISPID_IHTMLINPUTFILEELEMENT_FORM                     =  DISPID_SITE+4  ;
+  DISPID_IHTMLINPUTFILEELEMENT_SIZE                     =  DISPID_INPUT+2 ;
+  DISPID_IHTMLINPUTFILEELEMENT_MAXLENGTH                =  DISPID_INPUT+3 ;
+  DISPID_IHTMLINPUTFILEELEMENT_SELECT                   =  DISPID_INPUT+4 ;
+  DISPID_IHTMLINPUTFILEELEMENT_ONCHANGE                 =  DISPID_EVPROP_ONCHANGE ;
+  DISPID_IHTMLINPUTFILEELEMENT_ONSELECT                 =  DISPID_EVPROP_ONSELECT ;
+  DISPID_IHTMLINPUTFILEELEMENT_VALUE                    =  DISPID_A_VALUE ;
+
+//    DISPIDs for interface IHTMLOptionButtonElement
+
+  DISPID_IHTMLOPTIONBUTTONELEMENT_VALUE                 =  DISPID_A_VALUE ;
+  DISPID_IHTMLOPTIONBUTTONELEMENT_TYPE                  =  DISPID_INPUT ;
+  DISPID_IHTMLOPTIONBUTTONELEMENT_NAME                   =   STDPROPID_XOBJ_NAME ;
+  DISPID_IHTMLOPTIONBUTTONELEMENT_CHECKED               =  DISPID_INPUT+9  ;
+  DISPID_IHTMLOPTIONBUTTONELEMENT_DEFAULTCHECKED         =   DISPID_INPUT+8 ;
+  DISPID_IHTMLOPTIONBUTTONELEMENT_ONCHANGE              =  DISPID_EVPROP_ONCHANGE ;
+  DISPID_IHTMLOPTIONBUTTONELEMENT_DISABLED               =   STDPROPID_XOBJ_DISABLED ;
+  DISPID_IHTMLOPTIONBUTTONELEMENT_STATUS                =  DISPID_INPUT+1 ;
+  DISPID_IHTMLOPTIONBUTTONELEMENT_INDETERMINATE          =   DISPID_INPUT+7  ;
+  DISPID_IHTMLOPTIONBUTTONELEMENT_FORM                  =  DISPID_SITE+4  ;
+
+//    DISPIDs for interface IHTMLInputImage
+
+  DISPID_IHTMLINPUTIMAGE_TYPE                           =  DISPID_INPUT ;
+  DISPID_IHTMLINPUTIMAGE_DISABLED                       =    STDPROPID_XOBJ_DISABLED;
+  DISPID_IHTMLINPUTIMAGE_BORDER                         =  DISPID_INPUT+12 ;
+  DISPID_IHTMLINPUTIMAGE_VSPACE                         =  DISPID_INPUT+13  ;
+  DISPID_IHTMLINPUTIMAGE_HSPACE                         =  DISPID_INPUT+14  ;
+  DISPID_IHTMLINPUTIMAGE_ALT                            =  DISPID_INPUT+10  ;
+  DISPID_IHTMLINPUTIMAGE_SRC                            =  DISPID_INPUT+11;
+  DISPID_IHTMLINPUTIMAGE_LOWSRC                         =  DISPID_INPUT+15  ;
+  DISPID_IHTMLINPUTIMAGE_VRML                           =  DISPID_INPUT+16  ;
+  DISPID_IHTMLINPUTIMAGE_DYNSRC                         =  DISPID_INPUT+17 ;
+  DISPID_IHTMLINPUTIMAGE_READYSTATE                     =  DISPID_A_READYSTATE ;
+  DISPID_IHTMLINPUTIMAGE_COMPLETE                       =  DISPID_INPUT+18 ;
+  DISPID_IHTMLINPUTIMAGE_LOOP                           =  DISPID_INPUT+19 ;
+  DISPID_IHTMLINPUTIMAGE_ALIGN                          =    STDPROPID_XOBJ_CONTROLALIGN ;
+  DISPID_IHTMLINPUTIMAGE_ONLOAD                         =  DISPID_EVPROP_ONLOAD  ;
+  DISPID_IHTMLINPUTIMAGE_ONERROR                        =  DISPID_EVPROP_ONERROR  ;
+  DISPID_IHTMLINPUTIMAGE_ONABORT                        =  DISPID_EVPROP_ONABORT ;
+  DISPID_IHTMLINPUTIMAGE_NAME                           =    STDPROPID_XOBJ_NAME   ;
+  DISPID_IHTMLINPUTIMAGE_WIDTH                           =   STDPROPID_XOBJ_WIDTH  ;
+  DISPID_IHTMLINPUTIMAGE_HEIGHT                         =    STDPROPID_XOBJ_HEIGHT  ;
+  DISPID_IHTMLINPUTIMAGE_START                          =  DISPID_INPUT+20  ;
+
+//    DISPIDs for event set HTMLInputTextElementEvents2
+
+  DISPID_HTMLINPUTTEXTELEMENTEVENTS2_ONCHANGE            =   DISPID_EVMETH_ONCHANGE ;
+  DISPID_HTMLINPUTTEXTELEMENTEVENTS2_ONSELECT           =    DISPID_EVMETH_ONSELECT ;
+  DISPID_HTMLINPUTTEXTELEMENTEVENTS2_ONLOAD             =  DISPID_EVMETH_ONLOAD ;
+  DISPID_HTMLINPUTTEXTELEMENTEVENTS2_ONERROR            =  DISPID_EVMETH_ONERROR ;
+  DISPID_HTMLINPUTTEXTELEMENTEVENTS2_ONABORT            =  DISPID_EVMETH_ONABORT ;
+
+//    DISPIDs for event set HTMLInputImageEvents2
+
+  DISPID_HTMLINPUTIMAGEEVENTS2_ONLOAD                   =  DISPID_EVMETH_ONLOAD ;
+  DISPID_HTMLINPUTIMAGEEVENTS2_ONERROR                  =  DISPID_EVMETH_ONERROR ;
+  DISPID_HTMLINPUTIMAGEEVENTS2_ONABORT                  =  DISPID_EVMETH_ONABORT;
+
+//    DISPIDs for event set HTMLInputTextElementEvents
+
+  DISPID_HTMLINPUTTEXTELEMENTEVENTS_ONCHANGE            =  DISPID_EVMETH_ONCHANGE ;
+  DISPID_HTMLINPUTTEXTELEMENTEVENTS_ONSELECT            =  DISPID_EVMETH_ONSELECT ;
+  DISPID_HTMLINPUTTEXTELEMENTEVENTS_ONLOAD              =  DISPID_EVMETH_ONLOAD ;
+  DISPID_HTMLINPUTTEXTELEMENTEVENTS_ONERROR             =  DISPID_EVMETH_ONERROR ;
+  DISPID_HTMLINPUTTEXTELEMENTEVENTS_ONABORT             =  DISPID_EVMETH_ONABORT ;
+
+//    DISPIDs for event set HTMLInputImageEvents
+
+  DISPID_HTMLINPUTIMAGEEVENTS_ONLOAD                    =  DISPID_EVMETH_ONLOAD  ;
+  DISPID_HTMLINPUTIMAGEEVENTS_ONERROR                   =  DISPID_EVMETH_ONERROR ;
+  DISPID_HTMLINPUTIMAGEEVENTS_ONABORT                   =  DISPID_EVMETH_ONABORT;
+
+//    DISPIDs for interface IHTMLTextAreaElement
+
+  DISPID_IHTMLTEXTAREAELEMENT_TYPE                      =  DISPID_INPUT ;
+  DISPID_IHTMLTEXTAREAELEMENT_VALUE                     =  DISPID_A_VALUE ;
+  DISPID_IHTMLTEXTAREAELEMENT_NAME                       =   STDPROPID_XOBJ_NAME ;
+  DISPID_IHTMLTEXTAREAELEMENT_STATUS                    =  DISPID_INPUT+1 ;
+  DISPID_IHTMLTEXTAREAELEMENT_DISABLED                   =   STDPROPID_XOBJ_DISABLED ;
+  DISPID_IHTMLTEXTAREAELEMENT_FORM                      =  DISPID_SITE+4 ;
+  DISPID_IHTMLTEXTAREAELEMENT_DEFAULTVALUE              =  DISPID_DEFAULTVALUE ;
+  DISPID_IHTMLTEXTAREAELEMENT_SELECT                    =  DISPID_RICHTEXT+5 ;
+  DISPID_IHTMLTEXTAREAELEMENT_ONCHANGE                  =  DISPID_EVPROP_ONCHANGE ;
+  DISPID_IHTMLTEXTAREAELEMENT_ONSELECT                  =  DISPID_EVPROP_ONSELECT ;
+  DISPID_IHTMLTEXTAREAELEMENT_READONLY                  =  DISPID_RICHTEXT+4 ;
+  DISPID_IHTMLTEXTAREAELEMENT_ROWS                      =  DISPID_RICHTEXT+1 ;
+  DISPID_IHTMLTEXTAREAELEMENT_COLS                      =  DISPID_RICHTEXT+2 ;
+  DISPID_IHTMLTEXTAREAELEMENT_WRAP                      =  DISPID_RICHTEXT+3 ;
+  DISPID_IHTMLTEXTAREAELEMENT_CREATETEXTRANGE            =   DISPID_RICHTEXT+6 ;
+
+//    DISPIDs for interface IHTMLButtonElement
+
+  DISPID_IHTMLBUTTONELEMENT_TYPE                        =  DISPID_INPUT ;
+  DISPID_IHTMLBUTTONELEMENT_VALUE                       =  DISPID_A_VALUE ;
+  DISPID_IHTMLBUTTONELEMENT_NAME                        =    STDPROPID_XOBJ_NAME;
+  DISPID_IHTMLBUTTONELEMENT_STATUS                      =  DISPID_BUTTON+1 ;
+  DISPID_IHTMLBUTTONELEMENT_DISABLED                     =   STDPROPID_XOBJ_DISABLED ;
+  DISPID_IHTMLBUTTONELEMENT_FORM                        =  DISPID_SITE+4 ;
+  DISPID_IHTMLBUTTONELEMENT_CREATETEXTRANGE             =  DISPID_BUTTON+2 ;
+
+//    DISPIDs for interface IHTMLMarqueeElement
+
+  DISPID_IHTMLMARQUEEELEMENT_BGCOLOR                    =  DISPID_BACKCOLOR ;
+  DISPID_IHTMLMARQUEEELEMENT_SCROLLDELAY                =  DISPID_MARQUEE ;
+  DISPID_IHTMLMARQUEEELEMENT_DIRECTION                  =  DISPID_MARQUEE+1 ;
+  DISPID_IHTMLMARQUEEELEMENT_BEHAVIOR                   =  DISPID_MARQUEE+2;
+  DISPID_IHTMLMARQUEEELEMENT_SCROLLAMOUNT               =  DISPID_MARQUEE+3;
+  DISPID_IHTMLMARQUEEELEMENT_LOOP                       =  DISPID_MARQUEE+4 ;
+  DISPID_IHTMLMARQUEEELEMENT_VSPACE                     =  DISPID_MARQUEE+5 ;
+  DISPID_IHTMLMARQUEEELEMENT_HSPACE                     =  DISPID_MARQUEE+6;
+  DISPID_IHTMLMARQUEEELEMENT_ONFINISH                   =  DISPID_EVPROP_ONFINISH ;
+  DISPID_IHTMLMARQUEEELEMENT_ONSTART                    =  DISPID_EVPROP_ONSTART;
+  DISPID_IHTMLMARQUEEELEMENT_ONBOUNCE                   =  DISPID_EVPROP_ONBOUNCE;
+  DISPID_IHTMLMARQUEEELEMENT_WIDTH                      =    STDPROPID_XOBJ_WIDTH ;
+  DISPID_IHTMLMARQUEEELEMENT_HEIGHT                      =   STDPROPID_XOBJ_HEIGHT ;
+  DISPID_IHTMLMARQUEEELEMENT_TRUESPEED                  =  DISPID_MARQUEE+7  ;
+  DISPID_IHTMLMARQUEEELEMENT_START                      =  DISPID_MARQUEE+10 ;
+  DISPID_IHTMLMARQUEEELEMENT_STOP                       =  DISPID_MARQUEE+11;
+
+//    DISPIDs for event set HTMLMarqueeElementEvents2
+
+  DISPID_HTMLMARQUEEELEMENTEVENTS2_ONBOUNCE             =  DISPID_EVMETH_ONBOUNCE;
+  DISPID_HTMLMARQUEEELEMENTEVENTS2_ONFINISH             =  DISPID_EVMETH_ONFINISH ;
+  DISPID_HTMLMARQUEEELEMENTEVENTS2_ONSTART              =  DISPID_EVMETH_ONSTART ;
+
+//    DISPIDs for event set HTMLMarqueeElementEvents
+
+  DISPID_HTMLMARQUEEELEMENTEVENTS_ONBOUNCE              =  DISPID_EVMETH_ONBOUNCE ;
+  DISPID_HTMLMARQUEEELEMENTEVENTS_ONFINISH              =  DISPID_EVMETH_ONFINISH ;
+  DISPID_HTMLMARQUEEELEMENTEVENTS_ONSTART               =  DISPID_EVMETH_ONSTART ;
+
+//    DISPIDs for interface IHTMLTitleElement
+
+  DISPID_IHTMLTITLEELEMENT_TEXT                         =  DISPID_A_VALUE ;
+
+//    DISPIDs for interface IHTMLMetaElement
+
+  DISPID_IHTMLMETAELEMENT_HTTPEQUIV                     =  DISPID_HEDELEMS+1 ;
+  DISPID_IHTMLMETAELEMENT_CONTENT                       =  DISPID_HEDELEMS+2 ;
+  DISPID_IHTMLMETAELEMENT_NAME                           =   STDPROPID_XOBJ_NAME ;
+  DISPID_IHTMLMETAELEMENT_URL                           =  DISPID_HEDELEMS+3 ;
+  DISPID_IHTMLMETAELEMENT_CHARSET                       =  DISPID_HEDELEMS+13 ;
+
+//    DISPIDs for interface IHTMLBaseElement
+
+  DISPID_IHTMLBASEELEMENT_HREF                          =  DISPID_HEDELEMS+3;
+  DISPID_IHTMLBASEELEMENT_TARGET                        =  DISPID_HEDELEMS+4 ;
+
+//    DISPIDs for interface IHTMLIsIndexElement
+
+  DISPID_IHTMLISINDEXELEMENT_PROMPT                     =  DISPID_HEDELEMS+10;
+  DISPID_IHTMLISINDEXELEMENT_ACTION                     =  DISPID_HEDELEMS+11 ;
+
+//    DISPIDs for interface IHTMLNextIdElement
+
+  DISPID_IHTMLNEXTIDELEMENT_N                           =  DISPID_HEDELEMS+12 ;
+
+//    DISPIDs for interface IHTMLBaseFontElement
+
+  DISPID_IHTMLBASEFONTELEMENT_COLOR                     =  DISPID_A_COLOR ;
+  DISPID_IHTMLBASEFONTELEMENT_FACE                      =  DISPID_A_FONTFACE ;
+  DISPID_IHTMLBASEFONTELEMENT_SIZE                      =  DISPID_A_BASEFONT ;
+
+//    DISPIDs for interface IOmHistory
+
+  DISPID_IOMHISTORY_LENGTH                              =  DISPID_HISTORY ;
+  DISPID_IOMHISTORY_BACK                                =  DISPID_HISTORY+1 ;
+  DISPID_IOMHISTORY_FORWARD                             =  DISPID_HISTORY+2 ;
+  DISPID_IOMHISTORY_GO                                  =  DISPID_HISTORY+3 ;
+
+//    DISPIDs for interface IHTMLMimeTypesCollection
+
+  DISPID_IHTMLMIMETYPESCOLLECTION_LENGTH                 =   1 ;
+
+//    DISPIDs for interface IHTMLPluginsCollection
+
+  DISPID_IHTMLPLUGINSCOLLECTION_LENGTH                   =   1 ;
+  DISPID_IHTMLPLUGINSCOLLECTION_REFRESH                   =  2;
+
+//    DISPIDs for interface IHTMLOpsProfile
+
+  DISPID_IHTMLOPSPROFILE_ADDREQUEST                       =  1;
+  DISPID_IHTMLOPSPROFILE_CLEARREQUEST                     =  2;
+  DISPID_IHTMLOPSPROFILE_DOREQUEST                         = 3;
+  DISPID_IHTMLOPSPROFILE_GETATTRIBUTE                      = 4 ;
+  DISPID_IHTMLOPSPROFILE_SETATTRIBUTE                     =  5 ;
+  DISPID_IHTMLOPSPROFILE_COMMITCHANGES                    =  6;
+  DISPID_IHTMLOPSPROFILE_ADDREADREQUEST                   =  7;
+  DISPID_IHTMLOPSPROFILE_DOREADREQUEST                    =  8;
+  DISPID_IHTMLOPSPROFILE_DOWRITEREQUEST                   =  9;
+
+//    DISPIDs for interface IOmNavigator
+
+  DISPID_IOMNAVIGATOR_APPCODENAME                       =  DISPID_NAVIGATOR ;
+  DISPID_IOMNAVIGATOR_APPNAME                           =  DISPID_NAVIGATOR+1 ;
+  DISPID_IOMNAVIGATOR_APPVERSION                        =  DISPID_NAVIGATOR+2 ;
+  DISPID_IOMNAVIGATOR_USERAGENT                         =  DISPID_NAVIGATOR+3 ;
+  DISPID_IOMNAVIGATOR_JAVAENABLED                       =  DISPID_NAVIGATOR+4 ;
+  DISPID_IOMNAVIGATOR_TAINTENABLED                      =  DISPID_NAVIGATOR+5 ;
+  DISPID_IOMNAVIGATOR_MIMETYPES                         =  DISPID_NAVIGATOR+6 ;
+  DISPID_IOMNAVIGATOR_PLUGINS                           =  DISPID_NAVIGATOR+7 ;
+  DISPID_IOMNAVIGATOR_COOKIEENABLED                     =  DISPID_NAVIGATOR+8 ;
+  DISPID_IOMNAVIGATOR_OPSPROFILE                        =  DISPID_NAVIGATOR+9 ;
+  DISPID_IOMNAVIGATOR_TOSTRING                          =  DISPID_NAVIGATOR+10;
+  DISPID_IOMNAVIGATOR_CPUCLASS                          =  DISPID_NAVIGATOR+11 ;
+  DISPID_IOMNAVIGATOR_SYSTEMLANGUAGE                    =  DISPID_NAVIGATOR+12;
+  DISPID_IOMNAVIGATOR_BROWSERLANGUAGE                   =  DISPID_NAVIGATOR+13 ;
+  DISPID_IOMNAVIGATOR_USERLANGUAGE                      =  DISPID_NAVIGATOR+14 ;
+  DISPID_IOMNAVIGATOR_PLATFORM                          =  DISPID_NAVIGATOR+15 ;
+  DISPID_IOMNAVIGATOR_APPMINORVERSION                   =  DISPID_NAVIGATOR+16;
+  DISPID_IOMNAVIGATOR_CONNECTIONSPEED                   =  DISPID_NAVIGATOR+17 ;
+  DISPID_IOMNAVIGATOR_ONLINE                            =  DISPID_NAVIGATOR+18;
+  DISPID_IOMNAVIGATOR_USERPROFILE                       =  DISPID_NAVIGATOR+19;
+
+//    DISPIDs for interface IHTMLLocation
+
+  DISPID_IHTMLLOCATION_HREF                             =  DISPID_VALUE ;
+  DISPID_IHTMLLOCATION_PROTOCOL                         =  DISPID_LOCATION ;
+  DISPID_IHTMLLOCATION_HOST                             =  DISPID_LOCATION+1;
+  DISPID_IHTMLLOCATION_HOSTNAME                         =  DISPID_LOCATION+2 ;
+  DISPID_IHTMLLOCATION_PORT                             =  DISPID_LOCATION+3 ;
+  DISPID_IHTMLLOCATION_PATHNAME                         =  DISPID_LOCATION+4 ;
+  DISPID_IHTMLLOCATION_SEARCH                           =  DISPID_LOCATION+5 ;
+  DISPID_IHTMLLOCATION_HASH                             =  DISPID_LOCATION+6;
+  DISPID_IHTMLLOCATION_RELOAD                           =  DISPID_LOCATION+7 ;
+  DISPID_IHTMLLOCATION_REPLACE                          =  DISPID_LOCATION+8;
+  DISPID_IHTMLLOCATION_ASSIGN                           =  DISPID_LOCATION+9;
+  DISPID_IHTMLLOCATION_TOSTRING                         =  DISPID_LOCATION+10 ;
+
+//    DISPIDs for interface IHTMLBookmarkCollection
+
+  DISPID_IHTMLBOOKMARKCOLLECTION_LENGTH                 =  DISPID_OPTIONS_COL+1 ;
+  DISPID_IHTMLBOOKMARKCOLLECTION__NEWENUM               =  DISPID_NEWENUM ;
+  DISPID_IHTMLBOOKMARKCOLLECTION_ITEM                   =  DISPID_VALUE ;
+
+//    DISPIDs for interface IHTMLDataTransfer
+
+  DISPID_IHTMLDATATRANSFER_SETDATA                      =  DISPID_DATATRANSFER+1 ;
+  DISPID_IHTMLDATATRANSFER_GETDATA                      =  DISPID_DATATRANSFER+2 ;
+  DISPID_IHTMLDATATRANSFER_CLEARDATA                    =  DISPID_DATATRANSFER+3 ;
+  DISPID_IHTMLDATATRANSFER_DROPEFFECT                   =  DISPID_DATATRANSFER+4 ;
+  DISPID_IHTMLDATATRANSFER_EFFECTALLOWED                =  DISPID_DATATRANSFER+5 ;
+
+//    DISPIDs for interface IHTMLEventObj
+
+  DISPID_IHTMLEVENTOBJ_SRCELEMENT                       =  DISPID_EVENTOBJ+1 ;
+  DISPID_IHTMLEVENTOBJ_ALTKEY                           =  DISPID_EVENTOBJ+2 ;
+  DISPID_IHTMLEVENTOBJ_CTRLKEY                          =  DISPID_EVENTOBJ+3 ;
+  DISPID_IHTMLEVENTOBJ_SHIFTKEY                         =  DISPID_EVENTOBJ+4 ;
+  DISPID_IHTMLEVENTOBJ_RETURNVALUE                      =  DISPID_EVENTOBJ+7 ;
+  DISPID_IHTMLEVENTOBJ_CANCELBUBBLE                     =  DISPID_EVENTOBJ+8 ;
+  DISPID_IHTMLEVENTOBJ_FROMELEMENT                      =  DISPID_EVENTOBJ+9 ;
+  DISPID_IHTMLEVENTOBJ_TOELEMENT                        =  DISPID_EVENTOBJ+10 ;
+  DISPID_IHTMLEVENTOBJ_KEYCODE                          =  DISPID_EVENTOBJ+11 ;
+  DISPID_IHTMLEVENTOBJ_BUTTON                           =  DISPID_EVENTOBJ+12 ;
+  DISPID_IHTMLEVENTOBJ_TYPE                             =  DISPID_EVENTOBJ+13 ;
+  DISPID_IHTMLEVENTOBJ_QUALIFIER                        =  DISPID_EVENTOBJ+14 ;
+  DISPID_IHTMLEVENTOBJ_REASON                           =  DISPID_EVENTOBJ+15 ;
+  DISPID_IHTMLEVENTOBJ_X                                =  DISPID_EVENTOBJ+5  ;
+  DISPID_IHTMLEVENTOBJ_Y                                =  DISPID_EVENTOBJ+6 ;
+  DISPID_IHTMLEVENTOBJ_CLIENTX                          =  DISPID_EVENTOBJ+20 ;
+  DISPID_IHTMLEVENTOBJ_CLIENTY                          =  DISPID_EVENTOBJ+21 ;
+  DISPID_IHTMLEVENTOBJ_OFFSETX                          =  DISPID_EVENTOBJ+22 ;
+  DISPID_IHTMLEVENTOBJ_OFFSETY                          =  DISPID_EVENTOBJ+23 ;
+  DISPID_IHTMLEVENTOBJ_SCREENX                          =  DISPID_EVENTOBJ+24 ;
+  DISPID_IHTMLEVENTOBJ_SCREENY                          =  DISPID_EVENTOBJ+25 ;
+  DISPID_IHTMLEVENTOBJ_SRCFILTER                        =  DISPID_EVENTOBJ+26 ;
+
+//    DISPIDs for interface IHTMLEventObj2
+
+  DISPID_IHTMLEVENTOBJ2_SETATTRIBUTE                    =  DISPID_HTMLOBJECT+1;
+  DISPID_IHTMLEVENTOBJ2_GETATTRIBUTE                    =  DISPID_HTMLOBJECT+2;
+  DISPID_IHTMLEVENTOBJ2_REMOVEATTRIBUTE                 =  DISPID_HTMLOBJECT+3;
+  DISPID_IHTMLEVENTOBJ2_PROPERTYNAME                    =  DISPID_EVENTOBJ+27 ;
+  DISPID_IHTMLEVENTOBJ2_BOOKMARKS                       =  DISPID_EVENTOBJ+31 ;
+  DISPID_IHTMLEVENTOBJ2_RECORDSET                       =  DISPID_EVENTOBJ+32;
+  DISPID_IHTMLEVENTOBJ2_DATAFLD                         =  DISPID_EVENTOBJ+33 ;
+  DISPID_IHTMLEVENTOBJ2_BOUNDELEMENTS                   =  DISPID_EVENTOBJ+34 ;
+  DISPID_IHTMLEVENTOBJ2_REPEAT                          =  DISPID_EVENTOBJ+35 ;
+  DISPID_IHTMLEVENTOBJ2_SRCURN                          =  DISPID_EVENTOBJ+36 ;
+  DISPID_IHTMLEVENTOBJ2_SRCELEMENT                      =  DISPID_EVENTOBJ+1  ;
+  DISPID_IHTMLEVENTOBJ2_ALTKEY                          =  DISPID_EVENTOBJ+2  ;
+  DISPID_IHTMLEVENTOBJ2_CTRLKEY                         =  DISPID_EVENTOBJ+3  ;
+  DISPID_IHTMLEVENTOBJ2_SHIFTKEY                        =  DISPID_EVENTOBJ+4  ;
+  DISPID_IHTMLEVENTOBJ2_FROMELEMENT                     =  DISPID_EVENTOBJ+9  ;
+  DISPID_IHTMLEVENTOBJ2_TOELEMENT                       =  DISPID_EVENTOBJ+10 ;
+  DISPID_IHTMLEVENTOBJ2_BUTTON                          =  DISPID_EVENTOBJ+12 ;
+  DISPID_IHTMLEVENTOBJ2_TYPE                            =  DISPID_EVENTOBJ+13 ;
+  DISPID_IHTMLEVENTOBJ2_QUALIFIER                       =  DISPID_EVENTOBJ+14 ;
+  DISPID_IHTMLEVENTOBJ2_REASON                          =  DISPID_EVENTOBJ+15 ;
+  DISPID_IHTMLEVENTOBJ2_X                               =  DISPID_EVENTOBJ+5  ;
+  DISPID_IHTMLEVENTOBJ2_Y                               =  DISPID_EVENTOBJ+6  ;
+  DISPID_IHTMLEVENTOBJ2_CLIENTX                         =  DISPID_EVENTOBJ+20  ;
+  DISPID_IHTMLEVENTOBJ2_CLIENTY                         =  DISPID_EVENTOBJ+21 ;
+  DISPID_IHTMLEVENTOBJ2_OFFSETX                         =  DISPID_EVENTOBJ+22 ;
+  DISPID_IHTMLEVENTOBJ2_OFFSETY                         =  DISPID_EVENTOBJ+23 ;
+  DISPID_IHTMLEVENTOBJ2_SCREENX                         =  DISPID_EVENTOBJ+24;
+  DISPID_IHTMLEVENTOBJ2_SCREENY                         =  DISPID_EVENTOBJ+25 ;
+  DISPID_IHTMLEVENTOBJ2_SRCFILTER                       =  DISPID_EVENTOBJ+26 ;
+  DISPID_IHTMLEVENTOBJ2_DATATRANSFER                    =  DISPID_EVENTOBJ+37 ;
+
+//    DISPIDs for interface IHTMLEventObj3
+
+  DISPID_IHTMLEVENTOBJ3_CONTENTOVERFLOW                 =  DISPID_EVENTOBJ+38 ;
+  DISPID_IHTMLEVENTOBJ3_SHIFTLEFT                       =  DISPID_EVENTOBJ+39 ;
+  DISPID_IHTMLEVENTOBJ3_ALTLEFT                         =  DISPID_EVENTOBJ+40 ;
+  DISPID_IHTMLEVENTOBJ3_CTRLLEFT                        =  DISPID_EVENTOBJ+41 ;
+  DISPID_IHTMLEVENTOBJ3_IMECOMPOSITIONCHANGE            =  DISPID_EVENTOBJ+42 ;
+  DISPID_IHTMLEVENTOBJ3_IMENOTIFYCOMMAND                =  DISPID_EVENTOBJ+43 ;
+  DISPID_IHTMLEVENTOBJ3_IMENOTIFYDATA                   =  DISPID_EVENTOBJ+44 ;
+  DISPID_IHTMLEVENTOBJ3_IMEREQUEST                      =  DISPID_EVENTOBJ+46 ;
+  DISPID_IHTMLEVENTOBJ3_IMEREQUESTDATA                  =  DISPID_EVENTOBJ+47 ;
+  DISPID_IHTMLEVENTOBJ3_KEYBOARDLAYOUT                  =  DISPID_EVENTOBJ+45 ;
+  DISPID_IHTMLEVENTOBJ3_BEHAVIORCOOKIE                  =  DISPID_EVENTOBJ+48 ;
+  DISPID_IHTMLEVENTOBJ3_BEHAVIORPART                    =  DISPID_EVENTOBJ+49 ;
+  DISPID_IHTMLEVENTOBJ3_NEXTPAGE                        =  DISPID_EVENTOBJ+50 ;
+
+//    DISPIDs for interface IHTMLFramesCollection2
+
+  DISPID_IHTMLFRAMESCOLLECTION2_ITEM                     =   0  ;
+  DISPID_IHTMLFRAMESCOLLECTION2_LENGTH                   =   1001  ;
+
+//    DISPIDs for interface IHTMLScreen
+
+  DISPID_IHTMLSCREEN_COLORDEPTH                         =  DISPID_SCREEN+1 ;
+  DISPID_IHTMLSCREEN_BUFFERDEPTH                        =  DISPID_SCREEN+2 ;
+  DISPID_IHTMLSCREEN_WIDTH                              =  DISPID_SCREEN+3 ;
+  DISPID_IHTMLSCREEN_HEIGHT                             =  DISPID_SCREEN+4 ;
+  DISPID_IHTMLSCREEN_UPDATEINTERVAL                     =  DISPID_SCREEN+5  ;
+  DISPID_IHTMLSCREEN_AVAILHEIGHT                        =  DISPID_SCREEN+6 ;
+  DISPID_IHTMLSCREEN_AVAILWIDTH                         =  DISPID_SCREEN+7 ;
+  DISPID_IHTMLSCREEN_FONTSMOOTHINGENABLED               =  DISPID_SCREEN+8;
+
+//    DISPIDs for interface IHTMLWindow2
+
+  DISPID_IHTMLWINDOW2_FRAMES                             =   1100 ;
+  DISPID_IHTMLWINDOW2_DEFAULTSTATUS                      =   1101 ;
+  DISPID_IHTMLWINDOW2_STATUS                             =   1102 ;
+  DISPID_IHTMLWINDOW2_SETTIMEOUT                         =   1172 ;
+  DISPID_IHTMLWINDOW2_CLEARTIMEOUT                       =   1104;
+  DISPID_IHTMLWINDOW2_ALERT                              =   1105 ;
+  DISPID_IHTMLWINDOW2_CONFIRM                            =   1110;
+  DISPID_IHTMLWINDOW2_PROMPT                             =   1111 ;
+  DISPID_IHTMLWINDOW2_IMAGE                              =   1125 ;
+  DISPID_IHTMLWINDOW2_LOCATION                           =   14 ;
+  DISPID_IHTMLWINDOW2_HISTORY                            =   2  ;
+  DISPID_IHTMLWINDOW2_CLOSE                              =   3 ;
+  DISPID_IHTMLWINDOW2_OPENER                             =   4 ;
+  DISPID_IHTMLWINDOW2_NAVIGATOR                          =   5 ;
+  DISPID_IHTMLWINDOW2_NAME                               =   11 ;
+  DISPID_IHTMLWINDOW2_PARENT                             =   12 ;
+  DISPID_IHTMLWINDOW2_OPEN                               =   13 ;
+  DISPID_IHTMLWINDOW2_SELF                               =   20 ;
+  DISPID_IHTMLWINDOW2_TOP                                =   21;
+  DISPID_IHTMLWINDOW2_WINDOW                             =   22 ;
+  DISPID_IHTMLWINDOW2_NAVIGATE                           =   25 ;
+  DISPID_IHTMLWINDOW2_ONFOCUS                           =  DISPID_EVPROP_ONFOCUS ;
+  DISPID_IHTMLWINDOW2_ONBLUR                            =  DISPID_EVPROP_ONBLUR  ;
+  DISPID_IHTMLWINDOW2_ONLOAD                            =  DISPID_EVPROP_ONLOAD ;
+  DISPID_IHTMLWINDOW2_ONBEFOREUNLOAD                    =  DISPID_EVPROP_ONBEFOREUNLOAD ;
+  DISPID_IHTMLWINDOW2_ONUNLOAD                          =  DISPID_EVPROP_ONUNLOAD ;
+  DISPID_IHTMLWINDOW2_ONHELP                            =  DISPID_EVPROP_ONHELP ;
+  DISPID_IHTMLWINDOW2_ONERROR                           =  DISPID_EVPROP_ONERROR ;
+  DISPID_IHTMLWINDOW2_ONRESIZE                          =  DISPID_EVPROP_ONRESIZE ;
+  DISPID_IHTMLWINDOW2_ONSCROLL                          =  DISPID_EVPROP_ONSCROLL ;
+  DISPID_IHTMLWINDOW2_DOCUMENT                           =   1151 ;
+  DISPID_IHTMLWINDOW2_EVENT                              =   1152 ;
+  DISPID_IHTMLWINDOW2__NEWENUM                           =   1153 ;
+  DISPID_IHTMLWINDOW2_SHOWMODALDIALOG                    =   1154 ;
+  DISPID_IHTMLWINDOW2_SHOWHELP                            =  1155 ;
+  DISPID_IHTMLWINDOW2_SCREEN                              =  1156 ;
+  DISPID_IHTMLWINDOW2_OPTION                             =   1157;
+  DISPID_IHTMLWINDOW2_FOCUS                              =   1158 ;
+  DISPID_IHTMLWINDOW2_CLOSED                             =   23   ;
+  DISPID_IHTMLWINDOW2_BLUR                                =  1159 ;
+  DISPID_IHTMLWINDOW2_SCROLL                              =  1160 ;
+  DISPID_IHTMLWINDOW2_CLIENTINFORMATION                  =   1161 ;
+  DISPID_IHTMLWINDOW2_SETINTERVAL                         =  1173 ;
+  DISPID_IHTMLWINDOW2_CLEARINTERVAL                       =  1163 ;
+  DISPID_IHTMLWINDOW2_OFFSCREENBUFFERING                  =  1164 ;
+  DISPID_IHTMLWINDOW2_EXECSCRIPT                          =  1165 ;
+  DISPID_IHTMLWINDOW2_TOSTRING                            =  1166 ;
+  DISPID_IHTMLWINDOW2_SCROLLBY                            =  1167 ;
+  DISPID_IHTMLWINDOW2_SCROLLTO                            =  1168 ;
+  DISPID_IHTMLWINDOW2_MOVETO                              =  6 ;
+  DISPID_IHTMLWINDOW2_MOVEBY                              =  7 ;
+  DISPID_IHTMLWINDOW2_RESIZETO                            =  9 ;
+  DISPID_IHTMLWINDOW2_RESIZEBY                            =  8 ;
+  DISPID_IHTMLWINDOW2_EXTERNAL                            =  1169 ;
+
+//    DISPIDs for interface IHTMLWindow3
+
+  DISPID_IHTMLWINDOW3_SCREENLEFT                         =   1170;
+  DISPID_IHTMLWINDOW3_SCREENTOP                         =    1171;
+  DISPID_IHTMLWINDOW3_ATTACHEVENT                       =  DISPID_HTMLOBJECT+7 ;
+  DISPID_IHTMLWINDOW3_DETACHEVENT                       =  DISPID_HTMLOBJECT+8;
+  DISPID_IHTMLWINDOW3_SETTIMEOUT                         =   1103 ;
+  DISPID_IHTMLWINDOW3_SETINTERVAL                        =   1162 ;
+  DISPID_IHTMLWINDOW3_PRINT                              =   1174 ;
+  DISPID_IHTMLWINDOW3_ONBEFOREPRINT                     =  DISPID_EVPROP_ONBEFOREPRINT ;
+  DISPID_IHTMLWINDOW3_ONAFTERPRINT                      =  DISPID_EVPROP_ONAFTERPRINT ;
+  DISPID_IHTMLWINDOW3_CLIPBOARDDATA                      =   1175 ;
+  DISPID_IHTMLWINDOW3_SHOWMODELESSDIALOG                 =   1176 ;
+
+//    DISPIDs for interface IHTMLWindow4
+
+  DISPID_IHTMLWINDOW4_CREATEPOPUP                         =  1180;
+  DISPID_IHTMLWINDOW4_FRAMEELEMENT                        =  1181;
+
+
+
+//    DISPIDs for event set HTMLWindowEvents2
+
+  DISPID_HTMLWINDOWEVENTS2_ONLOAD                  =         DISPID_EVMETH_ONLOAD;
+  DISPID_HTMLWINDOWEVENTS2_ONUNLOAD                =         DISPID_EVMETH_ONUNLOAD;
+  DISPID_HTMLWINDOWEVENTS2_ONHELP                  =         DISPID_EVMETH_ONHELP;
+  DISPID_HTMLWINDOWEVENTS2_ONFOCUS                 =         DISPID_EVMETH_ONFOCUS;
+  DISPID_HTMLWINDOWEVENTS2_ONBLUR                  =         DISPID_EVMETH_ONBLUR;
+  DISPID_HTMLWINDOWEVENTS2_ONERROR                 =         DISPID_EVMETH_ONERROR;
+  DISPID_HTMLWINDOWEVENTS2_ONRESIZE                =         DISPID_EVMETH_ONRESIZE;
+  DISPID_HTMLWINDOWEVENTS2_ONSCROLL                =         DISPID_EVMETH_ONSCROLL;
+  DISPID_HTMLWINDOWEVENTS2_ONBEFOREUNLOAD          =         DISPID_EVMETH_ONBEFOREUNLOAD;
+  DISPID_HTMLWINDOWEVENTS2_ONBEFOREPRINT           =         DISPID_EVMETH_ONBEFOREPRINT;
+  DISPID_HTMLWINDOWEVENTS2_ONAFTERPRINT            =         DISPID_EVMETH_ONAFTERPRINT;
+
+//    DISPIDs for event set HTMLWindowEvents
+
+  DISPID_HTMLWINDOWEVENTS_ONLOAD                   =         DISPID_EVMETH_ONLOAD;
+  DISPID_HTMLWINDOWEVENTS_ONUNLOAD                 =         DISPID_EVMETH_ONUNLOAD;
+  DISPID_HTMLWINDOWEVENTS_ONHELP                   =         DISPID_EVMETH_ONHELP;
+  DISPID_HTMLWINDOWEVENTS_ONFOCUS                  =         DISPID_EVMETH_ONFOCUS;
+  DISPID_HTMLWINDOWEVENTS_ONBLUR                   =         DISPID_EVMETH_ONBLUR;
+  DISPID_HTMLWINDOWEVENTS_ONERROR                  =         DISPID_EVMETH_ONERROR;
+  DISPID_HTMLWINDOWEVENTS_ONRESIZE                 =         DISPID_EVMETH_ONRESIZE;
+  DISPID_HTMLWINDOWEVENTS_ONSCROLL                 =         DISPID_EVMETH_ONSCROLL;
+  DISPID_HTMLWINDOWEVENTS_ONBEFOREUNLOAD           =         DISPID_EVMETH_ONBEFOREUNLOAD;
+  DISPID_HTMLWINDOWEVENTS_ONBEFOREPRINT            =         DISPID_EVMETH_ONBEFOREPRINT;
+  DISPID_HTMLWINDOWEVENTS_ONAFTERPRINT             =         DISPID_EVMETH_ONAFTERPRINT;
+
+//    DISPIDs for interface IHTMLDocument
+
+  DISPID_IHTMLDOCUMENT_SCRIPT                           =  DISPID_OMDOCUMENT+1;
+
+//    DISPIDs for interface IHTMLDocument2
+
+  DISPID_IHTMLDOCUMENT2_ALL                             =  DISPID_OMDOCUMENT+3;
+  DISPID_IHTMLDOCUMENT2_BODY                            =  DISPID_OMDOCUMENT+4 ;
+  DISPID_IHTMLDOCUMENT2_ACTIVEELEMENT                   =  DISPID_OMDOCUMENT+5 ;
+  DISPID_IHTMLDOCUMENT2_IMAGES                          =  DISPID_OMDOCUMENT+11 ;
+  DISPID_IHTMLDOCUMENT2_APPLETS                         =  DISPID_OMDOCUMENT+8  ;
+  DISPID_IHTMLDOCUMENT2_LINKS                           =  DISPID_OMDOCUMENT+9  ;
+  DISPID_IHTMLDOCUMENT2_FORMS                           =  DISPID_OMDOCUMENT+10 ;
+  DISPID_IHTMLDOCUMENT2_ANCHORS                         =  DISPID_OMDOCUMENT+7 ;
+  DISPID_IHTMLDOCUMENT2_TITLE                           =  DISPID_OMDOCUMENT+12 ;
+  DISPID_IHTMLDOCUMENT2_SCRIPTS                         =  DISPID_OMDOCUMENT+13;
+  DISPID_IHTMLDOCUMENT2_DESIGNMODE                      =  DISPID_OMDOCUMENT+14 ;
+  DISPID_IHTMLDOCUMENT2_SELECTION                       =  DISPID_OMDOCUMENT+17 ;
+  DISPID_IHTMLDOCUMENT2_READYSTATE                      =  DISPID_OMDOCUMENT+18 ;
+  DISPID_IHTMLDOCUMENT2_FRAMES                          =  DISPID_OMDOCUMENT+19 ;
+  DISPID_IHTMLDOCUMENT2_EMBEDS                          =  DISPID_OMDOCUMENT+15 ;
+  DISPID_IHTMLDOCUMENT2_PLUGINS                         =  DISPID_OMDOCUMENT+21 ;
+  DISPID_IHTMLDOCUMENT2_ALINKCOLOR                      =  DISPID_OMDOCUMENT+22 ;
+  DISPID_IHTMLDOCUMENT2_BGCOLOR                         =  DISPID_BACKCOLOR ;
+  DISPID_IHTMLDOCUMENT2_FGCOLOR                         =  DISPID_A_COLOR ;
+  DISPID_IHTMLDOCUMENT2_LINKCOLOR                       =  DISPID_OMDOCUMENT+24 ;
+  DISPID_IHTMLDOCUMENT2_VLINKCOLOR                      =  DISPID_OMDOCUMENT+23;
+  DISPID_IHTMLDOCUMENT2_REFERRER                        =  DISPID_OMDOCUMENT+27 ;
+  DISPID_IHTMLDOCUMENT2_LOCATION                        =  DISPID_OMDOCUMENT+26 ;
+  DISPID_IHTMLDOCUMENT2_LASTMODIFIED                    =  DISPID_OMDOCUMENT+28 ;
+  DISPID_IHTMLDOCUMENT2_URL                             =  DISPID_OMDOCUMENT+25 ;
+  DISPID_IHTMLDOCUMENT2_DOMAIN                          =  DISPID_OMDOCUMENT+29 ;
+  DISPID_IHTMLDOCUMENT2_COOKIE                          =  DISPID_OMDOCUMENT+30 ;
+  DISPID_IHTMLDOCUMENT2_EXPANDO                         =  DISPID_OMDOCUMENT+31 ;
+  DISPID_IHTMLDOCUMENT2_CHARSET                         =  DISPID_OMDOCUMENT+32 ;
+  DISPID_IHTMLDOCUMENT2_DEFAULTCHARSET                  =  DISPID_OMDOCUMENT+33 ;
+  DISPID_IHTMLDOCUMENT2_MIMETYPE                        =  DISPID_OMDOCUMENT+41 ;
+  DISPID_IHTMLDOCUMENT2_FILESIZE                        =  DISPID_OMDOCUMENT+42 ;
+  DISPID_IHTMLDOCUMENT2_FILECREATEDDATE                 =  DISPID_OMDOCUMENT+43;
+  DISPID_IHTMLDOCUMENT2_FILEMODIFIEDDATE                =  DISPID_OMDOCUMENT+44 ;
+  DISPID_IHTMLDOCUMENT2_FILEUPDATEDDATE                 =  DISPID_OMDOCUMENT+45 ;
+  DISPID_IHTMLDOCUMENT2_SECURITY                        =  DISPID_OMDOCUMENT+46 ;
+  DISPID_IHTMLDOCUMENT2_PROTOCOL                        =  DISPID_OMDOCUMENT+47 ;
+  DISPID_IHTMLDOCUMENT2_NAMEPROP                        =  DISPID_OMDOCUMENT+48 ;
+  DISPID_IHTMLDOCUMENT2_WRITE                           =  DISPID_OMDOCUMENT+54 ;
+  DISPID_IHTMLDOCUMENT2_WRITELN                         =  DISPID_OMDOCUMENT+55 ;
+  DISPID_IHTMLDOCUMENT2_OPEN                            =  DISPID_OMDOCUMENT+56 ;
+  DISPID_IHTMLDOCUMENT2_CLOSE                           =  DISPID_OMDOCUMENT+57 ;
+  DISPID_IHTMLDOCUMENT2_CLEAR                           =  DISPID_OMDOCUMENT+58 ;
+  DISPID_IHTMLDOCUMENT2_QUERYCOMMANDSUPPORTED           =    DISPID_OMDOCUMENT+59 ;
+  DISPID_IHTMLDOCUMENT2_QUERYCOMMANDENABLED             =  DISPID_OMDOCUMENT+60 ;
+  DISPID_IHTMLDOCUMENT2_QUERYCOMMANDSTATE               =  DISPID_OMDOCUMENT+61 ;
+  DISPID_IHTMLDOCUMENT2_QUERYCOMMANDINDETERM            =  DISPID_OMDOCUMENT+62 ;
+  DISPID_IHTMLDOCUMENT2_QUERYCOMMANDTEXT                =  DISPID_OMDOCUMENT+63 ;
+  DISPID_IHTMLDOCUMENT2_QUERYCOMMANDVALUE               =  DISPID_OMDOCUMENT+64 ;
+  DISPID_IHTMLDOCUMENT2_EXECCOMMAND                     =  DISPID_OMDOCUMENT+65 ;
+  DISPID_IHTMLDOCUMENT2_EXECCOMMANDSHOWHELP             =  DISPID_OMDOCUMENT+66 ;
+  DISPID_IHTMLDOCUMENT2_CREATEELEMENT                   =  DISPID_OMDOCUMENT+67 ;
+  DISPID_IHTMLDOCUMENT2_ONHELP                          =  DISPID_EVPROP_ONHELP ;
+  DISPID_IHTMLDOCUMENT2_ONCLICK                         =  DISPID_EVPROP_ONCLICK ;
+  DISPID_IHTMLDOCUMENT2_ONDBLCLICK                      =  DISPID_EVPROP_ONDBLCLICK ;
+  DISPID_IHTMLDOCUMENT2_ONKEYUP                         =  DISPID_EVPROP_ONKEYUP ;
+  DISPID_IHTMLDOCUMENT2_ONKEYDOWN                       =  DISPID_EVPROP_ONKEYDOWN ;
+  DISPID_IHTMLDOCUMENT2_ONKEYPRESS                      =  DISPID_EVPROP_ONKEYPRESS ;
+  DISPID_IHTMLDOCUMENT2_ONMOUSEUP                       =  DISPID_EVPROP_ONMOUSEUP ;
+  DISPID_IHTMLDOCUMENT2_ONMOUSEDOWN                     =  DISPID_EVPROP_ONMOUSEDOWN  ;
+  DISPID_IHTMLDOCUMENT2_ONMOUSEMOVE                     =  DISPID_EVPROP_ONMOUSEMOVE ;
+  DISPID_IHTMLDOCUMENT2_ONMOUSEOUT                      =  DISPID_EVPROP_ONMOUSEOUT ;
+  DISPID_IHTMLDOCUMENT2_ONMOUSEOVER                     =  DISPID_EVPROP_ONMOUSEOVER ;
+  DISPID_IHTMLDOCUMENT2_ONREADYSTATECHANGE              =  DISPID_EVPROP_ONREADYSTATECHANGE;
+  DISPID_IHTMLDOCUMENT2_ONAFTERUPDATE                   =  DISPID_EVPROP_ONAFTERUPDATE ;
+  DISPID_IHTMLDOCUMENT2_ONROWEXIT                       =  DISPID_EVPROP_ONROWEXIT ;
+  DISPID_IHTMLDOCUMENT2_ONROWENTER                      =  DISPID_EVPROP_ONROWENTER ;
+  DISPID_IHTMLDOCUMENT2_ONDRAGSTART                     =  DISPID_EVPROP_ONDRAGSTART ;
+  DISPID_IHTMLDOCUMENT2_ONSELECTSTART                   =  DISPID_EVPROP_ONSELECTSTART ;
+  DISPID_IHTMLDOCUMENT2_ELEMENTFROMPOINT                =  DISPID_OMDOCUMENT+68 ;
+  DISPID_IHTMLDOCUMENT2_PARENTWINDOW                    =  DISPID_OMDOCUMENT+34 ;
+  DISPID_IHTMLDOCUMENT2_STYLESHEETS                     =  DISPID_OMDOCUMENT+69 ;
+  DISPID_IHTMLDOCUMENT2_ONBEFOREUPDATE                  =  DISPID_EVPROP_ONBEFOREUPDATE;
+  DISPID_IHTMLDOCUMENT2_ONERRORUPDATE                   =  DISPID_EVPROP_ONERRORUPDATE ;
+  DISPID_IHTMLDOCUMENT2_TOSTRING                        =  DISPID_OMDOCUMENT+70;
+  DISPID_IHTMLDOCUMENT2_CREATESTYLESHEET                =  DISPID_OMDOCUMENT+71 ;
+
+//    DISPIDs for interface IHTMLDocument3
+
+  DISPID_IHTMLDOCUMENT3_RELEASECAPTURE                  =  DISPID_OMDOCUMENT+72;
+  DISPID_IHTMLDOCUMENT3_RECALC                          =  DISPID_OMDOCUMENT+73 ;
+  DISPID_IHTMLDOCUMENT3_CREATETEXTNODE                  =  DISPID_OMDOCUMENT+74 ;
+  DISPID_IHTMLDOCUMENT3_DOCUMENTELEMENT                 =  DISPID_OMDOCUMENT+75 ;
+  DISPID_IHTMLDOCUMENT3_UNIQUEID                        =  DISPID_OMDOCUMENT+77 ;
+  DISPID_IHTMLDOCUMENT3_ATTACHEVENT                     =  DISPID_HTMLOBJECT+7  ;
+  DISPID_IHTMLDOCUMENT3_DETACHEVENT                     =  DISPID_HTMLOBJECT+8 ;
+  DISPID_IHTMLDOCUMENT3_ONROWSDELETE                    =  DISPID_EVPROP_ONROWSDELETE ;
+  DISPID_IHTMLDOCUMENT3_ONROWSINSERTED                  =  DISPID_EVPROP_ONROWSINSERTED ;
+  DISPID_IHTMLDOCUMENT3_ONCELLCHANGE                    =  DISPID_EVPROP_ONCELLCHANGE ;
+  DISPID_IHTMLDOCUMENT3_ONDATASETCHANGED                =  DISPID_EVPROP_ONDATASETCHANGED ;
+  DISPID_IHTMLDOCUMENT3_ONDATAAVAILABLE                 =  DISPID_EVPROP_ONDATAAVAILABLE ;
+  DISPID_IHTMLDOCUMENT3_ONDATASETCOMPLETE               =  DISPID_EVPROP_ONDATASETCOMPLETE ;
+  DISPID_IHTMLDOCUMENT3_ONPROPERTYCHANGE                =  DISPID_EVPROP_ONPROPERTYCHANGE ;
+  DISPID_IHTMLDOCUMENT3_DIR                             =  DISPID_A_DIR ;
+  DISPID_IHTMLDOCUMENT3_ONCONTEXTMENU                   =  DISPID_EVPROP_ONCONTEXTMENU ;
+  DISPID_IHTMLDOCUMENT3_ONSTOP                          =  DISPID_EVPROP_ONSTOP  ;
+  DISPID_IHTMLDOCUMENT3_CREATEDOCUMENTFRAGMENT          =    DISPID_OMDOCUMENT+76  ;
+  DISPID_IHTMLDOCUMENT3_PARENTDOCUMENT                  =  DISPID_OMDOCUMENT+78  ;
+  DISPID_IHTMLDOCUMENT3_ENABLEDOWNLOAD                  =  DISPID_OMDOCUMENT+79  ;
+  DISPID_IHTMLDOCUMENT3_BASEURL                         =  DISPID_OMDOCUMENT+80  ;
+  DISPID_IHTMLDOCUMENT3_CHILDNODES                      =  DISPID_OMDOCUMENT+81 ;
+  DISPID_IHTMLDOCUMENT3_INHERITSTYLESHEETS              =  DISPID_OMDOCUMENT+82 ;
+  DISPID_IHTMLDOCUMENT3_ONBEFOREEDITFOCUS               =  DISPID_EVPROP_ONBEFOREEDITFOCUS;
+  DISPID_IHTMLDOCUMENT3_GETELEMENTSBYNAME               =  DISPID_OMDOCUMENT+86;
+  DISPID_IHTMLDOCUMENT3_GETELEMENTBYID                  =  DISPID_OMDOCUMENT+88;
+  DISPID_IHTMLDOCUMENT3_GETELEMENTSBYTAGNAME            =  DISPID_OMDOCUMENT+87 ;
+
+//    DISPIDs for interface IHTMLDocument4
+
+  DISPID_IHTMLDOCUMENT4_FOCUS                           =  DISPID_OMDOCUMENT+89 ;
+  DISPID_IHTMLDOCUMENT4_HASFOCUS                        =  DISPID_OMDOCUMENT+90 ;
+  DISPID_IHTMLDOCUMENT4_ONSELECTIONCHANGE               =  DISPID_EVPROP_ONSELECTIONCHANGE;
+  DISPID_IHTMLDOCUMENT4_NAMESPACES                      =  DISPID_OMDOCUMENT+91 ;
+  DISPID_IHTMLDOCUMENT4_CREATEDOCUMENTFROMURL           =    DISPID_OMDOCUMENT+92 ;
+  DISPID_IHTMLDOCUMENT4_MEDIA                           =  DISPID_OMDOCUMENT+93 ;
+  DISPID_IHTMLDOCUMENT4_CREATEEVENTOBJECT               =  DISPID_OMDOCUMENT+94 ;
+  DISPID_IHTMLDOCUMENT4_FIREEVENT                       =  DISPID_OMDOCUMENT+95 ;
+  DISPID_IHTMLDOCUMENT4_CREATERENDERSTYLE               =  DISPID_OMDOCUMENT+96 ;
+  DISPID_IHTMLDOCUMENT4_ONCONTROLSELECT                 =  DISPID_EVPROP_ONCONTROLSELECT  ;
+  DISPID_IHTMLDOCUMENT4_URLUNENCODED                    =  DISPID_OMDOCUMENT+97 ;
+
+//    DISPIDs for event set HTMLDocumentEvents2
+
+  DISPID_HTMLDOCUMENTEVENTS2_ONHELP                     =  DISPID_EVMETH_ONHELP ;
+  DISPID_HTMLDOCUMENTEVENTS2_ONCLICK                    =  DISPID_EVMETH_ONCLICK ;
+  DISPID_HTMLDOCUMENTEVENTS2_ONDBLCLICK                 =  DISPID_EVMETH_ONDBLCLICK;
+  DISPID_HTMLDOCUMENTEVENTS2_ONKEYDOWN                  =  DISPID_EVMETH_ONKEYDOWN ;
+  DISPID_HTMLDOCUMENTEVENTS2_ONKEYUP                    =  DISPID_EVMETH_ONKEYUP ;
+  DISPID_HTMLDOCUMENTEVENTS2_ONKEYPRESS                 =  DISPID_EVMETH_ONKEYPRESS ;
+  DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEDOWN                =  DISPID_EVMETH_ONMOUSEDOWN ;
+  DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEMOVE                =  DISPID_EVMETH_ONMOUSEMOVE ;
+  DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEUP                  =  DISPID_EVMETH_ONMOUSEUP ;
+  DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEOUT                 =  DISPID_EVMETH_ONMOUSEOUT ;
+  DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEOVER                =  DISPID_EVMETH_ONMOUSEOVER;
+  DISPID_HTMLDOCUMENTEVENTS2_ONREADYSTATECHANGE         =    DISPID_EVMETH_ONREADYSTATECHANGE ;
+  DISPID_HTMLDOCUMENTEVENTS2_ONBEFOREUPDATE             =  DISPID_EVMETH_ONBEFOREUPDATE;
+  DISPID_HTMLDOCUMENTEVENTS2_ONAFTERUPDATE              =  DISPID_EVMETH_ONAFTERUPDATE;
+  DISPID_HTMLDOCUMENTEVENTS2_ONROWEXIT                  =  DISPID_EVMETH_ONROWEXIT;
+  DISPID_HTMLDOCUMENTEVENTS2_ONROWENTER                 =  DISPID_EVMETH_ONROWENTER ;
+  DISPID_HTMLDOCUMENTEVENTS2_ONDRAGSTART                =  DISPID_EVMETH_ONDRAGSTART ;
+  DISPID_HTMLDOCUMENTEVENTS2_ONSELECTSTART              =  DISPID_EVMETH_ONSELECTSTART ;
+  DISPID_HTMLDOCUMENTEVENTS2_ONERRORUPDATE              =  DISPID_EVMETH_ONERRORUPDATE ;
+  DISPID_HTMLDOCUMENTEVENTS2_ONCONTEXTMENU              =  DISPID_EVMETH_ONCONTEXTMENU ;
+  DISPID_HTMLDOCUMENTEVENTS2_ONSTOP                     =  DISPID_EVMETH_ONSTOP ;
+  DISPID_HTMLDOCUMENTEVENTS2_ONROWSDELETE               =  DISPID_EVMETH_ONROWSDELETE;
+  DISPID_HTMLDOCUMENTEVENTS2_ONROWSINSERTED             =  DISPID_EVMETH_ONROWSINSERTED ;
+  DISPID_HTMLDOCUMENTEVENTS2_ONCELLCHANGE               =  DISPID_EVMETH_ONCELLCHANGE ;
+  DISPID_HTMLDOCUMENTEVENTS2_ONPROPERTYCHANGE           =    DISPID_EVMETH_ONPROPERTYCHANGE ;
+  DISPID_HTMLDOCUMENTEVENTS2_ONDATASETCHANGED           =    DISPID_EVMETH_ONDATASETCHANGED ;
+  DISPID_HTMLDOCUMENTEVENTS2_ONDATAAVAILABLE            =  DISPID_EVMETH_ONDATAAVAILABLE;
+  DISPID_HTMLDOCUMENTEVENTS2_ONDATASETCOMPLETE           =   DISPID_EVMETH_ONDATASETCOMPLETE;
+  DISPID_HTMLDOCUMENTEVENTS2_ONBEFOREEDITFOCUS           =   DISPID_EVMETH_ONBEFOREEDITFOCUS ;
+  DISPID_HTMLDOCUMENTEVENTS2_ONSELECTIONCHANGE          =    DISPID_EVMETH_ONSELECTIONCHANGE ;
+  DISPID_HTMLDOCUMENTEVENTS2_ONCONTROLSELECT            =  DISPID_EVMETH_ONCONTROLSELECT ;
+
+//    DISPIDs for event set HTMLDocumentEvents
+
+  DISPID_HTMLDOCUMENTEVENTS_ONHELP                      =  DISPID_EVMETH_ONHELP ;
+  DISPID_HTMLDOCUMENTEVENTS_ONCLICK                     =  DISPID_EVMETH_ONCLICK ;
+  DISPID_HTMLDOCUMENTEVENTS_ONDBLCLICK                  =  DISPID_EVMETH_ONDBLCLICK ;
+  DISPID_HTMLDOCUMENTEVENTS_ONKEYDOWN                   =  DISPID_EVMETH_ONKEYDOWN ;
+  DISPID_HTMLDOCUMENTEVENTS_ONKEYUP                     =  DISPID_EVMETH_ONKEYUP;
+  DISPID_HTMLDOCUMENTEVENTS_ONKEYPRESS                  =  DISPID_EVMETH_ONKEYPRESS ;
+  DISPID_HTMLDOCUMENTEVENTS_ONMOUSEDOWN                 =  DISPID_EVMETH_ONMOUSEDOWN ;
+  DISPID_HTMLDOCUMENTEVENTS_ONMOUSEMOVE                 =  DISPID_EVMETH_ONMOUSEMOVE ;
+  DISPID_HTMLDOCUMENTEVENTS_ONMOUSEUP                   =  DISPID_EVMETH_ONMOUSEUP;
+  DISPID_HTMLDOCUMENTEVENTS_ONMOUSEOUT                  =  DISPID_EVMETH_ONMOUSEOUT ;
+  DISPID_HTMLDOCUMENTEVENTS_ONMOUSEOVER                 =  DISPID_EVMETH_ONMOUSEOVER ;
+  DISPID_HTMLDOCUMENTEVENTS_ONREADYSTATECHANGE          =    DISPID_EVMETH_ONREADYSTATECHANGE;
+  DISPID_HTMLDOCUMENTEVENTS_ONBEFOREUPDATE              =  DISPID_EVMETH_ONBEFOREUPDATE;
+  DISPID_HTMLDOCUMENTEVENTS_ONAFTERUPDATE               =  DISPID_EVMETH_ONAFTERUPDATE;
+  DISPID_HTMLDOCUMENTEVENTS_ONROWEXIT                   =  DISPID_EVMETH_ONROWEXIT;
+  DISPID_HTMLDOCUMENTEVENTS_ONROWENTER                  =  DISPID_EVMETH_ONROWENTER ;
+  DISPID_HTMLDOCUMENTEVENTS_ONDRAGSTART                 =  DISPID_EVMETH_ONDRAGSTART ;
+  DISPID_HTMLDOCUMENTEVENTS_ONSELECTSTART               =  DISPID_EVMETH_ONSELECTSTART ;
+  DISPID_HTMLDOCUMENTEVENTS_ONERRORUPDATE               =  DISPID_EVMETH_ONERRORUPDATE ;
+  DISPID_HTMLDOCUMENTEVENTS_ONCONTEXTMENU               =  DISPID_EVMETH_ONCONTEXTMENU ;
+  DISPID_HTMLDOCUMENTEVENTS_ONSTOP                      =  DISPID_EVMETH_ONSTOP ;
+  DISPID_HTMLDOCUMENTEVENTS_ONROWSDELETE                =  DISPID_EVMETH_ONROWSDELETE ;
+  DISPID_HTMLDOCUMENTEVENTS_ONROWSINSERTED              =  DISPID_EVMETH_ONROWSINSERTED ;
+  DISPID_HTMLDOCUMENTEVENTS_ONCELLCHANGE                =  DISPID_EVMETH_ONCELLCHANGE;
+  DISPID_HTMLDOCUMENTEVENTS_ONPROPERTYCHANGE            =  DISPID_EVMETH_ONPROPERTYCHANGE ;
+  DISPID_HTMLDOCUMENTEVENTS_ONDATASETCHANGED            =  DISPID_EVMETH_ONDATASETCHANGED ;
+  DISPID_HTMLDOCUMENTEVENTS_ONDATAAVAILABLE             =  DISPID_EVMETH_ONDATAAVAILABLE ;
+  DISPID_HTMLDOCUMENTEVENTS_ONDATASETCOMPLETE           =    DISPID_EVMETH_ONDATASETCOMPLETE ;
+  DISPID_HTMLDOCUMENTEVENTS_ONBEFOREEDITFOCUS           =    DISPID_EVMETH_ONBEFOREEDITFOCUS ;
+  DISPID_HTMLDOCUMENTEVENTS_ONSELECTIONCHANGE            =   DISPID_EVMETH_ONSELECTIONCHANGE ;
+  DISPID_HTMLDOCUMENTEVENTS_ONCONTROLSELECT             =  DISPID_EVMETH_ONCONTROLSELECT;
+
+//    DISPIDs for interface IWebBridge
+
+  DISPID_IWEBBRIDGE_URL                                 =    1;
+  DISPID_IWEBBRIDGE_SCROLLBAR                           =    2 ;
+  DISPID_IWEBBRIDGE_EMBED                               =    3 ;
+  DISPID_IWEBBRIDGE_EVENT                               =  DISPID_IHTMLWINDOW2_EVENT ;
+  DISPID_IWEBBRIDGE_READYSTATE                          =  DISPID_READYSTATE;
+  DISPID_IWEBBRIDGE_ABOUTBOX                            =  DISPID_ABOUTBOX ;
+
+//    DISPIDs for interface IWBScriptControl
+
+  DISPID_IWBSCRIPTCONTROL_RAISEEVENT                     =   1 ;
+  DISPID_IWBSCRIPTCONTROL_BUBBLEEVENT                    =   2 ;
+  DISPID_IWBSCRIPTCONTROL_SETCONTEXTMENU                  =  3 ;
+  DISPID_IWBSCRIPTCONTROL_SELECTABLECONTENT               =  4 ;
+  DISPID_IWBSCRIPTCONTROL_FROZEN                          =  5 ;
+  DISPID_IWBSCRIPTCONTROL_SCROLLBAR                       =  7 ;
+  DISPID_IWBSCRIPTCONTROL_VERSION                         =  8 ;
+  DISPID_IWBSCRIPTCONTROL_VISIBILITY                      =  9 ;
+  DISPID_IWBSCRIPTCONTROL_ONVISIBILITYCHANGE              =  10 ;
+
+//    DISPIDs for event set DWebBridgeEvents
+
+  DISPID_DWEBBRIDGEEVENTS_ONSCRIPTLETEVENT               =   1;
+  DISPID_DWEBBRIDGEEVENTS_ONREADYSTATECHANGE            =  DISPID_HTMLDOCUMENTEVENTS_ONREADYSTATECHANGE ;
+  DISPID_DWEBBRIDGEEVENTS_ONCLICK                       =  DISPID_HTMLDOCUMENTEVENTS_ONCLICK;
+  DISPID_DWEBBRIDGEEVENTS_ONDBLCLICK                    =  DISPID_HTMLDOCUMENTEVENTS_ONDBLCLICK ;
+  DISPID_DWEBBRIDGEEVENTS_ONKEYDOWN                     =  DISPID_HTMLDOCUMENTEVENTS_ONKEYDOWN ;
+  DISPID_DWEBBRIDGEEVENTS_ONKEYUP                       =  DISPID_HTMLDOCUMENTEVENTS_ONKEYUP;
+  DISPID_DWEBBRIDGEEVENTS_ONKEYPRESS                    =  DISPID_HTMLDOCUMENTEVENTS_ONKEYPRESS ;
+  DISPID_DWEBBRIDGEEVENTS_ONMOUSEDOWN                   =  DISPID_HTMLDOCUMENTEVENTS_ONMOUSEDOWN ;
+  DISPID_DWEBBRIDGEEVENTS_ONMOUSEMOVE                   =  DISPID_HTMLDOCUMENTEVENTS_ONMOUSEMOVE ;
+  DISPID_DWEBBRIDGEEVENTS_ONMOUSEUP                     =  DISPID_HTMLDOCUMENTEVENTS_ONMOUSEUP ;
+
+//    DISPIDs for interface IHTMLEmbedElement
+
+  DISPID_IHTMLEMBEDELEMENT_HIDDEN                       =  DISPID_OBJECT+10 ;
+  DISPID_IHTMLEMBEDELEMENT_PALETTE                      =  DISPID_OBJECT+4 ;
+  DISPID_IHTMLEMBEDELEMENT_PLUGINSPAGE                  =  DISPID_OBJECT+5 ;
+  DISPID_IHTMLEMBEDELEMENT_SRC                          =  DISPID_OBJECT+6 ;
+  DISPID_IHTMLEMBEDELEMENT_UNITS                        =  DISPID_OBJECT+8 ;
+  DISPID_IHTMLEMBEDELEMENT_NAME                          =   STDPROPID_XOBJ_NAME ;
+  DISPID_IHTMLEMBEDELEMENT_WIDTH                         =   STDPROPID_XOBJ_WIDTH ;
+  DISPID_IHTMLEMBEDELEMENT_HEIGHT                         =  STDPROPID_XOBJ_HEIGHT  ;
+
+//    DISPIDs for interface IHTMLAreasCollection
+
+  DISPID_IHTMLAREASCOLLECTION_LENGTH                    =  DISPID_COLLECTION ;
+  DISPID_IHTMLAREASCOLLECTION__NEWENUM                  =  DISPID_NEWENUM ;
+  DISPID_IHTMLAREASCOLLECTION_ITEM                      =  DISPID_VALUE ;
+  DISPID_IHTMLAREASCOLLECTION_TAGS                      =  DISPID_COLLECTION+2 ;
+  DISPID_IHTMLAREASCOLLECTION_ADD                       =  DISPID_COLLECTION+3 ;
+  DISPID_IHTMLAREASCOLLECTION_REMOVE                    =  DISPID_COLLECTION+4 ;
+
+//    DISPIDs for interface IHTMLAreasCollection2
+
+  DISPID_IHTMLAREASCOLLECTION2_URNS                     =  DISPID_COLLECTION+5 ;
+
+//    DISPIDs for interface IHTMLMapElement
+
+  DISPID_IHTMLMAPELEMENT_AREAS                          =  DISPID_MAP+2 ;
+  DISPID_IHTMLMAPELEMENT_NAME                            =   STDPROPID_XOBJ_NAME ;
+
+//    DISPIDs for interface IHTMLAreaElement
+
+  DISPID_IHTMLAREAELEMENT_SHAPE                         =  DISPID_AREA+1 ;
+  DISPID_IHTMLAREAELEMENT_COORDS                        =  DISPID_AREA+2;
+  DISPID_IHTMLAREAELEMENT_HREF                          =  DISPID_VALUE ;
+  DISPID_IHTMLAREAELEMENT_TARGET                        =  DISPID_AREA+4;
+  DISPID_IHTMLAREAELEMENT_ALT                           =  DISPID_AREA+5;
+  DISPID_IHTMLAREAELEMENT_NOHREF                        =  DISPID_AREA+6 ;
+  DISPID_IHTMLAREAELEMENT_HOST                          =  DISPID_AREA+7 ;
+  DISPID_IHTMLAREAELEMENT_HOSTNAME                      =  DISPID_AREA+8 ;
+  DISPID_IHTMLAREAELEMENT_PATHNAME                      =  DISPID_AREA+9  ;
+  DISPID_IHTMLAREAELEMENT_PORT                          =  DISPID_AREA+10 ;
+  DISPID_IHTMLAREAELEMENT_PROTOCOL                      =  DISPID_AREA+11 ;
+  DISPID_IHTMLAREAELEMENT_SEARCH                        =  DISPID_AREA+12;
+  DISPID_IHTMLAREAELEMENT_HASH                          =  DISPID_AREA+13;
+  DISPID_IHTMLAREAELEMENT_ONBLUR                        =  DISPID_EVPROP_ONBLUR ;
+  DISPID_IHTMLAREAELEMENT_ONFOCUS                       =  DISPID_EVPROP_ONFOCUS;
+  DISPID_IHTMLAREAELEMENT_TABINDEX                      =    STDPROPID_XOBJ_TABINDEX ;
+  DISPID_IHTMLAREAELEMENT_FOCUS                         =  DISPID_SITE+0;
+  DISPID_IHTMLAREAELEMENT_BLUR                          =  DISPID_SITE+2 ;
+
+//    DISPIDs for interface IHTMLTableCaption
+
+  DISPID_IHTMLTABLECAPTION_ALIGN                         =   STDPROPID_XOBJ_BLOCKALIGN ;
+  DISPID_IHTMLTABLECAPTION_VALIGN                       =  DISPID_A_TABLEVALIGN  ;
+
+//    DISPIDs for interface IHTMLCommentElement
+
+  DISPID_IHTMLCOMMENTELEMENT_TEXT                       =  DISPID_COMMENTPDL+1 ;
+  DISPID_IHTMLCOMMENTELEMENT_ATOMIC                     =  DISPID_COMMENTPDL+2 ;
+
+//    DISPIDs for interface IHTMLTable
+
+  DISPID_IHTMLTABLE_COLS                                =  DISPID_TABLE+1 ;
+  DISPID_IHTMLTABLE_BORDER                              =  DISPID_TABLE+2 ;
+  DISPID_IHTMLTABLE_FRAME                               =  DISPID_TABLE+4 ;
+  DISPID_IHTMLTABLE_RULES                               =  DISPID_TABLE+3 ;
+  DISPID_IHTMLTABLE_CELLSPACING                         =  DISPID_TABLE+5 ;
+  DISPID_IHTMLTABLE_CELLPADDING                         =  DISPID_TABLE+6 ;
+  DISPID_IHTMLTABLE_BACKGROUND                          =  DISPID_A_BACKGROUNDIMAGE  ;
+  DISPID_IHTMLTABLE_BGCOLOR                             =  DISPID_BACKCOLOR;
+  DISPID_IHTMLTABLE_BORDERCOLOR                         =  DISPID_A_TABLEBORDERCOLOR ;
+  DISPID_IHTMLTABLE_BORDERCOLORLIGHT                    =  DISPID_A_TABLEBORDERCOLORLIGHT  ;
+  DISPID_IHTMLTABLE_BORDERCOLORDARK                     =  DISPID_A_TABLEBORDERCOLORDARK ;
+  DISPID_IHTMLTABLE_ALIGN                               =   STDPROPID_XOBJ_CONTROLALIGN ;
+  DISPID_IHTMLTABLE_REFRESH                             =  DISPID_TABLE+15 ;
+  DISPID_IHTMLTABLE_ROWS                                =  DISPID_TABLE+16 ;
+  DISPID_IHTMLTABLE_WIDTH                               =    STDPROPID_XOBJ_WIDTH ;
+  DISPID_IHTMLTABLE_HEIGHT                              =    STDPROPID_XOBJ_HEIGHT;
+  DISPID_IHTMLTABLE_DATAPAGESIZE                        =  DISPID_TABLE+17 ;
+  DISPID_IHTMLTABLE_NEXTPAGE                            =  DISPID_TABLE+18 ;
+  DISPID_IHTMLTABLE_PREVIOUSPAGE                        =  DISPID_TABLE+19 ;
+  DISPID_IHTMLTABLE_THEAD                               =  DISPID_TABLE+20 ;
+  DISPID_IHTMLTABLE_TFOOT                               =  DISPID_TABLE+21 ;
+  DISPID_IHTMLTABLE_TBODIES                             =  DISPID_TABLE+24 ;
+  DISPID_IHTMLTABLE_CAPTION                             =  DISPID_TABLE+25 ;
+  DISPID_IHTMLTABLE_CREATETHEAD                         =  DISPID_TABLE+26 ;
+  DISPID_IHTMLTABLE_DELETETHEAD                         =  DISPID_TABLE+27 ;
+  DISPID_IHTMLTABLE_CREATETFOOT                         =  DISPID_TABLE+28 ;
+  DISPID_IHTMLTABLE_DELETETFOOT                         =  DISPID_TABLE+29 ;
+  DISPID_IHTMLTABLE_CREATECAPTION                       =  DISPID_TABLE+30;
+  DISPID_IHTMLTABLE_DELETECAPTION                       =  DISPID_TABLE+31 ;
+  DISPID_IHTMLTABLE_INSERTROW                           =  DISPID_TABLE+32 ;
+  DISPID_IHTMLTABLE_DELETEROW                           =  DISPID_TABLE+33 ;
+  DISPID_IHTMLTABLE_READYSTATE                          =  DISPID_A_READYSTATE ;
+  DISPID_IHTMLTABLE_ONREADYSTATECHANGE                  =  DISPID_EVPROP_ONREADYSTATECHANGE ;
+
+//    DISPIDs for interface IHTMLTable2
+
+  DISPID_IHTMLTABLE2_FIRSTPAGE                          =  DISPID_TABLE+35  ;
+  DISPID_IHTMLTABLE2_LASTPAGE                           =  DISPID_TABLE+36 ;
+  DISPID_IHTMLTABLE2_CELLS                              =  DISPID_TABLE+37 ;
+  DISPID_IHTMLTABLE2_MOVEROW                            =  DISPID_TABLE+38 ;
+
+//    DISPIDs for interface IHTMLTableCol
+
+  DISPID_IHTMLTABLECOL_SPAN                             =  DISPID_TABLECOL+1;
+  DISPID_IHTMLTABLECOL_WIDTH                             =   STDPROPID_XOBJ_WIDTH ;
+  DISPID_IHTMLTABLECOL_ALIGN                             =   STDPROPID_XOBJ_BLOCKALIGN ;
+  DISPID_IHTMLTABLECOL_VALIGN                           =  DISPID_A_TABLEVALIGN ;
+
+//    DISPIDs for interface IHTMLTableSection
+
+  DISPID_IHTMLTABLESECTION_ALIGN                        =    STDPROPID_XOBJ_BLOCKALIGN;
+  DISPID_IHTMLTABLESECTION_VALIGN                       =  DISPID_A_TABLEVALIGN ;
+  DISPID_IHTMLTABLESECTION_BGCOLOR                      =  DISPID_BACKCOLOR ;
+  DISPID_IHTMLTABLESECTION_ROWS                         =  DISPID_TABLESECTION  ;
+  DISPID_IHTMLTABLESECTION_INSERTROW                    =  DISPID_TABLESECTION+1 ;
+  DISPID_IHTMLTABLESECTION_DELETEROW                    =  DISPID_TABLESECTION+2 ;
+
+//    DISPIDs for interface IHTMLTableSection2
+
+  DISPID_IHTMLTABLESECTION2_MOVEROW                     =  DISPID_TABLESECTION+3 ;
+
+//    DISPIDs for interface IHTMLTableRow
+
+  DISPID_IHTMLTABLEROW_ALIGN                            =    STDPROPID_XOBJ_BLOCKALIGN ;
+  DISPID_IHTMLTABLEROW_VALIGN                           =  DISPID_A_TABLEVALIGN  ;
+  DISPID_IHTMLTABLEROW_BGCOLOR                          =  DISPID_BACKCOLOR  ;
+  DISPID_IHTMLTABLEROW_BORDERCOLOR                      =  DISPID_A_TABLEBORDERCOLOR  ;
+  DISPID_IHTMLTABLEROW_BORDERCOLORLIGHT                 =  DISPID_A_TABLEBORDERCOLORLIGHT;
+  DISPID_IHTMLTABLEROW_BORDERCOLORDARK                  =  DISPID_A_TABLEBORDERCOLORDARK;
+  DISPID_IHTMLTABLEROW_ROWINDEX                         =  DISPID_TABLEROW ;
+  DISPID_IHTMLTABLEROW_SECTIONROWINDEX                  =  DISPID_TABLEROW+1;
+  DISPID_IHTMLTABLEROW_CELLS                            =  DISPID_TABLEROW+2 ;
+  DISPID_IHTMLTABLEROW_INSERTCELL                       =  DISPID_TABLEROW+3;
+  DISPID_IHTMLTABLEROW_DELETECELL                       =  DISPID_TABLEROW+4 ;
+
+//    DISPIDs for interface IHTMLTableRow2
+
+  DISPID_IHTMLTABLEROW2_HEIGHT                          =    STDPROPID_XOBJ_HEIGHT ;
+
+//    DISPIDs for interface IHTMLTableRowMetrics
+
+  DISPID_IHTMLTABLEROWMETRICS_CLIENTHEIGHT              =  DISPID_SITE+19 ;
+  DISPID_IHTMLTABLEROWMETRICS_CLIENTWIDTH               =  DISPID_SITE+20;
+  DISPID_IHTMLTABLEROWMETRICS_CLIENTTOP                 =  DISPID_SITE+21 ;
+  DISPID_IHTMLTABLEROWMETRICS_CLIENTLEFT                =  DISPID_SITE+22 ;
+
+//    DISPIDs for interface IHTMLTableCell
+
+  DISPID_IHTMLTABLECELL_ROWSPAN                         =  DISPID_TABLECELL+1;
+  DISPID_IHTMLTABLECELL_COLSPAN                         =  DISPID_TABLECELL+2 ;
+  DISPID_IHTMLTABLECELL_ALIGN                           =    STDPROPID_XOBJ_BLOCKALIGN ;
+  DISPID_IHTMLTABLECELL_VALIGN                          =  DISPID_A_TABLEVALIGN ;
+  DISPID_IHTMLTABLECELL_BGCOLOR                         =  DISPID_BACKCOLOR ;
+  DISPID_IHTMLTABLECELL_NOWRAP                          =  DISPID_A_NOWRAP ;
+  DISPID_IHTMLTABLECELL_BACKGROUND                      =  DISPID_A_BACKGROUNDIMAGE  ;
+  DISPID_IHTMLTABLECELL_BORDERCOLOR                     =  DISPID_A_TABLEBORDERCOLOR ;
+  DISPID_IHTMLTABLECELL_BORDERCOLORLIGHT                =  DISPID_A_TABLEBORDERCOLORLIGHT ;
+  DISPID_IHTMLTABLECELL_BORDERCOLORDARK                 =  DISPID_A_TABLEBORDERCOLORDARK ;
+  DISPID_IHTMLTABLECELL_WIDTH                            =   STDPROPID_XOBJ_WIDTH ;
+  DISPID_IHTMLTABLECELL_HEIGHT                          =    STDPROPID_XOBJ_HEIGHT ;
+  DISPID_IHTMLTABLECELL_CELLINDEX                       =  DISPID_TABLECELL+3 ;
+
+//    DISPIDs for interface IHTMLScriptElement
+
+  DISPID_IHTMLSCRIPTELEMENT_SRC                         =  DISPID_SCRIPT+1 ;
+  DISPID_IHTMLSCRIPTELEMENT_HTMLFOR                     =  DISPID_SCRIPT+4 ;
+  DISPID_IHTMLSCRIPTELEMENT_EVENT                       =  DISPID_SCRIPT+5;
+  DISPID_IHTMLSCRIPTELEMENT_TEXT                        =  DISPID_SCRIPT+6 ;
+  DISPID_IHTMLSCRIPTELEMENT_DEFER                       =  DISPID_SCRIPT+7 ;
+  DISPID_IHTMLSCRIPTELEMENT_READYSTATE                  =  DISPID_A_READYSTATE ;
+  DISPID_IHTMLSCRIPTELEMENT_ONERROR                     =  DISPID_EVPROP_ONERROR ;
+  DISPID_IHTMLSCRIPTELEMENT_TYPE                        =  DISPID_SCRIPT+9 ;
+
+//    DISPIDs for event set HTMLScriptEvents2
+
+  DISPID_HTMLSCRIPTEVENTS2_ONERROR                      =  DISPID_EVMETH_ONERROR ;
+
+//    DISPIDs for event set HTMLScriptEvents
+
+  DISPID_HTMLSCRIPTEVENTS_ONERROR                       =  DISPID_EVMETH_ONERROR ;
+
+//    DISPIDs for interface IHTMLObjectElement
+
+  DISPID_IHTMLOBJECTELEMENT_OBJECT                      =  DISPID_OBJECT+1 ;
+  DISPID_IHTMLOBJECTELEMENT_CLASSID                     =  DISPID_OBJECT+2;
+  DISPID_IHTMLOBJECTELEMENT_DATA                        =  DISPID_OBJECT+3 ;
+  DISPID_IHTMLOBJECTELEMENT_RECORDSET                   =  DISPID_OBJECT+5 ;
+  DISPID_IHTMLOBJECTELEMENT_ALIGN                       =   STDPROPID_XOBJ_CONTROLALIGN ;
+  DISPID_IHTMLOBJECTELEMENT_NAME                        =    STDPROPID_XOBJ_NAME;
+  DISPID_IHTMLOBJECTELEMENT_CODEBASE                    =  DISPID_OBJECT+6 ;
+  DISPID_IHTMLOBJECTELEMENT_CODETYPE                    =  DISPID_OBJECT+7 ;
+  DISPID_IHTMLOBJECTELEMENT_CODE                        =  DISPID_OBJECT+8 ;
+  DISPID_IHTMLOBJECTELEMENT_BASEHREF                    =    STDPROPID_XOBJ_BASEHREF ;
+  DISPID_IHTMLOBJECTELEMENT_TYPE                        =  DISPID_OBJECT+9  ;
+  DISPID_IHTMLOBJECTELEMENT_FORM                        =  DISPID_SITE+4 ;
+  DISPID_IHTMLOBJECTELEMENT_WIDTH                       =    STDPROPID_XOBJ_WIDTH ;
+  DISPID_IHTMLOBJECTELEMENT_HEIGHT                      =    STDPROPID_XOBJ_HEIGHT ;
+  DISPID_IHTMLOBJECTELEMENT_READYSTATE                  =  DISPID_OBJECT+10;
+  DISPID_IHTMLOBJECTELEMENT_ONREADYSTATECHANGE          =    DISPID_EVPROP_ONREADYSTATECHANGE;
+  DISPID_IHTMLOBJECTELEMENT_ONERROR                     =  DISPID_EVPROP_ONERROR ;
+  DISPID_IHTMLOBJECTELEMENT_ALTHTML                     =  DISPID_OBJECT+11 ;
+  DISPID_IHTMLOBJECTELEMENT_VSPACE                      =  DISPID_OBJECT+12 ;
+  DISPID_IHTMLOBJECTELEMENT_HSPACE                      =  DISPID_OBJECT+13 ;
+
+//    DISPIDs for interface IHTMLObjectElement2
+
+  DISPID_IHTMLOBJECTELEMENT2_NAMEDRECORDSET             =  DISPID_OBJECT+14 ;
+  DISPID_IHTMLOBJECTELEMENT2_CLASSID                    =  DISPID_OBJECT+2 ;
+  DISPID_IHTMLOBJECTELEMENT2_DATA                       =  DISPID_OBJECT+3 ;
+
+//    DISPIDs for event set HTMLObjectElementEvents2
+
+  DISPID_HTMLOBJECTELEMENTEVENTS2_ONBEFOREUPDATE        =    DISPID_EVMETH_ONBEFOREUPDATE ;
+  DISPID_HTMLOBJECTELEMENTEVENTS2_ONAFTERUPDATE         =    DISPID_EVMETH_ONAFTERUPDATE ;
+  DISPID_HTMLOBJECTELEMENTEVENTS2_ONERRORUPDATE         =    DISPID_EVMETH_ONERRORUPDATE ;
+  DISPID_HTMLOBJECTELEMENTEVENTS2_ONROWEXIT             =  DISPID_EVMETH_ONROWEXIT ;
+  DISPID_HTMLOBJECTELEMENTEVENTS2_ONROWENTER            =  DISPID_EVMETH_ONROWENTER ;
+  DISPID_HTMLOBJECTELEMENTEVENTS2_ONDATASETCHANGED      =    DISPID_EVMETH_ONDATASETCHANGED ;
+  DISPID_HTMLOBJECTELEMENTEVENTS2_ONDATAAVAILABLE       =    DISPID_EVMETH_ONDATAAVAILABLE ;
+  DISPID_HTMLOBJECTELEMENTEVENTS2_ONDATASETCOMPLETE     =    DISPID_EVMETH_ONDATASETCOMPLETE ;
+  DISPID_HTMLOBJECTELEMENTEVENTS2_ONERROR               =  DISPID_XOBJ_BASE+19 ;
+  DISPID_HTMLOBJECTELEMENTEVENTS2_ONROWSDELETE          =    DISPID_EVMETH_ONROWSDELETE ;
+  DISPID_HTMLOBJECTELEMENTEVENTS2_ONROWSINSERTED        =    DISPID_EVMETH_ONROWSINSERTED ;
+  DISPID_HTMLOBJECTELEMENTEVENTS2_ONCELLCHANGE          =    DISPID_EVMETH_ONCELLCHANGE ;
+  DISPID_HTMLOBJECTELEMENTEVENTS2_ONREADYSTATECHANGE    =    DISPID_XOBJ_BASE+20 ;
+
+//    DISPIDs for event set HTMLObjectElementEvents
+
+  DISPID_HTMLOBJECTELEMENTEVENTS_ONBEFOREUPDATE         =    DISPID_EVMETH_ONBEFOREUPDATE ;
+  DISPID_HTMLOBJECTELEMENTEVENTS_ONAFTERUPDATE          =    DISPID_EVMETH_ONAFTERUPDATE ;
+  DISPID_HTMLOBJECTELEMENTEVENTS_ONERRORUPDATE          =    DISPID_EVMETH_ONERRORUPDATE ;
+  DISPID_HTMLOBJECTELEMENTEVENTS_ONROWEXIT              =  DISPID_EVMETH_ONROWEXIT ;
+  DISPID_HTMLOBJECTELEMENTEVENTS_ONROWENTER             =  DISPID_EVMETH_ONROWENTER  ;
+  DISPID_HTMLOBJECTELEMENTEVENTS_ONDATASETCHANGED       =   DISPID_EVMETH_ONDATASETCHANGED ;
+  DISPID_HTMLOBJECTELEMENTEVENTS_ONDATAAVAILABLE        =    DISPID_EVMETH_ONDATAAVAILABLE;
+  DISPID_HTMLOBJECTELEMENTEVENTS_ONDATASETCOMPLETE       =   DISPID_EVMETH_ONDATASETCOMPLETE ;
+  DISPID_HTMLOBJECTELEMENTEVENTS_ONERROR                =  DISPID_XOBJ_BASE+19 ;
+  DISPID_HTMLOBJECTELEMENTEVENTS_ONROWSDELETE            =   DISPID_EVMETH_ONROWSDELETE ;
+  DISPID_HTMLOBJECTELEMENTEVENTS_ONROWSINSERTED          =   DISPID_EVMETH_ONROWSINSERTED ;
+  DISPID_HTMLOBJECTELEMENTEVENTS_ONCELLCHANGE            =   DISPID_EVMETH_ONCELLCHANGE;
+  DISPID_HTMLOBJECTELEMENTEVENTS_ONREADYSTATECHANGE      =   DISPID_XOBJ_BASE+20;
+
+//    DISPIDs for interface IHTMLFrameBase
+
+  DISPID_IHTMLFRAMEBASE_SRC                             =  DISPID_FRAMESITE+0 ;
+  DISPID_IHTMLFRAMEBASE_NAME                            =    STDPROPID_XOBJ_NAME ;
+  DISPID_IHTMLFRAMEBASE_BORDER                          =  DISPID_FRAMESITE+2 ;
+  DISPID_IHTMLFRAMEBASE_FRAMEBORDER                     =  DISPID_FRAMESITE+3 ;
+  DISPID_IHTMLFRAMEBASE_FRAMESPACING                    =  DISPID_FRAMESITE+4 ;
+  DISPID_IHTMLFRAMEBASE_MARGINWIDTH                     =  DISPID_FRAMESITE+5 ;
+  DISPID_IHTMLFRAMEBASE_MARGINHEIGHT                    =  DISPID_FRAMESITE+6 ;
+  DISPID_IHTMLFRAMEBASE_NORESIZE                        =  DISPID_FRAMESITE+7 ;
+  DISPID_IHTMLFRAMEBASE_SCROLLING                       =  DISPID_FRAMESITE+8 ;
+
+//    DISPIDs for interface IHTMLFrameBase2
+
+  DISPID_IHTMLFRAMEBASE2_CONTENTWINDOW                  =  DISPID_FRAMESITE+9 ;
+  DISPID_IHTMLFRAMEBASE2_ONLOAD                         =  DISPID_EVPROP_ONLOAD ;
+  DISPID_IHTMLFRAMEBASE2_ONREADYSTATECHANGE             =  DISPID_EVPROP_ONREADYSTATECHANGE ;
+  DISPID_IHTMLFRAMEBASE2_READYSTATE                     =  DISPID_A_READYSTATE;
+  DISPID_IHTMLFRAMEBASE2_ALLOWTRANSPARENCY              =  DISPID_A_ALLOWTRANSPARENCY;
+
+//    DISPIDs for event set HTMLFrameSiteEvents2
+
+  DISPID_HTMLFRAMESITEEVENTS2_ONLOAD                    =  DISPID_EVMETH_ONLOAD ;
+
+//    DISPIDs for event set HTMLFrameSiteEvents
+
+  DISPID_HTMLFRAMESITEEVENTS_ONLOAD                     =  DISPID_EVMETH_ONLOAD ;
+
+//    DISPIDs for interface IHTMLFrameElement
+
+  DISPID_IHTMLFRAMEELEMENT_BORDERCOLOR                  =  DISPID_FRAME+1 ;
+
+//    DISPIDs for interface IHTMLFrameElement2
+
+  DISPID_IHTMLFRAMEELEMENT2_HEIGHT                      =    STDPROPID_XOBJ_HEIGHT ;
+  DISPID_IHTMLFRAMEELEMENT2_WIDTH                       =    STDPROPID_XOBJ_WIDTH ;
+
+//    DISPIDs for interface IHTMLIFrameElement
+
+  DISPID_IHTMLIFRAMEELEMENT_VSPACE                      =  DISPID_IFRAME+1 ;
+  DISPID_IHTMLIFRAMEELEMENT_HSPACE                      =  DISPID_IFRAME+2 ;
+  DISPID_IHTMLIFRAMEELEMENT_ALIGN                       =    STDPROPID_XOBJ_CONTROLALIGN ;
+
+//    DISPIDs for interface IHTMLIFrameElement2
+
+  DISPID_IHTMLIFRAMEELEMENT2_HEIGHT                      =   STDPROPID_XOBJ_HEIGHT ;
+  DISPID_IHTMLIFRAMEELEMENT2_WIDTH                       =   STDPROPID_XOBJ_WIDTH ;
+
+//    DISPIDs for interface IHTMLDivPosition
+
+  DISPID_IHTMLDIVPOSITION_ALIGN                          =   STDPROPID_XOBJ_CONTROLALIGN;
+
+//    DISPIDs for interface IHTMLFieldSetElement
+
+  DISPID_IHTMLFIELDSETELEMENT_ALIGN                     =    STDPROPID_XOBJ_CONTROLALIGN;
+
+//    DISPIDs for interface IHTMLLegendElement
+
+  DISPID_IHTMLLEGENDELEMENT_ALIGN                        =   STDPROPID_XOBJ_CONTROLALIGN ;
+
+//    DISPIDs for interface IHTMLSpanFlow
+
+  DISPID_IHTMLSPANFLOW_ALIGN                             =   STDPROPID_XOBJ_CONTROLALIGN ;
+
+//    DISPIDs for interface IHTMLFrameSetElement
+
+  DISPID_IHTMLFRAMESETELEMENT_ROWS                      =  DISPID_FRAMESET ;
+  DISPID_IHTMLFRAMESETELEMENT_COLS                      =  DISPID_FRAMESET+1 ;
+  DISPID_IHTMLFRAMESETELEMENT_BORDER                    =  DISPID_FRAMESET+2 ;
+  DISPID_IHTMLFRAMESETELEMENT_BORDERCOLOR               =  DISPID_FRAMESET+3 ;
+  DISPID_IHTMLFRAMESETELEMENT_FRAMEBORDER               =  DISPID_FRAMESET+4 ;
+  DISPID_IHTMLFRAMESETELEMENT_FRAMESPACING              =  DISPID_FRAMESET+5 ;
+  DISPID_IHTMLFRAMESETELEMENT_NAME                      =    STDPROPID_XOBJ_NAME ;
+  DISPID_IHTMLFRAMESETELEMENT_ONLOAD                    =  DISPID_EVPROP_ONLOAD;
+  DISPID_IHTMLFRAMESETELEMENT_ONUNLOAD                  =  DISPID_EVPROP_ONUNLOAD ;
+  DISPID_IHTMLFRAMESETELEMENT_ONBEFOREUNLOAD            =  DISPID_EVPROP_ONBEFOREUNLOAD;
+
+//    DISPIDs for interface IHTMLFrameSetElement2
+
+  DISPID_IHTMLFRAMESETELEMENT2_ONBEFOREPRINT            =  DISPID_EVPROP_ONBEFOREPRINT ;
+  DISPID_IHTMLFRAMESETELEMENT2_ONAFTERPRINT             =  DISPID_EVPROP_ONAFTERPRINT;
+
+//    DISPIDs for interface IHTMLBGsound
+
+  DISPID_IHTMLBGSOUND_SRC                               =  DISPID_BGSOUND+1  ;
+  DISPID_IHTMLBGSOUND_LOOP                              =  DISPID_BGSOUND+2 ;
+  DISPID_IHTMLBGSOUND_VOLUME                            =  DISPID_BGSOUND+3 ;
+  DISPID_IHTMLBGSOUND_BALANCE                           =  DISPID_BGSOUND+4 ;
+
+//    DISPIDs for interface IHTMLFontNamesCollection
+
+  DISPID_IHTMLFONTNAMESCOLLECTION_LENGTH                =  DISPID_OPTIONS_COL+1 ;
+  DISPID_IHTMLFONTNAMESCOLLECTION__NEWENUM              =  DISPID_NEWENUM ;
+  DISPID_IHTMLFONTNAMESCOLLECTION_ITEM                  =  DISPID_VALUE  ;
+
+//    DISPIDs for interface IHTMLFontSizesCollection
+
+  DISPID_IHTMLFONTSIZESCOLLECTION_LENGTH                =  DISPID_OPTIONS_COL+2 ;
+  DISPID_IHTMLFONTSIZESCOLLECTION__NEWENUM              =  DISPID_NEWENUM ;
+  DISPID_IHTMLFONTSIZESCOLLECTION_FORFONT               =  DISPID_OPTIONS_COL+3 ;
+  DISPID_IHTMLFONTSIZESCOLLECTION_ITEM                  =  DISPID_VALUE ;
+
+//    DISPIDs for interface IHTMLOptionsHolder
+
+  DISPID_IHTMLOPTIONSHOLDER_DOCUMENT                    =  DISPID_OPTIONS_COL+3 ;
+  DISPID_IHTMLOPTIONSHOLDER_FONTS                       =  DISPID_OPTIONS_COL+4 ;
+  DISPID_IHTMLOPTIONSHOLDER_EXECARG                     =  DISPID_OPTIONS_COL+5 ;
+  DISPID_IHTMLOPTIONSHOLDER_ERRORLINE                   =  DISPID_OPTIONS_COL+6 ;
+  DISPID_IHTMLOPTIONSHOLDER_ERRORCHARACTER              =  DISPID_OPTIONS_COL+7 ;
+  DISPID_IHTMLOPTIONSHOLDER_ERRORCODE                   =  DISPID_OPTIONS_COL+8 ;
+  DISPID_IHTMLOPTIONSHOLDER_ERRORMESSAGE                =  DISPID_OPTIONS_COL+9 ;
+  DISPID_IHTMLOPTIONSHOLDER_ERRORDEBUG                  =  DISPID_OPTIONS_COL+10  ;
+  DISPID_IHTMLOPTIONSHOLDER_UNSECUREDWINDOWOFDOCUMENT   =    DISPID_OPTIONS_COL+11 ;
+  DISPID_IHTMLOPTIONSHOLDER_FINDTEXT                    =  DISPID_OPTIONS_COL+12 ;
+  DISPID_IHTMLOPTIONSHOLDER_ANYTHINGAFTERFRAMESET       =    DISPID_OPTIONS_COL+13 ;
+  DISPID_IHTMLOPTIONSHOLDER_SIZES                       =  DISPID_OPTIONS_COL+14 ;
+  DISPID_IHTMLOPTIONSHOLDER_OPENFILEDLG                 =  DISPID_OPTIONS_COL+15;
+  DISPID_IHTMLOPTIONSHOLDER_SAVEFILEDLG                 =  DISPID_OPTIONS_COL+16 ;
+  DISPID_IHTMLOPTIONSHOLDER_CHOOSECOLORDLG              =  DISPID_OPTIONS_COL+17 ;
+  DISPID_IHTMLOPTIONSHOLDER_SHOWSECURITYINFO            =  DISPID_OPTIONS_COL+18 ;
+  DISPID_IHTMLOPTIONSHOLDER_ISAPARTMENTMODEL            =  DISPID_OPTIONS_COL+19 ;
+  DISPID_IHTMLOPTIONSHOLDER_GETCHARSET                  =  DISPID_OPTIONS_COL+20 ;
+  DISPID_IHTMLOPTIONSHOLDER_SECURECONNECTIONINFO        =    DISPID_OPTIONS_COL+21 ;
+
+//    DISPIDs for interface IHTMLStyleElement
+
+  DISPID_IHTMLSTYLEELEMENT_TYPE                         =  DISPID_STYLEELEMENT+2 ;
+  DISPID_IHTMLSTYLEELEMENT_READYSTATE                   =  DISPID_A_READYSTATE ;
+  DISPID_IHTMLSTYLEELEMENT_ONREADYSTATECHANGE           =    DISPID_EVPROP_ONREADYSTATECHANGE ;
+  DISPID_IHTMLSTYLEELEMENT_ONLOAD                       =  DISPID_EVPROP_ONLOAD ;
+  DISPID_IHTMLSTYLEELEMENT_ONERROR                      =  DISPID_EVPROP_ONERROR ;
+  DISPID_IHTMLSTYLEELEMENT_STYLESHEET                   =  DISPID_STYLEELEMENT+4 ;
+  DISPID_IHTMLSTYLEELEMENT_DISABLED                     =    STDPROPID_XOBJ_DISABLED ;
+  DISPID_IHTMLSTYLEELEMENT_MEDIA                        =  DISPID_STYLEELEMENT+6 ;
+
+//    DISPIDs for event set HTMLStyleElementEvents2
+
+  DISPID_HTMLSTYLEELEMENTEVENTS2_ONLOAD                 =  DISPID_EVMETH_ONLOAD ;
+  DISPID_HTMLSTYLEELEMENTEVENTS2_ONERROR                =  DISPID_EVMETH_ONERROR ;
+
+//    DISPIDs for event set HTMLStyleElementEvents
+
+  DISPID_HTMLSTYLEELEMENTEVENTS_ONLOAD                  =  DISPID_EVMETH_ONLOAD ;
+  DISPID_HTMLSTYLEELEMENTEVENTS_ONERROR                 =  DISPID_EVMETH_ONERROR;
+
+//    DISPIDs for interface IHTMLStyleFontFace
+
+  DISPID_IHTMLSTYLEFONTFACE_FONTSRC                     =  DISPID_A_FONTFACESRC;
+
+  (*
+//    DISPIDs for interface ICSSFilterSite
+
+  DISPID_ICSSFILTERSITE_GETELEMENT                          
+  DISPID_ICSSFILTERSITE_FIREONFILTERCHANGEEVENT             
+
+//    DISPIDs for interface ICSSFilter
+
+  DISPID_ICSSFILTER_SETSITE                                 
+  DISPID_ICSSFILTER_ONAMBIENTPROPERTYCHANGE                 
+
+//    DISPIDs for interface ISecureUrlHost
+
+  DISPID_ISECUREURLHOST_VALIDATESECUREURL                   
+
+//    DISPIDs for interface IMarkupServices
+
+  DISPID_IMARKUPSERVICES_CREATEMARKUPPOINTER                
+  DISPID_IMARKUPSERVICES_CREATEMARKUPCONTAINER              
+  DISPID_IMARKUPSERVICES_CREATEELEMENT                      
+  DISPID_IMARKUPSERVICES_CLONEELEMENT
+  DISPID_IMARKUPSERVICES_INSERTELEMENT                      
+  DISPID_IMARKUPSERVICES_REMOVEELEMENT                      
+  DISPID_IMARKUPSERVICES_REMOVE                             
+  DISPID_IMARKUPSERVICES_COPY                               
+  DISPID_IMARKUPSERVICES_MOVE                               
+  DISPID_IMARKUPSERVICES_INSERTTEXT                         
+  DISPID_IMARKUPSERVICES_PARSESTRING                        
+  DISPID_IMARKUPSERVICES_PARSEGLOBAL                        
+  DISPID_IMARKUPSERVICES_ISSCOPEDELEMENT                    
+  DISPID_IMARKUPSERVICES_GETELEMENTTAGID
+  DISPID_IMARKUPSERVICES_GETTAGIDFORNAME                    
+  DISPID_IMARKUPSERVICES_GETNAMEFORTAGID                    
+  DISPID_IMARKUPSERVICES_MOVEPOINTERSTORANGE                
+  DISPID_IMARKUPSERVICES_MOVERANGETOPOINTERS                
+  DISPID_IMARKUPSERVICES_BEGINUNDOUNIT                      
+  DISPID_IMARKUPSERVICES_ENDUNDOUNIT                        
+
+//    DISPIDs for interface IMarkupServices2
+
+  DISPID_IMARKUPSERVICES2_PARSEGLOBALEX
+  DISPID_IMARKUPSERVICES2_VALIDATEELEMENTS                  
+  DISPID_IMARKUPSERVICES2_SAVESEGMENTSTOCLIPBOARD           
+
+//    DISPIDs for interface IMarkupContainer
+
+  DISPID_IMARKUPCONTAINER_OWNINGDOC                         
+
+//    DISPIDs for interface IMarkupContainer2
+
+  DISPID_IMARKUPCONTAINER2_CREATECHANGELOG
+  DISPID_IMARKUPCONTAINER2_REGISTERFORDIRTYRANGE            
+  DISPID_IMARKUPCONTAINER2_UNREGISTERFORDIRTYRANGE          
+  DISPID_IMARKUPCONTAINER2_GETANDCLEARDIRTYRANGE            
+  DISPID_IMARKUPCONTAINER2_GETVERSIONNUMBER                 
+  DISPID_IMARKUPCONTAINER2_GETMASTERELEMENT                 
+
+//    DISPIDs for interface IHTMLChangePlayback
+
+  DISPID_IHTMLCHANGEPLAYBACK_EXECCHANGE                     
+
+//    DISPIDs for interface IMarkupPointer
+
+  DISPID_IMARKUPPOINTER_OWNINGDOC                           
+  DISPID_IMARKUPPOINTER_GRAVITY                             
+  DISPID_IMARKUPPOINTER_SETGRAVITY                          
+  DISPID_IMARKUPPOINTER_CLING                               
+  DISPID_IMARKUPPOINTER_SETCLING                            
+  DISPID_IMARKUPPOINTER_UNPOSITION                          
+  DISPID_IMARKUPPOINTER_ISPOSITIONED                        
+  DISPID_IMARKUPPOINTER_GETCONTAINER
+  DISPID_IMARKUPPOINTER_MOVEADJACENTTOELEMENT               
+  DISPID_IMARKUPPOINTER_MOVETOPOINTER                       
+  DISPID_IMARKUPPOINTER_MOVETOCONTAINER                     
+  DISPID_IMARKUPPOINTER_LEFT                                
+  DISPID_IMARKUPPOINTER_RIGHT                               
+  DISPID_IMARKUPPOINTER_CURRENTSCOPE                        
+  DISPID_IMARKUPPOINTER_ISLEFTOF                            
+  DISPID_IMARKUPPOINTER_ISLEFTOFOREQUALTO                   
+  DISPID_IMARKUPPOINTER_ISRIGHTOF                           
+  DISPID_IMARKUPPOINTER_ISRIGHTOFOREQUALTO
+  DISPID_IMARKUPPOINTER_ISEQUALTO                           
+  DISPID_IMARKUPPOINTER_MOVEUNIT                            
+  DISPID_IMARKUPPOINTER_FINDTEXT                            
+
+//    DISPIDs for interface IMarkupPointer2
+
+  DISPID_IMARKUPPOINTER2_ISATWORDBREAK                      
+  DISPID_IMARKUPPOINTER2_GETMARKUPPOSITION                  
+  DISPID_IMARKUPPOINTER2_MOVETOMARKUPPOSITION               
+  DISPID_IMARKUPPOINTER2_MOVEUNITBOUNDED
+  DISPID_IMARKUPPOINTER2_ISINSIDEURL                        
+  DISPID_IMARKUPPOINTER2_MOVETOCONTENT                      
+
+//    DISPIDs for interface IMarkupTextFrags
+
+  DISPID_IMARKUPTEXTFRAGS_GETTEXTFRAGCOUNT                  
+  DISPID_IMARKUPTEXTFRAGS_GETTEXTFRAG                       
+  DISPID_IMARKUPTEXTFRAGS_REMOVETEXTFRAG                    
+  DISPID_IMARKUPTEXTFRAGS_INSERTTEXTFRAG                    
+  DISPID_IMARKUPTEXTFRAGS_FINDTEXTFRAGFROMMARKUPPOINTER
+
+//    DISPIDs for interface IHTMLChangeLog
+
+  DISPID_IHTMLCHANGELOG_GETNEXTCHANGE                       
+
+//    DISPIDs for interface IHTMLChangeSink
+
+  DISPID_IHTMLCHANGESINK_NOTIFY                             
+
+//    DISPIDs for interface IXMLGenericParse
+
+  DISPID_IXMLGENERICPARSE_SETGENERICPARSE                   
+
+//    DISPIDs for interface IHTMLEditHost
+
+  DISPID_IHTMLEDITHOST_SNAPRECT                             
+
+//    DISPIDs for interface ISegment
+
+  DISPID_ISEGMENT_GETPOINTERS
+
+//    DISPIDs for interface ISegmentListIterator
+
+  DISPID_ISEGMENTLISTITERATOR_CURRENT                       
+  DISPID_ISEGMENTLISTITERATOR_FIRST                         
+  DISPID_ISEGMENTLISTITERATOR_ISDONE                        
+  DISPID_ISEGMENTLISTITERATOR_ADVANCE                       
+
+//    DISPIDs for interface ISegmentList
+
+  DISPID_ISEGMENTLIST_CREATEITERATOR                        
+  DISPID_ISEGMENTLIST_GETTYPE                               
+  DISPID_ISEGMENTLIST_ISEMPTY                               
+
+//    DISPIDs for interface ISequenceNumber
+
+  DISPID_ISEQUENCENUMBER_GETSEQUENCENUMBER                  
+
+//    DISPIDs for interface IIMEServices
+
+  DISPID_IIMESERVICES_GETACTIVEIMM                          
+
+//    DISPIDs for interface IHTMLCaret
+
+  DISPID_IHTMLCARET_MOVECARETTOPOINTER                      
+  DISPID_IHTMLCARET_MOVECARETTOPOINTEREX                    
+  DISPID_IHTMLCARET_MOVEMARKUPPOINTERTOCARET                
+  DISPID_IHTMLCARET_MOVEDISPLAYPOINTERTOCARET               
+  DISPID_IHTMLCARET_ISVISIBLE                               
+  DISPID_IHTMLCARET_SHOW
+  DISPID_IHTMLCARET_HIDE                                    
+  DISPID_IHTMLCARET_INSERTTEXT                              
+  DISPID_IHTMLCARET_SCROLLINTOVIEW                          
+  DISPID_IHTMLCARET_GETLOCATION                             
+  DISPID_IHTMLCARET_GETCARETDIRECTION                       
+  DISPID_IHTMLCARET_SETCARETDIRECTION                       
+
+//    DISPIDs for interface IHighlightRenderingServices
+
+  DISPID_IHIGHLIGHTRENDERINGSERVICES_ADDSEGMENT
+  DISPID_IHIGHLIGHTRENDERINGSERVICES_MOVESEGMENTTOPOINTERS  
+  DISPID_IHIGHLIGHTRENDERINGSERVICES_REMOVESEGMENT          
+
+//    DISPIDs for interface ISelectionServicesListener
+
+  DISPID_ISELECTIONSERVICESLISTENER_BEGINSELECTIONUNDO      
+  DISPID_ISELECTIONSERVICESLISTENER_ENDSELECTIONUNDO        
+  DISPID_ISELECTIONSERVICESLISTENER_ONSELECTEDELEMENTEXIT   
+  DISPID_ISELECTIONSERVICESLISTENER_ONCHANGETYPE            
+  DISPID_ISELECTIONSERVICESLISTENER_GETTYPEDETAIL
+
+//    DISPIDs for interface ISelectionServices
+
+  DISPID_ISELECTIONSERVICES_SETSELECTIONTYPE                
+  DISPID_ISELECTIONSERVICES_GETMARKUPCONTAINER              
+  DISPID_ISELECTIONSERVICES_ADDSEGMENT                      
+  DISPID_ISELECTIONSERVICES_ADDELEMENTSEGMENT               
+  DISPID_ISELECTIONSERVICES_REMOVESEGMENT                   
+  DISPID_ISELECTIONSERVICES_GETSELECTIONSERVICESLISTENER    
+
+//    DISPIDs for interface IElementSegment
+
+  DISPID_IELEMENTSEGMENT_GETELEMENT                         
+  DISPID_IELEMENTSEGMENT_SETPRIMARY                         
+  DISPID_IELEMENTSEGMENT_ISPRIMARY                          
+
+//    DISPIDs for interface IHTMLEditDesigner
+
+  DISPID_IHTMLEDITDESIGNER_PREHANDLEEVENT                   
+  DISPID_IHTMLEDITDESIGNER_POSTHANDLEEVENT                  
+  DISPID_IHTMLEDITDESIGNER_TRANSLATEACCELERATOR             
+  DISPID_IHTMLEDITDESIGNER_POSTEDITOREVENTNOTIFY
+
+//    DISPIDs for interface IHTMLEditServices
+
+  DISPID_IHTMLEDITSERVICES_ADDDESIGNER                      
+  DISPID_IHTMLEDITSERVICES_REMOVEDESIGNER                   
+  DISPID_IHTMLEDITSERVICES_GETSELECTIONSERVICES             
+  DISPID_IHTMLEDITSERVICES_MOVETOSELECTIONANCHOR            
+  DISPID_IHTMLEDITSERVICES_MOVETOSELECTIONEND               
+  DISPID_IHTMLEDITSERVICES_SELECTRANGE                      
+   *)
+//    DISPIDs for interface ILineInfo
+
+  DISPID_ILINEINFO_X                                    =  DISPID_ILINEINFO+1 ;
+  DISPID_ILINEINFO_BASELINE                             =  DISPID_ILINEINFO+2 ;
+  DISPID_ILINEINFO_TEXTDESCENT                          =  DISPID_ILINEINFO+3 ;
+  DISPID_ILINEINFO_TEXTHEIGHT                           =  DISPID_ILINEINFO+4;
+  DISPID_ILINEINFO_LINEDIRECTION                        =  DISPID_ILINEINFO+5 ;
+
+//    DISPIDs for interface IHTMLComputedStyle
+
+  DISPID_IHTMLCOMPUTEDSTYLE_BOLD                        =  DISPID_IHTMLCOMPUTEDSTYLE+1 ;
+  DISPID_IHTMLCOMPUTEDSTYLE_ITALIC                      =  DISPID_IHTMLCOMPUTEDSTYLE+2 ;
+  DISPID_IHTMLCOMPUTEDSTYLE_UNDERLINE                   =  DISPID_IHTMLCOMPUTEDSTYLE+3 ;
+  DISPID_IHTMLCOMPUTEDSTYLE_OVERLINE                    =  DISPID_IHTMLCOMPUTEDSTYLE+4 ;
+  DISPID_IHTMLCOMPUTEDSTYLE_STRIKEOUT                   =  DISPID_IHTMLCOMPUTEDSTYLE+5 ;
+  DISPID_IHTMLCOMPUTEDSTYLE_SUBSCRIPT                   =  DISPID_IHTMLCOMPUTEDSTYLE+6;
+  DISPID_IHTMLCOMPUTEDSTYLE_SUPERSCRIPT                 =  DISPID_IHTMLCOMPUTEDSTYLE+7;
+  DISPID_IHTMLCOMPUTEDSTYLE_EXPLICITFACE                =  DISPID_IHTMLCOMPUTEDSTYLE+8 ;
+  DISPID_IHTMLCOMPUTEDSTYLE_FONTWEIGHT                  =  DISPID_IHTMLCOMPUTEDSTYLE+9 ;
+  DISPID_IHTMLCOMPUTEDSTYLE_FONTSIZE                    =  DISPID_IHTMLCOMPUTEDSTYLE+10 ;
+  DISPID_IHTMLCOMPUTEDSTYLE_FONTNAME                    =  DISPID_IHTMLCOMPUTEDSTYLE+11 ;
+  DISPID_IHTMLCOMPUTEDSTYLE_HASBGCOLOR                  =  DISPID_IHTMLCOMPUTEDSTYLE+12 ;
+  DISPID_IHTMLCOMPUTEDSTYLE_TEXTCOLOR                   =  DISPID_IHTMLCOMPUTEDSTYLE+13 ;
+  DISPID_IHTMLCOMPUTEDSTYLE_BACKGROUNDCOLOR             =  DISPID_IHTMLCOMPUTEDSTYLE+14 ;
+  DISPID_IHTMLCOMPUTEDSTYLE_PREFORMATTED                =  DISPID_IHTMLCOMPUTEDSTYLE+15 ;
+  DISPID_IHTMLCOMPUTEDSTYLE_DIRECTION                   =  DISPID_IHTMLCOMPUTEDSTYLE+16 ;
+  DISPID_IHTMLCOMPUTEDSTYLE_BLOCKDIRECTION              =  DISPID_IHTMLCOMPUTEDSTYLE+17 ;
+  DISPID_IHTMLCOMPUTEDSTYLE_OL                          =  DISPID_IHTMLCOMPUTEDSTYLE+18 ;
+ // DISPID_IHTMLCOMPUTEDSTYLE_ISEQUAL
+ (*
+//    DISPIDs for interface IDisplayPointer
+
+  DISPID_IDISPLAYPOINTER_MOVETOPOINT                        
+  DISPID_IDISPLAYPOINTER_MOVEUNIT
+  DISPID_IDISPLAYPOINTER_POSITIONMARKUPPOINTER              
+  DISPID_IDISPLAYPOINTER_MOVETOPOINTER                      
+  DISPID_IDISPLAYPOINTER_SETPOINTERGRAVITY                  
+  DISPID_IDISPLAYPOINTER_GETPOINTERGRAVITY                  
+  DISPID_IDISPLAYPOINTER_SETDISPLAYGRAVITY                  
+  DISPID_IDISPLAYPOINTER_GETDISPLAYGRAVITY                  
+  DISPID_IDISPLAYPOINTER_ISPOSITIONED                       
+  DISPID_IDISPLAYPOINTER_UNPOSITION                         
+  DISPID_IDISPLAYPOINTER_ISEQUALTO                          
+  DISPID_IDISPLAYPOINTER_ISLEFTOF                           
+  DISPID_IDISPLAYPOINTER_ISRIGHTOF
+  DISPID_IDISPLAYPOINTER_ISATBOL                            
+  DISPID_IDISPLAYPOINTER_MOVETOMARKUPPOINTER                
+  DISPID_IDISPLAYPOINTER_SCROLLINTOVIEW                     
+  DISPID_IDISPLAYPOINTER_GETLINEINFO                        
+  DISPID_IDISPLAYPOINTER_GETFLOWELEMENT                     
+  DISPID_IDISPLAYPOINTER_QUERYBREAKS                        
+
+//    DISPIDs for interface IDisplayServices
+
+  DISPID_IDISPLAYSERVICES_CREATEDISPLAYPOINTER              
+  DISPID_IDISPLAYSERVICES_TRANSFORMRECT
+  DISPID_IDISPLAYSERVICES_TRANSFORMPOINT                    
+  DISPID_IDISPLAYSERVICES_GETCARET                          
+  DISPID_IDISPLAYSERVICES_GETCOMPUTEDSTYLE                  
+  DISPID_IDISPLAYSERVICES_SCROLLRECTINTOVIEW                
+  DISPID_IDISPLAYSERVICES_HASFLOWLAYOUT                     
+  *)
+//    DISPIDs for interface IHTMLNamespace
+
+  DISPID_IHTMLNAMESPACE_NAME                            =  DISPID_NAMESPACE+0 ;
+  DISPID_IHTMLNAMESPACE_URN                             =  DISPID_NAMESPACE+1 ;
+  DISPID_IHTMLNAMESPACE_TAGNAMES                        =  DISPID_NAMESPACE+2 ;
+  DISPID_IHTMLNAMESPACE_READYSTATE                      =  DISPID_A_READYSTATE;
+  DISPID_IHTMLNAMESPACE_ONREADYSTATECHANGE              =  DISPID_EVPROP_ONREADYSTATECHANGE ;
+  DISPID_IHTMLNAMESPACE_DOIMPORT                        =  DISPID_NAMESPACE+3;
+  DISPID_IHTMLNAMESPACE_ATTACHEVENT                     =  DISPID_HTMLOBJECT+7 ;
+  DISPID_IHTMLNAMESPACE_DETACHEVENT                     =  DISPID_HTMLOBJECT+8;
+
+//    DISPIDs for interface IHTMLNamespaceCollection
+
+  DISPID_IHTMLNAMESPACECOLLECTION_LENGTH                =  DISPID_NAMESPACE_COLLECTION+0 ;
+  DISPID_IHTMLNAMESPACECOLLECTION_ITEM                  =  DISPID_VALUE  ;
+  DISPID_IHTMLNAMESPACECOLLECTION_ADD                   =  DISPID_NAMESPACE_COLLECTION+1 ;
+
+//    DISPIDs for event set HTMLNamespaceEvents
+
+  DISPID_HTMLNAMESPACEEVENTS_ONREADYSTATECHANGE          =   DISPID_EVMETH_ONREADYSTATECHANGE ;
+(*
+//    DISPIDs for interface IHTMLPainter
+
+  DISPID_IHTMLPAINTER_DRAW                                  
+  DISPID_IHTMLPAINTER_ONRESIZE                              
+  DISPID_IHTMLPAINTER_GETPAINTERINFO                        
+  DISPID_IHTMLPAINTER_HITTESTPOINT
+
+//    DISPIDs for interface IHTMLPainterEventInfo
+
+  DISPID_IHTMLPAINTEREVENTINFO_GETEVENTINFOFLAGS            
+  DISPID_IHTMLPAINTEREVENTINFO_GETEVENTTARGET               
+  DISPID_IHTMLPAINTEREVENTINFO_SETCURSOR                    
+  DISPID_IHTMLPAINTEREVENTINFO_STRINGFROMPARTID             
+
+//    DISPIDs for interface IHTMLPainterOverlay
+
+  DISPID_IHTMLPAINTEROVERLAY_ONMOVE
+
+//    DISPIDs for interface IHTMLPaintSite
+
+  DISPID_IHTMLPAINTSITE_INVALIDATEPAINTERINFO               
+  DISPID_IHTMLPAINTSITE_INVALIDATERECT                      
+  DISPID_IHTMLPAINTSITE_INVALIDATEREGION                    
+  DISPID_IHTMLPAINTSITE_GETDRAWINFO                         
+  DISPID_IHTMLPAINTSITE_TRANSFORMGLOBALTOLOCAL              
+  DISPID_IHTMLPAINTSITE_TRANSFORMLOCALTOGLOBAL              
+  DISPID_IHTMLPAINTSITE_GETHITTESTCOOKIE                    
+ *)
+//    DISPIDs for interface IHTMLIPrintCollection
+
+  DISPID_IHTMLIPRINTCOLLECTION_LENGTH                   =  DISPID_OPTIONS_COL+1;
+  DISPID_IHTMLIPRINTCOLLECTION__NEWENUM                 =  DISPID_NEWENUM ;
+  DISPID_IHTMLIPRINTCOLLECTION_ITEM                     =  DISPID_VALUE ;
+
+//    DISPIDs for interface IHTMLDialog
+
+  DISPID_IHTMLDIALOG_DIALOGTOP                          =    STDPROPID_XOBJ_TOP ;
+  DISPID_IHTMLDIALOG_DIALOGLEFT                         =    STDPROPID_XOBJ_LEFT  ;
+  DISPID_IHTMLDIALOG_DIALOGWIDTH                        =    STDPROPID_XOBJ_WIDTH ;
+  DISPID_IHTMLDIALOG_DIALOGHEIGHT                       =    STDPROPID_XOBJ_HEIGHT ;
+  DISPID_IHTMLDIALOG_DIALOGARGUMENTS                    =  DISPID_HTMLDLG+0 ;
+  DISPID_IHTMLDIALOG_MENUARGUMENTS                      =  DISPID_HTMLDLG+13;
+  DISPID_IHTMLDIALOG_RETURNVALUE                        =  DISPID_HTMLDLG+1 ;
+  DISPID_IHTMLDIALOG_CLOSE                              =  DISPID_HTMLDLG+11 ;
+  DISPID_IHTMLDIALOG_TOSTRING                           =  DISPID_HTMLDLG+12;
+
+//    DISPIDs for interface IHTMLDialog2
+
+  DISPID_IHTMLDIALOG2_STATUS                            =  DISPID_HTMLDLG+14;
+  DISPID_IHTMLDIALOG2_RESIZABLE                         =  DISPID_HTMLDLG+15;
+
+//    DISPIDs for interface IHTMLDialog3
+
+  DISPID_IHTMLDIALOG3_UNADORNED                         =  DISPID_HTMLDLG+16;
+  DISPID_IHTMLDIALOG3_DIALOGHIDE                        =  DISPID_HTMLDLG+7 ;
+
+//    DISPIDs for interface IHTMLModelessInit
+
+  DISPID_IHTMLMODELESSINIT_PARAMETERS                   =  DISPID_HTMLDLG+0 ;
+  DISPID_IHTMLMODELESSINIT_OPTIONSTRING                 =  DISPID_HTMLDLG+1 ;
+  DISPID_IHTMLMODELESSINIT_MONIKER                      =  DISPID_HTMLDLG+6 ;
+  DISPID_IHTMLMODELESSINIT_DOCUMENT                     =  DISPID_HTMLDLG+7 ;
+
+//    DISPIDs for interface IHTMLPopup
+
+  DISPID_IHTMLPOPUP_SHOW                                =  DISPID_HTMLPOPUP+1 ;
+  DISPID_IHTMLPOPUP_HIDE                                =  DISPID_HTMLPOPUP+2 ;
+  DISPID_IHTMLPOPUP_DOCUMENT                            =  DISPID_HTMLPOPUP+3 ;
+  DISPID_IHTMLPOPUP_ISOPEN                              =  DISPID_HTMLPOPUP+4 ;
+
+//    DISPIDs for interface IHTMLAppBehavior
+
+  DISPID_IHTMLAPPBEHAVIOR_APPLICATIONNAME               =  DISPID_HTMLAPP+0 ;
+  DISPID_IHTMLAPPBEHAVIOR_VERSION                       =  DISPID_HTMLAPP+1 ;
+  DISPID_IHTMLAPPBEHAVIOR_ICON                          =  DISPID_HTMLAPP+2 ;
+  DISPID_IHTMLAPPBEHAVIOR_SINGLEINSTANCE                =  DISPID_HTMLAPP+3 ;
+  DISPID_IHTMLAPPBEHAVIOR_MINIMIZEBUTTON                =  DISPID_HTMLAPP+5  ;
+  DISPID_IHTMLAPPBEHAVIOR_MAXIMIZEBUTTON                =  DISPID_HTMLAPP+6 ;
+  DISPID_IHTMLAPPBEHAVIOR_BORDER                        =  DISPID_HTMLAPP+7 ;
+  DISPID_IHTMLAPPBEHAVIOR_BORDERSTYLE                   =  DISPID_HTMLAPP+8 ;
+  DISPID_IHTMLAPPBEHAVIOR_SYSMENU                       =  DISPID_HTMLAPP+9 ;
+  DISPID_IHTMLAPPBEHAVIOR_CAPTION                       =  DISPID_HTMLAPP+10 ;
+  DISPID_IHTMLAPPBEHAVIOR_WINDOWSTATE                   =  DISPID_HTMLAPP+11;
+  DISPID_IHTMLAPPBEHAVIOR_SHOWINTASKBAR                 =  DISPID_HTMLAPP+12 ;
+  DISPID_IHTMLAPPBEHAVIOR_COMMANDLINE                   =  DISPID_HTMLAPP+13 ;
+
+//    DISPIDs for interface IHTMLAppBehavior2
+
+  DISPID_IHTMLAPPBEHAVIOR2_CONTEXTMENU                  =  DISPID_HTMLAPP+14 ;
+  DISPID_IHTMLAPPBEHAVIOR2_INNERBORDER                  =  DISPID_HTMLAPP+15 ;
+  DISPID_IHTMLAPPBEHAVIOR2_SCROLL                       =  DISPID_HTMLAPP+16 ;
+  DISPID_IHTMLAPPBEHAVIOR2_SCROLLFLAT                   =  DISPID_HTMLAPP+17;
+  DISPID_IHTMLAPPBEHAVIOR2_SELECTION                    =  DISPID_HTMLAPP+18 ;
+
+//    DISPIDs for interface IHTMLAppBehavior3
+
+  DISPID_IHTMLAPPBEHAVIOR3_NAVIGABLE                    =  DISPID_HTMLAPP+19 ;
+ (*
+//    DISPIDs for interface IHTMLPrivateWindow
+
+  DISPID_IHTMLPRIVATEWINDOW_SUPERNAVIGATE                   
+  DISPID_IHTMLPRIVATEWINDOW_GETPENDINGURL                   
+  DISPID_IHTMLPRIVATEWINDOW_SETPICSTARGET                   
+  DISPID_IHTMLPRIVATEWINDOW_PICSCOMPLETE                    
+  DISPID_IHTMLPRIVATEWINDOW_FINDWINDOWBYNAME
+  DISPID_IHTMLPRIVATEWINDOW_GETADDRESSBARURL                
+
+//    DISPIDs for interface IHTMLPrivateWindow2
+
+  DISPID_IHTMLPRIVATEWINDOW2_NAVIGATEEX                     
+  DISPID_IHTMLPRIVATEWINDOW2_GETINNERWINDOWUNKNOWN          
+
+//    DISPIDs for interface ISubDivisionProvider
+
+  DISPID_ISUBDIVISIONPROVIDER_GETSUBDIVISIONCOUNT           
+  DISPID_ISUBDIVISIONPROVIDER_GETSUBDIVISIONTABS
+  DISPID_ISUBDIVISIONPROVIDER_SUBDIVISIONFROMPT             
+
+//    DISPIDs for interface IElementBehaviorUI
+
+  DISPID_IELEMENTBEHAVIORUI_ONRECEIVEFOCUS                  
+  DISPID_IELEMENTBEHAVIORUI_GETSUBDIVISIONPROVIDER          
+  DISPID_IELEMENTBEHAVIORUI_CANTAKEFOCUS                    
+
+//    DISPIDs for interface IElementAdorner
+
+  DISPID_IELEMENTADORNER_DRAW
+  DISPID_IELEMENTADORNER_HITTESTPOINT                       
+  DISPID_IELEMENTADORNER_GETSIZE                            
+  DISPID_IELEMENTADORNER_GETPOSITION                        
+  DISPID_IELEMENTADORNER_ONPOSITIONSET                      
+
+//    DISPIDs for interface IHTMLEditor
+
+  DISPID_IHTMLEDITOR_PREHANDLEEVENT                         
+  DISPID_IHTMLEDITOR_POSTHANDLEEVENT                        
+  DISPID_IHTMLEDITOR_TRANSLATEACCELERATOR                   
+  DISPID_IHTMLEDITOR_INITIALIZE
+  DISPID_IHTMLEDITOR_NOTIFY                                 
+  DISPID_IHTMLEDITOR_GETCOMMANDTARGET                       
+  DISPID_IHTMLEDITOR_GETELEMENTTOTABFROM                    
+  DISPID_IHTMLEDITOR_ISEDITCONTEXTUIACTIVE                  
+  DISPID_IHTMLEDITOR_TERMINATEIMECOMPOSITION                
+  DISPID_IHTMLEDITOR_ENABLEMODELESS                         
+
+//    DISPIDs for interface IHTMLEditingServices
+
+  DISPID_IHTMLEDITINGSERVICES_DELETE                        
+  DISPID_IHTMLEDITINGSERVICES_PASTE
+  DISPID_IHTMLEDITINGSERVICES_PASTEFROMCLIPBOARD            
+  DISPID_IHTMLEDITINGSERVICES_LAUNDERSPACES                 
+  DISPID_IHTMLEDITINGSERVICES_INSERTSANITIZEDTEXT           
+  DISPID_IHTMLEDITINGSERVICES_URLAUTODETECTCURRENTWORD      
+  DISPID_IHTMLEDITINGSERVICES_URLAUTODETECTRANGE            
+  DISPID_IHTMLEDITINGSERVICES_SHOULDUPDATEANCHORTEXT        
+  DISPID_IHTMLEDITINGSERVICES_ADJUSTPOINTERFORINSERT        
+  DISPID_IHTMLEDITINGSERVICES_FINDSITESELECTABLEELEMENT     
+  DISPID_IHTMLEDITINGSERVICES_ISELEMENTSITESELECTABLE       
+  DISPID_IHTMLEDITINGSERVICES_ISELEMENTUIACTIVATABLE        
+  DISPID_IHTMLEDITINGSERVICES_ISELEMENTATOMIC
+  DISPID_IHTMLEDITINGSERVICES_POSITIONPOINTERSINMASTER      
+
+//    DISPIDs for interface ISelectionObject2
+
+  DISPID_ISELECTIONOBJECT2_SELECT                           
+  DISPID_ISELECTIONOBJECT2_ISPOINTERINSELECTION             
+  DISPID_ISELECTIONOBJECT2_EMPTYSELECTION                   
+  DISPID_ISELECTIONOBJECT2_DESTROYSELECTION                 
+  DISPID_ISELECTIONOBJECT2_DESTROYALLSELECTION              
+
+//    DISPIDs for interface IEditDebugServices
+
+  DISPID_IEDITDEBUGSERVICES_GETCP                           
+  DISPID_IEDITDEBUGSERVICES_SETDEBUGNAME                    
+  DISPID_IEDITDEBUGSERVICES_SETDISPLAYPOINTERDEBUGNAME      
+  DISPID_IEDITDEBUGSERVICES_DUMPTREE                        
+  DISPID_IEDITDEBUGSERVICES_LINESINELEMENT                  
+  DISPID_IEDITDEBUGSERVICES_FONTSONLINE                     
+  DISPID_IEDITDEBUGSERVICES_GETPIXEL                        
+
+//    DISPIDs for interface IHTMLOMWindowServices
+
+  DISPID_IHTMLOMWINDOWSERVICES_MOVETO                       
+  DISPID_IHTMLOMWINDOWSERVICES_MOVEBY                       
+  DISPID_IHTMLOMWINDOWSERVICES_RESIZETO                     
+  DISPID_IHTMLOMWINDOWSERVICES_RESIZEBY                     
+
+//    DISPIDs for interface IHTMLFilterPainter
+
+  DISPID_IHTMLFILTERPAINTER_INVALIDATERECTUNFILTERED        
+  DISPID_IHTMLFILTERPAINTER_INVALIDATERGNUNFILTERED         
+  DISPID_IHTMLFILTERPAINTER_CHANGEELEMENTVISIBILITY         
+
+//    DISPIDs for interface IHTMLFilterPaintSite
+
+  DISPID_IHTMLFILTERPAINTSITE_DRAWUNFILTERED                
+  DISPID_IHTMLFILTERPAINTSITE_HITTESTPOINTUNFILTERED        
+  DISPID_IHTMLFILTERPAINTSITE_INVALIDATERECTFILTERED        
+  DISPID_IHTMLFILTERPAINTSITE_INVALIDATERGNFILTERED         
+  DISPID_IHTMLFILTERPAINTSITE_CHANGEFILTERVISIBILITY        
+  DISPID_IHTMLFILTERPAINTSITE_ENSUREVIEWFORFILTERSITE       
+  DISPID_IHTMLFILTERPAINTSITE_GETDIRECTDRAW                 
+  DISPID_IHTMLFILTERPAINTSITE_GETFILTERFLAGS                
+
+//    DISPIDs for interface IElementNamespacePrivate
+
+  DISPID_IELEMENTNAMESPACEPRIVATE_ADDTAGPRIVATE             
+
+//    DISPIDs for interface IElementBehaviorFactory
+
+  DISPID_IELEMENTBEHAVIORFACTORY_FINDBEHAVIOR               
+
+//    DISPIDs for interface IElementNamespace
+
+  DISPID_IELEMENTNAMESPACE_ADDTAG
+
+//    DISPIDs for interface IElementNamespaceTable
+
+  DISPID_IELEMENTNAMESPACETABLE_ADDNAMESPACE                
+
+//    DISPIDs for interface IElementNamespaceFactory
+
+  DISPID_IELEMENTNAMESPACEFACTORY_CREATE                    
+
+//    DISPIDs for interface IElementNamespaceFactoryCallback
+
+  DISPID_IELEMENTNAMESPACEFACTORYCALLBACK_RESOLVE           
+
+//    DISPIDs for interface IElementBehavior
+
+  DISPID_IELEMENTBEHAVIOR_INIT                              
+  DISPID_IELEMENTBEHAVIOR_NOTIFY                            
+  DISPID_IELEMENTBEHAVIOR_DETACH                            
+
+//    DISPIDs for interface IElementBehaviorSite
+
+  DISPID_IELEMENTBEHAVIORSITE_GETELEMENT
+  DISPID_IELEMENTBEHAVIORSITE_REGISTERNOTIFICATION          
+
+//    DISPIDs for interface IElementBehaviorSiteOM
+
+  DISPID_IELEMENTBEHAVIORSITEOM_REGISTEREVENT               
+  DISPID_IELEMENTBEHAVIORSITEOM_GETEVENTCOOKIE              
+  DISPID_IELEMENTBEHAVIORSITEOM_FIREEVENT                   
+  DISPID_IELEMENTBEHAVIORSITEOM_CREATEEVENTOBJECT           
+  DISPID_IELEMENTBEHAVIORSITEOM_REGISTERNAME                
+  DISPID_IELEMENTBEHAVIORSITEOM_REGISTERURN                 
+
+//    DISPIDs for interface IElementBehaviorSiteOM2
+
+  DISPID_IELEMENTBEHAVIORSITEOM2_GETDEFAULTS                
+
+//    DISPIDs for interface IElementBehaviorRender
+
+  DISPID_IELEMENTBEHAVIORRENDER_DRAW                        
+  DISPID_IELEMENTBEHAVIORRENDER_GETRENDERINFO               
+  DISPID_IELEMENTBEHAVIORRENDER_HITTESTPOINT                
+
+//    DISPIDs for interface IElementBehaviorSiteRender
+
+  DISPID_IELEMENTBEHAVIORSITERENDER_INVALIDATE              
+  DISPID_IELEMENTBEHAVIORSITERENDER_INVALIDATERENDERINFO    
+  DISPID_IELEMENTBEHAVIORSITERENDER_INVALIDATESTYLE         
+
+//    DISPIDs for interface IElementBehaviorCategory
+
+  DISPID_IELEMENTBEHAVIORCATEGORY_GETCATEGORY               
+
+//    DISPIDs for interface IElementBehaviorSiteCategory
+
+  DISPID_IELEMENTBEHAVIORSITECATEGORY_GETRELATEDBEHAVIORS   
+
+//    DISPIDs for interface IElementBehaviorSubmit
+
+  DISPID_IELEMENTBEHAVIORSUBMIT_GETSUBMITINFO               
+  DISPID_IELEMENTBEHAVIORSUBMIT_RESET                       
+
+//    DISPIDs for interface IElementBehaviorFocus
+
+  DISPID_IELEMENTBEHAVIORFOCUS_GETFOCUSRECT
+
+//    DISPIDs for interface IElementBehaviorLayout
+
+  DISPID_IELEMENTBEHAVIORLAYOUT_GETSIZE                     
+  DISPID_IELEMENTBEHAVIORLAYOUT_GETLAYOUTINFO               
+  DISPID_IELEMENTBEHAVIORLAYOUT_GETPOSITION                 
+  DISPID_IELEMENTBEHAVIORLAYOUT_MAPSIZE                     
+
+//    DISPIDs for interface IElementBehaviorSiteLayout
+
+  DISPID_IELEMENTBEHAVIORSITELAYOUT_INVALIDATELAYOUTINFO    
+  DISPID_IELEMENTBEHAVIORSITELAYOUT_INVALIDATESIZE          
+  DISPID_IELEMENTBEHAVIORSITELAYOUT_GETMEDIARESOLUTION
+
+*)
+
+implementation
+
+
+end.
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/Ieconst.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/Ieconst.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/Ieconst.pas	(revision 541)
@@ -0,0 +1,745 @@
+(******************************************************************************
+*                                   IEConst                                   *
+* Constants for IE hosting etc...                                             *
+******************************************************************************)
+unit Ieconst;
+
+interface
+
+uses
+   ActiveX, OleCtrls, Windows, Messages, SysUtils, Classes;
+
+
+const
+  SID_SHTMLEditHost: TGUID = '{3050F6A0-98B5-11CF-BB82-00AA00BDCE0B}';
+  //(D1: $3050F6A0; D2: $98B5; D3: $11CF; D4: ($BB, $82, $00, $AA, $00, $BD, $CE, $0B));
+
+  IID_IDocHostUIHandler: TGUID = '{bd3f23c0-d43e-11cf-893b-00aa00bdce1a}';
+  GUID_TriEditCommandGroup: TGUID = '{2582F1C0-084E-11d1-9A0E-006097C9B344}';
+  CMDSETID_Forms3: TGUID = '{DE4BA900-59CA-11CF-9592-444553540000}';
+  CGID_MSHTML: TGUID = '{DE4BA900-59CA-11CF-9592-444553540000}';
+  CGID_DocHostCommandHandler: TGUID = (D1: $F38BC242; D2: $B950; D3: $11D1; D4: ($89, $18, $00, $C0, $4F, $C2, $C8, $36));
+
+
+
+  CLSID_WebBrowser: TGUID = '{ED016940-BD5B-11cf-BA4E-00C04FD70816}';
+
+  SID_SHTMLEditServices: TGUID = (D1: $3050f7f9; D2: $98b5; D3: $11cf; D4: ($bb, $82, $00, $AA, $00, $bd, $ce, $0b));
+
+  //* Object interface: IBrowserHost, ver. 0.0,
+  // GUID={0x5FD6158A,0x71F6,0x4F20,{0xB8,0xA9,0x6E,0xAF,0x5D,0x03,0x2D,0x15}} */
+
+  MSOCMDF_SUPPORTED = OLECMDF_SUPPORTED;
+  MSOCMDF_ENABLED = OLECMDF_ENABLED;
+
+  MSOCMDEXECOPT_PROMPTUSER = OLECMDEXECOPT_PROMPTUSER;
+  MSOCMDEXECOPT_DONTPROMPTUSER = OLECMDEXECOPT_DONTPROMPTUSER;
+
+
+//thise constants / enums isent contained in IE 5.5 SHDocVw_TLB ???
+type
+  RefreshConstants = TOleEnum;
+const
+  REFRESH_NORMAL = 0;
+  REFRESH_IFEXPIRED = 1;
+  REFRESH_CONTINUE = 2;
+  REFRESH_COMPLETELY = 3;
+
+type
+  BrowserNavConstants = TOleEnum;
+const
+  navOpenInNewWindow = $00000001;
+  navNoHistory       = $00000002;
+  navNoReadFromCache = $00000004;
+  navNoWriteToCache  = $00000008;
+  navAllowAutosearch = $00000010;
+  navBrowserBar      = $00000020;
+//----- END ----------
+
+const
+  CONTEXT_MENU_DEFAULT = 0;
+  CONTEXT_MENU_IMAGE = 1;
+  CONTEXT_MENU_CONTROL = 2;
+  CONTEXT_MENU_TABLE = 3;
+  CONTEXT_MENU_TEXTSELECT = 4;
+  CONTEXT_MENU_ANCHOR = 5;
+  CONTEXT_MENU_UNKNOWN = 6;
+  CONTEXT_MENU_IMGDYNSRC = 7;
+  CONTEXT_MENU_IMGART = 8;
+  CONTEXT_MENU_DEBUG = 9;
+
+
+  DOCHOSTUITYPE_BROWSE= 0;
+  DOCHOSTUITYPE_AUTHOR= 1;
+
+  DOCHOSTUIDBLCLK_DEFAULT= 0;
+  DOCHOSTUIDBLCLK_SHOWPROPERTIES= 1;
+  DOCHOSTUIDBLCLK_SHOWCODE= 2;
+
+  DOCHOSTUIFLAG_DIALOG                      = 1;
+  DOCHOSTUIFLAG_DISABLE_HELP_MENU           = 2;
+  DOCHOSTUIFLAG_NO3DBORDER                  = 4;
+  DOCHOSTUIFLAG_SCROLL_NO                   = 8;
+  DOCHOSTUIFLAG_DISABLE_SCRIPT_INACTIVE     = 16;
+  DOCHOSTUIFLAG_OPENNEWWIN                  = 32;
+  DOCHOSTUIFLAG_DISABLE_OFFSCREEN           = 64;
+  DOCHOSTUIFLAG_FLAT_SCROLLBAR              = 128;
+  DOCHOSTUIFLAG_DIV_BLOCKDEFAULT            = 256;
+  DOCHOSTUIFLAG_ACTIVATE_CLIENTHIT_ONLY     = 512;
+  DOCHOSTUIFLAG_OVERRIDEBEHAVIORFACTORY     = $00000400;
+  DOCHOSTUIFLAG_CODEPAGELINKEDFONTS         = $00000800;
+  DOCHOSTUIFLAG_URL_ENCODING_DISABLE_UTF8   = $00001000;
+  DOCHOSTUIFLAG_URL_ENCODING_ENABLE_UTF8    = $00002000;
+  DOCHOSTUIFLAG_ENABLE_FORMS_AUTOCOMPLETE   = $00004000;
+  DOCHOSTUIFLAG_ENABLE_INPLACE_NAVIGATION   = $00010000;
+  DOCHOSTUIFLAG_IME_ENABLE_RECONVERSION     = $00020000;
+  DOCHOSTUIFLAG_THEME                       = $00040000;
+  DOCHOSTUIFLAG_NOTHEME                     = $00080000;
+  DOCHOSTUIFLAG_NOPICS                      = $00100000;
+  DOCHOSTUIFLAG_NO3DOUTERBORDER             = $00200000;
+
+  //old style DECM....
+  DECMD_BOLD              = $00001388;   //5000
+  DECMD_COPY              = $0000138A;
+  DECMD_CUT               = $0000138B;
+  DECMD_DELETE            = $0000138C;
+  DECMD_DELETECELLS       = $0000138D;
+  DECMD_DELETECOLS        = $0000138E;
+  DECMD_DELETEROWS        = $0000138F;
+  DECMD_FINDTEXT          = $00001390;
+  DECMD_FONT              = $00001391;
+  DECMD_GETBACKCOLOR      = $00001392;
+  DECMD_GETBLOCKFMT       = $00001393;
+  DECMD_GETBLOCKFMTNAMES  = $00001394;
+  DECMD_GETFONTNAME       = $00001395;
+  DECMD_GETFONTSIZE       = $00001396;
+  DECMD_GETFORECOLOR      = $00001397;
+  DECMD_HYPERLINK         = $00001398;
+  DECMD_IMAGE             = $00001399;
+  DECMD_INDENT            = $0000139A;
+  DECMD_INSERTCELL        = $0000139B;
+  DECMD_INSERTCOL         = $0000139C;
+  DECMD_INSERTROW         = $0000139D;
+  DECMD_INSERTTABLE       = $0000139E;
+  DECMD_ITALIC            = $0000139F;
+  DECMD_JUSTIFYCENTER     = $000013A0;
+  DECMD_JUSTIFYLEFT       = $000013A1;
+  DECMD_JUSTIFYRIGHT      = $000013A2;
+  DECMD_LOCK_ELEMENT      = $000013A3;
+  DECMD_MAKE_ABSOLUTE     = $000013A4;
+  DECMD_MERGECELLS        = $000013A5;
+  DECMD_ORDERLIST         = $000013A6;
+  DECMD_OUTDENT           = $000013A7;
+  DECMD_PASTE             = $000013A8;
+  DECMD_REDO              = $000013A9;
+  DECMD_REMOVEFORMAT      = $000013AA;
+  DECMD_SELECTALL         = $000013AB;
+  DECMD_SEND_BACKWARD     = $000013AC;
+  DECMD_BRING_FORWARD     = $000013AD;
+  DECMD_SEND_BELOW_TEXT   = $000013AE;
+  DECMD_BRING_ABOVE_TEXT  = $000013AF;
+  DECMD_SEND_TO_BACK      = $000013B0;
+  DECMD_BRING_TO_FRONT    = $000013B1;
+  DECMD_SETBACKCOLOR      = $000013B2;
+  DECMD_SETBLOCKFMT       = $000013B3;
+  DECMD_SETFONTNAME       = $000013B4;
+  DECMD_SETFONTSIZE       = $000013B5;
+  DECMD_SETFORECOLOR      = $000013B6;
+  DECMD_SPLITCELL         = $000013B7;
+  DECMD_UNDERLINE         = $000013B8;
+  DECMD_UNDO              = $000013B9;
+  DECMD_UNLINK            = $000013BA;
+  DECMD_UNORDERLIST       = $000013BB;
+  DECMD_PROPERTIES        = $000013BC;    //5052
+  IDM_NUDGE_ELEMENT       = $000013BD;
+  IDM_LOCK_ELEMENT        = $000013BE;
+  IDM_CONSTRAIN           = $000013BF;
+  KS_TEST                 = $000013C0;
+
+  //end old style DECM....
+
+  IDM_UNKNOWN               =  0;
+  IDM_ALIGNBOTTOM           =  1;
+  IDM_ALIGNHORIZONTALCENTERS=  2;
+  IDM_ALIGNLEFT             =  3;
+  IDM_ALIGNRIGHT            =  4;
+  IDM_ALIGNTOGRID           =  5;
+  IDM_ALIGNTOP              =  6;
+  IDM_ALIGNVERTICALCENTERS  =  7;
+  IDM_ARRANGEBOTTOM         =  8;
+  IDM_ARRANGERIGHT          =  9;
+  IDM_BRINGFORWARD           = 10;
+  IDM_BRINGTOFRONT           = 11;
+  IDM_CENTERHORIZONTALLY     = 12;
+  IDM_CENTERVERTICALLY       = 13;
+  IDM_CODE                   = 14;
+  IDM_DELETE                 = 17;
+  IDM_FONTNAME               = 18;
+  IDM_FONTSIZE               = 19;
+  IDM_GROUP                  = 20;
+  IDM_HORIZSPACECONCATENATE  = 21;
+  IDM_HORIZSPACEDECREASE     = 22;
+  IDM_HORIZSPACEINCREASE     = 23;
+  IDM_HORIZSPACEMAKEEQUAL    = 24;
+  IDM_INSERTOBJECT           = 25;
+  IDM_MULTILEVELREDO         = 30;
+  IDM_SENDBACKWARD           = 32;
+  IDM_SENDTOBACK             = 33;
+  IDM_SHOWTABLE              = 34;
+  IDM_SIZETOCONTROL          = 35;
+  IDM_SIZETOCONTROLHEIGHT    = 36;
+  IDM_SIZETOCONTROLWIDTH     = 37;
+  IDM_SIZETOFIT              = 38;
+  IDM_SIZETOGRID             = 39;
+  IDM_SNAPTOGRID             = 40;
+  IDM_TABORDER               = 41;
+  IDM_TOOLBOX                = 42;
+  IDM_MULTILEVELUNDO         = 44;
+  IDM_UNGROUP                = 45;
+  IDM_VERTSPACECONCATENATE   = 46;
+  IDM_VERTSPACEDECREASE      = 47;
+  IDM_VERTSPACEINCREASE      = 48;
+  IDM_VERTSPACEMAKEEQUAL     = 49;
+  IDM_JUSTIFYFULL            = 50;
+  IDM_BACKCOLOR              = 51;
+  IDM_BOLD                   = 52;
+  IDM_BORDERCOLOR            = 53;
+  IDM_FLAT                   = 54;
+  IDM_FORECOLOR              = 55;
+  IDM_ITALIC                 = 56;
+  IDM_JUSTIFYCENTER          = 57;
+  IDM_JUSTIFYGENERAL         = 58;
+  IDM_JUSTIFYLEFT            = 59;
+  IDM_JUSTIFYRIGHT           = 60;
+  IDM_RAISED                 = 61;
+  IDM_SUNKEN                 = 62;
+  IDM_UNDERLINE              = 63;
+  IDM_CHISELED               = 64;
+  IDM_ETCHED                 = 65;
+  IDM_SHADOWED               = 66;
+  IDM_FIND                   = 67;
+  IDM_SHOWGRID               = 69;
+  IDM_OBJECTVERBLIST0        = 72;
+  IDM_OBJECTVERBLIST1        = 73;
+  IDM_OBJECTVERBLIST2        = 74;
+  IDM_OBJECTVERBLIST3        = 75;
+  IDM_OBJECTVERBLIST4        = 76;
+  IDM_OBJECTVERBLIST5        = 77;
+  IDM_OBJECTVERBLIST6        = 78;
+  IDM_OBJECTVERBLIST7        = 79;
+  IDM_OBJECTVERBLIST8        = 80;
+  IDM_OBJECTVERBLIST9        = 81;
+  IDM_OBJECTVERBLISTLAST     = IDM_OBJECTVERBLIST9;
+  IDM_CONVERTOBJECT          = 82;
+  IDM_CUSTOMCONTROL          = 83;
+  IDM_CUSTOMIZEITEM          = 84;
+  IDM_RENAME                 = 85;
+  IDM_IMPORT                 = 86;
+  IDM_NEWPAGE                = 87;
+  IDM_MOVE                   = 88;
+  IDM_CANCEL                 = 89;
+  IDM_FONT                   = 90;
+  IDM_STRIKETHROUGH          = 91;
+  IDM_DELETEWORD             = 92;
+  IDM_EXECPRINT              = 93;
+  IDM_JUSTIFYNONE            = 94;
+  IDM_TRISTATEBOLD           = 95;
+  IDM_TRISTATEITALIC         = 96;
+  IDM_TRISTATEUNDERLINE      = 97;
+
+  IDM_FOLLOW_ANCHOR         =  2008;
+
+  IDM_INSINPUTIMAGE         =  2114;
+  IDM_INSINPUTBUTTON        =  2115;
+  IDM_INSINPUTRESET         =  2116;
+  IDM_INSINPUTSUBMIT        =  2117;
+  IDM_INSINPUTUPLOAD        =  2118;
+  IDM_INSFIELDSET           =  2119;
+
+  IDM_PASTEINSERT           =  2120;
+  IDM_REPLACE               =  2121;
+  IDM_EDITSOURCE            =  2122;
+  IDM_BOOKMARK              =  2123;
+  IDM_HYPERLINK             =  2124;
+  IDM_UNLINK                =  2125;
+  IDM_BROWSEMODE            =  2126;
+  IDM_EDITMODE              =  2127;
+  IDM_UNBOOKMARK            =  2128;
+
+  IDM_TOOLBARS              =  2130;
+  IDM_STATUSBAR             =  2131;
+  IDM_FORMATMARK            =  2132;
+  IDM_TEXTONLY              =  2133;
+  IDM_OPTIONS               =  2135;
+  IDM_FOLLOWLINKC           =  2136;
+  IDM_FOLLOWLINKN           =  2137;
+  IDM_VIEWSOURCE            =  2139;
+  IDM_ZOOMPOPUP             =  2140;
+
+  // IDM_BASELINEFONT1, IDM_BASELINEFONT2, IDM_BASELINEFONT3, IDM_BASELINEFONT4,
+  // and IDM_BASELINEFONT5 should be consecutive integers;
+  //
+  IDM_BASELINEFONT1         =  2141;
+  IDM_BASELINEFONT2         =  2142;
+  IDM_BASELINEFONT3         =  2143;
+  IDM_BASELINEFONT4         =  2144;
+  IDM_BASELINEFONT5         =  2145;
+
+  IDM_HORIZONTALLINE        =  2150;
+  IDM_LINEBREAKNORMAL       =  2151;
+  IDM_LINEBREAKLEFT         =  2152;
+  IDM_LINEBREAKRIGHT        =  2153;
+  IDM_LINEBREAKBOTH         =  2154;
+  IDM_NONBREAK              =  2155;
+  IDM_SPECIALCHAR           =  2156;
+  IDM_HTMLSOURCE            =  2157;
+  IDM_IFRAME                =  2158;
+  IDM_HTMLCONTAIN           =  2159;
+  IDM_TEXTBOX               =  2161;
+  IDM_TEXTAREA              =  2162;
+  IDM_CHECKBOX              =  2163;
+  IDM_RADIOBUTTON           =  2164;
+  IDM_DROPDOWNBOX           =  2165;
+  IDM_LISTBOX               =  2166;
+  IDM_BUTTON                =  2167;
+  IDM_IMAGE                 =  2168;
+  IDM_OBJECT                =  2169;
+  IDM_1D                    =  2170;
+  IDM_IMAGEMAP              =  2171;
+  IDM_FILE                  =  2172;
+  IDM_COMMENT               =  2173;
+  IDM_SCRIPT                =  2174;
+  IDM_JAVAAPPLET            =  2175;
+  IDM_PLUGIN                =  2176;
+  IDM_PAGEBREAK             =  2177;
+  IDM_HTMLAREA              =  2178;
+
+  IDM_PARAGRAPH             =  2180;
+  IDM_FORM                  =  2181;
+  IDM_MARQUEE               =  2182;
+  IDM_LIST                  =  2183;
+  IDM_ORDERLIST             =  2184;
+  IDM_UNORDERLIST           =  2185;
+  IDM_INDENT                =  2186;
+  IDM_OUTDENT               =  2187;
+  IDM_PREFORMATTED          =  2188;
+  IDM_ADDRESS               =  2189;
+  IDM_BLINK                 =  2190;
+  IDM_DIV                   =  2191;
+
+  IDM_TABLEINSERT           =  2200;
+  IDM_RCINSERT              =  2201;
+  IDM_CELLINSERT            =  2202;
+  IDM_CAPTIONINSERT         =  2203;
+  IDM_CELLMERGE             =  2204;
+  IDM_CELLSPLIT             =  2205;
+  IDM_CELLSELECT            =  2206;
+  IDM_ROWSELECT             =  2207;
+  IDM_COLUMNSELECT          =  2208;
+  IDM_TABLESELECT           =  2209;
+  IDM_TABLEPROPERTIES       =  2210;
+  IDM_CELLPROPERTIES        =  2211;
+  IDM_ROWINSERT             =  2212;
+  IDM_COLUMNINSERT          =  2213;
+
+  IDM_HELP_CONTENT          =  2220;
+  IDM_HELP_ABOUT            =  2221;
+  IDM_HELP_README           =  2222;
+
+  IDM_REMOVEFORMAT          =  2230;
+  IDM_PAGEINFO              =  2231;
+  IDM_TELETYPE              =  2232;
+  IDM_GETBLOCKFMTS          =  2233;
+  IDM_BLOCKFMT              =  2234;
+  IDM_SHOWHIDE_CODE         =  2235;
+  IDM_TABLE                 =  2236;
+
+  IDM_COPYFORMAT            =  2237;
+  IDM_PASTEFORMAT           =  2238;
+  IDM_GOTO                  =  2239;
+
+  IDM_CHANGEFONT            =  2240;
+  IDM_CHANGEFONTSIZE        =  2241;
+  IDM_INCFONTSIZE           =  2242;
+  IDM_DECFONTSIZE           =  2243;
+  IDM_INCFONTSIZE1PT        =  2244;
+  IDM_DECFONTSIZE1PT        =  2245;
+  IDM_CHANGECASE            =  2246;
+  IDM_SUBSCRIPT             =  2247;
+  IDM_SUPERSCRIPT           =  2248;
+  IDM_SHOWSPECIALCHAR       =  2249;
+
+  IDM_CENTERALIGNPARA       =  2250;
+  IDM_LEFTALIGNPARA         =  2251;
+  IDM_RIGHTALIGNPARA        =  2252;
+  IDM_REMOVEPARAFORMAT      =  2253;
+  IDM_APPLYNORMAL           =  2254;
+  IDM_APPLYHEADING1         =  2255;
+  IDM_APPLYHEADING2         =  2256;
+  IDM_APPLYHEADING3         =  2257;
+
+  IDM_DOCPROPERTIES         =  2260;
+  IDM_ADDFAVORITES          =  2261;
+  IDM_COPYSHORTCUT          =  2262;
+  IDM_SAVEBACKGROUND        =  2263;
+  IDM_SETWALLPAPER          =  2264;
+  IDM_COPYBACKGROUND        =  2265;
+  IDM_CREATESHORTCUT        =  2266;
+  IDM_PAGE                  =  2267;
+  IDM_SAVETARGET            =  2268;
+  IDM_SHOWPICTURE           =  2269;
+  IDM_SAVEPICTURE           =  2270;
+  IDM_DYNSRCPLAY            =  2271;
+  IDM_DYNSRCSTOP            =  2272;
+  IDM_PRINTTARGET           =  2273;
+  IDM_IMGARTPLAY            =  2274;
+  IDM_IMGARTSTOP            =  2275;
+  IDM_IMGARTREWIND          =  2276;
+  IDM_PRINTQUERYJOBSPENDING =  2277;
+  IDM_SETDESKTOPITEM        =  2278;
+
+  IDM_CONTEXTMENU           =  2280;
+  IDM_GOBACKWARD            =  2282;
+  IDM_GOFORWARD             =  2283;
+  IDM_PRESTOP               =  2284;
+
+  IDM_CREATELINK            =  2290;
+  IDM_COPYCONTENT           =  2291;
+
+  IDM_LANGUAGE              =  2292;
+
+  IDM_GETPRINTTEMPLATE      =  2295;
+  IDM_TEMPLATE_PAGESETUP    =  2298;
+
+  IDM_REFRESH               =  2300;
+  IDM_STOPDOWNLOAD          =  2301;
+
+  IDM_ENABLE_INTERACTION    =  2302;
+
+  IDM_LAUNCHDEBUGGER        =  2310;
+  IDM_BREAKATNEXT           =  2311;
+
+  IDM_INSINPUTHIDDEN        =  2312;
+  IDM_INSINPUTPASSWORD      =  2313;
+
+  IDM_OVERWRITE             =  2314;
+
+  IDM_PARSECOMPLETE         =  2315;
+
+  IDM_HTMLEDITMODE          =  2316;
+
+  IDM_REGISTRYREFRESH       =  2317;
+  IDM_COMPOSESETTINGS       =  2318;
+
+  IDM_SHOWALLTAGS           =  2320;
+  IDM_SHOWALIGNEDSITETAGS   =  2321;
+  IDM_SHOWSCRIPTTAGS        =  2322;
+  IDM_SHOWSTYLETAGS         =  2323;
+  IDM_SHOWCOMMENTTAGS       =  2324;
+  IDM_SHOWAREATAGS          =  2325;
+  IDM_SHOWUNKNOWNTAGS       =  2326;
+  IDM_SHOWMISCTAGS          =  2327;
+  IDM_SHOWZEROBORDERATDESIGNTIME       =  2328;
+
+  IDM_AUTODETECT            =  2329;
+
+  IDM_SCRIPTDEBUGGER        =  2330;
+
+  IDM_GETBYTESDOWNLOADED    =  2331;
+
+  IDM_NOACTIVATENORMALOLECONTROLS      =  2332;
+  IDM_NOACTIVATEDESIGNTIMECONTROLS     =  2333;
+  IDM_NOACTIVATEJAVAAPPLETS            =  2334;
+
+  IDM_NOFIXUPURLSONPASTE    =  2335;
+  IDM_EMPTYGLYPHTABLE        = 2336;
+  IDM_ADDTOGLYPHTABLE        = 2337;
+  IDM_REMOVEFROMGLYPHTABLE   = 2338;
+  IDM_REPLACEGLYPHCONTENTS   = 2339;
+
+  IDM_SHOWWBRTAGS           =  2340;
+
+  IDM_PERSISTSTREAMSYNC     =  2341;
+  IDM_SETDIRTY              =  2342;
+  IDM_RUNURLSCRIPT          =  2343;
+
+  IDM_ZOOMRATIO             =  2344;
+  IDM_GETZOOMNUMERATOR      =  2345;
+  IDM_GETZOOMDENOMINATOR    =  2346;
+
+
+  IDM_MIMECSET__FIRST__     =  3609;
+  IDM_MIMECSET__LAST__      =  3640;
+
+  // COMMANDS FOR COMPLEX TEXT
+  IDM_DIRLTR                =  2350;
+  IDM_DIRRTL                =  2351;
+  IDM_BLOCKDIRLTR           =  2352;
+  IDM_BLOCKDIRRTL           =  2353;
+  IDM_INLINEDIRLTR          =  2354;
+  IDM_INLINEDIRRTL          =  2355;
+
+  // SHDOCVW
+  IDM_ISTRUSTEDDLG          =  2356;
+
+  // MSHTMLED
+  IDM_INSERTSPAN            =  2357;
+  IDM_LOCALIZEEDITOR        =  2358;
+
+  // XML MIMEVIEWER
+  IDM_SAVEPRETRANSFORMSOURCE = 2370;
+  IDM_VIEWPRETRANSFORMSOURCE = 2371;
+
+  // Scrollbar context menu
+  IDM_SCROLL_HERE            = 2380;
+  IDM_SCROLL_TOP             = 2381;
+  IDM_SCROLL_BOTTOM          = 2382;
+  IDM_SCROLL_PAGEUP          = 2383;
+  IDM_SCROLL_PAGEDOWN        = 2384;
+  IDM_SCROLL_UP       = 2385;
+  IDM_SCROLL_DOWN     = 2386;
+  IDM_SCROLL_LEFTEDGE = 2387;
+  IDM_SCROLL_RIGHTEDGE = 2388;
+  IDM_SCROLL_PAGELEFT  = 2389;
+  IDM_SCROLL_PAGERIGHT = 2390;
+  IDM_SCROLL_LEFT     =  2391;
+  IDM_SCROLL_RIGHT    =  2392;
+
+  // IE 6 Form Editing Commands
+  IDM_MULTIPLESELECTION = 2393;
+  IDM_2D_POSITION       = 2394;
+  IDM_2D_ELEMENT        = 2395;
+  IDM_1D_ELEMENT        = 2396;
+  IDM_ABSOLUTE_POSITION = 2397;
+  IDM_LIVERESIZE        = 2398;
+  IDM_ATOMICSELECTION	  = 2399;
+
+  // Auto URL detection mode
+  IDM_AUTOURLDETECT_MODE = 2400;
+
+  // Legacy IE50 compatible paste
+  IDM_IE50_PASTE         = 2401;
+
+  // ie50 paste mode
+  IDM_IE50_PASTE_MODE    = 2402;
+
+  // Printing support
+  DM_GETIPRINT          = 2403;
+
+  // for disabling selection handles
+  IDM_DISABLE_EDITFOCUS_UI       = 2404;
+
+  // for visibility/display in design
+  IDM_RESPECTVISIBILITY_INDESIGN = 2405;
+
+  // set css mode
+  IDM_CSSEDITING_LEVEL           = 2406;
+
+  // New outdent
+  IDM_UI_OUTDENT              = 2407;
+
+  // Printing Status
+  IDM_UPDATEPAGESTATUS        = 2408;
+
+  // IME Reconversion
+  IDM_IME_ENABLE_RECONVERSION = 2409;
+
+  IDM_OVERRIDE_CURSOR         = 2420;
+
+  IDM_MENUEXT_FIRST__     =  3700;
+  IDM_MENUEXT_LAST__      =  3732;
+  IDM_MENUEXT_COUNT       =  3733;
+
+  ID_EDITMODE             = 32801;
+
+  // Commands mapped from the standard set.  We should
+  // consider deleting them from public header files.
+
+  IDM_OPEN                  =  2000;
+  IDM_NEW                   =  2001;
+  IDM_SAVE                  =  70;
+  IDM_SAVEAS                =  71;
+  IDM_SAVECOPYAS            =  2002;
+  IDM_PRINTPREVIEW          =  2003;
+  IDM_SHOWPRINT             =  2010;
+  IDM_SHOWPAGESETUP         =  2011;
+  IDM_PRINT                 =  27;
+  IDM_PAGESETUP             =  2004;
+  IDM_SPELL                 =  2005;
+  IDM_PASTESPECIAL          =  2006;
+  IDM_CLEARSELECTION        =  2007;
+  IDM_PROPERTIES            =  28;
+  IDM_REDO                  =  29;
+  IDM_UNDO                  =  43;
+  IDM_SELECTALL             =  31;
+  IDM_ZOOMPERCENT           =  50;
+  IDM_GETZOOM               =  68;
+  IDM_STOP                  =  2138;
+  IDM_COPY                  =  15;
+  IDM_CUT                   =  16;
+  IDM_PASTE                 =  26;
+
+
+  // Defines for IDM_ZOOMPERCENT
+  CMD_ZOOM_PAGEWIDTH = -1;
+  CMD_ZOOM_ONEPAGE   = -2;
+  CMD_ZOOM_TWOPAGES  = -3;
+  CMD_ZOOM_SELECTION = -4;
+  CMD_ZOOM_FIT       = -5;
+
+  // IDMs for CGID_EditStateCommands group
+  IDM_CONTEXT        = 1;
+  IDM_HWND           = 2;
+
+  // Shdocvw Execs on CGID_DocHostCommandHandler
+  IDM_NEW_TOPLEVELWINDOW   = 7050;
+
+  //
+  // Commands exposed for VID, had to be moved from privcid.h
+  //
+
+  // Undo hack command for VID to force preservation of the undo stack across
+  // arbitrary operations. Arye.
+  IDM_PRESERVEUNDOALWAYS          = 6049;
+  // Another hack for VID to persist default values
+  IDM_PERSISTDEFAULTVALUES        = 7100;
+  // And yet another hack for VID to not aggressively overwrite some meta tags.
+  IDM_PROTECTMETATAGS             = 7101;
+
+  //--------------------------------
+
+  IDM_TRIED_IS_1D_ELEMENT       = 0;   //[out,VT_BOOL]
+  IDM_TRIED_IS_2D_ELEMENT       = 1;   //[out,VT_BOOL]
+  IDM_TRIED_NUDGE_ELEMENT       = 2;   //[in,VT_BYREF VARIANT.byref=LPPOINT]
+  IDM_TRIED_SET_ALIGNMENT       = 3;   //[in,VT_BYREF VARIANT.byref=LPPOINT]
+  IDM_TRIED_MAKE_ABSOLUTE       = 4;
+  IDM_TRIED_LOCK_ELEMENT        = 5;
+  IDM_TRIED_SEND_TO_BACK        = 6;
+  IDM_TRIED_SEND_TO_FRONT       = 7;
+  IDM_TRIED_SEND_BACKWARD       = 8;
+  IDM_TRIED_SEND_FORWARD        = 9;
+  IDM_TRIED_SEND_BEHIND_1D     = 10; 
+  IDM_TRIED_SEND_FRONT_1D      = 11;
+  IDM_TRIED_CONSTRAIN          = 12;   //[in,VT_BOOL]
+  IDM_TRIED_SET_2D_DROP_MODE   = 13;   //[in,VT_BOOL]
+  IDM_TRIED_INSERTROW          = 14;
+  IDM_TRIED_INSERTCOL          = 15;
+  IDM_TRIED_DELETEROWS         = 16;
+  IDM_TRIED_DELETECOLS         = 17;
+  IDM_TRIED_MERGECELLS         = 18;
+  IDM_TRIED_SPLITCELL          = 19;
+  IDM_TRIED_INSERTCELL         = 20;
+  IDM_TRIED_DELETECELLS        = 21;
+  IDM_TRIED_INSERTTABLE        = 22;   //[in, VT_ARRAY]
+  IDM_TRIED_ACTIVATEACTIVEXCONTROLS = 23;
+  IDM_TRIED_ACTIVATEAPPLETS    = 24;
+  IDM_TRIED_ACTIVATEDTCS       = 25;
+  IDM_TRIED_BACKCOLOR          = 26;
+  IDM_TRIED_BLOCKFMT           = 27;
+  IDM_TRIED_BOLD               = 28;
+  IDM_TRIED_BROWSEMODE         = 29;
+  IDM_TRIED_COPY               = 30;
+  IDM_TRIED_CUT                = 31;
+  IDM_TRIED_DELETE             = 32;
+  IDM_TRIED_EDITMODE           = 33;
+  IDM_TRIED_FIND               = 34;
+  IDM_TRIED_FONT               = 35;
+  IDM_TRIED_FONTNAME           = 36;
+  IDM_TRIED_FONTSIZE           = 37;
+  IDM_TRIED_FORECOLOR          = 38;
+  IDM_TRIED_GETBLOCKFMTS       = 39;
+  IDM_TRIED_HYPERLINK          = 40;
+  IDM_TRIED_IMAGE              = 41;
+  IDM_TRIED_INDENT             = 42;
+  IDM_TRIED_ITALIC             = 43;
+  IDM_TRIED_JUSTIFYCENTER      = 44;
+  IDM_TRIED_JUSTIFYLEFT        = 45;
+  IDM_TRIED_JUSTIFYRIGHT       = 46;
+  IDM_TRIED_ORDERLIST          = 47;
+  IDM_TRIED_OUTDENT            = 48;
+  IDM_TRIED_PASTE              = 50;
+  IDM_TRIED_PRINT              = 51;
+  IDM_TRIED_REDO               = 52;
+  IDM_TRIED_REMOVEFORMAT       = 53;
+  IDM_TRIED_SELECTALL          = 54;
+  IDM_TRIED_SHOWBORDERS        = 55;
+  IDM_TRIED_SHOWDETAILS        = 56;
+  IDM_TRIED_UNDERLINE          = 57;
+  IDM_TRIED_UNDO               = 58;
+  IDM_TRIED_UNLINK             = 59;
+  IDM_TRIED_UNORDERLIST        = 60;
+  IDM_TRIED_DOVERB             = 61;
+
+//WARNING WARNING WARNING!!! Don't forget to modify IDM_TRIED_LAST_CID
+//when you add new Command IDs
+
+  IDM_TRIED_LAST_CID           = IDM_TRIED_DOVERB;
+
+
+type
+  PDOCHOSTUIINFO = ^TDOCHOSTUIINFO;
+  TDOCHOSTUIINFO = record
+    cbSize: ULONG;
+    dwFlags: Cardinal;
+    dwDoubleClick: Cardinal;
+  end;
+type
+  IDocHostUIHandler = interface(IUnknown)
+    ['{bd3f23c0-d43e-11cf-893b-00aa00bdce1a}']
+    function ShowContextMenu( const dwID: Cardinal; const ppt: PPOINT;
+      const pcmdtReserved: IUnknown; const pdispReserved: IDispatch ): HRESULT; stdcall;
+    function GetHostInfo( var pInfo: TDOCHOSTUIINFO ): HRESULT; stdcall;
+    function ShowUI( const dwID: Cardinal; const pActiveObject: IOleInPlaceActiveObject;
+      const pCommandTarget: IOleCommandTarget; const pFrame: IOleInPlaceFrame;
+      const pDoc: IOleInPlaceUIWindow ): HRESULT; stdcall;
+    function HideUI: HRESULT; stdcall;
+    function UpdateUI: HRESULT; stdcall;
+    function EnableModeless( const fEnable: BOOL ): HRESULT; stdcall;
+    function OnDocWindowActivate( const fActivate: BOOL ): HRESULT; stdcall;
+    function OnFrameWindowActivate( const fActivate: BOOL ): HRESULT; stdcall;
+    function ResizeBorder( const prcBorder: PRECT;
+      const pUIWindow: IOleInPlaceUIWindow;
+      const fRameWindow: BOOL ): HRESULT; stdcall;
+    function TranslateAccelerator( const lpMsg: PMSG; const pguidCmdGroup: PGUID;
+      const nCmdID: Cardinal): HRESULT; stdcall;
+    function GetOptionKeyPath( var pchKey: POLESTR; const dw: Cardinal ): HRESULT; stdcall;
+    function GetDropTarget( const pDropTarget: IDropTarget;
+      out ppDropTarget: IDropTarget ): HRESULT; stdcall;
+    function GetExternal( out ppDispatch: IDispatch ): HRESULT; stdcall;
+    function TranslateUrl( const dwTranslate: Cardinal; const pchURLIn: POLESTR;
+      var ppchURLOut: POLESTR ): HRESULT; stdcall;
+    function FilterDataObject( const pDO: IDataObject;
+      out ppDORet: IDataObject ): HRESULT; stdcall;
+  end; // IDocHostUIHandler
+
+  ICustomDoc = interface(IUnknown)
+   ['{3050f3f0-98b5-11cf-bb82-00aa00bdce0b}']
+
+   function SetUIHandler (const pUIHandler : IDocHostUIHandler) : HRESULT; stdcall;
+
+  end; // ICustomDoc 
+
+  IDocHostShowUI = interface(IUnknown)
+     ['{c4d244b0-d43e-11cf-893b-00aa00bdce1a}']
+
+     function ShowMessage(hwnd : THandle; 
+                          lpstrText : POLESTR;
+                          lpstrCaption : POLESTR;
+                          dwType : longint;
+                          lpstrHelpFile : POLESTR;
+                          dwHelpContext : longint;
+                          var plResult : LRESULT) : HRESULT; stdcall;
+                           
+      function ShowHelp(hwnd : THandle;
+                        pszHelpFile : POLESTR;
+                        uCommand : integer;
+                        dwData : longint;
+                        ptMouse : TPoint;
+                        var pDispachObjectHit : IDispatch) : HRESULT; stdcall;
+  
+  end; // IDocHostShowUI
+
+
+implementation
+
+end.
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/KSED.INC
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/KSED.INC	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/KSED.INC	(revision 541)
@@ -0,0 +1,30 @@
+{*******************************************************}
+{                                                       }
+{         EmbeddedED compiler directives                }
+{         Copyright (C) 1999-2003, Kurt Senfer          }
+{                                                       }
+{*******************************************************}
+
+
+  //{$IFDEF VER100} // Delphi 3.0
+  //{$IFDEF VER120} // Delphi 4.0
+  //{$IFDEF VER130} // Delphi 5.0
+  //{$IFDEF VER140} // Delphi 6.0
+  //{$IFDEF VER150} // Delphi 7.0
+
+
+
+{$IFDEF VER140} { Borland Delphi 6.0 }
+  {$DEFINE D6D7}
+{$ENDIF}
+
+
+{$IFDEF VER150} { Borland Delphi 7.0 }
+  {$DEFINE D6D7}
+{$ENDIF}
+
+
+{$IFDEF D6D7}
+  {$WARN SYMBOL_PLATFORM OFF}
+{$ENDIF}
+
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/KS_Lib.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/KS_Lib.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/KS_Lib.pas	(revision 541)
@@ -0,0 +1,308 @@
+{ ******************************************** }
+{       KS_lib ver 1.11 (Jan. 19, 2004)        }
+{                                              }
+{       For Delphi 4, 5 and 6                  }
+{                                              }
+{       Copyright (C) 1999-2003, Kurt Senfer.  }
+{       All Rights Reserved.                   }
+{                                              }
+{       Support@ks.helpware.net                }
+{                                              }
+{       Documentation and updated versions:    }
+{                                              }
+{       http://KS.helpware.net                 }
+{                                              }
+{ ******************************************** }
+{
+    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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+}
+
+
+unit KS_lib;
+
+ {$I KSED.INC} //Compiler version directives
+
+interface
+
+uses
+  Windows, Messages, SysUtils, Classes, Controls, 
+  //ktMSHTML_TLB, 
+  MSHTML_EWB,
+  Activex;
+
+  procedure SafeYield;
+
+  //function GetDocTypeTag(DOC: IHTMLDocument2): String;
+  function GetHTMLtext(DOC: IHTMLDocument2): String;
+  function GetDocHTML(DOC: IHTMLDocument2): String;
+  function IsFilePath(Url: String; var FilePath: string): HResult;
+  function GetParentElemetType(aTag: IHTMLElement; aType: string; var ParentElement: IHTMLElement): boolean;
+
+const
+  aFilter: string = 'HTML file (*.htm / *.html)|*.htm;*.html|All Files|*.*';
+  AboutBlank: string = 'about:blank';
+  cNormal: String = 'Normal';
+  //cDIV   : String = 'DIV';
+  cBODY: string = 'BODY';
+  cTABLE: string = 'TABLE';
+  cTD: string = 'TD';
+  cTH: string = 'TH';
+  cTR: string = 'TR';
+
+
+var
+  FLastError: String;
+
+type
+  CmdID = TOleEnum;
+
+implementation
+
+uses {$IFDEF D6D7} variants, {$ENDIF} AXCtrls, KS_Procs;
+
+
+//------------------------------------------------------------------------------
+function GetParentElemetType(aTag: IHTMLElement; aType: string; var ParentElement: IHTMLElement): boolean;
+begin
+  result := false;
+
+  ParentElement := aTag;
+  if assigned(ParentElement)
+     then begin
+        while (not AnsiSameText(ParentElement.tagName, aType)) and
+           (not SameText(ParentElement.tagName, cBODY)) do
+           begin
+              ParentElement := ParentElement.parentElement;
+              if not assigned(ParentElement)
+                 then exit;
+           end;
+
+        result := AnsiSameText(ParentElement.tagName, aType);
+     end;
+
+end;
+//------------------------------------------------------------------------------
+function IsFilePath(Url: String; var FilePath: string): HResult;
+
+  //-----------------------------------------------------
+  function IsFilePath(URN: string): HResult;
+  begin
+     if (length(URN) > 0) and ((copy(URN, 1, 2) = '\\') or (URN[2] = ':'))
+        then begin
+           result := S_OK;
+           FilePath := URN;
+        end
+        else result := S_FALSE;
+  end;
+  //-----------------------------------------------------
+begin
+  //asm int 3 end; //trap
+  { we can have a file path:
+    file://sie01/ksdata/kvalsys/.....  or
+    file:///G:/kvalsys/......
+    or a http path and other posibilitys }
+
+    //IsValidURL
+    //CoInternetParseUrl
+    //if(IsValidURL(nil,PWideChar(WideString(aUrl)),0)=S_OK)
+
+  //asm int 3 end; //trap
+
+  result := IsFilePath(URL);
+  if result = S_OK
+     then exit;
+
+  result := S_false;
+
+  if Pos('file:', LowerCase(URL)) = 1
+     then begin
+        FilePath := Copy(URL, 6, Length(URL));
+        if FilePath[1] = '/'
+           then FilePath := StringReplace(FilePath, '/', '\', [rfReplaceAll])
+           else if FilePath[1] <> '\'
+              then exit;  //somthings rotten
+
+        if Copy(FilePath, 1, 3) = '\\\' //we have a drive letter type path
+           then delete(FilePath, 1, 3);
+
+      (*
+        //we have to get ried of the first tree \
+        for I := 1 to 3 do
+           Delete(FilePath, 1, pos('\', FilePath));
+       *)
+        result := IsFilePath(FilePath);
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure SafeYield;
+// Make room for other processes
+var
+  Msg : TMsg;
+begin
+  //asm int 3 end; //trap     - not used
+  if PeekMessage(Msg, 0, 0, 0, PM_REMOVE)
+     then begin
+        if Msg.Message = wm_Quit
+           then PostQuitMessage(Msg.WParam) //Tell main message loop to terminate
+     else begin
+        TranslateMessage(Msg);
+        DispatchMessage(Msg);
+     end;
+  end;
+end;
+//------------------------------------------------------------------------------
+function GetDocTypeTag(DOC: IHTMLDocument2): String;
+var
+  aElementCollection: IHTMLElementCollection;
+  HTMLElement: IHTMLElement;
+begin
+  //get the <!DOCTYPE tag as the first tag in a collection
+  aElementCollection := (DOC as IHTMLDocument3).getElementsByTagName('!') as IHTMLElementCollection;
+  if aElementCollection.Length > 0
+     then begin
+        HTMLElement := aElementCollection.item(0, null) as IHTMLElement;
+        if (HTMLElement <> Nil) and
+           (pos('<!DOCTYPE', HTMLElement.OuterHTML) = 1)
+           then Result := HTMLElement.OuterHTML
+           else Result := '';  //no <!DOCTYPE tag in this document
+     end
+     else Result := ''; //no <!DOCTYPE tag in this document
+
+end;
+//------------------------------------------------------------------------------
+function GetHTMLtext(DOC: IHTMLDocument2): String;
+//GetHTMLtext takes app. 80 millisec. and GetDocumentHTML app. 70 milisec.
+var
+  aElementCollection: IHTMLElementCollection;
+  HTMLElement: IHTMLElement;
+begin
+  //asm int 3 end; //trap
+
+  if DOC = nil
+     then begin
+        result := '';
+        exit;
+     end;
+
+  //first get the <!DOCTYPE tag - if any
+  result := GetDocTypeTag(DOC);
+
+
+  //get the HTML tag (as a collection of one element)
+  aElementCollection := (DOC as IHTMLDocument3).getElementsByTagName('HTML') as IHTMLElementCollection;
+  if aElementCollection.Length = 1
+     then begin
+        HTMLElement := aElementCollection.item(0, null) as IHTMLElement;
+        if HTMLElement <> Nil
+                //add the HTML tag to the <!DOCTYPE tag (if any)
+           then Result := Result + HTMLElement.OuterHTML
+           else Result := ''; //this is wrong
+     end
+     else Result := ''; //this is wrong
+end;
+//------------------------------------------------------------------------------
+function GetDocHTML(DOC: IHTMLDocument2): String;
+//GetHTMLtext takes app. 80 millisec. and GetDocumentHTML app. 70 milisec.
+
+var
+  aStream: TStringStream;
+  P: PWideChar;
+begin
+  //asm int 3 end; //trap
+
+  if DOC = nil
+     then Result := ''
+     else begin
+        aStream := TStringStream.Create('');
+        try
+
+           { PersistStream.save returns the DHTML tree in the last rendered version
+             Non visible changes isent nessasarely returned
+             PersistFile.Save always returns a rendered document }
+
+           //ForceRendering;
+           //PersistStream.save(TStreamAdapter.Create(AStream), false);
+           //result := aStream.DataString;
+           //S := GetHTMLtext;
+           //waitWhileDocIsBusy;
+           //InsertNewTag2(Doc);
+
+           //waitWhileDocIsBusy;
+           //result := aStream.DataString;
+           //aStream.free;
+           //aStream := TStringStream.Create('');
+
+           (*
+           I := GetTickCount;
+
+           CmdSet(IDM_PERSISTSTREAMSYNC);
+           i := GetTickCount -i;
+           *)
+
+
+           if S_OK = (DOC as IPersistStreamInit).save(TStreamAdapter.Create(AStream), false)
+              then begin
+                 //WaitForDocComplete;
+                 {this is what DHTMLEDIT does when it is not in preserve Source mode }
+                 if aStream.Size = 0  //just in case
+                    then begin
+                       result := '';
+                       exit;
+                    end;
+
+                 if aStream.DataString[1] = '<'
+                    then result := aStream.DataString
+                    else begin
+                       P :=  PWideChar(@aStream.DataString[1]) ;
+                       result := OleStrToString(P);
+
+                       //the aStream.DataString returns a ? in front of the source
+                       if (Length(result) > 0) and  (Result[1] <> '<')
+                          then delete(Result, 1, 1);
+                    end;
+              end;
+        finally
+           aStream.free;
+        end;
+     end;
+end;
+//------------------------------------------------------------------------------
+Function ReadRegString(MainKey: HKey; SubKey, ValName: String): String;
+  // NB default value is read if subkey isent ended with a backslash
+Var
+  Key: HKey;
+  C: Array[0..1023] of Char;
+  D: Cardinal;  //value type
+  D2: Cardinal; //buffer size
+Begin
+  //asm int 3 end; //trap
+  result := '';
+
+  if RegOpenKeyEx(MainKey, Pchar(NoEndBackSlash(SubKey)), 0, KEY_READ, Key) = ERROR_SUCCESS
+     then begin
+        try
+           C := '';
+           D2 := SizeOf(C);
+           if (RegQueryValueEx(Key, Pchar(ValName), Nil, @D, @C, @D2) = ERROR_SUCCESS) and
+              ((D = REG_EXPAND_SZ) or (D = REG_SZ))
+              then result := C
+              else result := '';
+        finally
+           RegCloseKey(Key);
+        end;
+     end;
+End;
+//------------------------------------------------------------------------------
+end.
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/KS_Lib.~pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/KS_Lib.~pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/KS_Lib.~pas	(revision 541)
@@ -0,0 +1,305 @@
+{ ******************************************** }
+{       KS_lib ver 1.11 (Jan. 19, 2004)        }
+{                                              }
+{       For Delphi 4, 5 and 6                  }
+{                                              }
+{       Copyright (C) 1999-2003, Kurt Senfer.  }
+{       All Rights Reserved.                   }
+{                                              }
+{       Support@ks.helpware.net                }
+{                                              }
+{       Documentation and updated versions:    }
+{                                              }
+{       http://KS.helpware.net                 }
+{                                              }
+{ ******************************************** }
+{
+    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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+}
+
+
+unit KS_lib;
+
+ {$I KSED.INC} //Compiler version directives
+
+interface
+
+uses
+  Windows, Messages, SysUtils, Classes, Controls, MSHTML_TLB, Activex;
+
+  procedure SafeYield;
+
+  //function GetDocTypeTag(DOC: IHTMLDocument2): String;
+  function GetHTMLtext(DOC: IHTMLDocument2): String;
+  function GetDocHTML(DOC: IHTMLDocument2): String;
+  function IsFilePath(Url: String; var FilePath: string): HResult;
+  function GetParentElemetType(aTag: IHTMLElement; aType: string; var ParentElement: IHTMLElement): boolean;
+
+const
+  aFilter: string = 'HTML file (*.htm / *.html)|*.htm;*.html|All Files|*.*';
+  AboutBlank: string = 'about:blank';
+  cNormal: String = 'Normal';
+  //cDIV   : String = 'DIV';
+  cBODY: string = 'BODY';
+  cTABLE: string = 'TABLE';
+  cTD: string = 'TD';
+  cTH: string = 'TH';
+  cTR: string = 'TR';
+
+
+var
+  FLastError: String;
+
+type
+  CmdID = TOleEnum;
+
+implementation
+
+uses {$IFDEF D6D7} variants, {$ENDIF} AXCtrls, KS_Procs;
+
+
+//------------------------------------------------------------------------------
+function GetParentElemetType(aTag: IHTMLElement; aType: string; var ParentElement: IHTMLElement): boolean;
+begin
+  result := false;
+
+  ParentElement := aTag;
+  if assigned(ParentElement)
+     then begin
+        while (not AnsiSameText(ParentElement.tagName, aType)) and
+           (not SameText(ParentElement.tagName, cBODY)) do
+           begin
+              ParentElement := ParentElement.parentElement;
+              if not assigned(ParentElement)
+                 then exit;
+           end;
+
+        result := AnsiSameText(ParentElement.tagName, aType);
+     end;
+
+end;
+//------------------------------------------------------------------------------
+function IsFilePath(Url: String; var FilePath: string): HResult;
+
+  //-----------------------------------------------------
+  function IsFilePath(URN: string): HResult;
+  begin
+     if (length(URN) > 0) and ((copy(URN, 1, 2) = '\\') or (URN[2] = ':'))
+        then begin
+           result := S_OK;
+           FilePath := URN;
+        end
+        else result := S_FALSE;
+  end;
+  //-----------------------------------------------------
+begin
+  //asm int 3 end; //trap
+  { we can have a file path:
+    file://sie01/ksdata/kvalsys/.....  or
+    file:///G:/kvalsys/......
+    or a http path and other posibilitys }
+
+    //IsValidURL
+    //CoInternetParseUrl
+    //if(IsValidURL(nil,PWideChar(WideString(aUrl)),0)=S_OK)
+
+  //asm int 3 end; //trap
+
+  result := IsFilePath(URL);
+  if result = S_OK
+     then exit;
+
+  result := S_false;
+
+  if Pos('file:', LowerCase(URL)) = 1
+     then begin
+        FilePath := Copy(URL, 6, Length(URL));
+        if FilePath[1] = '/'
+           then FilePath := StringReplace(FilePath, '/', '\', [rfReplaceAll])
+           else if FilePath[1] <> '\'
+              then exit;  //somthings rotten
+
+        if Copy(FilePath, 1, 3) = '\\\' //we have a drive letter type path
+           then delete(FilePath, 1, 3);
+
+      (*
+        //we have to get ried of the first tree \
+        for I := 1 to 3 do
+           Delete(FilePath, 1, pos('\', FilePath));
+       *)
+        result := IsFilePath(FilePath);
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure SafeYield;
+// Make room for other processes
+var
+  Msg : TMsg;
+begin
+  //asm int 3 end; //trap     - not used
+  if PeekMessage(Msg, 0, 0, 0, PM_REMOVE)
+     then begin
+        if Msg.Message = wm_Quit
+           then PostQuitMessage(Msg.WParam) //Tell main message loop to terminate
+     else begin
+        TranslateMessage(Msg);
+        DispatchMessage(Msg);
+     end;
+  end;
+end;
+//------------------------------------------------------------------------------
+function GetDocTypeTag(DOC: IHTMLDocument2): String;
+var
+  aElementCollection: IHTMLElementCollection;
+  HTMLElement: IHTMLElement;
+begin
+  //get the <!DOCTYPE tag as the first tag in a collection
+  aElementCollection := (DOC as IHTMLDocument3).getElementsByTagName('!') as IHTMLElementCollection;
+  if aElementCollection.Length > 0
+     then begin
+        HTMLElement := aElementCollection.item(0, null) as IHTMLElement;
+        if (HTMLElement <> Nil) and
+           (pos('<!DOCTYPE', HTMLElement.OuterHTML) = 1)
+           then Result := HTMLElement.OuterHTML
+           else Result := '';  //no <!DOCTYPE tag in this document
+     end
+     else Result := ''; //no <!DOCTYPE tag in this document
+
+end;
+//------------------------------------------------------------------------------
+function GetHTMLtext(DOC: IHTMLDocument2): String;
+//GetHTMLtext takes app. 80 millisec. and GetDocumentHTML app. 70 milisec.
+var
+  aElementCollection: IHTMLElementCollection;
+  HTMLElement: IHTMLElement;
+begin
+  //asm int 3 end; //trap
+
+  if DOC = nil
+     then begin
+        result := '';
+        exit;
+     end;
+
+  //first get the <!DOCTYPE tag - if any
+  result := GetDocTypeTag(DOC);
+
+
+  //get the HTML tag (as a collection of one element)
+  aElementCollection := (DOC as IHTMLDocument3).getElementsByTagName('HTML') as IHTMLElementCollection;
+  if aElementCollection.Length = 1
+     then begin
+        HTMLElement := aElementCollection.item(0, null) as IHTMLElement;
+        if HTMLElement <> Nil
+                //add the HTML tag to the <!DOCTYPE tag (if any)
+           then Result := Result + HTMLElement.OuterHTML
+           else Result := ''; //this is wrong
+     end
+     else Result := ''; //this is wrong
+end;
+//------------------------------------------------------------------------------
+function GetDocHTML(DOC: IHTMLDocument2): String;
+//GetHTMLtext takes app. 80 millisec. and GetDocumentHTML app. 70 milisec.
+
+var
+  aStream: TStringStream;
+  P: PWideChar;
+begin
+  //asm int 3 end; //trap
+
+  if DOC = nil
+     then Result := ''
+     else begin
+        aStream := TStringStream.Create('');
+        try
+
+           { PersistStream.save returns the DHTML tree in the last rendered version
+             Non visible changes isent nessasarely returned
+             PersistFile.Save always returns a rendered document }
+
+           //ForceRendering;
+           //PersistStream.save(TStreamAdapter.Create(AStream), false);
+           //result := aStream.DataString;
+           //S := GetHTMLtext;
+           //waitWhileDocIsBusy;
+           //InsertNewTag2(Doc);
+
+           //waitWhileDocIsBusy;
+           //result := aStream.DataString;
+           //aStream.free;
+           //aStream := TStringStream.Create('');
+
+           (*
+           I := GetTickCount;
+
+           CmdSet(IDM_PERSISTSTREAMSYNC);
+           i := GetTickCount -i;
+           *)
+
+
+           if S_OK = (DOC as IPersistStreamInit).save(TStreamAdapter.Create(AStream), false)
+              then begin
+                 //WaitForDocComplete;
+                 {this is what DHTMLEDIT does when it is not in preserve Source mode }
+                 if aStream.Size = 0  //just in case
+                    then begin
+                       result := '';
+                       exit;
+                    end;
+
+                 if aStream.DataString[1] = '<'
+                    then result := aStream.DataString
+                    else begin
+                       P :=  PWideChar(@aStream.DataString[1]) ;
+                       result := OleStrToString(P);
+
+                       //the aStream.DataString returns a ? in front of the source
+                       if (Length(result) > 0) and  (Result[1] <> '<')
+                          then delete(Result, 1, 1);
+                    end;
+              end;
+        finally
+           aStream.free;
+        end;
+     end;
+end;
+//------------------------------------------------------------------------------
+Function ReadRegString(MainKey: HKey; SubKey, ValName: String): String;
+  // NB default value is read if subkey isent ended with a backslash
+Var
+  Key: HKey;
+  C: Array[0..1023] of Char;
+  D: Cardinal;  //value type
+  D2: Cardinal; //buffer size
+Begin
+  //asm int 3 end; //trap
+  result := '';
+
+  if RegOpenKeyEx(MainKey, Pchar(NoEndBackSlash(SubKey)), 0, KEY_READ, Key) = ERROR_SUCCESS
+     then begin
+        try
+           C := '';
+           D2 := SizeOf(C);
+           if (RegQueryValueEx(Key, Pchar(ValName), Nil, @D, @C, @D2) = ERROR_SUCCESS) and
+              ((D = REG_EXPAND_SZ) or (D = REG_SZ))
+              then result := C
+              else result := '';
+        finally
+           RegCloseKey(Key);
+        end;
+     end;
+End;
+//------------------------------------------------------------------------------
+end.
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/KS_procs.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/KS_procs.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/KS_procs.pas	(revision 541)
@@ -0,0 +1,2572 @@
+{ ******************************************** }
+{       KS_Procs ver 1.2 (Jan. 16, 2004)       }
+{                                              }
+{       For Delphi 4, 5 and 6                  }
+{                                              }
+{       Copyright (C) 1999-2004, Kurt Senfer.  }
+{       All Rights Reserved.                   }
+{                                              }
+{       Support@ks.helpware.net                }
+{                                              }
+{       Documentation and updated versions:    }
+{                                              }
+{       http://KS.helpware.net                 }
+{                                              }
+{ ******************************************** }
+{
+    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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+}
+  
+unit KS_Procs;
+
+interface
+
+uses
+  Windows, ShellAPI, Messages, SysUtils, math, classes ;
+
+Var
+  ActualAppName: string = '';
+  ShowDeveloperMessages: boolean = false;
+  DeveloperMessagesCanceled: boolean = false;
+  DeveloperMessagesLog: string = '';
+  ActualWinDir: string = '';
+
+const
+  NoShowError: Boolean = False; // NoShowError, NoCache, NoHtmlFile
+  ShowError: Boolean = true;
+  NoCache: Boolean = true;
+  NoHtmlFile: Boolean = true;
+
+const
+  { several important ASCII codes }
+//  NULL = #0;
+  BACKSPACE = #8;
+  TAB = #9;
+  LF = #10;
+  CR = #13;
+  EOF_ = #26;
+  ESC = #27;
+  Space = #32;
+  BlackSpace = [#33..#255];
+  CrLf: String = #13+#10;
+  DblCrLf: String = #13+#10+#13+#10;
+
+const
+  { digits as chars }
+  ZERO = '0';
+  ONE = '1';
+  TWO = '2';
+  THREE = '3';
+  FOUR = '4';
+  FIVE = '5';
+  SIX = '6';
+  SEVEN = '7';
+  EIGHT = '8';
+  NINE = '9';
+  DIGITS: set of Char = [ZERO..NINE];
+
+  cSilent: boolean = true;
+  cNotSilent: boolean = false;
+
+
+type
+  TMonth = (NoneMonth, January, February, March, April, May, June, July,
+    August, September, October, November, December);
+
+type
+  TDayOfWeek = (Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday);
+
+type
+  TBit = 0..31;
+
+type
+  TFileTimeComparision = (ftError, ftFileOneIsOlder, ftFileTimesAreEqual, ftFileTwoIsOlder);
+
+type
+  TTimeOfWhat = (ftCreationTime, ftLastAccessTime, ftLastWriteTime);
+
+type
+  TDriveType = (dtUnknown, dtNoDrive, dtFloppy, dtFixed, dtNetwork, dtCDROM, dtRAM);
+
+
+type
+  TVolumeInfo = record
+    Name: string;
+    SerialNumber: DWORD;
+    MaxComponentLength: DWORD;
+    FileSystemFlags: DWORD;
+    FileSystemName: string;
+  end;                        // TVolumeInfo
+
+type
+  PFixedFileInfo = ^TFixedFileInfo;
+  TFixedFileInfo = record
+    dwSignature: Cardinal;
+    dwStrucVersion: Cardinal;
+    wFileVersionMS: WORD;     // Minor Version
+    wFileVersionLS: WORD;     // Major Version
+    wProductVersionMS: WORD;  // Build Number
+    wProductVersionLS: WORD;  // Release Version
+    dwFileFlagsMask: Cardinal;
+    dwFileFlags: Cardinal;
+    dwFileOS: Cardinal;
+    dwFileType: Cardinal;
+    dwFileSubtype: Cardinal;
+    dwFileDateMS: Cardinal;
+    dwFileDateLS: Cardinal;
+  end;                        // TFixedFileInfo
+
+procedure KSProcessMessages;
+procedure KSWait(aTime: Cardinal);
+
+function CopyCursor(cur: HCURSOR): HCURSOR;
+function _GetExeOpen(const Ext: string; var Exefil: string; sielent: boolean = true): Boolean;
+Function GetModuleName(aFile: string = ''): String;
+Function GetFileDateTime(aFile: string): String;
+Function GetShortDateTime(aTime: TDateTime; Seconds: boolean = false): String;
+function GetAbsolutePath(ActualPath: string; var RelativePath: string): boolean;
+function KSMessage(aMessage: string; aBoxHead: string; Params: integer): integer;
+function KSQuestion(aMessage: string; aBoxHead: string = ''; Params: integer = MB_ICONQUESTION or MB_YESNO): integer;
+Procedure KSMessageW(aMessage: string; aBoxHead: string = '');
+Procedure KSMessageE(aMessage: string; aBoxHead: string = '');
+Procedure KSMessageQ(aMessage: string; aBoxHead: string = '');
+Procedure KSMessageI(aMessage: string; aBoxHead: string = '');
+Procedure KSMessageT(aMessage: string; aBoxHead: string = '');
+procedure DeveloperMessage(aMessage: string);
+function CloseDeveloperMessagesLog(afile: string): boolean;
+function SaveDeveloperMessagesLog(afile: string): boolean;
+procedure OpenDeveloperMessagesLog;
+          
+function IsAlNum(C: char): bool;
+function RegisterAxLib(FileName: string; Unreg: Boolean = False): boolean;
+procedure SearchForFiles(path, mask: AnsiString; var Value: TStringList; Recurse: Boolean = False);
+
+function StringIsInteger(Const S: String): boolean;
+function _StringIsInteger(Const S: String; var I: Integer): boolean;
+function KSDelete(var S: String; DeleteString: String; All: Boolean = False): boolean;
+{Deletes one or more instances of S}
+
+function GetFileDateAsString(aFile: string): String;
+function DosLocalTimeToDosUTCTime(aDosFileTime: Integer): Integer;
+function GetUTCFileDateAsString(aFile: string): String;
+function UTCFileAge(const FileName: string): Integer;
+function KSSetCurrentDir(const Dir: string): Boolean;
+function KSEmptyDir( aDir: string): Boolean;
+function DelDir(aDir: string): boolean;
+function Squish(const Search: string): string;
+{squish() returns a string with all whitespace not inside single
+quotes deleted.}
+function Before(const Search, Find: string): string;
+{before() returns everything before the first occurance of Find
+in Search. If Find does not occur in Search, Search is returned.}
+function beforeX(const Search, Find: string): string;
+{before() returns everything before the first occurance of Find
+in Search. If Find does not occur in Search, An empty string is returned.}
+function After(const Search, Find: string): string;
+{after() returns everything after the first occurance of Find
+in Search. If Find does not occur in Search, a null string is returned.}
+function RPos(const Find, Search: string): Integer;
+{RPos() returns the index of the first character of the last occurance
+of Find in Search. Returns 0 if Find does not occur in Search.
+Like Pos() but searches in reverse.}
+
+function LastChar(const Search: string; const Find: char): Integer;
+{LastChar() returns the index of the last character of Find in Search.
+ Returns 0 if Find does not occur in Search.}
+
+function AfterLastToken(const StrInd, Token: string): string;
+
+function KsSameText(S1, S2: string; MaxLen: Cardinal): boolean;
+//same as AnsiSameText but the string are only compared up to MaxLen
+
+function BeforLastToken(const StrIn, Token: string): string;
+function BeforeFirstToken(const S: string; Token: Char): string;
+//Returnerer alt før Token som Result
+
+function strMake(C: Char; Len: Integer): string;
+//Returns a string with a specified number of a specified Char
+function strPadChL(const S: string; C: Char; Len: Integer): string;
+//Fills leading Char's into a string up to a specified length
+
+//Fills leading Zeroes into a string up to a specified length
+function strPosAfter(const aSubstr, S: string; aOfs: Integer): Integer;
+//Returns the posision of the first occurence of a substring in a string after a specified offset
+function strChange(var S: string; const Src, Dest: string): boolean;
+//Changes every ocuranc of a text in a string with new text
+function strEndSlash(const S: string): string;
+//Returns a string with a trailing slash (\)
+function strEndSlashX(const S: string): string;
+//returns a string with a trailing slash (/)
+function NoEndBackSlash(const S: string): string;
+//Returns a string without a traling slash (\)
+
+function NoStartSlash(const S: string): string;
+//Returns a string without a leading slash (/)
+
+function SplitAtToken(var S: string; Token: Char): string;
+function SplitAtTokenStr(var S: string; Token: string): string;
+//returnerer alt før Token som Result, og alt efter Token i S
+function strTokenCount(S: string; Token: Char): Integer;
+//Returnerer antal token i S
+function AfterTokenNr(const S: string; Token: Char; Nr: Integer): string;
+//Returns the right part of an string after token (Char) Nr.
+function BeforeTokenNr(const S: string; Token: Char; Nr: Integer): string;
+//Returns the left part of an string before token (Char) Nr.
+
+function strLastCh(const S: string): string;
+//Returns the last char in a string
+
+type                          { Search and Replace options }
+  TSROption = (srWord, srCase, srAll);
+  TSROptions = set of TsrOption;
+
+function DropLastDir(path: string): string;
+//fjerner sidste directory fra stien i path
+
+type
+  TCharSet = set of Char;
+
+
+{ Integer functions }
+function intMax(a, b: Integer): Integer;
+//Returns the highest value
+function intMin(a, b: Integer): Integer;
+//Returns the lowest value
+
+{ date functions }
+Function DateStrToDateTime(aDate: string): TDateTime;
+Function TimeStrToDateTime(aDateTime: string): TDateTime;
+//function dateYear(D: TDateTime): Integer;
+
+function fileSizeEx(const Filename: string): Longint;
+//returns the size of a file in bytes
+
+function KSForceDirectories(Dir: string): Boolean;
+
+function GetShareFromURN(const URN: string; var Share: string; aPath: string = ''): boolean;
+
+function ExecuteFile(handle: HWND; const FileName, Params, DefaultDir: string; ShowCmd: Integer; Silent: boolean = true): THandle;
+//run an exefile
+
+function fileCopy(const SourceFile, TargetFile: string): Boolean;
+//copy a file (with date info)
+function fileMove(const SourceFile, TargetFile: string): Boolean;
+function fileTemp(const aExt: string = ''): string;
+//Returns a unique temparary filename
+function fileTempEx(const aName: string): string;
+//Returns a unique temparary filename based on the suplied filename
+
+function KSGetCurrentDirectory: string;
+//Returns the current directory for the current process
+
+function DirExists(const Name: string): Boolean;
+function GetLogicalPathFromUNC(var aUNC :string): Boolean;
+//returns a normal filepath fore a UNC-filepath
+Function GetFirstNetworkDrive: string;
+//returns the UNC-filepath fore the first network-drive
+function KSGetTempPath: string;
+//Returns the path of the directory designated for temporary files
+function KSGetLogicalDrives: string;
+//Returns a string that contains the currently available disk drives
+function GetFirstAviableDriveLetter: string;
+
+function KSGetFileTime(const FileName: string; ComparisonType: TTimeOfWhat): TFileTime;
+// Returns the date and time that a file was created, last accessed, or last modified
+
+function KSCompareFileTime(const FileNameOne, FileNameTwo: string; ComparisonType: TTimeOfWhat): TFileTimeComparision;
+//Compares two files timestamps
+function FileDifferent(const Sourcefile: string; TargetPath: string): Boolean;
+//Returnere true hvis de to filer har forskellig dato eller størrelse
+function KSFileGetDateTime(const aFile: string): TDateTime;
+//Returnere TdateTime for en fils dato
+function GetFileTimeEx(const FileName: string; ComparisonType: TTimeOfWhat): TDateTime;
+// Returns the date and time that a file was created, last accessed, or last modified as TDateTime
+
+Function GetFreeDiskSize(TheDrive: String):Int64;
+//Returns the amount of free space on the specified disk
+function ShortFileNameToLFN(ShortName: String): String;
+function GetFullPathNameEx(const Path: string): string;
+//Returns the full path and filename of a specified file
+function fileExec(const aCmdLine: string; const aAppName: string = ''; aHide: Boolean = True;
+           aWait: Boolean = False; bWait: Boolean = False): Boolean;
+//Executes a file and wait as specified
+
+{ system functions }
+function GetWindir: string;
+//Returns the windows directory
+procedure WinExecError(iErr: Word; const sCmdLine: string);
+//Returns a dialogbox with the explanation of an WinExecError
+
+procedure PrintWordDoc(const fil: string; handle: HWND);
+
+{System Information }
+function KSGetUserName(Uppercase: boolean = true): string;
+function GetNetUserName(const aResource: string = ''): string;
+function KSGetNetUserName(const aResource: string = '?'): string;
+function GetUserCookie: string;
+//returns current username
+Function GetFileAsText(const afile: String): String;
+function SaveTextAsFile(const afile, Text: String): Boolean;
+
+function KSGetSystemDirectory: string;
+//Returns system directory
+
+// Time Functions
+function KSGetSystemTime: string;
+//returns date and time
+
+function GetWindowFromText(const WindowText: string): Hwnd;
+{returnere en handle til vinduet hvis det findes}
+
+
+function CtrlDown: Boolean;
+
+
+function GetSystemErrorMessage(var aFmtStr: String; ErrorAccept: Integer = ERROR_SUCCESS): boolean;
+function GetErrorString(var aFmtStr: String; ErrorCode: Integer): boolean;
+
+function GetLastErrorStr: string;
+function ShowLastErrorIfAny(anError: Integer; Handle: Hwnd = 0): Boolean;
+
+implementation
+
+uses RegFuncs;
+
+//------------------------------------------------------------------------------
+function CopyCursor(cur: HCURSOR): HCURSOR;
+begin
+   result := HCURSOR(CopyIcon(HICON(cur)));
+   { The typecasts are actually not necessary in Delphi since all handle type
+     are compatible with each other, since they all are aliases for DWORD }
+end;
+//------------------------------------------------------------------------------
+function _StringIsInteger(Const S: String; var I: Integer): boolean;
+{
+var
+  Err: Integer;
+begin
+  Val(S, I, Err);
+  Result := (Err = 0);   This raises an error i debugging
+end;
+}
+
+var a: Integer;
+begin
+  //asm int 3 end; //trap
+  result := FALSE;
+  I := 0;
+
+  if (length(s) > 0) and (s[1] in ['+','-','0'..'9'])
+     then begin
+        for a := 2 to length(s) do
+           if not (s[a] in ['0'..'9'])
+              then begin
+                 if (a > 3) or //min two good numbers before the trird that is bad
+                    ((a = 2) and (not (s[1] in ['+','-']))) //first number is good
+                    then I := StrToInt(Copy(S, 1, a -1));
+                 exit;
+              end;
+
+        result := true;
+        I := StrToInt(S);
+     end;
+end;
+//------------------------------------------------------------------------------
+function StringIsInteger(Const S: String): boolean;
+var
+  I: Integer;
+begin
+  //asm int 3 end; //trap
+  result := _StringIsInteger(S, I);
+end;
+//------------------------------------------------------------------------------
+{ bit manipulating }
+
+//------------------------------------------------------------------------------
+function strMake(C: Char; Len: Integer): string;
+//Returns a string with a specified number of a specified Char
+begin
+  //asm int 3 end; //KS trap
+  Result := strPadChL('', C, Len);
+end;
+//------------------------------------------------------------------------------
+function strPadChL(const S: string; C: Char; Len: Integer): string;
+//Fills leading Char's into a string up to a specified length
+begin
+  //asm int 3 end; //KS trap
+  Result := S;
+  while Length(Result) < Len
+    do Result := C + Result;
+end;
+//------------------------------------------------------------------------------
+function strEndSlash(const S: string): string;
+//returns a string with a trailing slash (\)
+begin
+  //asm int 3 end; //trap
+  Result := S;
+  if strLastCh(Result) <> '\'
+    then Result := Result + '\';
+end;
+//------------------------------------------------------------------------------
+function strEndSlashX(const S: string): string;
+//returns a string with a trailing slash (/)
+begin
+  //asm int 3 end; //trap
+  Result := S;
+  if strLastCh(Result) <> '/'
+    then Result := Result + '/';
+end;
+//------------------------------------------------------------------------------
+function NoEndBackSlash(const S: string): string;
+//Returns a string without a traling slash (\)
+begin 
+  //asm int 3 end; //trap
+  Result := S;
+  if strLastCh(Result) = '\'
+    then Delete(Result, Length(Result), 1);
+end;
+//------------------------------------------------------------------------------
+function NoStartSlash(const S: string): string;
+//Returns a string without a leading slash (/)
+begin
+  //asm int 3 end; //KS trap
+  Result := S;
+  if (length(Result) > 0) and  (Result[1] = '/')
+    then Delete(Result, 1, 1);
+end;
+//------------------------------------------------------------------------------
+function SplitAtToken(var S: string; Token: Char): string;
+//Splits up a string at a specified substring
+//Returnerer alt før Token som Result, og alt efter Token i S
+var
+  I: Word;
+begin
+  //asm int 3 end; //trap
+  I := Pos(Token, S);
+  if I <> 0
+    then begin
+      Result := System.Copy(S, 1, I - 1);
+      System.Delete(S, 1, I);
+    end
+  else begin                  //der er ingen token
+      Result := S;
+      S := '';
+    end;
+end;
+//------------------------------------------------------------------------------
+function BeforeFirstToken(const S: string; Token: Char): string;
+//Returnerer alt før Token som Result
+var
+  I: Word;
+begin
+  //asm int 3 end; //trap
+  I := Pos(Token, S);
+  if I <> 0
+    then Result := System.Copy(S, 1, I - 1)
+     else Result := S;                 //der er ingen token
+end;
+//------------------------------------------------------------------------------
+function SplitAtTokenStr(var S: string; Token: string): string;
+//Splits up a string at a specified substring
+//Returnerer alt før Token som Result, og alt efter Token i S
+var
+  I: Word;
+begin
+  //asm int 3 end; //trap
+  I := Pos(Token, S);
+  if I <> 0
+    then begin
+      Result := System.Copy(S, 1, I - 1);
+      System.Delete(S, 1, I + length(Token)-1);
+    end
+  else begin                  //der er ingen token
+      Result := S;
+      S := '';
+    end;
+end;
+//------------------------------------------------------------------------------
+function strTokenCount(S: string; Token: Char): Integer;
+//Returns the number of Char in S
+var
+  //s1: string;
+  i: Integer;
+begin
+  //asm int 3 end; //trap
+  Result := 0;
+  I := pos(Token, S);
+  if i = 0
+    then exit;
+
+  repeat
+    Inc(Result);
+    s := copy(S, i + 1, length(s));
+    I := pos(Token, S);
+    if i = 0
+      then break;
+  until false;
+
+end;
+//------------------------------------------------------------------------------
+function AfterTokenNr(const S: string; Token: Char; Nr: Integer): string;
+//Returns the right part of an string after token (Char) Nr.
+var
+  j, i: Integer;
+begin
+  //asm int 3 end; //KS trap
+  Result := '';
+  j := 1;
+  i := 0;
+
+  while (i <= Nr) and (j <= Length(S))
+    do begin
+      if S[j] = Token
+        then begin
+          Inc(i);
+          if i = Nr
+            then break;
+        end;
+      Inc(j);
+    end;                      //while
+
+  Result := copy(s, j + 1, length(S));
+end;
+//------------------------------------------------------------------------------
+function BeforeTokenNr(const S: string; Token: Char; Nr: Integer): string;
+//Returns the left part of an string before token (Char) Nr.
+var
+  j, i: Integer;
+begin
+  //asm int 3 end; //KS trap
+  Result := '';
+  j := 1;
+  i := 0;
+
+  while (i <= Nr) and (j <= Length(S))
+    do begin
+      if S[j] = Token
+        then begin
+          Inc(i);
+          if i = Nr
+            then break;
+        end;
+      Inc(j);
+    end;                      //while
+
+  Result := copy(s, 0, j - 1);
+
+end;
+//------------------------------------------------------------------------------
+function strPosAfter(const aSubstr, S: string; aOfs: Integer): Integer;
+//Returns the posision of the first occurence of a substring in a string
+//after a specified offset
+begin
+  //asm int 3 end; //trap
+  Result := Pos(aSubStr, Copy(S, aOfs, (Length(S) - aOfs) + 1));
+  if (Result > 0) and (aOfs > 1)
+    then Inc(Result, aOfs - 1);
+end;
+//------------------------------------------------------------------------------
+function strChange(var S: string; const Src, Dest: string): boolean;
+//Changes every ocuranc of a text in a string with new text
+var
+  Org: String;
+begin
+  //asm int 3 end; //trap
+  Org := S;
+  S := StringReplace(S, Src, Dest,  [rfReplaceAll]);
+  result := not AnsiSameText(Org,  S);
+end;
+//------------------------------------------------------------------------------
+function strLastCh(const S: string): string;
+//Returns the last char in a string
+var
+  i: integer;
+begin
+  //asm int 3 end; //trap
+  i := Length(S);
+  if i > 0
+    then Result := S[Length(S)]
+  else Result := '';
+end;
+//------------------------------------------------------------------------------
+{ Integer stuff }
+//------------------------------------------------------------------------------
+function IntMax(a, b: Integer): Integer;
+//Returns the highest value
+begin
+  //asm int 3 end; //trap
+  if a > b
+    then Result := a
+  else Result := b;
+end;
+//------------------------------------------------------------------------------
+function IntMin(a, b: Integer): Integer;
+//Returns the lowest value
+begin
+  //asm int 3 end; //KS trap
+  if a < b
+    then Result := a
+  else Result := b;
+end;
+//------------------------------------------------------------------------------
+function ExecuteFile(handle: HWND; const FileName, Params, DefaultDir: string; ShowCmd: Integer; Silent: boolean = true): THandle;
+begin
+  //asm int 3 end; //trap
+  {a caling procedure can normally get a hanle like this: Application.MainForm.Handle }
+  Result := ShellExecute(handle, nil,
+    Pchar(FileName), Pchar(Params), Pchar(DefaultDir), ShowCmd);
+
+  if (Result < 32) and (ShowDeveloperMessages or (not silent))
+     then WinExecError(Result, Filename);
+end;
+//------------------------------------------------------------------------------
+function fileCopy(const SourceFile, TargetFile: string): Boolean;
+begin
+  //asm int 3 end; //trap
+  Result := CopyFile(Pchar(SourceFile), Pchar(TargetFile), False);
+  //                       Existing file      Copy of file
+end;
+//------------------------------------------------------------------------------
+function fileMove(const SourceFile, TargetFile: string): Boolean;
+begin 
+  //asm int 3 end; //KS trap
+  Result := MoveFile(Pchar(SourceFile), Pchar(TargetFile));
+  //                       Existing file      New file
+end;
+//------------------------------------------------------------------------------
+function fileTemp(const aExt: string = ''): string;
+//Returns a unique temparary filename
+var
+  Buffer: array[0..1023] of Char;
+  aFile: string;
+begin
+
+  //asm int 3 end; //KS trap
+  GetTempPath(Sizeof(Buffer) - 1, Buffer);
+  GetTempFileName(Buffer, 'TMP', 0, Buffer);
+  SetString(aFile, Buffer, StrLen(Buffer));
+
+  if length(aExt) > 0
+     then begin
+        Result := ChangeFileExt(aFile, aExt);
+        RenameFile(aFile, Result);
+     end
+     else result := aFile;
+end;
+//------------------------------------------------------------------------------
+function fileTempEx(const aName: string): string;
+//Returns a unique temparary filename based on the suplied filename
+var
+  Buffer: array[0..1023] of Char;
+  aFile: string;
+  aPath: string;
+  aExt: string;
+begin 
+  //asm int 3 end; //KS trap
+  aPath := ExtractFilePath(aName);
+  if length(aPath) = 0
+     then begin
+        GetTempPath(Sizeof(Buffer) - 1, Buffer);
+        aPath := Buffer;
+     end;
+
+  aExt := ExtractFileName(aName);
+  aFile := SplitAtToken(aExt, '.');
+
+  while true do
+     begin
+        GetTempFileName(Pchar(aPath), '_', 0, Buffer);
+        result := aPath + aFile + ChangeFileExt(ExtractFileName(Buffer), '.'+aExt);
+        if not FileExists(result)
+           then break;
+     end;
+end;
+//------------------------------------------------------------------------------
+function fileExec(const aCmdLine: string; const aAppName: string = ''; aHide: Boolean = True;
+           aWait: Boolean = False; bWait: Boolean = False): Boolean;
+//Executes a file and wait as specified
+//aWait = vent på inputidle, bWait = vent på at programmet stopper igen
+var
+  StartupInfo: TStartupInfo;
+  ProcessInfo: TProcessInformation;
+  dwI : Cardinal;
+  dwCreationFlags: Cardinal;
+  S, S1: string;
+  //lpExitCode: DWORD;
+  //Msg: TMsg;
+begin 
+  //asm int 3 end; //trap
+  result := false;
+
+  //dont try to start a non existing program - can cause troubles
+  if (Length(aCmdLine) = 0) and (Length(aAppName) = 0)
+     then exit;
+
+  if not (fileExists(aCmdLine) or fileExists(aAppName))
+     then begin
+        //try to get rid og params in aCmdLine
+        if Length(aCmdLine) > 0
+           then begin
+              S1 := aCmdLine;
+              if S1[1] = '"'
+                 then begin
+                    S := SplitAtTokenStr(S1, '" ');
+                    delete(S, 1, 1);//drop leading "
+                 end
+                 else S := SplitAtToken(S1, ' ');
+
+              if not fileExists(S)
+                 then exit;
+           end
+           else exit;
+     end;
+
+  {setup the startup information for the application }
+  FillChar(StartupInfo, SizeOf(TStartupInfo), 0);
+  with StartupInfo
+    do begin
+      cb := SizeOf(TStartupInfo);
+      dwFlags := STARTF_USESHOWWINDOW or STARTF_FORCEONFEEDBACK;
+
+      if aHide
+        then wShowWindow := SW_HIDE
+      else wShowWindow := SW_SHOWNORMAL;
+    end;
+  //prevents delphi from locking the app but also from starting the app
+  //dwCreationFlags := DEBUG_ONLY_THIS_PROCESS or NORMAL_PRIORITY_CLASS or CREATE_NEW_PROCESS_GROUP;
+  //dwCreationFlags := NORMAL_PRIORITY_CLASS or CREATE_NEW_PROCESS_GROUP;
+  //dwCreationFlags := CREATE_DEFAULT_ERROR_MODE + NORMAL_PRIORITY_CLASS;
+  dwCreationFlags := CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS;
+  //dwCreationFlags := NORMAL_PRIORITY_CLASS;
+  try
+     if aAppName = ''
+        then Result := CreateProcess(nil,             PChar(aCmdLine), nil, nil, False, dwCreationFlags, nil, nil, StartupInfo, ProcessInfo)
+        else Result := CreateProcess(PChar(aAppName), PChar(aCmdLine), nil, nil, False, dwCreationFlags, nil, nil, StartupInfo, ProcessInfo);
+
+     if not result
+        then exit;
+
+     if aWait
+        then begin
+           dwI := WaitForInputIdle(ProcessInfo.hProcess, INFINITE);
+           if dwI = $FFFFFFFF
+              then GetExitCodeProcess(ProcessInfo.hProcess, dwI)
+              else begin
+                 if bWait
+                    then while WaitForSingleObject(ProcessInfo.hProcess,100) = WAIT_TIMEOUT do
+                       KSProcessMessages;
+              end;
+       end;
+  finally
+     CloseHandle(ProcessInfo.hProcess); //close handles or we get a mem-leak !
+     CloseHandle(ProcessInfo.hThread);
+  end;
+end;
+//------------------------------------------------------------------------------
+{ date calculations }
+
+type
+  TDateOrder = (doMDY, doDMY, doYMD);
+
+function CurrentYear: Word;
+var
+  SystemTime: TSystemTime;
+begin
+  //asm int 3 end; //KS trap
+  GetLocalTime(SystemTime);
+  Result := SystemTime.wYear;
+end;
+//------------------------------------------------------------------------------
+function GetDateOrder(const DateFormat: string): TDateOrder;
+var
+  I: Integer;
+begin 
+  //asm int 3 end; //KS trap
+  Result := doMDY;
+  I := 1;
+  while I <= Length(DateFormat) do
+  begin
+    case Chr(Ord(DateFormat[I]) and $DF) of
+      'E': Result := doYMD;
+      'Y': Result := doYMD;
+      'M': Result := doMDY;
+      'D': Result := doDMY;
+    else
+      Inc(I);
+      Continue;
+    end;
+    Exit;
+  end;
+  Result := doMDY;
+end;
+//------------------------------------------------------------------------------
+procedure ScanToNumber(const S: string; var Pos: Integer);
+begin
+  //asm int 3 end; //KS trap
+  while (Pos <= Length(S)) and not (S[Pos] in ['0'..'9']) do
+  begin
+    if S[Pos] in LeadBytes then Inc(Pos);
+    Inc(Pos);
+  end;
+end;
+//------------------------------------------------------------------------------
+function GetEraYearOffset(const Name: string): Integer;
+var
+  I: Integer;
+begin
+  //asm int 3 end; //KS trap
+  Result := 0;
+  for I := Low(EraNames) to High(EraNames) do
+  begin
+    if EraNames[I] = '' then Break;
+    if AnsiStrPos(PChar(EraNames[I]), PChar(Name)) <> nil then
+    begin
+      Result := EraYearOffsets[I];
+      Exit;
+    end;
+  end;
+end;
+//------------------------------------------------------------------------------
+procedure ScanBlanks(const S: string; var Pos: Integer);
+var
+  I: Integer;
+begin
+  //asm int 3 end; //KS trap
+  I := Pos;
+  while (I <= Length(S)) and (S[I] = ' ') do Inc(I);
+  Pos := I;
+end;
+//------------------------------------------------------------------------------
+function ScanNumber(const S: string; var Pos: Integer;
+  var Number: Word; var CharCount: Byte): Boolean;
+var
+  I: Integer;
+  N: Word;
+begin 
+  //asm int 3 end; //KS trap
+  Result := False;
+  CharCount := 0;
+  ScanBlanks(S, Pos);
+  I := Pos;
+  N := 0;
+  while (I <= Length(S)) and (S[I] in ['0'..'9']) and (N < 1000) do
+  begin
+    N := N * 10 + (Ord(S[I]) - Ord('0'));
+    Inc(I);
+  end;
+  if I > Pos then
+  begin
+    CharCount := I - Pos;
+    Pos := I;
+    Number := N;
+    Result := True;
+  end;
+end;
+//------------------------------------------------------------------------------
+function ScanString(const S: string; var Pos: Integer;
+  const Symbol: string): Boolean;
+begin
+  //asm int 3 end; //KS trap
+  Result := False;
+  if Symbol <> '' then
+  begin
+    ScanBlanks(S, Pos);
+    if AnsiCompareText(Symbol, Copy(S, Pos, Length(Symbol))) = 0 then
+    begin
+      Inc(Pos, Length(Symbol));
+      Result := True;
+    end;
+  end;
+end;
+//------------------------------------------------------------------------------
+function ScanChar(const S: string; var Pos: Integer; Ch: Char): Boolean;
+begin 
+  //asm int 3 end; //KS trap
+  Result := False;
+  ScanBlanks(S, Pos);
+  if (Pos <= Length(S)) and (S[Pos] = Ch) then
+  begin
+    Inc(Pos);
+    Result := True;
+  end;
+end;
+//------------------------------------------------------------------------------
+function DoEncodeDate(Year, Month, Day: Word; var Date: TDateTime): Boolean;
+var
+  I: Integer;
+  DayTable: PDayTable;
+begin 
+  //asm int 3 end; //KS trap
+  Result := False;
+  DayTable := @MonthDays[IsLeapYear(Year)];
+  if (Year >= 1) and (Year <= 9999) and (Month >= 1) and (Month <= 12) and
+    (Day >= 1) and (Day <= DayTable^[Month]) then
+  begin
+    for I := 1 to Month - 1 do Inc(Day, DayTable^[I]);
+    I := Year - 1;
+    Date := I * 365 + I div 4 - I div 100 + I div 400 + Day - DateDelta;
+    Result := True;
+  end;
+end;
+//------------------------------------------------------------------------------
+function ScanDate(const S: string; var Pos: Integer;
+  var Date: TDateTime): Boolean;
+var
+  DateOrder: TDateOrder;
+  N1, N2, N3, Y, M, D: Word;
+  L1, L2, L3, YearLen: Byte;
+  EraName : string;
+  EraYearOffset: Integer;
+  CenturyBase: Integer;
+
+  function EraToYear(Year: Integer): Integer;
+  begin
+    if SysLocale.PriLangID = LANG_KOREAN then
+    begin
+      if Year <= 99 then
+        Inc(Year, (CurrentYear + Abs(EraYearOffset)) div 100 * 100);
+      if EraYearOffset > 0 then
+        EraYearOffset := -EraYearOffset;
+    end
+    else
+      Dec(EraYearOffset);
+    Result := Year + EraYearOffset;
+  end;
+
+begin  
+  //asm int 3 end; //KS trap
+  Y := 0;
+  M := 0;
+  D := 0;
+  YearLen := 0;
+  Result := False;
+  DateOrder := GetDateOrder(ShortDateFormat);
+  EraYearOffset := 0;
+  if ShortDateFormat[1] = 'g' then  // skip over prefix text
+  begin
+    ScanToNumber(S, Pos);
+    EraName := Trim(Copy(S, 1, Pos-1));
+    EraYearOffset := GetEraYearOffset(EraName);
+  end
+  else
+    if AnsiPos('e', ShortDateFormat) > 0 then
+      EraYearOffset := EraYearOffsets[1];
+  if not (ScanNumber(S, Pos, N1, L1) and ScanChar(S, Pos, DateSeparator) and
+    ScanNumber(S, Pos, N2, L2)) then Exit;
+  if ScanChar(S, Pos, DateSeparator) then
+  begin
+    if not ScanNumber(S, Pos, N3, L3) then Exit;
+    case DateOrder of
+      doMDY: begin Y := N3; YearLen := L3; M := N1; D := N2; end;
+      doDMY: begin Y := N3; YearLen := L3; M := N2; D := N1; end;
+      doYMD: begin Y := N1; YearLen := L1; M := N2; D := N3; end;
+    end;
+    if EraYearOffset > 0 then
+      Y := EraToYear(Y)
+    else if (YearLen <= 2) then
+    begin
+      CenturyBase := CurrentYear - TwoDigitYearCenturyWindow;
+      Inc(Y, CenturyBase div 100 * 100);
+      if (TwoDigitYearCenturyWindow > 0) and (Y < CenturyBase) then
+        Inc(Y, 100);
+    end;
+  end else
+  begin
+    Y := CurrentYear;
+    if DateOrder = doDMY then
+    begin
+      D := N1; M := N2;
+    end else
+    begin
+      M := N1; D := N2;
+    end;
+  end;
+  ScanChar(S, Pos, DateSeparator);
+  ScanBlanks(S, Pos);
+  if SysLocale.FarEast and (System.Pos('ddd', ShortDateFormat) <> 0) then
+  begin     // ignore trailing text
+    if ShortTimeFormat[1] in ['0'..'9'] then  // stop at time digit
+      ScanToNumber(S, Pos)
+    else  // stop at time prefix
+      repeat
+        while (Pos <= Length(S)) and (S[Pos] <> ' ') do Inc(Pos);
+        ScanBlanks(S, Pos);
+      until (Pos > Length(S)) or
+        (AnsiCompareText(TimeAMString, Copy(S, Pos, Length(TimeAMString))) = 0) or
+        (AnsiCompareText(TimePMString, Copy(S, Pos, Length(TimePMString))) = 0);
+  end;
+  Result := DoEncodeDate(Y, M, D, Date);
+end;
+//------------------------------------------------------------------------------
+function DoEncodeTime(Hour, Min, Sec, MSec: Word; var Time: TDateTime): Boolean;
+begin  
+  //asm int 3 end; //KS trap
+  Result := False;
+  if (Hour < 24) and (Min < 60) and (Sec < 60) and (MSec < 1000) then
+  begin
+    Time := (Hour * 3600000 + Min * 60000 + Sec * 1000 + MSec) / MSecsPerDay;
+    Result := True;
+  end;
+end;
+//------------------------------------------------------------------------------
+function ScanTime(const S: string; var Pos: Integer;
+  var Time: TDateTime): Boolean;
+var
+  BaseHour: Integer;
+  Hour, Min, Sec, MSec: Word;
+  Junk: Byte;
+begin
+  //asm int 3 end; //KS trap
+  Result := False;
+  BaseHour := -1;
+  if ScanString(S, Pos, TimeAMString) or ScanString(S, Pos, 'AM') then
+    BaseHour := 0
+  else if ScanString(S, Pos, TimePMString) or ScanString(S, Pos, 'PM') then
+    BaseHour := 12;
+  if BaseHour >= 0 then ScanBlanks(S, Pos);
+  if not ScanNumber(S, Pos, Hour, Junk) then Exit;
+  Min := 0;
+  if ScanChar(S, Pos, TimeSeparator) then
+    if not ScanNumber(S, Pos, Min, Junk) then Exit;
+  Sec := 0;
+  if ScanChar(S, Pos, TimeSeparator) then
+    if not ScanNumber(S, Pos, Sec, Junk) then Exit;
+  MSec := 0;
+  if ScanChar(S, Pos, DecimalSeparator) then
+    if not ScanNumber(S, Pos, MSec, Junk) then Exit;
+  if BaseHour < 0 then
+    if ScanString(S, Pos, TimeAMString) or ScanString(S, Pos, 'AM') then
+      BaseHour := 0
+    else
+      if ScanString(S, Pos, TimePMString) or ScanString(S, Pos, 'PM') then
+        BaseHour := 12;
+  if BaseHour >= 0 then
+  begin
+    if (Hour = 0) or (Hour > 12) then Exit;
+    if Hour = 12 then Hour := 0;
+    Inc(Hour, BaseHour);
+  end;
+  ScanBlanks(S, Pos);
+  Result := DoEncodeTime(Hour, Min, Sec, MSec, Time);
+end;
+//------------------------------------------------------------------------------
+
+Function DateStrToDateTime(aDate: string): TDateTime;
+var
+  OldDateSeparator: Char;
+  OldShortDateFormat: string;
+  Pos: Integer;
+  //S: string;
+begin
+  //asm int 3 end; //KS trap
+  OldDateSeparator := DateSeparator;
+  OldShortDateFormat := ShortDateFormat;
+  DateSeparator := '.';
+  ShortDateFormat := 'dd.mm.yy';
+
+  try
+     Pos := 1;
+     if not ScanDate(aDate, Pos, Result) or (Pos <= Length(aDate))
+        then result := 0;
+  finally
+     DateSeparator := OldDateSeparator;
+     ShortDateFormat := OldShortDateFormat;
+  end;
+end;
+
+//------------------------------------------------------------------------------
+Function TimeStrToDateTime(aDateTime: string): TDateTime;
+var
+  OldDateSeparator: Char;
+  OldTimeSeparator: Char;
+  OldShortDateFormat: string;
+  Pos: Integer;
+  Date, Time: TDateTime;
+begin 
+  //asm int 3 end; //KS trap
+  OldDateSeparator := DateSeparator;
+  OldShortDateFormat := ShortDateFormat;
+  OldTimeSeparator := TimeSeparator;
+  DateSeparator := '.';
+  ShortDateFormat := 'dd.mm.yy';
+  TimeSeparator := ':';
+  Result := 0;
+
+  try             
+     try
+        Pos := 1;
+        Time := 0;
+        if not ScanDate(aDateTime, Pos, Date) or
+           not ((Pos > Length(aDateTime)) or
+           ScanTime(aDateTime, Pos, Time))
+           then begin   // Try time only
+              Pos := 1;
+              if not ScanTime(aDateTime, Pos, Result) or (Pos <= Length(aDateTime))
+                 then result := 0;
+           end
+           else begin
+              if Date >= 0
+                 then Result := Date + Time
+                 else Result := Date - Time;
+           end;
+     except
+        Result := 0;
+     end;
+  finally
+     DateSeparator := OldDateSeparator;
+     ShortDateFormat := OldShortDateFormat;
+     TimeSeparator := OldTimeSeparator;
+  end;
+end;
+//------------------------------------------------------------------------------
+function DirExists(const Name: string): Boolean;
+var
+  Code: Integer;
+begin
+  //asm int 3 end; //trap
+  {$RANGECHECKS OFF}
+  Code := GetFileAttributes(PChar(Name));
+  Result := (Code <> -1) and (FILE_ATTRIBUTE_DIRECTORY and Code <> 0);
+end;
+//------------------------------------------------------------------------------
+function KSGetTempPath: string;
+//Returns the path of the directory designated for temporary files
+var
+  Buffer: array[0..1023] of Char;
+begin
+  //asm int 3 end; //trap
+  SetString(Result, Buffer, GetTempPath(Sizeof(Buffer) - 1, Buffer));
+  //Fixes a bug in Windows 2000
+  //Strg.MakeLongName(result);
+  //problems
+  (*
+  if (result = '') or (not DirExists(result))
+     then begin
+        result := GetWinDir + '\TEMP\';
+        MkDir(result);
+     end;
+  *)
+end;
+//------------------------------------------------------------------------------
+procedure WinExecError(iErr: Word; const sCmdLine: string);
+//Returns a dialogbox with the explanation of an WinExecError
+var
+  S: string;
+begin
+  //asm int 3 end; //KS trap
+  case iErr of
+    (* nye ting og sager fra win32
+    SE_ERR_ACCESSDENIED	Windows 95 only: The operating system denied access to the specified file.
+    SE_ERR_ASSOCINCOMPLETE	The filename association is incomplete or invalid.
+    SE_ERR_DDEBUSY	The DDE transaction could not be completed because other DDE transactions were being processed.
+    SE_ERR_DDEFAIL	The DDE transaction failed.
+    SE_ERR_DDETIMEOUT	The DDE transaction could not be completed because the request timed out.
+    SE_ERR_DLLNOTFOUND	Windows 95 only: The specified dynamic-link library was not found.
+    SE_ERR_FNF	Windows 95 only: The specified file was not found.
+    SE_ERR_NOASSOC	There is no application associated with the given filename extension.
+    SE_ERR_OOM	Windows 95 only: There was not enough memory to complete the operation.
+    SE_ERR_PNF	Windows 95 only: The specified path was not found.
+    SE_ERR_SHARE	A sharing violation occurred.
+    *)
+
+     0:
+        S := 'The operating system is out of memory or resources,'+CrLf+
+             'the executable file was corrupt, or'+CrLf+
+             'relocations were invalid';
+     ERROR_FILE_NOT_FOUND:
+        S := 'The specified file was not found' + CrLf + sCmdLine;
+     ERROR_PATH_NOT_FOUND:
+        S := 'The specified path was not found' + CrLf + sCmdLine;
+     //ERROR_TOO_MANY_OPEN_FILES:
+     5:
+        S := 'Attempt was made to dynamically link to a task, or there'
+             + ' was a sharing or network-protection error.';
+     6:
+        S := 'Library required separate data segments for each task.';
+     8:
+        S := 'There was insufficient memory to start the application.';
+     10:
+        S := 'Windows version was incorrect.';
+     ERROR_BAD_FORMAT:
+        S := 'The .EXE file is invalid (non-Win32 .EXE or error in .EXE image)';
+     12:
+        S := 'Application was designed for a different operating system.';
+     13:
+        S := 'Application was designed for MS-DOS 4.0.';
+     14:
+        S := 'Type of executable file was unknown.';
+     15:
+        S := 'Attempt was made to load a real-mode application'
+             + ' (developed for an earlier version of Windows).';
+     16:
+        S := 'Attempt was made to load a second instance of an'
+             + ' executable file containing multiple data segments'
+             + ' that were not marked read-only.';
+     19:
+        S := 'Attempt was made to load a compressed executable file.'
+             + ' The file must be decompressed before it can be loaded.';
+     20:
+        S := 'Dynamic-link library (DLL) file was invalid.  One of the'
+             + ' DLLs required to run this application was corrupt.';
+     21:
+        S := 'Application requires 32-bit extensions.';
+  end;
+
+  KSMessageE(S, 'Win Exe Error');
+end;
+//------------------------------------------------------------------------------
+procedure PrintWordDoc(const fil: string; handle: HWND);
+var
+  Hwnd: Thandle;
+begin
+  //asm int 3 end; //KS trap
+  Hwnd := GetWindowFromText('Microsoft Word');
+  // Hvis word er aktiv så minimer > så kan der printes i baggrunden
+  if hwnd > 0
+    then ShowWindow(hwnd, SW_HIDE); //hvis word ikke er aktiv må vi finde os i forgrunds-print
+
+  Hwnd := ShellExecute(handle, 'Print', Pchar(Fil), nil, nil, SW_HIDE);
+  if Hwnd < 32
+    then WinExecError(Hwnd, ExtractFileName(fil)); {vis fejlen}
+
+end;
+//------------------------------------------------------------------------------
+Function GetFileAsText(const afile: String): String;
+var
+  iFileHandle: Integer;
+  iFileLength: Integer;
+begin
+  //asm int 3 end; //trap
+  result := '';
+  if FileExists(afile)
+     then begin
+        iFileHandle := FileOpen(afile, fmOpenRead);
+        try
+           iFileLength := FileSeek(iFileHandle, 0, 2);
+           FileSeek(iFileHandle, 0, 0);
+           SetLength(Result, iFileLength);
+           FileRead(iFileHandle, Result[1], iFileLength);
+          finally
+            FileClose(iFileHandle);
+          end;
+
+          if length(Trim(Result)) > 500
+              then DeveloperMessage('Reading file: ' +afile+ DblCrLf + Trim(Copy(Result, 1, 500) + DblCrLf +'{ Snip }'))
+              else DeveloperMessage('Reading file: ' +afile+ DblCrLf + Trim(Result));
+     end
+     else DeveloperMessage('Failed to read file: ' +afile);
+end;
+//------------------------------------------------------------------------------
+function SaveTextAsFile(const afile, Text: String): Boolean;
+var
+  //F: TextFile;
+  aHandle: THandle;
+  dwRead: DWORD;
+begin 
+  //asm int 3 end; //KS trap
+  result := false;
+
+  aHandle := CreateFile(Pchar(afile), GENERIC_WRITE, 0, nil, CREATE_ALWAYS, 0,0);
+
+  if aHandle = INVALID_HANDLE_VALUE
+     then begin
+        KSMessageE('Failed to create file: '+CrLf+afile);
+        exit;
+     end;
+  try
+     result := WriteFile(aHandle, PChar(Text)^, Length(Text), dwRead, nil);
+     if not result
+        then begin
+           KSMessageE('Failed to write to file: '+CrLf+afile);
+           exit;
+        end;
+  finally
+     if not CloseHandle(aHandle)
+        then KSMessageE('Failed to close file handle: '+CrLf+afile);
+  end;
+
+(*
+  AssignFile(F, afile);
+  try
+     Rewrite(F);
+     Write(F, Text);
+  finally
+     CloseFile(F);
+  end;
+  *)
+end;
+//------------------------------------------------------------------------------
+function GetUserCookie: string;
+begin 
+  //asm int 3 end; //KS trap
+  Result := Trim(GetFileAsText(GetWinDir + 'KSUserCookie'));
+end;
+//------------------------------------------------------------------------------
+var
+  NetUserName: string = '';
+
+//------------------------------------------------------------------------------
+function KSGetNetUserName(const aResource: string = '?'): string;
+begin
+  //asm int 3 end; //trap
+  if Length(NetUserName) = 0  //not initialized
+     then GetNetUserName(aResource);
+
+  Result := NetUserName;
+end;
+//------------------------------------------------------------------------------
+function KSGetUserName(Uppercase: boolean = true): string;
+var
+  pcUser: PChar;
+  dwUSize: Cardinal;
+
+  //-----------------------------------------------
+  function GetCaseUserName: string;
+  begin
+     if Uppercase
+        then Result := AnsiUpperCase(NetUserName)
+        else result := NetUserName;
+
+     //if Pos('\', result) > 0     //a win 95 returns NetUserName without "domain\"
+        //then SplitAtToken(result, '\');
+  end;
+  //-----------------------------------------------
+begin 
+  //asm int 3 end; //KS trap
+  if Length(NetUserName) > 0  //already initialized
+     then begin
+        result := GetCaseUserName;
+        exit;
+     end;
+
+  //first try NetUser
+  NetUserName := GetNetUserName('?');   //this returns Domaine\user for users
+  if length(NetUserName) > 0            //from a forign domaine
+     then begin
+        result := GetCaseUserName;
+        exit;
+     end;
+
+  //then try PC-user
+  dwUSize := 21;              // user name can be up to 20 characters
+  GetMem(pcUser, dwUSize);
+  try
+     if GetUserName(pcUser, dwUSize)
+        then begin
+           NetUserName := Trim(pcUser);
+           if length(NetUserName) > 0
+              then begin
+                 result := GetCaseUserName;
+                 exit;
+              end;
+        end;
+  finally
+    FreeMem(pcUser);
+  end;
+
+  //we only come heir if NetUser and PC-user is not getting any result
+  //get User from "Cookie"
+  NetUserName := GetUserCookie;
+
+  if Length(NetUserName) > 0
+     then Result := GetCaseUserName
+     else KSMessageE('This computer dos''ent return any'+ CrLf +
+                     'NetUser- or PC-user name.'+ DblCrLf +
+                     'You must put a user name in:'+ CrLf +
+                     GetWinDir+'KSUserCookie');
+end;
+//------------------------------------------------------------------------------
+Function GetFirstNetworkDrive: string;
+var
+  dtDrive: TDriveType;
+  AllDrives: string;
+  I: Integer;
+begin
+  //asm int 3 end; //trap
+  Result := '';
+
+  AllDrives := KSGetLogicalDrives;
+
+  for I := 1 to Length(AllDrives) do
+     begin
+        dtDrive := TDriveType(GetDriveType(PChar(AllDrives[i]+':\')));
+
+        if dtDrive = dtNetwork  // it's a connected network drive
+           then begin
+               Result := AllDrives[i]+':';
+               break;
+           end;
+     end;
+end;
+//------------------------------------------------------------------------------
+function GetNetUserName(const aResource: string = ''): string;
+// aResource = drive to get Log In Name from - if blank we use the first net-drive
+var
+  pcUser: PChar;
+  dwUSize: Cardinal;
+  _aResource: String;
+begin 
+  //asm int 3 end; //trap
+  if ((length(aResource) = 0) or (aResource = '?'))and
+     (length(NetUserName) > 0)    //no need to call net more than once
+     then begin
+        result := NetUserName;
+        exit;
+     end;
+
+
+  Result := '';
+  dwUSize := 21;              // user name can be up to 20 characters
+  GetMem(pcUser, dwUSize);    // allocate memory for the string
+  try
+     if aResource = '?'
+        then _aResource := GetFirstNetworkDrive
+        else _aResource := aResource;
+
+     if NO_ERROR = WNetGetUser(Pchar(_aResource), pcUser, dwUSize)
+        then begin
+           Result := Trim(pcUser);
+
+           if (aResource = '?')  //if no drive letter used then save default NetUserName
+              then begin
+                 NetUserName := Result;
+
+                 //at siemens the network-user is returned like this SIEDK\KS
+                 //if (Pos('\', Result) > 0)
+                    //then Result := afterLastToken(Result, '\');
+              end;
+        end;
+  finally
+    FreeMem(pcUser);
+  end;
+end;
+//------------------------------------------------------------------------------
+function GetWinDir: string;
+//Returns the windows directory
+var
+  pcWindowsDirectory: PChar;
+  dwWDSize: Cardinal;
+begin
+  //asm int 3 end; //trap
+  if length(ActualWinDir)= 0
+     then begin
+        dwWDSize := MAX_PATH + 1;
+        GetMem(pcWindowsDirectory, dwWDSize); // allocate memory for the string
+        try
+          if Windows.GetWindowsDirectory(pcWindowsDirectory, dwWDSize) <> 0
+            then ActualWinDir := strEndSlash(pcWindowsDirectory);
+        finally
+          FreeMem(pcWindowsDirectory); // now free the memory allocated for the string
+        end;
+     end;
+
+  result := ActualWinDir;
+end;
+//------------------------------------------------------------------------------
+function KSGetSystemDirectory: string;
+//Returns system directory
+var
+  pcSystemDirectory: PChar;
+  dwSDSize: Cardinal;
+begin
+  //asm int 3 end; //KS trap
+  dwSDSize := MAX_PATH + 1;
+  GetMem(pcSystemDirectory, dwSDSize); // allocate memory for the string
+  try
+    if Windows.GetSystemDirectory(pcSystemDirectory, dwSDSize) <> 0
+      then Result := strEndSlash(pcSystemDirectory);
+  finally
+    FreeMem(pcSystemDirectory); // now free the memory allocated for the string
+  end;
+end;
+//------------------------------------------------------------------------------
+function KSGetSystemTime: string;
+//returns date and time
+var
+  stSystemTime: TSystemTime;
+begin
+  //asm int 3 end; //trap
+  Windows.GetSystemTime(stSystemTime);
+  Result := DateTimeToStr(SystemTimeToDateTime(stSystemTime));
+end;
+//------------------------------------------------------------------------------
+function KSFileGetDateTime(const aFile: string): TDateTime;
+begin 
+  //asm int 3 end; //KS trap
+  Result := FileDateToDateTime(FileAge(aFile));
+end;
+//------------------------------------------------------------------------------
+function KSCompareFileTime(const FileNameOne, FileNameTwo: string; ComparisonType:
+  TTimeOfWhat): TFileTimeComparision;
+//Compares two files timestamps
+// NB der er vistnok vrøvl med alt andet end ftLastWriteTime
+var
+  FileOneFileTime: TFileTime;
+  FileTwoFileTime: TFileTime;
+begin
+  //asm int 3 end; //trap
+  Result := ftError;
+
+  if FileExists(FileNameOne) and FileExists(FileNameTwo)
+     then begin
+        FileOneFileTime := KSGetFileTime(FileNameOne, ComparisonType);
+        FileTwoFileTime := KSGetFileTime(FileNameTwo, ComparisonType);
+
+        case Windows.CompareFileTime(FileOneFileTime, FileTwoFileTime) of
+          - 1: Result := ftFileOneIsOlder;
+          0: Result := ftFileTimesAreEqual;
+          1: Result := ftFileTwoIsOlder;
+        end;
+     end
+     else Result := ftError;
+end;
+//------------------------------------------------------------------------------
+function GetFileTimeEx(const FileName: string; ComparisonType: TTimeOfWhat): TDateTime;
+// Returns the date and time that a file was created, last accessed, or last modified as TDateTime
+// NB der er vistnok vrøvl med alt andet end ftLastWriteTime
+var
+  SystemTime: TSystemTime;
+  FileTime: TFileTime;
+begin  
+  //asm int 3 end; //KS trap
+  Result := StrToDate('31' + DateSeparator + '12' + DateSeparator + '9999');
+
+  FileTime := KSGetFileTime(FileName, ComparisonType);
+  if FileTimeToSystemTime(FileTime, SystemTime)
+    then Result := SystemTimeToDateTime(SystemTime); // Convert to TDateTime and return
+
+end;
+//------------------------------------------------------------------------------
+function GetLogicalPathFromUNC(var aUNC :string): Boolean;
+var
+  S,S1: string;
+  I: Integer;
+  UNC: string;
+begin
+  //asm int 3 end; //KS trap
+  Result := False;
+
+  UNC := Lowercase(aUNC);
+
+  S := KSGetLogicalDrives;
+
+  for I := 1 to Length(S) do
+     begin
+        S1 := Lowercase(ExpandUNCFileName(S[i]+':\'));
+        if pos(s1, UNC) = 1
+           then begin
+              Delete(aUNC, 1, Length(S1)-1);
+              Insert(S[i]+':', aUNC, 1);
+              result := True;
+              break;
+           end;
+     end;
+end;
+//------------------------------------------------------------------------------
+function KSGetFileTime(const FileName: string; ComparisonType: TTimeOfWhat): TFileTime;
+// Returns the date and time that a file was created, last accessed, or last modified
+// NB der er vistnok vrøvl med alt andet end ftLastWriteTime
+var
+  FileTime, LocalFileTime: TFileTime;
+  hFile: THandle;
+  //AFileName: string;
+begin 
+  //asm int 3 end; //trap
+  // initialize TFileTime record in case of error
+  Result.dwLowDateTime := 0;
+  Result.dwHighDateTime := 0;
+
+  hFile := FileOpen(FileName, fmOpenRead{fmShareDenyNone});
+  try
+    if hFile <> 0
+      then begin
+        case ComparisonType of
+          ftCreationTime: Windows.GetFileTime(hFile, @FileTime, nil, nil);
+          ftLastAccessTime: Windows.GetFileTime(hFile, nil, @FileTime, nil);
+          ftLastWriteTime: Windows.GetFileTime(hFile, nil, nil, @FileTime);
+        end;                  // case FileTimeOf
+
+        // Change the file time to local time
+        FileTimeToLocalFileTime(FileTime, LocalFileTime);
+        Result := LocalFileTime;
+      end;                    // if hFile <> 0
+  finally
+    FileClose(hFile);
+  end;                        // try
+end;
+//------------------------------------------------------------------------------
+Function GetFreeDiskSize(TheDrive: String):Int64;
+//NB husk C:\
+var
+  TheSize : int64;
+begin
+  //asm int 3 end; //KS trap
+  GetDiskFreeSpaceEx(Pchar(TheDrive), Result, TheSize, nil);
+end;
+//------------------------------------------------------------------------------
+function KSGetCurrentDirectory: string;
+//Returns the current directory for the current process
+var
+  nBufferLength: Cardinal;       // size, in characters, of directory buffer
+  lpBuffer: PChar;            // address of buffer for current directory
+begin
+  //asm int 3 end; //KS trap
+  GetMem(lpBuffer, MAX_PATH + 1);
+  nBufferLength := 100;
+  try
+    if Windows.GetCurrentDirectory(nBufferLength, lpBuffer) > 0
+      then Result := strEndSlash(lpBuffer);
+  finally
+    FreeMem(lpBuffer);
+  end;                        // try
+end;
+//------------------------------------------------------------------------------
+function FileSizeEx(const FileName: string): LongInt;
+//returns the size of a file in bytes
+var
+ (*
+  hFile: THandle;             // handle of file to get size of
+  lpFileSizeHigh: Cardinal;      // address of high-order word for file size
+
+  f: file of Byte;
+  fileSize: Integer;
+  *)
+  //ret: Integer;
+  sResult: TSearchRec;
+begin
+  //asm int 3 end; //KS trap
+  if 0 = SysUtils.FindFirst(filename, faAnyFile, sResult)
+     then result := sResult.Size
+     else result := -1;
+
+  SysUtils.FindClose(sResult);
+
+ (*
+  Result := -1;
+  hFile := FileOpen(FileName, fmOpenRead);
+  try
+    if hFile <> 0
+      then begin
+        Result := Windows.GetFileSize(hFile, @lpFileSizeHigh);
+        //if result = -1
+           //then KSMessageE(GetLastErrorStr);
+
+      end;
+  finally
+    FileClose(hFile);
+  end;
+ *)
+end;
+//------------------------------------------------------------------------------
+function ShortFileNameToLFN(ShortName: String):String;
+var
+  temp: TWIN32FindData;
+  searchHandle: THandle;
+begin
+  //asm int 3 end; //KS trap
+  searchHandle := FindFirstFile(PChar(ShortName), temp);
+
+  if searchHandle <> ERROR_INVALID_HANDLE
+     then result := String(temp.cFileName)
+     else result := '';
+
+  Windows.FindClose(searchHandle);
+end;
+//------------------------------------------------------------------------------
+function GetFullPathNameEx(const Path: string): string;
+//Returns the full path and filename of a specified file
+var
+  nBufferLength: Cardinal;       // size, in characters, of path buffer
+  lpBuffer: PChar;            // address of path buffer
+  lpFilePart: PChar;          // address of filename in path
+begin
+  //asm int 3 end; //KS trap
+  Result := '';
+  nBufferLength := MAX_PATH + 1;
+  GetMem(lpBuffer, MAX_PATH + 1);
+  GetMem(lpFilePart, MAX_PATH + 1);
+  try
+    if Windows.GetFullPathName(PChar(Path), nBufferLength, lpBuffer, lpFilePart) <> 0
+      then Result := lpBuffer;
+  finally
+    FreeMem(lpBuffer);
+    FreeMem(lpFilePart);
+  end;
+end;
+//------------------------------------------------------------------------------
+function GetFirstAviableDriveLetter: string;
+//Returns the first available disk drives letter
+var
+  S: string;
+  I: Integer;
+begin 
+  //asm int 3 end; //KS trap
+  Result := '';
+  S := UpperCase(KSGetLogicalDrives); //this is used letters
+
+  while (Length(S) > 0) and (S[1] in ['A'..'C']) do
+     Delete(S, 1, 1); //skip A, B and C
+
+  for I := 1 to Length(S) do   
+     if (Ord(S[I]) - 67) <> I  //first posible char = D ~ 68
+        then begin
+           Result := Succ(S[I -1]); //first letter after last letter "in sync"
+           break;
+        end;
+end;
+//------------------------------------------------------------------------------
+function KSGetLogicalDrives: string;
+//Returns a string that contains the currently available disk drives
+var
+  drives: set of 0..25;
+  drive: integer;
+begin 
+  //asm int 3 end; //trap
+  Result := '';
+  Cardinal(drives) := Windows.GetLogicalDrives;
+  for drive := 0 to 25
+    do
+    if drive in drives
+      then Result := Result + Chr(drive + Ord('A'));
+end;
+//------------------------------------------------------------------------------
+function KSDelete(var S: String; DeleteString: String; All: Boolean = False): boolean;
+var
+  I: Integer;
+begin 
+  //asm int 3 end; //trap
+  i := Pos(DeleteString, S);
+  if I > 0
+     then begin
+        delete(S, i, length(DeleteString));
+        Result := True;
+     end
+     else Result := False;
+
+  if all and result  //se if there is more to delete
+     then begin
+        i := Pos(DeleteString, S);
+        while I > 0 do
+           begin
+              delete(S, i, length(DeleteString));
+              i := Pos(DeleteString, S);
+           end;
+     end;
+end;
+//------------------------------------------------------------------------------
+function squish(const Search: string): string;
+{squish() returns a string with all whitespace not inside single
+quotes deleted.}
+var
+  Index: byte;
+  InString: boolean;
+begin
+  //asm int 3 end; //trap
+  InString := False;
+  Result := '';
+  for Index := 1 to Length(Search)
+    do begin
+      if InString or (Search[Index] in BlackSpace)
+        then AppendStr(Result, Search[Index]);
+      InString := ((Search[Index] = '''') and (Search[Index - 1] <> '\')) xor InString;
+    end;
+end;
+//------------------------------------------------------------------------------
+function before(const Search, Find: string): string;
+{before() returns everything before the first occurance of Find
+in Search. If Find does not occur in Search, Search is returned.}
+var
+  index: byte;
+begin
+  //asm int 3 end; //trap
+  index := Pos(Find, Search);
+  if index = 0
+    then Result := Search
+  else Result := Copy(Search, 1, index - 1);
+end;
+//------------------------------------------------------------------------------
+function beforeX(const Search, Find: string): string;
+{before() returns everything before the first occurance of Find
+in Search. If Find does not occur in Search, An empty string is returned.}
+var
+  index: byte;
+begin
+  //asm int 3 end; //trap
+  index := Pos(Find, Search);
+  if index = 0
+    then Result := ''
+  else Result := Copy(Search, 1, index - 1);
+end;
+//------------------------------------------------------------------------------
+function after(const Search, Find: string): string;
+{after() returns everything after the first occurance of Find
+in Search. If Find does not occur in Search, a null string is returned.}
+var
+  index: byte;
+begin 
+  //asm int 3 end; //trap
+  index := Pos(Find, Search);
+  if index = 0
+    then Result := ''
+  else Result := Copy(Search, index + Length(Find), Length(Search));
+end;
+//------------------------------------------------------------------------------
+function LastChar(const Search: string; const Find: char): Integer;
+begin 
+  //asm int 3 end; //KS trap
+  Result := Length(Search);
+
+  while (Result > 0) and (Search[Result] <> Find) do
+     Dec(Result);
+end;
+//------------------------------------------------------------------------------
+function RPos(const Find, Search: string): Integer;
+{RPos() returns the index of the first character of the last occurance
+of Find in Search. Returns 0 if Find does not occur in Search.
+Like Pos() but searches in reverse.}
+var
+ Quit    : Boolean;
+ Pos,Len : Integer;
+begin
+  //asm int 3 end; //trap
+   result := 0;
+   Len := Length(Find);
+   if (Len = 0) or (length(Search) = 0)  
+     then exit;
+
+   Quit:= False;
+   
+   Pos := Length(Search)+ 1 - Len;
+   while not Quit do
+     begin
+        if (Search[pos] = Find[1]) and //speed it up
+           (Copy(Search,Pos,Len) = Find)
+           then begin
+              result := Pos;
+              Quit:= True;
+           end;
+
+        if Pos = 1     //not found
+           then Quit:= True;
+
+        Dec(Pos,1);
+   end;
+
+end;
+//------------------------------------------------------------------------------
+function AfterLastToken(const StrInd, Token: string): string;
+//Returns the right part of StrInd that comes after Token
+begin
+  //asm int 3 end; //trap
+  result := copy(StrInd, RPos(Token, StrInd) + 1, length(StrInd));
+end;
+//------------------------------------------------------------------------------
+function KSSameText(S1, S2: string; MaxLen: Cardinal): boolean;
+begin
+  Result := 2 = CompareString(LOCALE_USER_DEFAULT, NORM_IGNORECASE,
+                              PChar(S1), MaxLen, PChar(S2), MaxLen);
+end;
+//------------------------------------------------------------------------------
+function BeforLastToken(const StrIn, Token: string): string;
+//Returns the left part of StrInd that comes before last Token
+//if no token found then StrInd is returned
+var
+  I: Integer;
+begin  
+  //asm int 3 end; //trap
+  i := Rpos(Token, StrIn);//LastDelimiter(Token, StrIn);
+  if I = 0
+     then result := StrIn
+     else result := copy(StrIn, 1, I-1);
+end;
+//------------------------------------------------------------------------------
+type
+  TFindHwndRec = record
+    FoundWnd: HWND;
+    WindowTekst: array[0..50] of Char;
+    LenWindowTekst: Word;
+  end;
+
+  PFindHwndRec = ^TFindHwndRec;
+//------------------------------------------------------------------------------
+function EnumWindowsProc(WndBeingChecked: HWND; rec: PFindHwndRec): Bool; export; stdcall;
+{callback funktionen som window kalder tilbage til efter EnumWindows}
+var
+  p: array[0..100] of Char;
+begin
+  //asm int 3 end; //KS trap
+  Result := True;
+
+  if (GetWindowText(WndBeingChecked, p, 99) >= rec^.LenWindowTekst)
+    and (pos(rec^.WindowTekst, p) > 0)
+    then begin                //(strCompLeft(rec^.WindowTekst, p)
+      rec^.FoundWnd := WndBeingChecked;
+      Result := False;
+    end;                      {afbryd, windows-handle er nu fundet}
+
+end;
+//------------------------------------------------------------------------------
+function GetWindowFromText(const WindowText: string): Hwnd;
+{returnere en handle til vinduet hvis WindowText findes i caption}
+var
+  rec: TFindHwndRec;
+begin
+  //asm int 3 end; //KS trap
+  {gem søgestrengen så callback-funktionen kan læse den}
+  StrPcopy(rec.WindowTekst, WindowText);
+  rec.LenWindowTekst := word(Length(WindowText));
+  if rec.LenWindowTekst > 48
+    then KSMessageE('It is maximum posible to search for 49 characters [function GetWindowFromText])');
+  rec.FoundWnd := 0;          {rturværdi hvis window ikke findes}
+
+  EnumWindows(@EnumWindowsProc, Longint(@rec));
+
+  Result := rec.FoundWnd
+end;
+//------------------------------------------------------------------------------
+function DropLastDir(path: string): string;
+//fjerner sidste directory fra stien i path
+begin
+  //asm int 3 end; //KS trap
+  if path[Length(path)] = '\'
+    then Delete(path, Length(path), 1);
+
+  Result := Copy(path, 1, RPos('\', path));
+end;
+//------------------------------------------------------------------------------
+function CtrlDown: Boolean;
+var
+  State: TKeyboardState;
+begin
+  //asm int 3 end; //KS trap
+  GetKeyboardState(State);
+  Result := ((State[vk_Control] and 128) <> 0);
+end;
+//------------------------------------------------------------------------------
+function FileDifferent(const Sourcefile: string; TargetPath: string): Boolean;
+var
+  TargetFil: string;
+begin
+  //asm int 3 end; //KS trap
+  Result := True;
+
+  if not Fileexists(Sourcefile)
+    then exit;
+
+  TargetPath := strEndSlash(TargetPath);
+  TargetFil := TargetPath + ExtractFileName(Sourcefile);
+
+  if not Fileexists(TargetFil)
+    then exit;
+
+  if ftFileTimesAreEqual <> KSCompareFileTime(TargetFil, Sourcefile, ftLastWriteTime)
+    then exit;
+
+  //hvis de er ens skifter Result til False og funktionen returnere med false
+  Result := fileSizeEx(Sourcefile) <> fileSizeEx(TargetFil);
+end;
+//------------------------------------------------------------------------------
+function GetErrorString(var aFmtStr: String; ErrorCode: Integer): boolean;
+var
+  Buf: array [Byte] of Char;
+begin
+  //asm int 3 end; //KS trap
+  Result := (0 = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, nil, ErrorCode,
+                             LOCALE_USER_DEFAULT, Buf, sizeof(Buf), nil));
+  if result
+     then aFmtStr := 'Call to FormatMessage failed in:'+CrLf+'function GetErrorString'
+     else aFmtStr := Buf;
+
+end;
+//------------------------------------------------------------------------------
+function GetSystemErrorMessage(var aFmtStr: String; ErrorAccept: Integer = ERROR_SUCCESS): boolean;
+//returns true if an error is found
+var
+  ErrorCode: Integer;
+begin
+  //asm int 3 end; //KS trap
+  aFmtStr := '';
+  ErrorCode := GetLastError;
+  result := (ErrorCode <> ERROR_SUCCESS) and (ErrorCode <> ErrorAccept);
+
+  if result
+     then GetErrorString(aFmtStr, ErrorCode);
+end;
+//------------------------------------------------------------------------------
+function GetLastErrorStr: string;
+var
+  S: string;
+begin 
+  //asm int 3 end; //KS trap
+  GetSystemErrorMessage(S);
+  result := S;
+end;
+//------------------------------------------------------------------------------
+function ShowLastErrorIfAny(anError: Integer; Handle: Hwnd = 0): Boolean;
+begin 
+  //asm int 3 end; //KS trap
+  Result := True;
+  if anError > 32
+     then exit
+     else Result := False;
+
+  KSMessageE(GetLastErrorStr);
+end;
+//------------------------------------------------------------------------------
+function KSSetCurrentDir(const Dir: string): Boolean;
+begin
+  //asm int 3 end; //trap
+  result := DirExists(Dir);
+  if result
+     then Result := SetCurrentDirectory(PChar(Dir));
+end;
+//------------------------------------------------------------------------------
+function DelDir(aDir: string): boolean;
+//Remove a directory including all content
+var
+  SHFileOpStruct: TSHFileOpStruct;
+begin
+  fillchar(SHFileOpStruct, sizeof(TSHFileOpStruct), 0);
+  with SHFileOpStruct do
+     begin
+        Wnd := 0; {form1.handle}
+        wFunc := FO_DELETE;
+        pFrom := pchar(NoEndBackSlash(aDir) + #0#0);
+        pTo := nil;
+        fFlags := FOF_NOCONFIRMATION or FOF_SILENT;
+        lpszProgressTitle := nil; {'Deleting '+path;}
+     end;
+
+  result := SHFileOperation(SHFileOpStruct) = 0;
+end;
+//------------------------------------------------------------------------------
+function KSEmptyDir(aDir: string): Boolean;
+//Clears all files and subdirectories from directory
+var
+  SearchRec : TSearchRec;
+begin
+  //asm int 3 end; //trap
+
+  result := (0 = findfirst(aDir + '\*.*', faAnyFile, SearchRec)); {first always '.' }
+
+  While (findnext(SearchRec) = 0) Do
+     if not(SearchRec.Name = '..')                 {skip '..' to}
+        then begin
+           if (SearchRec.Attr and faDirectory) > 0
+              then result := result and DelDir(aDir + '\' + Searchrec.name)
+              else result := result and Deletefile(aDir + '\' + SearchRec.name);
+        end;
+
+  FindClose(SearchRec);
+end;
+//------------------------------------------------------------------------------
+function KSForceDirectories(Dir: string): Boolean;
+begin
+  //asm int 3 end; //trap
+  if Length(Dir) = 0
+     then begin
+        KSMessageE('Cant create directory');
+        Result := False;
+     end
+     else begin
+        Result := True;
+
+        Dir := ExcludeTrailingBackslash(Dir);
+        if (Length(Dir) < 3) or DirExists(Dir) or (ExtractFilePath(Dir) = Dir)
+           then Exit; // avoid 'xyz:\' problem.
+
+        Result := KSForceDirectories(ExtractFilePath(Dir)) and CreateDir(Dir);
+     end;
+end;
+//------------------------------------------------------------------------------
+function GetShareFromURN(const URN: string; var Share: string; aPath: string = ''): boolean;
+begin
+  //asm int 3 end; //KS trap
+    if pos('\\', URN) = 1
+     then begin { \\bupb0f4a\program\.....  }
+        result := true;
+        Share := BeforeTokenNr(URN, '\', 4) + '\'+ aPath;
+     end
+     else result := False;
+end;
+//------------------------------------------------------------------------------
+function GetFileDateAsString(aFile: string): String;
+begin
+  //asm int 3 end; //KS trap
+  result := IntToStr(FileAge(aFile))
+end;
+//------------------------------------------------------------------------------
+function GetUTCFileDateAsString(aFile: string): String;
+begin
+  //asm int 3 end; //KS trap
+  result := IntToStr(UTCFileAge(aFile))
+end;
+//------------------------------------------------------------------------------
+function UTCFileAge(const FileName: string): Integer;
+//get UTC-based file time (no conversion to local time)
+var
+  Handle: THandle;
+  FindData: TWin32FindData;
+  //LocalFileTime: TFileTime;
+  //S, S1: String;
+begin
+    //asm int 3 end; //KS trap
+
+  Handle := FindFirstFile(PChar(FileName), FindData);
+  if Handle <> INVALID_HANDLE_VALUE
+     then begin
+        Windows.FindClose(Handle);
+        if (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = 0
+           then begin
+             (*
+              FileTimeToLocalFileTime(FindData.ftLastWriteTime, LocalFileTime);
+              FileTimeToDosDateTime(LocalFileTime, LongRec(Result).Hi, LongRec(Result).Lo);
+              S := DateTimeToStr(FileDateToDateTime(Result));  //local time
+              //exit;
+
+              FileTimeToDosDateTime(FindData.ftLastWriteTime, LongRec(Result).Hi, LongRec(Result).Lo);
+              S1 := DateTimeToStr(FileDateToDateTime(Result));  //UTC time
+              *)
+              if FileTimeToDosDateTime(FindData.ftLastWriteTime, LongRec(Result).Hi, LongRec(Result).Lo)
+                 then Exit;
+           end;
+     end;
+
+  Result := -1;
+end;
+//------------------------------------------------------------------------------
+function DosLocalTimeToDosUTCTime(aDosFileTime: Integer): Integer;
+var
+  aFileTime: TFileTime;
+  aLocalFileTime: TFileTime;
+begin
+  //asm int 3 end; //KS trap
+
+  //convert to UTC time
+  //S := DateTimeToStr(FileDateToDateTime(aDosFileTime));
+  DosDateTimeToFileTime(LongRec(aDosFileTime).Hi, LongRec(aDosFileTime).Lo, aLocalFileTime);
+  LocalFileTimeToFileTime(aLocalFileTime, aFileTime);
+  FileTimeToDosDateTime(aFileTime, LongRec(result).Hi, LongRec(result).Lo);
+  //S := DateTimeToStr(FileDateToDateTime(result));
+
+  //result is now UTC filetime
+
+end;
+//------------------------------------------------------------------------------
+Function GetShortDateTime(aTime: TDateTime; Seconds: boolean = false): String;
+var
+  OldShortDateFormat: string;
+begin
+  //asm int 3 end; //KS trap
+
+  OldShortDateFormat := ShortDateFormat;
+  ShortDateFormat := 'dd.mm.yy';
+  try
+     result := DateTimeToStr(aTime);
+     if not Seconds
+        then result := BeforLastToken(result, TimeSeparator); //drop seconds
+  finally
+     ShortDateFormat := OldShortDateFormat;
+  end;
+end;
+//------------------------------------------------------------------------------
+Function GetFileDateTime(aFile: string): String;
+//var
+  //OldShortDateFormat: string;
+begin
+  //asm int 3 end; //KS trap
+  if Not FileExists(aFile)
+     then result := 'Error'
+     else result := GetShortDateTime(FileDateToDateTime(FileAge(aFile)));
+end;
+//------------------------------------------------------------------------------
+Function GetModuleName(aFile: string = ''): String;
+var
+  ModuleName: array[0..255] of Char;
+begin
+  //asm int 3 end; //trap
+  if length(aFile) = 0
+     then GetModuleFileName(GetModuleHandle(Nil), ModuleName, SizeOf(ModuleName))
+     else GetModuleFileName(GetModuleHandle(Pchar(aFile)), ModuleName, SizeOf(ModuleName));
+  result := ModuleName;
+end;
+//------------------------------------------------------------------------------
+function GetBoxHead(aBoxHead, aDefault: string): string;
+begin
+  //asm int 3 end; //trap
+  if length(ActualAppName) = 0 //only set default one time
+     then ActualAppName := LowerCase(ExtractFileName(GetModuleName));
+
+  if length(aBoxHead) = 0
+     then result := ActualAppName + ': ' + aDefault
+     else result := ActualAppName + ': ' + aBoxHead;
+end;
+//------------------------------------------------------------------------------
+function KSMessage(aMessage: string; aBoxHead: string; Params: integer): integer;
+begin 
+  //asm int 3 end; //trap
+result := MessageBox(0, Pchar(aMessage), Pchar(aBoxHead), Params or
+                       MB_TASKMODAL or MB_TOPMOST or MB_SETFOREGROUND);
+
+  { posible button flags:
+    MB_ABORTRETRYIGNORE, MB_OK, MB_OKCANCEL, MB_RETRYCANCEL, MB_YESNO, MB_YESNOCANCEL
+    MB_DEFBUTTON2, MB_DEFBUTTON3, MB_DEFBUTTON4 - MB_DEFBUTTON1 is default
+
+    MB_ICONWARNING, MB_ICONINFORMATION, MB_ICONQUESTION, MB_ICONERROR.
+
+    posible resulte:
+    IDABORT, IDCANCEL, IDIGNORE, IDNO, IDOK, IDRETRY, IDYES }
+end;
+
+//------------------------------------------------------------------------------
+function KSQuestion(aMessage: string; aBoxHead: string = ''; Params: integer = MB_ICONQUESTION or MB_YESNO): integer;
+begin 
+  //asm int 3 end; //trap
+  result := KSMessage(aMessage, GetBoxHead(aBoxHead, 'Question'), Params);
+end;
+//------------------------------------------------------------------------------
+Procedure KSMessageI(aMessage: string; aBoxHead: string = '');
+begin
+  KSMessage(aMessage, GetBoxHead(aBoxHead, 'Information'), MB_ICONINFORMATION or MB_OK)
+end;
+//------------------------------------------------------------------------------
+Procedure KSMessageQ(aMessage: string; aBoxHead: string = '');
+begin
+  KSMessage(aMessage, GetBoxHead(aBoxHead, 'Question'), MB_ICONQUESTION or MB_OK);
+end;
+//------------------------------------------------------------------------------
+Procedure KSMessageE(aMessage: string; aBoxHead: string = '');
+begin
+  KSMessage(aMessage, GetBoxHead(aBoxHead, 'Error'), MB_ICONERROR or MB_OK);
+end;
+//------------------------------------------------------------------------------
+Procedure KSMessageW(aMessage: string; aBoxHead: string = '');
+begin
+  KSMessage(aMessage, GetBoxHead(aBoxHead, 'Warning'), MB_ICONWARNING or MB_OK);
+end;
+//------------------------------------------------------------------------------
+Procedure KSMessageT(aMessage: string; aBoxHead: string = '');
+begin
+  KSMessageI(aMessage, aBoxHead);
+end;
+//------------------------------------------------------------------------------
+const
+  NewBlock: string = '-----------------------------------------'+ #13+#10+#13+#10;
+
+//------------------------------------------------------------------------------
+function SaveDeveloperMessagesLog(afile: string): boolean;
+begin
+  //asm int 3 end; //KS trap
+  result := SaveTextAsFile(afile, DeveloperMessagesLog);
+  if result
+     then DeveloperMessagesLog := '';
+end;
+//------------------------------------------------------------------------------
+function CloseDeveloperMessagesLog(afile: string): boolean;
+begin
+  //asm int 3 end; //KS trap
+  if ShowDeveloperMessages
+     then begin
+        DeveloperMessagesLog := DeveloperMessagesLog+ 'Log ended at: '+ DateTimeToStr(now)+ DblCrLf+ NewBlock;
+
+        result := SaveTextAsFile(afile, DeveloperMessagesLog);
+        if result
+           then DeveloperMessagesLog := ''
+           else KsMessageE('"Developer messages log" could not be saved to:'+CrLf+ afile);
+     end
+     else result := false;
+end;
+//------------------------------------------------------------------------------
+procedure DeveloperMessage(aMessage: string);
+
+begin
+  //asm int 3 end; //trap
+  if ShowDeveloperMessages
+     then begin
+        if length(DeveloperMessagesLog) = 0
+           then begin
+              DeveloperMessagesLog := 'Developer messages log for:'+CrLf+
+                                      'Appe name: '+ActualAppName+ CrLf+
+                                      'User: '+ KSGetUserName+CrLf+
+                                      'Log started at: '+ GetShortDateTime(now) + DblCrLf+
+                                      //DateTimeToStr(now)
+                                       NewBlock;
+
+           end;
+
+        DeveloperMessagesLog := DeveloperMessagesLog + aMessage + DblCrLf + NewBlock;
+
+        //by instalation DeveloperMessagesCanceled := True; is set at program start
+        //i.e. in the beginning of KnowHow.dpr
+
+        if DeveloperMessagesCanceled
+           then exit;
+
+        DeveloperMessagesCanceled := (IDCANCEL = KSQuestion('Developer message' + DblCrLf+ aMessage, 'Information',
+                                      MB_ICONINFORMATION or MB_OKCANCEL));
+     end;
+end;
+//------------------------------------------------------------------------------
+procedure OpenDeveloperMessagesLog;
+const
+  Stars: string = '*****************************************'+ #13+#10;
+var
+  tmpFile: String;
+begin
+  //asm int 3 end; //KS trap
+  if ShowDeveloperMessages
+     then begin
+        tmpFile := fileTemp('.txt');
+        DeveloperMessagesLog := DeveloperMessagesLog + 'Log opened at: '+
+                                DateTimeToStr(now)+ DblCrLf+ Stars + Stars+ NewBlock;
+
+        if SaveTextAsFile(tmpFile, DeveloperMessagesLog)
+           then ExecuteDefaultOpen('txt', tmpFile)
+           else KSMessageE('Creation of '+tmpFile+' failed');
+     end
+     else KSMessageI('Developer messages log is not open');
+end;
+//------------------------------------------------------------------------------
+function IsAlNum(C: char): bool;
+begin
+  //asm int 3 end; //trap
+  result := C in ['0'..'9', 'A'..'Z', 'a'..'z', 'À'..'ÿ'];
+end;
+//------------------------------------------------------------------------------
+procedure SearchForFiles(path, mask: AnsiString; var Value: TStringList; Recurse: Boolean = False);
+//path = rootdir
+//fileMask = *.db, *.*, ....osv
+//value = stringlist til at modtage resultate af søgningen
+//Recurse = True -> recursering af foldere under path
+var
+srRes : TSearchRec;
+iFound : Integer;
+begin
+  //asm int 3 end; //KS trap
+if (Recurse) // First, we must search the directories
+	then begin
+  	if path[Length(path)] <> '\' then path := path +'\';
+    	iFound := FindFirst(path + '*.*', faAnyfile, srRes);
+    	while iFound = 0 
+     	do begin
+      		if (srRes.Name <> '.') and (srRes.Name <> '..')
+           	then if srRes.Attr and faDirectory > 0
+              	then SearchForFiles(path + srRes.Name, mask, Value, Recurse);//recurse folder
+      		iFound := FindNext(srRes);
+      	end;
+    FindClose(srRes);
+  end;
+
+// Now, we don't treat the directories anymore
+
+if path[Length(path)] <> '\' then path := path +'\';
+
+iFound := FindFirst(path + mask, faAnyFile-faDirectory {any file but not folders}, srRes);
+while iFound = 0 {0 ~ true}
+	do begin
+  	if (srRes.Name <> '.') and (srRes.Name <> '..') and (srRes.Name <> '')
+     	then Value.Add(path + srRes.Name);
+    	iFound := FindNext(srRes);
+  end;
+
+FindClose(srRes);
+
+end;
+//------------------------------------------------------------------------------
+type
+  TRegProc = function : HResult; stdcall;
+//------------------------------------------------------------------------------
+function RegisterAxLib(FileName: string; Unreg: Boolean = False): boolean;
+var
+  LibHandle: THandle;
+  RegProc: TRegProc;
+  DllProc: String;
+begin
+  //asm int 3 end; //KS trap
+  Result := False;
+
+  LibHandle := LoadLibrary(PChar(FileName));
+  if LibHandle = 0
+     then begin
+        KSMessageE('Failed to load:'+DblCrLf+FileName);
+        exit;
+     end;
+  try
+     if Unreg
+        then DllProc := 'DllUnregisterServer'
+        else DllProc := 'DllRegisterServer';
+
+     @RegProc := GetProcAddress(LibHandle, Pchar(DllProc));
+     if @RegProc = Nil
+        then KSMessageE(DllProc+' procedure not found in:'+DblCrLf+FileName)
+        else if RegProc <> 0    //run register process
+           then KSMessageE('Call to '+DllProc+' failed in:'+DblCrLf+FileName)
+           else Result := True; //success - the dll is Reg- / Unregistered
+  finally
+    FreeLibrary(LibHandle);
+  end;
+end;
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+procedure KSWait(aTime: Cardinal);
+//waits unthil aTime (in miliseconds) is elapsed
+var
+  T: Cardinal;
+begin
+  //asm int 3 end; //trap
+  T := GetTickCount + aTime;
+  while T > GetTickCount do
+     KSProcessMessages;
+end;
+//------------------------------------------------------------------------------
+procedure KSProcessMessages;
+var
+  Msg: TMsg;
+
+  //-----------------------
+  function ProcessMessage(var Msg: TMsg): Boolean;
+  begin
+     Result := False;
+     if PeekMessage(Msg, 0, 0, 0, PM_REMOVE)
+        then begin
+           Result := True;
+           if Msg.Message = WM_QUIT
+              then begin
+                 {Re-post quit message so main message loop will terminate}
+                 PostQuitMessage(Msg.WParam)
+              end
+              else begin
+                 TranslateMessage(Msg);
+                 DispatchMessage(Msg);
+              end;
+        end;
+  end;
+  //-----------------------
+begin
+  //asm int 3 end; //trap
+  while ProcessMessage(Msg) do
+     {loop};
+end;
+//------------------------------------------------------------------------------
+function _GetExeOpen(const Ext: string; var Exefil: string; sielent: boolean = true): Boolean;
+{ find app associated with the extension of filename.
+  Since file must exist we create a dummy file}
+var
+	Dir, Name: string;
+  res: array[1..250] of char;
+  err: integer;
+  F: TFileStream;
+  //dummyFileCreated: boolean;
+  filename: string;
+begin
+  //asm int 3 end; //KS trap
+
+  filename := KSGetTempPath + '~~~~~~~~.'+Ext;
+  F:= TFileStream.create (filename, fmCreate);
+  F.free;
+
+	Dir:= extractFilePath(FileName) + #0;
+  Name:= extractFileName(FileName) +  #0;
+  fillchar(res,SizeOf(res),' ');
+  res[250]:= #0;
+  err:= FindExecutable(@Name[1],@Dir[1],@res);
+  if err >= 32
+     then begin
+        Exefil := strPas(@res);
+        result := true;
+     end
+	   else begin
+        if not Sielent
+           then KSMessageE('No default program for "'+Ext+'"');
+  	   result:= false;
+        Exefil := '';
+     end;
+
+  deletefile(filename);
+end;
+//------------------------------------------------------------------------------
+function GetAbsolutePath(ActualPath: string; var RelativePath: string): boolean;
+var
+  S: string;
+  ActualForSlashes: Boolean;
+  ActualP: String;
+  RelativeP: String;
+  NewPath: String;
+begin 
+  //asm int 3 end; //KS trap
+  result := false;
+
+  if pos('/', ActualPath) > 0
+     then begin
+        ActualForSlashes := true;
+        ActualP := StringReplace(ActualPath, '/', '\',  [rfReplaceAll]);
+                    //ChangeAllToken(ActualPath, '/', '\');
+     end
+     else begin
+        ActualForSlashes := False;
+        ActualP := ActualPath;
+     end;
+
+  ActualP := NoEndBackSlash(ActualP);
+
+  if pos('/', RelativePath) > 0
+     then RelativeP := StringReplace(ActualPath, '/', '\',  [rfReplaceAll])
+     else RelativeP := RelativePath;
+
+  RelativeP := NoEndBackSlash(RelativeP);
+
+  if pos('..\', RelativeP) = 1
+     then begin
+        result := true;
+        S := BeforLastToken(NoEndBackSlash(ActualP), '\');  //go up one level
+        NewPath := after(RelativeP, '\');    //go up one level
+
+        While pos('..\', NewPath) > 0  do
+           begin
+              S := BeforLastToken(S, '\');     //go up one level
+              NewPath := after(NewPath, '\');    //go up one level
+           end;
+
+       NewPath := S +'\'+ NewPath;
+     end
+     else begin
+        if RelativeP[1] = '\'
+           then begin
+              NewPath := ActualP + RelativeP;
+              result := true;
+           end
+           else NewPath := RelativeP;
+     end;
+
+  if result
+     then begin
+        if ActualForSlashes
+           then RelativePath := StringReplace(NewPath, '\', '/',  [rfReplaceAll])
+                                   //ChangeAllToken(NewPath, '\', '/')
+           else RelativePath := NewPath;
+    end;
+end;
+//------------------------------------------------------------------------------
+
+end.
+
+
+
+
+
+
+
+
+
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/KS_procs2.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/KS_procs2.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/KS_procs2.pas	(revision 541)
@@ -0,0 +1,138 @@
+{ ******************************************** }
+{       KS_Procs2 ver 1.0 (Oct. 10, 2003)      }
+{                                              }
+{       For Delphi 4, 5 and 6                  }
+{                                              }
+{       Copyright (C) 1999-2003, Kurt Senfer.  }
+{       All Rights Reserved.                   }
+{                                              }
+{       Support@ks.helpware.net                }
+{                                              }
+{       Documentation and updated versions:    }
+{                                              }
+{       http://KS.helpware.net                 }
+{                                              }
+{ ******************************************** }
+{
+    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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+}
+
+unit KS_Procs2;
+                                                                          
+
+interface
+
+uses
+  Windows;
+
+function KSInputQuery(const ACaption, APrompt: string; aDefault: string; NumChars: Integer = 0): String;
+
+
+
+implementation
+
+uses Forms, stdctrls, graphics, Consts, Controls;
+
+
+
+function KSInputQuery(const ACaption, APrompt: string; aDefault: string; NumChars: Integer = 0): String;
+var
+  Form: TForm;
+  Prompt: TLabel;
+  Edit: TEdit;
+  DialogUnits: TPoint;
+  ButtonTop, ButtonWidth, ButtonHeight: Integer;
+  aWidth: Integer;
+
+  //------------------------------------------------
+  function GetAveCharSize(Canvas: TCanvas): TPoint;
+var
+  I: Integer;
+  Buffer: array[0..51] of Char;
+begin
+  for I := 0 to 25 do Buffer[I] := Chr(I + Ord('A'));
+  for I := 0 to 25 do Buffer[I + 26] := Chr(I + Ord('a'));
+  GetTextExtentPoint(Canvas.Handle, Buffer, 52, TSize(Result));
+  Result.X := Result.X div 52;
+end;
+  //------------------------------------------------
+begin
+  Result := '';
+
+  Form := TForm.Create(Application);
+  try
+     DialogUnits := GetAveCharSize(Form.Canvas);
+
+     if (NumChars < 20) or (NumChars > 80)
+        then aWidth := 180  //default 30 * w
+        else aWidth := NumChars * DialogUnits.X;
+
+     Form.Canvas.Font := Form.Font;
+
+     Form.BorderStyle := bsDialog;
+     Form.Caption := ACaption;
+     Form.ClientWidth := MulDiv(aWidth, DialogUnits.X, 4);
+     Form.ClientHeight := MulDiv(63, DialogUnits.Y, 8);
+     Form.Position := poScreenCenter;
+
+     Prompt := TLabel.Create(Form);
+     Prompt.Parent := Form;
+     Prompt.AutoSize := True;
+     Prompt.Left := MulDiv(8, DialogUnits.X, 4);
+     Prompt.Top := MulDiv(8, DialogUnits.Y, 8);
+     Prompt.Caption := APrompt;
+
+
+     Edit := TEdit.Create(Form);
+     Edit.Parent := Form;
+     Edit.Left := Prompt.Left;
+     Edit.Top := MulDiv(19, DialogUnits.Y, 8);
+     Edit.Width := MulDiv(aWidth - 16{164}, DialogUnits.X, 4);
+     Edit.MaxLength := 255;
+     Edit.Text := aDefault;
+     Edit.SelectAll;
+
+
+     ButtonTop := MulDiv(41, DialogUnits.Y, 8);
+     ButtonWidth := MulDiv(50, DialogUnits.X, 4);
+     ButtonHeight := MulDiv(14, DialogUnits.Y, 8);
+
+     with TButton.Create(Form) do
+        begin
+           Parent := Form;
+           Caption := SMsgDlgOK;
+           ModalResult := mrOk;
+           Default := True;
+           SetBounds(MulDiv(38, DialogUnits.X, 4), ButtonTop, ButtonWidth, ButtonHeight);
+        end;
+
+     with TButton.Create(Form) do
+        begin
+           Parent := Form;
+           Caption := SMsgDlgCancel;
+           ModalResult := mrCancel;
+           Cancel := True;
+           SetBounds(MulDiv(92, DialogUnits.X, 4), ButtonTop, ButtonWidth, ButtonHeight);
+        end;
+
+     if Form.ShowModal = mrOk
+        then result := Edit.Text;
+  finally
+     Form.Free;
+  end;
+end;
+//------------------------------------------------------------------------------
+
+end.
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/UEditHost.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/UEditHost.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/UEditHost.pas	(revision 541)
@@ -0,0 +1,210 @@
+{ ******************************************** }
+{       UEditHost ver 1.0 (Oct. 10, 2003)      }
+{                                              }
+{       For Delphi 4, 5 and 6                  }
+{                                              }
+{       Copyright (C) 1999-2003, Kurt Senfer.  }
+{       All Rights Reserved.                   }
+{                                              }
+{       Support@ks.helpware.net                }
+{                                              }
+{       Documentation and updated versions:    }
+{                                              }
+{       http://KS.helpware.net                 }
+{                                              }
+{ ******************************************** }
+{
+    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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+}
+
+
+unit UEditHost;
+
+//this unit implements a combined IHTMLEditHost & IHTMLEditHost2 interface.
+
+interface
+
+uses
+  windows, Classes, 
+  //kt mshtml_tlb, 
+  MSHTML_EWB,
+  EmbeddedED;
+
+type
+  tagRECT = TRect;  //kt
+  
+  //this is only declared if IE 6 is imported to mshtml_tlb
+  IHTMLEditHost2 = interface(IHTMLEditHost)
+    ['{3050F848-98B5-11CF-BB82-00AA00BDCE0D}']
+    function  PreDrag: HResult; stdcall;
+  end;
+
+  TEditHost = class(TInterfacedObject, IHTMLEditHost, IHTMLEditHost2)
+  private
+    function SnapRect(const pIElement: IHTMLElement; var prcNew: tagRECT; eHandle: _ELEMENT_CORNER): HResult; stdcall;
+    function PreDrag: HResult; stdcall;
+
+  public
+    FSnapEnabled: Boolean;
+    FGridX: Integer;
+    FGridY: Integer;
+    //kt FExtSnapRect: TSnapRect;
+    FOnPreDrag: TNotifyEventEx;
+    constructor Create(Ovner: TEmbeddedED);
+    procedure BeforeDestruction; override;
+    function QueryService(const rsid, iid: TGuid; out Obj): HResult;
+  end;
+
+implementation
+  uses ActiveX, ComObj, IeConst;
+
+const
+  SID_SHTMLEditHost: TGUID = '{3050F6A0-98B5-11CF-BB82-00AA00BDCE0B}';
+
+//------------------------------------------------------------------------------
+function TEditHost.QueryService(const rsid, iid: TGuid; out Obj): HResult;
+const
+  IID_IHTMLEditHost2: TGUID = '{3050F848-98B5-11CF-BB82-00AA00BDCE0D}';
+begin
+  //asm int 3 end; //trap
+  //we only come heir if TEmbeddedED is queryed for SID_SHTMLEDitHost
+
+  //MSHTML asks either for a IHTMLEditHost or a IHTMLEditHost2
+  if IsEqualGUID(iid, IID_IHTMLEditHost2)
+     then IUnknown(obj) := self as IHTMLEditHost2  //new in IE 6
+     else IUnknown(obj) := self as IHTMLEditHost;
+
+  Result := S_OK;
+end;
+//------------------------------------------------------------------------------
+function TEditHost.PreDrag: HResult; stdcall;
+var
+  Cancel: Boolean;
+begin
+  //asm int 3 end; //trap
+
+  result := S_OK;
+
+  if assigned(FOnPreDrag)
+     then begin
+        FOnPreDrag(Self, Cancel);
+        if not Cancel
+           then result := S_FALSE;
+     end;
+end;
+
+//------------------------------------------------------------------------------
+function TEditHost.SnapRect(const pIElement: IHTMLElement; var prcNew: tagRECT; eHandle: _ELEMENT_CORNER): HResult; stdcall;
+
+  //-------------------------------------------------------------
+  function GetNextAviablePoint(aPoint, GridSpacing, Offset: integer): Integer;
+  begin
+     result := ((aPoint + (GridSpacing div 2)) div GridSpacing) * GridSpacing + Offset;
+  end;
+  //-------------------------------------------------------------
+var
+  Width : Integer;
+  Height: Integer;
+  aElement: IHTMLElement2;
+
+  P: tagPOINT;
+  Pr: tagRECT;
+  aDisplays: IDisplayServices;
+  aevent: IHTMLEventObj;
+begin
+  //asm int 3 end; //trap
+
+  { //kt
+  If assigned(FExtSnapRect)
+     then begin
+        FExtSnapRect(Self, pIElement, prcNew, eHandle, Result);
+        exit;
+     end;
+  }
+
+  //dont snap if not enabled or the Control key is down
+  if (not FSnapEnabled) or (GetAsyncKeyState(VK_CONTROL) < 0)
+     then begin
+        result := S_FALSE; //do default handling
+        exit;
+     end;
+
+  result := S_OK;
+
+  case eHandle of
+     ELEMENT_CORNER_NONE:          // Code for moving the element
+        begin
+           Width := prcNew.right - prcNew.left;
+           Height := prcNew.bottom - prcNew.top;
+
+           prcNew.top := GetNextAviablePoint(prcNew.top, FGridY, -2);
+           prcNew.left := GetNextAviablePoint(prcNew.left, FGridX, -2);
+           prcNew.bottom := prcNew.top + Height;
+           prcNew.right := prcNew.left + Width;
+        end;
+
+     ELEMENT_CORNER_TOP:           // Code for resizing the element
+           prcNew.top := GetNextAviablePoint(prcNew.top, FGridY, -2);
+
+     ELEMENT_CORNER_LEFT:          // Code for resizing the element
+           prcNew.left := GetNextAviablePoint(prcNew.left, FGridX, -2);
+
+     ELEMENT_CORNER_BOTTOM:        // Code for resizing the element
+           prcNew.bottom := GetNextAviablePoint(prcNew.bottom, FGridY, 1);
+
+     ELEMENT_CORNER_RIGHT:         // Code for resizing the element
+           prcNew.right := GetNextAviablePoint(prcNew.right, FGridX, 1);
+
+     ELEMENT_CORNER_TOPLEFT:       // Code for resizing the element
+        begin
+           prcNew.top := GetNextAviablePoint(prcNew.top, FGridY, -2);
+           prcNew.left := GetNextAviablePoint(prcNew.left, FGridX, -2);
+        end;
+
+     ELEMENT_CORNER_TOPRIGHT:      // Code for resizing the element
+        begin
+           prcNew.top := GetNextAviablePoint(prcNew.top, FGridY, -2);
+           prcNew.right := GetNextAviablePoint(prcNew.right, FGridX, 1);
+        end;
+
+     ELEMENT_CORNER_BOTTOMLEFT:    // Code for resizing the element
+        begin
+           prcNew.left := GetNextAviablePoint(prcNew.left, FGridX, -2);
+           prcNew.bottom := GetNextAviablePoint(prcNew.bottom, FGridY, 1);
+        end;
+
+     ELEMENT_CORNER_BOTTOMRIGHT:   // Code for resizing the element
+        begin
+           prcNew.bottom := GetNextAviablePoint(prcNew.bottom, FGridY, 1);
+           prcNew.right := GetNextAviablePoint(prcNew.right, FGridX, 1);
+        end;
+   end;
+end;
+
+
+//------------------------------------------------------------------------------
+constructor TEditHost.Create(Ovner: TEmbeddedED);
+begin
+  Inherited Create;
+  _AddRef;  //dont die automatically
+end;
+//------------------------------------------------------------------------------
+procedure TEditHost.BeforeDestruction;
+begin
+  FRefCount := 0;
+end;
+//------------------------------------------------------------------------------
+end.
+ 
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/UEditHost.~pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/UEditHost.~pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/UEditHost.~pas	(revision 541)
@@ -0,0 +1,202 @@
+{ ******************************************** }
+{       UEditHost ver 1.0 (Oct. 10, 2003)      }
+{                                              }
+{       For Delphi 4, 5 and 6                  }
+{                                              }
+{       Copyright (C) 1999-2003, Kurt Senfer.  }
+{       All Rights Reserved.                   }
+{                                              }
+{       Support@ks.helpware.net                }
+{                                              }
+{       Documentation and updated versions:    }
+{                                              }
+{       http://KS.helpware.net                 }
+{                                              }
+{ ******************************************** }
+{
+    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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+}
+
+
+unit UEditHost;
+
+//this unit implements a combined IHTMLEditHost & IHTMLEditHost2 interface.
+
+interface
+
+uses
+  windows, Classes, mshtml_tlb, EmbeddedED;
+
+type
+
+  //this is only declared if IE 6 is imported to mshtml_tlb
+  IHTMLEditHost2 = interface(IHTMLEditHost)
+    ['{3050F848-98B5-11CF-BB82-00AA00BDCE0D}']
+    function  PreDrag: HResult; stdcall;
+  end;
+
+  TEditHost = class(TInterfacedObject, IHTMLEditHost, IHTMLEditHost2)
+  private
+    function SnapRect(const pIElement: IHTMLElement; var prcNew: tagRECT; eHandle: _ELEMENT_CORNER): HResult; stdcall;
+    function PreDrag: HResult; stdcall;
+
+  public
+    FSnapEnabled: Boolean;
+    FGridX: Integer;
+    FGridY: Integer;
+    FExtSnapRect: TSnapRect;
+    FOnPreDrag: TNotifyEventEx;
+    constructor Create(Ovner: TEmbeddedED);
+    procedure BeforeDestruction; override;
+    function QueryService(const rsid, iid: TGuid; out Obj): HResult;
+  end;
+
+implementation
+  uses ActiveX, ComObj, IeConst;
+
+const
+  SID_SHTMLEditHost: TGUID = '{3050F6A0-98B5-11CF-BB82-00AA00BDCE0B}';
+
+//------------------------------------------------------------------------------
+function TEditHost.QueryService(const rsid, iid: TGuid; out Obj): HResult;
+const
+  IID_IHTMLEditHost2: TGUID = '{3050F848-98B5-11CF-BB82-00AA00BDCE0D}';
+begin
+  //asm int 3 end; //trap
+  //we only come heir if TEmbeddedED is queryed for SID_SHTMLEDitHost
+
+  //MSHTML asks either for a IHTMLEditHost or a IHTMLEditHost2
+  if IsEqualGUID(iid, IID_IHTMLEditHost2)
+     then IUnknown(obj) := self as IHTMLEditHost2  //new in IE 6
+     else IUnknown(obj) := self as IHTMLEditHost;
+
+  Result := S_OK;
+end;
+//------------------------------------------------------------------------------
+function TEditHost.PreDrag: HResult; stdcall;
+var
+  Cancel: Boolean;
+begin
+  //asm int 3 end; //trap
+
+  result := S_OK;
+
+  if assigned(FOnPreDrag)
+     then begin
+        FOnPreDrag(Self, Cancel);
+        if not Cancel
+           then result := S_FALSE;
+     end;
+end;
+//------------------------------------------------------------------------------
+function TEditHost.SnapRect(const pIElement: IHTMLElement; var prcNew: tagRECT; eHandle: _ELEMENT_CORNER): HResult; stdcall;
+
+  //-------------------------------------------------------------
+  function GetNextAviablePoint(aPoint, GridSpacing, Offset: integer): Integer;
+  begin
+     result := ((aPoint + (GridSpacing div 2)) div GridSpacing) * GridSpacing + Offset;
+  end;
+  //-------------------------------------------------------------
+var
+  Width : Integer;
+  Height: Integer;
+  aElement: IHTMLElement2;
+
+  P: tagPOINT;
+  Pr: tagRECT;
+  aDisplays: IDisplayServices;
+  aevent: IHTMLEventObj;
+begin
+  //asm int 3 end; //trap
+
+  If assigned(FExtSnapRect)
+     then begin
+        FExtSnapRect(Self, pIElement, prcNew, eHandle, Result);
+        exit;
+     end;
+
+
+  //dont snap if not enabled or the Control key is down
+  if (not FSnapEnabled) or (GetAsyncKeyState(VK_CONTROL) < 0)
+     then begin
+        result := S_FALSE; //do default handling
+        exit;
+     end;
+
+  result := S_OK;
+
+  case eHandle of
+     ELEMENT_CORNER_NONE:          // Code for moving the element
+        begin
+           Width := prcNew.right - prcNew.left;
+           Height := prcNew.bottom - prcNew.top;
+
+           prcNew.top := GetNextAviablePoint(prcNew.top, FGridY, -2);
+           prcNew.left := GetNextAviablePoint(prcNew.left, FGridX, -2);
+           prcNew.bottom := prcNew.top + Height;
+           prcNew.right := prcNew.left + Width;
+        end;
+
+     ELEMENT_CORNER_TOP:           // Code for resizing the element
+           prcNew.top := GetNextAviablePoint(prcNew.top, FGridY, -2);
+
+     ELEMENT_CORNER_LEFT:          // Code for resizing the element
+           prcNew.left := GetNextAviablePoint(prcNew.left, FGridX, -2);
+
+     ELEMENT_CORNER_BOTTOM:        // Code for resizing the element
+           prcNew.bottom := GetNextAviablePoint(prcNew.bottom, FGridY, 1);
+
+     ELEMENT_CORNER_RIGHT:         // Code for resizing the element
+           prcNew.right := GetNextAviablePoint(prcNew.right, FGridX, 1);
+
+     ELEMENT_CORNER_TOPLEFT:       // Code for resizing the element
+        begin
+           prcNew.top := GetNextAviablePoint(prcNew.top, FGridY, -2);
+           prcNew.left := GetNextAviablePoint(prcNew.left, FGridX, -2);
+        end;
+
+     ELEMENT_CORNER_TOPRIGHT:      // Code for resizing the element
+        begin
+           prcNew.top := GetNextAviablePoint(prcNew.top, FGridY, -2);
+           prcNew.right := GetNextAviablePoint(prcNew.right, FGridX, 1);
+        end;
+
+     ELEMENT_CORNER_BOTTOMLEFT:    // Code for resizing the element
+        begin
+           prcNew.left := GetNextAviablePoint(prcNew.left, FGridX, -2);
+           prcNew.bottom := GetNextAviablePoint(prcNew.bottom, FGridY, 1);
+        end;
+
+     ELEMENT_CORNER_BOTTOMRIGHT:   // Code for resizing the element
+        begin
+           prcNew.bottom := GetNextAviablePoint(prcNew.bottom, FGridY, 1);
+           prcNew.right := GetNextAviablePoint(prcNew.right, FGridX, 1);
+        end;
+   end;
+end;
+//------------------------------------------------------------------------------
+constructor TEditHost.Create(Ovner: TEmbeddedED);
+begin
+  Inherited Create;
+  _AddRef;  //dont die automatically
+end;
+//------------------------------------------------------------------------------
+procedure TEditHost.BeforeDestruction;
+begin
+  FRefCount := 0;
+end;
+//------------------------------------------------------------------------------
+end.
+ 
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/read me.txt
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/read me.txt	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/read me.txt	(revision 541)
@@ -0,0 +1,63 @@
+Open source project MSHTML Editor OSPv3r00 16-01-2004
+
+  This editor is build from a DHTML edit OSP from 16-05-1999 found at:
+  delphi-dhtmledit@yahoogroups.com
+  http://groups.yahoo.com/group/delphi-dhtmledit/files/DHTMLEdit/DHTML.zip
+  (look in the file section)
+
+
+
+How to install the editorcomponent (EmbeddedED) into Delphi:
+  - Just install EmbeddedED.pas into a package of your own choice.
+
+
+About the demo:
+
+
+  This update editor is created by Kurt Senfer
+  "Copyright (C) 2002-2004  Kurt Senfer <Support@ks.helpware.net>"
+
+
+  I have often, in various mails on the delphi-dhtmledit list, pointed out that
+  The DHTMLEdit component is just a wrapper around the MSHTML engine - the
+  Wrapper contains coding that enables additional features like:
+     Table operations (insert row, insert column, merge cells, and so on).
+     Absolute drop mode.
+     Source code white space and formatting preservation.
+     Custom Editing Glyphs.
+     ........
+
+
+  Replacing DHTMLEdit with the MSHTML engine (or as in this case with the
+  EmbeddedED component) means that you need to code a lot of features, like
+  tablehandling and so on, witch is build in fearture in DHTMLEdit, yourself.
+
+  I chosed to create a VCL wrapper around MSHTML and named it:
+  TEmbeddedED~ Embedded EDitor
+  TEmbeddedED implements most of the code you need to replace the DHTML Component
+  (if you only need a basic editor) and it offers a lot of features never
+  found in DHTML Edit. The main reason for encapsulating all that code in a
+  component is that its easy to update existing editor projects with
+  new features (in new versions of TEmbeddedED).
+
+
+  This is a short listing of the main things you have to do in order to skip
+  DHTMLEdit in favour of the HMHTML engine in your own DHTMLEdit project.
+
+  - Replace TDHTMLEdit with MSHTML
+  - Call the existing DHTMLEditDisplayChanged from a new "OnUpdateUI function"
+  - Implement Custom Editing Glyphs
+  - Implement IHTMLEditDesigner
+  - Implement IHTMLEditHost
+  - Implemet code to handle the table stuff
+  - Implemet code to handle the position stuff
+
+
+I've build the demo with D5 and D6 and belive it should also compile on D7.
+ 
+
+Kurt Senfer
+
+
+
+
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/regfuncs.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/regfuncs.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EmbeddedED/regfuncs.pas	(revision 541)
@@ -0,0 +1,255 @@
+{ ******************************************** }
+{       RegFuncs ver 1.1 (Jan. 16, 2004)         }
+{                                              }
+{       For Delphi 4, 5 and 6                  }
+{                                              }
+{       Copyright (C) 1999-2003, Kurt Senfer.  }
+{       All Rights Reserved.                   }
+{                                              }
+{       Support@ks.helpware.net                }
+{                                              }
+{       Documentation and updated versions:    }
+{                                              }
+{       http://KS.helpware.net                 }
+{                                              }
+{ ******************************************** }
+{
+    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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+}
+
+Unit RegFuncs;
+
+
+
+Interface
+
+Uses Windows;
+
+Function ReadRegString(MainKey: HKey; SubKey, ValName: String): String;
+Procedure WriteRegString(MainKey: HKey; SubKey, ValName: String; const Data: String);
+function GetExeOpen(Ext: string; var Exefil, Params: string; sielent: boolean = true): Boolean;
+procedure ExecuteDefaultOpen(ext, aFile: String);
+
+Implementation
+
+uses
+  Sysutils, KS_procs, ShellAPI;
+
+
+//------------------------------------------------------------------------------
+function GetMainKeyAsString(Key: HKey):string;
+begin 
+  //asm int 3 end; //trap
+  case Key of
+     $80000000 : result := 'HKEY_CLASSES_ROOT';
+     $80000001 : result := 'HKEY_CURRENT_USER';
+     $80000002 : result := 'HKEY_LOCAL_MACHINE';
+     $80000003 : result := 'HKEY_USERS';
+     $80000004 : result := 'HKEY_PERFORMANCE_DATA';
+     $80000005 : result := 'HKEY_CURRENT_CONFIG';
+     $80000006 : result := 'HKEY_DYN_DATA';
+  else result := 'Unknown key';
+  end;
+end;
+
+//------------------------------------------------------------------------------
+Function ReadRegString(MainKey: HKey; SubKey, ValName: String): String;
+  // NB default value is read if subkey isent ended with a backslash
+Var
+  Key: HKey;
+  C: Array[0..1023] of Char;
+  D: Cardinal;  //value type
+  D2: Cardinal; //buffer size
+Begin 
+  //asm int 3 end; //trap
+  result := '';
+
+  if RegOpenKeyEx(MainKey, Pchar(NoEndBackSlash(SubKey)), 0, KEY_READ, Key) = ERROR_SUCCESS
+     then begin
+        try
+           C := '';
+           D2 := SizeOf(C);
+           if (RegQueryValueEx(Key, Pchar(ValName), Nil, @D, @C, @D2) = ERROR_SUCCESS) and
+              ((D = REG_EXPAND_SZ) or (D = REG_SZ))
+              then result := C
+              else result := '';
+        finally
+           RegCloseKey(Key);
+        end;
+     end
+     else DeveloperMessage('Failed to open registry key for reading string'+CrLf+ GetMainKeyAsString(MainKey) + ', '+ SubKey);
+End;
+//------------------------------------------------------------------------------
+const
+  KeyVal: Integer = KEY_WRITE  or  KEY_EXECUTE or KEY_QUERY_VALUE;
+//------------------------------------------------------------------------------
+Procedure WriteRegString(MainKey: HKey; SubKey, ValName: String; const Data: String);
+Var
+  Key: HKey;
+  D: Cardinal;
+Begin
+  //asm int 3 end; //trap
+  if RegCreateKeyEx(MainKey, Pchar(NoEndBackSlash(SubKey)), 0, Nil, REG_OPTION_NON_VOLATILE, KeyVal, Nil, Key, @D) = ERROR_SUCCESS
+     then begin
+        try
+           RegSetValueEx(Key, Pchar(ValName), 0, REG_SZ, PChar(Data), Length(Data));
+        finally
+           RegCloseKey(Key);
+        end;
+     end
+     else KSMessageW('Failed to open registry key for writing string'+CrLf+ GetMainKeyAsString(MainKey) + ', '+ SubKey);
+End;
+//------------------------------------------------------------------------------
+function GetExe_(Ext, Actiontype: string; var Exefil, Params: string; sielent: boolean = true): Boolean;
+{ the best way to find an exe is trugh the registry entries - ther we get any
+  command line param that might be neded, but if it fails we can try FindExecutable
+  (witch is in the center og the _GetExeOpen function), but it only returns the
+  exe file }
+var
+  S: string;
+  I: integer;
+
+  //------------------------------------------
+  procedure LastTry;
+  begin
+     Params :='';
+     Result :=_GetExeOpen(ext, ExeFil, sielent);
+     if not result
+        then DeveloperMessage('_GetExeOpen failed');
+  end;
+  //------------------------------------------
+  procedure HandleRegInfo(RegData: String);
+  begin
+     if length(RegData) = 0
+        then begin
+           //somthings missing in the registry
+           DeveloperMessage('GetExeOpen: read exe from registry failed');
+           LastTry;
+           exit;
+        end;
+
+     { there might be several traling "%x" params - we remove them all
+       our caling procedure expect that the string we return can be used
+       to start a program and open a file just by using the file as a
+       trailing param }
+
+     I := pos('"%', RegData);
+     while I > 0 do
+        begin
+           delete(RegData, I, length('"%1"')); //we expect max 9 params
+           I := pos('"%', RegData);
+        end;
+
+     Exefil := Trim(RegData);
+
+     { now we have an exefile and it can have some params starting with
+       " /" or " -" }
+     I := Pos(' /', Exefil);
+     if I > 0
+        then begin
+           //we have params
+           Params := Exefil;
+           Exefil := Copy(Exefil, 1, I - 1);
+           Delete(Params, 1, I);
+        end
+        else begin
+           I := Pos(' -', Exefil);
+           if I > 0
+              then begin
+                 //we have params
+                 Params := Exefil;
+                 Exefil := Copy(Exefil, 1, I - 1);
+                 Delete(Params, 1, I);
+              end
+              else Params := '';
+        end;
+
+     //params is now in Params - if any
+
+     // Remove sourounding " from the file path
+     if (Copy(Exefil, 1, 1) = #34) and //leading "
+        (Exefil[Length(Exefil)] = #34)  //trailing "
+        then Exefil := Copy(Exefil, 2 , length(Exefil) -2);
+
+     //we migt have an exe without a path - try the windows folder
+     if pos('\', ExeFil) = 0
+        then ExeFil := GetWinDir+ExeFil;
+
+     result := FileExists(Exefil);
+
+     if not result
+        then LastTry;
+  end;
+  //------------------------------------------
+begin
+  //asm int 3 end; //trap
+  Result := false;
+
+  if length(ext) = 0
+     then begin
+        S := 'Call to GetExeOpen with an empty extension param';
+        if not Sielent
+           then KSMessageE(S)
+           else DeveloperMessage(S);
+
+        exit;
+     end;
+
+  if ext[1] = '.'
+     then delete(ext, 1, 1);
+
+  S := ReadRegString(HKEY_CLASSES_ROOT, '.' + ext, '');
+  if length(s) > 0
+     then HandleRegInfo(ReadRegString(HKEY_CLASSES_ROOT, s + '\shell\'+Actiontype+'\command', ''))
+
+          //try The open command - a wery exotic way, maybe an oldish way ?
+     else HandleRegInfo(ReadRegString(HKEY_CLASSES_ROOT, '.' + ext + '\shell\'+Actiontype+'\command', ''));
+
+  if (not result) and (not Sielent)
+     then KSMessageE('No default '+Actiontype+' program for "'+Ext+'"');
+end;
+
+//------------------------------------------------------------------------------
+function GetExeOpen(Ext: string; var Exefil, Params: string; sielent: boolean = true): Boolean;
+begin
+  //asm int 3 end; //trap
+  result := GetExe_(Ext, 'Open', Exefil, Params, sielent);
+end;
+//------------------------------------------------------------------------------
+procedure ExecuteDefaultOpen(ext, aFile: String);
+var
+  ExeFil: string;
+  Params: string;
+begin
+  //asm int 3 end; //trap
+  DeveloperMessage('Findeing default EXE for: '+ext);
+
+  if GetExeOpen(ext, ExeFil, Params, cNotSilent)
+     then DeveloperMessage('Default EXE for: '+ext+CrLf+ExeFil)
+     else exit;
+
+  DeveloperMessage('Starting: '+ExeFil);
+
+  if length(Params) > 0
+     then Params := ' ' + Params + ' "'+ aFile + '"'
+     else Params := ' "' + aFile + '"';
+
+  if not fileExec('"' + ExeFil + '"' + Params, '', false)
+     then begin
+        KSMessageE('Could not run "'+ExtractFileName(ExeFil)+'"');
+     end;
+end;
+//------------------------------------------------------------------------------
+end.
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbAcc.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbAcc.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbAcc.pas	(revision 541)
@@ -0,0 +1,824 @@
+//**************************************************************
+//                                                             *
+//                             EwbAcc                          *                                                      *
+//                           For Delphi                        *
+//                            by bsalsa                        *
+//                        bsalsa@gmail.com                     *
+//  Updated versions:                                          *
+//               http://www.bsalsa.com                         *
+//**************************************************************
+
+{*******************************************************************************}
+{LICENSE:
+THIS SOFTWARE IS PROVIDED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND,
+EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE APPLIED
+WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
+YOU ASSUME THE ENTIRE RISK AS TO THE ACCURACY AND THE USE OF THE SOFTWARE
+AND ALL OTHER RISK ARISING OUT OF THE USE OR PERFORMANCE OF THIS SOFTWARE
+AND DOCUMENTATION. BSALSA PRODUCTIONS DOES NOT WARRANT THAT THE SOFTWARE IS ERROR-FREE
+OR WILL OPERATE WITHOUT INTERRUPTION. THE SOFTWARE IS NOT DESIGNED, INTENDED
+OR LICENSED FOR USE IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE CONTROLS,
+INCLUDING WITHOUT LIMITATION, THE DESIGN, CONSTRUCTION, MAINTENANCE OR
+OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS,
+AIR TRAFFIC CONTROL, AND LIFE SUPPORT OR WEAPONS SYSTEMS. BSALSA PRODUCTIONS SPECIFICALLY
+DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR SUCH PURPOSE.
+
+You may use, change or modify the component under 4 conditions:
+1. In your website, add a link to "http://www.bsalsa.com"
+2. In your application, add credits to "Embedded Web Browser"
+3. Mail me  (bsalsa@gmail.com) any code change in the unit
+   for the benefit of the other users.
+4. Please,  consider donation in our web site!
+{*******************************************************************************}
+
+
+unit EwbAcc;
+
+interface
+
+{$I EWB.inc}
+
+uses
+  ActiveX, SysUtils, ShlObj, Windows, UrlMon, IEConst;
+
+type
+  IObjectIdentity = interface
+    ['{CA04B7E6-0D21-11d1-8CC5-00C04FC2B085}']
+    function IsEqualObject(unk: IUnknown): HRESULT; stdcall;
+  end;
+
+  INTERNET_PER_CONN_OPTION = record
+    dwOption: DWORD;
+    Value: record
+      case Integer of
+        1: (dwValue: DWORD);
+        2: (pszValue: PAnsiChar);
+        3: (ftValue: TFileTime);
+    end;
+  end;
+  LPINTERNET_PER_CONN_OPTION = ^INTERNET_PER_CONN_OPTION;
+  INTERNET_PER_CONN_OPTION_LIST = record
+    dwSize: DWORD;
+    pszConnection: LPTSTR;
+    dwOptionCount: DWORD;
+    dwOptionError: DWORD;
+    pOptions: LPINTERNET_PER_CONN_OPTION;
+  end;
+  LPINTERNET_PER_CONN_OPTION_LIST = ^INTERNET_PER_CONN_OPTION_LIST;
+
+type
+  BrowserNavConstants = TOleEnum;
+  STATURL = record
+    cbSize: DWORD;
+    pwcsUrl: DWORD;
+    pwcsTitle: DWORD;
+    ftLastVisited: FILETIME;
+    ftLastUpdated: FILETIME;
+    ftExpires: FILETIME;
+    dwFlags: DWORD;
+  end;
+
+  OSVERSIONINFOEX = packed record
+    dwOSVersionInfoSize: DWORD;
+    dwMajorVersion: DWORD;
+    dwMinorVersion: DWORD;
+    dwBuildNumber: DWORD;
+    dwPlatformId: DWORD;
+    szCSDVersion: array[0..127] of Char;
+    wServicePackMajor: WORD;
+    wServicePackMinor: WORD;
+    wSuiteMask: WORD;
+    wProductType: Byte;
+    wReserved: Byte;
+  end;
+  TOSVersionInfoEx = OSVERSIONINFOEX;
+  POSVersionInfoEx = ^TOSVersionInfoEx;
+
+  IZoomEvents = interface(IUnknown)
+    ['{41B68150-904C-4E17-A0BA-A438182E359D}']
+    function OnZoomPercentChanged(const ulZoomPercent: ulong): HRESULT; stdcall;
+  end;
+
+  IHLinkFrame = interface(IUnknown)
+    ['{79EAC9C5-BAF9-11CE-8C82-00AA004BA90B}']
+    {Some functions are not supported any more?}
+    //function SetBrowseContext(ppihlbc: IHlinkBrowseContext): HRESULT; stdcall;
+    //function GetBrowseContext(out ppihlbc: IHlinkBrowseContext): HRESULT; stdcall;
+    //function Navigate(grfHLNF: DWORD; pbc: IBindCtx; pibsc: IBindStatusCallback; pihlNavigate: IHLink): HRESULT; stdcall;
+    function OnNavigate(grfHLNF: DWORD; pimkTarget: IMoniker; pwzLocation,
+      pwzFriendlyName: PWideChar; dwreserved: DWORD): HRESULT; stdcall;
+    function UpdateHlink(uHLID: ULONG; pimkTarget: IMoniker; pwzLocation,
+      pwzFriendlyName: PWideChar): HRESULT; stdcall;
+  end;
+
+  IDownloadManager = interface(IUnknown)
+    ['{988934A4-064B-11D3-BB80-00104B35E7F9}']
+    function Download(
+      pmk: IMoniker; // Identifies the object to be downloaded
+      pbc: IBindCtx; // Stores information used by the moniker to bind
+      dwBindVerb: DWORD; // The action to be performed during the bind
+      grfBINDF: DWORD; // Determines the use of URL encoding during the bind
+      pBindInfo: PBindInfo; // Used to implement IBindStatusCallback::GetBindInfo
+      pszHeaders: PWideChar; // Additional headers to use with IHttpNegotiate
+      pszRedir: PWideChar; // The URL that the moniker is redirected to
+      uiCP: UINT // The code page of the object's display name
+      ): HRESULT; stdcall;
+  end;
+
+  IEnumSTATURL = interface(IUnknown)
+    ['{3C374A42-BAE4-11CF-BF7D-00AA006946EE}']
+    function Next(celt: Integer; out elt; pceltFetched: PLongint): HRESULT;
+      stdcall;
+    function Skip(celt: Longint): HRESULT; stdcall;
+    function Reset: HRESULT; stdcall;
+    function Clone(out ppenum: IEnumSTATURL): HRESULT; stdcall;
+    function SetFilter(poszFilter: PWideChar; dwFlags: DWORD): HRESULT; stdcall;
+  end;
+
+type
+  TSTATURL = record
+    cbSize: DWORD;
+    pwcsUrl: DWORD;
+    pwcsTitle: DWORD;
+    ftLastVisited: FILETIME;
+    ftLastUpdated: FILETIME;
+    ftExpires: FILETIME;
+    dwFlags: DWORD;
+  end;
+
+  PEntry = ^TEntry;
+  TEntry = record
+    Url: string;
+    Title: string;
+    LastVisited,
+    LastUpdated,
+    Expires: TDateTime;
+  end;
+
+  IUrlHistoryStg = interface(IUnknown)
+    ['{3C374A41-BAE4-11CF-BF7D-00AA006946EE}']
+    function AddUrl(pocsUrl: PWideChar; pocsTitle: PWideChar; dwFlags: Integer): HRESULT; stdcall;
+    function DeleteUrl(pocsUrl: PWideChar; dwFlags: Integer): HRESULT; stdcall;
+    function QueryUrl(pocsUrl: PWideChar; dwFlags: Integer; var lpSTATURL: TSTATURL): HRESULT; stdcall;
+    function BindToObject(pocsUrl: PWideChar; var riid: TIID; out ppvOut: Pointer): HRESULT; stdcall;
+    function EnumUrls(out ppenum: IEnumSTATURL): HRESULT; stdcall;
+  end;
+
+
+  IUrlHistoryStg2 = interface(IUrlHistoryStg)
+    ['{AFA0DC11-C313-11D0-831A-00C04FD5AE38}']
+    function AddUrlAndNotify(pocsUrl: PWideChar; pocsTitle: PWideChar; dwFlags: Integer;
+      FWriteHistory: Integer; var poctNotify: Pointer;
+      const punkISFolder: IUnknown): HRESULT; stdcall;
+    function ClearHistory: HRESULT; stdcall;
+  end;
+
+  IUrlHistoryNotify = interface(IOleCommandTarget)
+    ['{BC40BEC1-C493-11d0-831B-00C04FD5AE38}']
+  end;
+
+  PDOCHOSTUIINFO = ^TDOCHOSTUIINFO;
+  TDOCHOSTUIINFO = record
+    cbSize: ULONG;
+    dwFlags: DWORD;
+    dwDoubleClick: DWORD;
+    chHostCss: POleStr;
+    chHostNS: POleStr;
+  end;
+
+type
+  INewWindowManager = interface(IUnknown)
+    ['{D2BC4C84-3F72-4a52-A604-7BCBF3982CBB}']
+    function EvaluateNewWindow(pszUrl, pszName, pszUrlContext, pszFeatures:
+      LPCWSTR;
+      fReplace: BOOL; dwFlags, dwUserActionTime: DWORD): HRESULT; stdcall;
+  end;
+
+  IDocHostShowUI = interface(IUnknown)
+    ['{c4d244b0-d43e-11cf-893b-00aa00bdce1a}']
+    function ShowMessage(hwnd: THandle; lpstrText: POleStr; lpstrCaption: POleStr;
+      dwType: longint; lpstrHelpFile: POleStr; dwHelpContext: longint;
+      var plResult: LRESULT): HRESULT; stdcall;
+    function ShowHelp(hwnd: THandle; pszHelpFile: POleStr; uCommand: integer;
+      dwData: longint; ptMouse: TPoint;
+      var pDispatchObjectHit: IDispatch): HRESULT; stdcall;
+  end;
+
+  IDocHostUIHandler = interface(IUnknown)
+    ['{bd3f23c0-d43e-11cf-893b-00aa00bdce1a}']
+    function ShowContextMenu(const dwID: DWORD; const ppt: PPOINT;
+      const CommandTarget: IUnknown; const Context: IDispatch): HRESULT;
+      stdcall;
+    function GetHostInfo(var pInfo: TDOCHOSTUIINFO): HRESULT; stdcall;
+    function ShowUI(const dwID: DWORD; const pActiveObject:
+      IOleInPlaceActiveObject;
+      const pCommandTarget: IOleCommandTarget; const pFrame: IOleInPlaceFrame;
+      const pDoc: IOleInPlaceUIWindow): HRESULT; stdcall;
+    function HideUI: HRESULT; stdcall;
+    function UpdateUI: HRESULT; stdcall;
+    function EnableModeless(const fEnable: BOOL): HRESULT; stdcall;
+    function OnDocWindowActivate(const fActivate: BOOL): HRESULT; stdcall;
+    function OnFrameWindowActivate(const fActivate: BOOL): HRESULT; stdcall;
+    function ResizeBorder(const prcBorder: PRECT;
+      const pUIWindow: IOleInPlaceUIWindow;
+      const fRameWindow: BOOL): HRESULT; stdcall;
+    function TranslateAccelerator(const lpMsg: PMSG; const pguidCmdGroup: PGUID;
+      const nCmdID: DWORD): HRESULT; stdcall;
+    function GetOptionKeyPath(out pchKey: POleStr; const dw: DWORD): HRESULT;
+      stdcall;
+    function GetDropTarget(const pDropTarget: IDropTarget;
+      out ppDropTarget: IDropTarget): HRESULT; stdcall;
+    function GetExternal(out ppDispatch: IDispatch): HRESULT; stdcall;
+    function TranslateUrl(const dwTranslate: DWORD; const pchURLIn: POleStr;
+      out ppchURLOut: POleStr): HRESULT; stdcall;
+    function FilterDataObject(const pDO: IDataObject;
+      out ppDORet: IDataObject): HRESULT; stdcall;
+  end;
+
+  IDocHostUIHandler2 = interface(IDocHostUIHandler)
+    ['{3050f6d0-98b5-11cf-bb82-00aa00bdce0b}']
+    function GetOverrideKeyPath(out pchKey: POleStr; dw: DWORD): HRESULT;
+      stdcall;
+  end;
+
+  IProtectFocus = interface
+    ['{D81F90A3-8156-44F7-AD28-5ABB87003274}']
+    function AllowFocusChange(out pfAllow: BOOL): HRESULT; stdcall;
+  end;
+
+  ICustomDoc = interface(IUnknown)
+    ['{3050f3f0-98b5-11cf-bb82-00aa00bdce0b}']
+    function SetUIHandler(const pUIHandler: IDocHostUIHandler): HRESULT;
+      stdcall;
+  end;
+
+  IHTMLOMWindowServices = interface(IUnknown)
+    ['{3050f5fc-98b5-11cf-bb82-00aa00bdce0b}']
+    function moveTo(const x, y: Integer): HRESULT; stdcall;
+    function moveBy(const x, y: Integer): HRESULT; stdcall;
+    function resizeTo(const x, y: Integer): HRESULT; stdcall;
+    function resizeBy(const x, y: Integer): HRESULT; stdcall;
+  end;
+
+type
+  ITravelLogEntry = interface(IUnknown)
+    ['{7EBFDD87-AD18-11d3-A4C5-00C04F72D6B8}']
+    function GetTitle(var ppszTitle: POleStr): HRESULT; stdcall;
+    function GetUrl(var ppszURL: POleStr): HRESULT; stdcall;
+  end;
+
+  IEnumTravelLogEntry = interface(IUnknown)
+    ['{7EBFDD85-AD18-11d3-A4C5-00C04F72D6B8}']
+    function Next(cElt: ULONG; out rgElt: ITravelLogEntry; out pcEltFetched: ULONG): HRESULT; stdcall;
+    function Skip(cElt: ULONG): HRESULT; stdcall;
+    function Reset: HRESULT; stdcall;
+    function Clone(out ppEnum: IEnumTravelLogEntry): HRESULT; stdcall;
+  end;
+
+  ITravelLogStg = interface(IUnknown)
+    ['{7EBFDD80-AD18-11d3-A4C5-00C04F72D6B8}']
+    function CreateEntry(pszURL, pszTitle: POleStr; ptleRelativeTo: ITravelLogEntry;
+      fPrepend: BOOL; out pptle: ITravelLogEntry): HRESULT; stdcall;
+    function TravelTo(ptle: ITravelLogEntry): HRESULT; stdcall;
+    function EnumEntries(Flags: DWORD; out ppenum: IEnumTravellogEntry): HRESULT; stdcall;
+    function FindEntries(Flags: DWORD; pszURL: POleStr; out ppenum: IEnumTravelLogEntry): HRESULT; stdcall;
+    function GetCount(Flags: DWORD; out pcEntries: DWORD): HRESULT; stdcall;
+    function RemoveEntry(ptle: ITravelLogEntry): HRESULT; stdcall;
+    function GetRelativeEntry(iOffset: Integer; out ptle: ITravelLogEntry): HRESULT; stdcall;
+  end;
+
+  PUrlInvokeCommandInfoA = ^TUrlInvokeCommandInfoA;
+  TUrlInvokeCommandInfoA = record
+    dwcbSize: DWORD; // Size of structure
+    dwFlags: DWORD; // Bit field of IURL_INVOKECOMMAND_FLAGS
+    hwndParent: HWND;
+      // Parent window.  Valid only if IURL_INVOKECOMMAND_FL_ALLOW_UI is set.
+    pcszVerb: LPCSTR;
+      // Verb to invoke.  Ignored if IURL_INVOKECOMMAND_FL_USE_DEFAULT_VERB is set.
+  end;
+
+  PUrlInvokeCommandInfoW = ^TUrlInvokeCommandInfoW;
+  TUrlInvokeCommandInfoW = record
+    dwcbSize: DWORD; // Size of structure
+    dwFlags: DWORD; // Bit field of IURL_INVOKECOMMAND_FLAGS
+    hwndParent: HWND;
+      // Parent window.  Valid only if IURL_INVOKECOMMAND_FL_ALLOW_UI is set.
+    pcszVerb: LPCWSTR;
+      // Verb to invoke.  Ignored if IURL_INVOKECOMMAND_FL_USE_DEFAULT_VERB is set.
+  end;
+
+{$IFDEF UNICODE}
+  PURLInvokeCommandInfo = ^TUrlInvokeCommandInfoW;
+  TUrlInvokeCommandInfo = TUrlInvokeCOmmandInfoW;
+{$ELSE}
+  PURLInvokeCommandInfo = ^TUrlInvokeCommandInfoA;
+  TUrlInvokeCommandInfo = TUrlInvokeCOmmandInfoA;
+{$ENDIF}
+
+  IUniformResourceLocatorA = interface(IUnknown)
+    [SID_IUniformResourceLocatorA]
+    function SetURL(pcszURL: LpcStr; dwInFlags: DWORD): HRESULT; stdcall;
+    function GetURL(ppszURL: LpStr): HRESULT; stdcall;
+    function InvokeCommand(purlici: PURLINVOKECOMMANDINFOA): HRESULT; stdcall;
+
+  end;
+
+  IUniformResourceLocatorW = interface(IUnknown)
+    [SID_IUniformResourceLocatorW]
+    function SetURL(pcszURL: LpcWStr; dwInFlags: DWORD): HRESULT; stdcall;
+    function GetURL(ppszURL: LpWStr): HRESULT; stdcall;
+    function InvokeCommand(purlici: PURLINVOKECOMMANDINFOW): HRESULT; stdcall;
+  end;
+
+{$IFDEF UNICODE}
+  IUniformResourceLocator = IUniformResourceLocatorW;
+{$ELSE}
+  IUniformResourceLocator = IUniformResourceLocatorA;
+{$ENDIF}
+
+function TranslateURLA(pcszURL: LPCSTR;
+  dwInFlags: DWORD;
+  ppszTranslatedURL: LPSTR): HRESULT; stdcall;
+
+function TranslateURLW(pcszURL: LPCWSTR;
+  dwInFlags: DWORD;
+  ppszTranslatedURL: LPWSTR): HRESULT; stdcall;
+
+{$IFDEF UNICODE}
+function TranslateURL(pcszURL: LPCWSTR;
+  dwInFlags: DWORD;
+  ppszTranslatedURL: LPWSTR): HRESULT; stdcall;
+{$ELSE}
+function TranslateURL(pcszURL: LPCSTR;
+  dwInFlags: DWORD;
+  ppszTranslatedURL: LPSTR): HRESULT; stdcall;
+{$ENDIF}
+
+function URLAssociationDialogA(hwndParent: HWND;
+  dwInFlags: DWORD;
+  pcszFile: LPCSTR;
+  pcszURL: LPCSTR;
+  pszAppBuf: LPSTR;
+  ucAppBufLen: UINT): HRESULT; stdcall;
+
+function URLAssociationDialogW(hwndParent: HWND;
+  dwInFlags: DWORD;
+  pcszFile: LPCWSTR;
+  pcszURL: LPCWSTR;
+  pszAppBuf: LPWSTR;
+  ucAppBufLen: UINT): HRESULT; stdcall;
+
+{$IFDEF UNICODE}
+function URLAssociationDialog(hwndParent: HWND;
+  dwInFlags: DWORD;
+  pcszFile: LPCWSTR;
+  pcszURL: LPCWSTR;
+  pszAppBuf: LPWSTR;
+  ucAppBufLen: UINT): HRESULT; stdcall;
+{$ELSE}
+function URLAssociationDialog(hwndParent: HWND;
+  dwInFlags: DWORD;
+  pcszFile: LPCSTR;
+  pcszURL: LPCSTR;
+  pszAppBuf: LPSTR;
+  ucAppBufLen: UINT): HRESULT; stdcall;
+{$ENDIF}
+
+function MIMEAssociationDialogA(hwndParent: HWND;
+  dwInFlags: DWORD;
+  pcszFile: LPCSTR;
+  pcszMIMEContentType: LPCSTR;
+  pszAppBuf: LPSTR;
+  ucAppBufLen: UINT): HRESULT; stdcall;
+
+function MIMEAssociationDialogW(hwndParent: HWND;
+  dwInFlags: DWORD;
+  pcszFile: LPCWSTR;
+  pcszMIMEContentType: LPCWSTR;
+  pszAppBuf: LPWSTR;
+  ucAppBufLen: UINT): HRESULT; stdcall;
+
+{$IFDEF UNICODE}
+function MIMEAssociationDialog(hwndParent: HWND;
+  dwInFlags: DWORD;
+  pcszFile: LPCWSTR;
+  pcszMIMEContentType: LPCWSTR;
+  pszAppBuf: LPWSTR;
+  ucAppBufLen: UINT): HRESULT; stdcall;
+{$ELSE}
+function MIMEAssociationDialog(hwndParent: HWND;
+  dwInFlags: DWORD;
+  pcszFile: LPCSTR;
+  pcszMIMEContentType: LPCSTR;
+  pszAppBuf: LPSTR;
+  ucAppBufLen: UINT): HRESULT; stdcall;
+{$ENDIF}
+
+function InetIsOffline(dwFlags: DWORD): BOOL; stdcall;
+
+//Serge
+{$IFDEF DELPHI6_UP}
+type
+{$EXTERNALSYM _tagINTERNETFEATURELIST}
+  _tagINTERNETFEATURELIST = (
+    FEATURE_OBJECT_CACHING = 0,
+    FEATURE_ZONE_ELEVATION = 1,
+    FEATURE_MIME_HANDLING = 2,
+    FEATURE_MIME_SNIFFING = 3,
+    FEATURE_WINDOW_RESTRICTIONS = 4,
+    FEATURE_WEBOC_POPUPMANAGEMENT = 5,
+    FEATURE_BEHAVIORS = 6,
+    FEATURE_DISABLE_MK_PROTOCOL = 7,
+    FEATURE_LOCALMACHINE_LOCKDOWN = 8,
+    FEATURE_SECURITYBAND = 9,
+    FEATURE_RESTRICT_ACTIVEXINSTALL = 10,
+    FEATURE_VALIDATE_NAVIGATE_URL = 11,
+    FEATURE_RESTRICT_FILEDOWNLOAD = 12,
+    FEATURE_ADDON_MANAGEMENT = 13,
+    FEATURE_PROTOCOL_LOCKDOWN = 14,
+    FEATURE_HTTP_USERNAME_PASSWORD_DISABLE = 15,
+    FEATURE_SAFE_BINDTOOBJECT = 16,
+    FEATURE_UNC_SAVEDFILECHECK = 17,
+    FEATURE_GET_URL_DOM_FILEPATH_UNENCODED = 18,
+    FEATURE_TABBED_BROWSING = 19,
+    FEATURE_SSLUX = 20,
+    FEATURE_DISABLE_NAVIGATION_SOUNDS = 21,
+    FEATURE_DISABLE_LEGACY_COMPRESSION = 22,
+    FEATURE_FORCE_ADDR_AND_STATUS = 23,
+    FEATURE_XMLHTTP = 24,
+    FEATURE_DISABLE_TELNET_PROTOCOL = 25,
+    FEATURE_FEEDS = 26,
+    FEATURE_BLOCK_INPUT_PROMPTS = 27,
+    FEATURE_ENTRY_COUNT = 28
+    );
+  TInternetFeature = _tagINTERNETFEATURELIST;
+{$ELSE}
+type
+  _tagINTERNETFEATURELIST = (
+    FEATURE_OBJECT_CACHING,
+    FEATURE_ZONE_ELEVATION,
+    FEATURE_MIME_HANDLING,
+    FEATURE_MIME_SNIFFING,
+    FEATURE_WINDOW_RESTRICTIONS,
+    FEATURE_WEBOC_POPUPMANAGEMEN,
+    FEATURE_BEHAVIORS,
+    FEATURE_DISABLE_MK_PROTOCOL,
+    FEATURE_LOCALMACHINE_LOCKDOWN,
+    FEATURE_SECURITYBAND,
+    FEATURE_RESTRICT_ACTIVEXINSTALL,
+    FEATURE_VALIDATE_NAVIGATE_URL,
+    FEATURE_RESTRICT_FILEDOWNLOAD,
+    FEATURE_ADDON_MANAGEMENT,
+    FEATURE_PROTOCOL_LOCKDOWN,
+    FEATURE_HTTP_USERNAME_PASSWORD_DISABLE,
+    FEATURE_SAFE_BINDTOOBJECT,
+    FEATURE_UNC_SAVEDFILECHECK,
+    FEATURE_GET_URL_DOM_FILEPATH_UNENCODED,
+    FEATURE_TABBED_BROWSING,
+    FEATURE_SSLUX,
+    FEATURE_DISABLE_NAVIGATION_SOUNDS,
+    FEATURE_DISABLE_LEGACY_COMPRESSION,
+    FEATURE_FORCE_ADDR_AND_STATUS,
+    FEATURE_XMLHTTP,
+    FEATURE_DISABLE_TELNET_PROTOCOL,
+    FEATURE_FEEDS,
+    FEATURE_BLOCK_INPUT_PROMPTS,
+    FEATURE_ENTRY_COUNT);
+  TInternetFeature = _tagINTERNETFEATURELIST;
+{$ENDIF}
+
+
+function CoInternetSetFeatureEnabled(aFeature: TInternetFeature;
+  dwFlags: DWORD; fEnable: Boolean): HRESULT;
+function CoInternetIsFeatureEnabled(aFeature: TInternetFeature;
+  dwFlags: DWORD): HRESULT;
+function CoInternetIsFeatureEnabledForUrl(aFeature: TInternetFeature;
+  dwFlags: DWORD; szUrl: LPCWSTR; pSecMgr: IInternetSecurityManager): HRESULT;
+
+function CoInternetIsFeatureZoneElevationEnabled(
+  szFromURL, szToURL: LPCWSTR; pSecMgr: IInternetSecurityManager;
+  dwFlags: DWORD): HRESULT;
+
+var
+  ShellModule: THandle;
+  ComCtlModule: THandle;
+  HHCtrlModule: THandle;
+  URLMonModule: THandle;
+
+function SHLockShared(Handle: THandle; DW: DWORD): Pointer; stdcall;
+function SHUnlockShared(Pnt: Pointer): BOOL; stdcall;
+function SHFreeShared(Handle: THandle; DW: DWORD): Pointer; stdcall;
+function _Free(Pidl: PItemIDList): BOOL; stdcall;
+function HtmlHelp(hwndCaller: HWND; pszFile: PChar; uCommand: Integer;
+  dwData: DWORD): HWND; stdcall;
+
+function GetSHDOCLCModule: THandle;
+
+{events}
+type
+  OnQueryInterfaceEvent = procedure(Sender: TObject; const IID: TGUID; var Obj; Rezult: HRESULT) of object;
+
+  {IDispatch Interface}
+  TGetTypeInfoCountEvent = procedure(Sender: TObject; var Count: Integer; var
+    Rezult: HRESULT) of object;
+  TGetTypeInfoEvent = procedure(Sender: TObject; Index, LocaleID: Integer; var
+    TypeInfo: ITypeInfo; var Rezult: HRESULT) of object;
+  TGetIDsOfNamesEvent = procedure(Sender: TObject; const IID: TGUID; Names:
+    Pointer;
+    NameCount, LocaleID: Integer; DispIDs: Pointer; var Rezult: HRESULT) of
+    object;
+  TInvokeEvent = procedure(Sender: TObject; DispID: Integer; const IID: TGUID;
+    LocaleID: Integer;
+    Flags: Word; var Params: TDispParams; VarResult, ExcepInfo, ArgErr: Pointer;
+    var Rezult: HRESULT) of object;
+  {IDropTarget Interface}
+  TOnDropEvent = procedure(Sender: TObject; const dataObj: IDataObject;
+    grfKeyState: Longint; pt: TPoint;
+    var dwEffect: Longint; var Rezult: HRESULT) of object;
+  TOnDragEnterEvent = procedure(Sender: TObject; const dataObj: IDataObject;
+    grfKeyState: Longint;
+    pt: TPoint; var dwEffect: Longint; var Rezult: HRESULT) of object;
+  TOnDragOverEvent = procedure(Sender: TObject; grfKeyState: Longint; pt:
+    TPoint; var dwEffect: Longint;
+    var Rezult: HRESULT) of object;
+  {IOLECommandTarget Interface}
+  TComTargetExecEvent = procedure(Sender: TObject; CmdGroup: PGUID; nCmdID,
+    nCmdexecopt: DWORD;
+    const vaIn: OleVariant; var vaOut: OleVariant; var Rezult: HRESULT) of
+    object;
+  {IServiceProvider Interface}
+  TQueryServiceEvent = procedure(Sender: TObject; const rsid, iid: TGUID; var
+    Obj: IUnknown) of object;
+
+implementation
+
+function InetIsOffline; external urldll name 'InetIsOffline';
+
+function MIMEAssociationDialogW; external urldll name 'MIMEAssociationDialogW';
+function MIMEAssociationDialogA; external urldll name 'MIMEAssociationDialogA';
+{$IFDEF UNICODE}
+function MIMEAssociationDialog; external urldll name 'MIMEAssociationDialogW';
+{$ELSE}
+function MIMEAssociationDialog; external urldll name 'MIMEAssociationDialogA';
+{$ENDIF}
+
+function URLAssociationDialogW; external urldll name 'URLAssociationDialogW';
+function URLAssociationDialogA; external urldll name 'URLAssociationDialogA';
+{$IFDEF UNICODE}
+function URLAssociationDialog; external urldll name 'URLAssociationDialogW';
+{$ELSE}
+function URLAssociationDialog; external urldll name 'URLAssociationDialogA';
+{$ENDIF}
+
+function TranslateURLA; external urldll name 'TranslateURLA';
+function TranslateURLW; external urldll name 'TranslateURLW';
+{$IFDEF UNICODE}
+function TranslateURL; external urldll name 'TranslateURLW';
+{$ELSE}
+function TranslateURL; external urldll name 'TranslateURLA';
+{$ENDIF}
+
+
+function GetShellModule: THandle;
+begin
+  if ShellModule = 0 then
+  begin
+    ShellModule := SafeLoadLibrary(Shell32);
+    if ShellModule <= HINSTANCE_ERROR then
+      ShellModule := 0;
+  end;
+  Result := ShellModule;
+end;
+
+function GetHHctrlModule: THandle;
+begin
+  if HHCtrlModule = 0 then
+  begin
+    HHCtrlModule := SafeLoadLibrary(HHCtrl);
+    if HHCtrlModule <= HINSTANCE_ERROR then
+      HHCtrlModule := 0;
+  end;
+  Result := HHCtrlModule;
+end;
+
+function GetComctlModule: THandle;
+begin
+  if ComctlModule = 0 then
+  begin
+    ComctlModule := SafeLoadLibrary(comctl32);
+    if ComctlModule <= HINSTANCE_ERROR then
+      ComctlModule := 0;
+  end;
+  Result := ComctlModule;
+end;
+
+function HtmlHelp(hwndCaller: HWND; pszFile: PChar; uCommand: Integer;
+  dwData: DWORD): HWND; stdcall;
+type
+  TheFunctionType = function(hwndCaller: HWND; pszFile: PChar; uCommand: Integer;
+    dwData: DWORD): HWND; stdcall;
+var
+  TheFunction: TheFunctionType;
+begin
+  Result := 0;
+  if HHCtrlModule = 0 then
+    HHCtrlModule := GetHHCtrlModule;
+  if HHCtrlModule <> 0 then
+  begin
+{$IFDEF UNICODE}
+    TheFunction := GetProcAddress(HHCtrlModule, 'HtlmHelpW');
+{$ELSE}
+    TheFunction := GetProcAddress(HHCtrlModule, 'HtlmHelpA');
+{$ENDIF UNICODE}
+    if (Assigned(TheFunction)) then
+      Result := TheFunction(hwndCaller, pszFile, uCommand, dwdata);
+  end;
+end;
+
+function _Free(Pidl: PItemIDList): BOOL; stdcall;
+type
+  TheFunctionType = function(Pidl: PItemIDList): BOOL; stdcall;
+var
+  TheFunction: TheFunctionType;
+begin
+  Result := False;
+  if ComctlModule = 0 then
+    ComctlModule := GetComctlModule;
+  if ComctlModule <> 0 then
+  begin
+    TheFunction := GetProcAddress(ComctlModule, PChar(Free_Index));
+    if (Assigned(TheFunction)) then
+      Result := TheFunction(Pidl);
+  end;
+end;
+
+function SHLockShared(Handle: THandle; DW: DWORD): Pointer; stdcall;
+type
+  TheFunctionType = function(Handle: THandle; DW: DWORD): Pointer; stdcall;
+var
+  TheFunction: TheFunctionType;
+begin
+  Result := nil;
+  if ShellModule = 0 then
+    ShellModule := GetShellModule;
+  if ShellModule <> 0 then
+  begin
+    TheFunction := GetProcAddress(ShellModule, PChar(SHLockShared_Index));
+    if (Assigned(TheFunction)) then
+      Result := TheFunction(Handle, DW);
+  end;
+end;
+
+function SHUnLockShared(pnt: Pointer): BOOL; stdcall;
+type
+  TheFunctionType = function(pnt: Pointer): BOOL; stdcall;
+var
+  TheFunction: TheFunctionType;
+begin
+  Result := FALSE;
+  if ShellModule = 0 then
+    ShellModule := GetShellModule;
+  if ShellModule <> 0 then
+  begin
+    TheFunction := GetProcAddress(ShellModule, PChar(SHUnLockShared_Index));
+    if (Assigned(TheFunction)) then
+      Result := TheFunction(pnt);
+  end;
+end;
+
+function SHFreeShared(Handle: THandle; DW: DWORD): Pointer; stdcall;
+type
+  TheFunctionType = function(Handle: THandle; DW: DWORD): Pointer; stdcall;
+var
+  TheFunction: TheFunctionType;
+begin
+  Result := nil;
+  if ShellModule = 0 then
+    ShellModule := GetShellModule;
+  if ShellModule <> 0 then
+  begin
+    TheFunction := GetProcAddress(ShellModule, PChar(SHFreeShared_Index));
+    if (Assigned(TheFunction)) then
+      Result := TheFunction(Handle, DW);
+  end;
+end;
+
+function CheckURLMonModule: Boolean;
+begin
+  if URLMonModule = 0 then
+    URLMonModule := SafeLoadLibrary(UrlMonLib);
+  Result := URLMonModule > HINSTANCE_ERROR;
+end;
+
+function CheckURLMonModuleFunc(const Name: string; var ptr: Pointer): Boolean;
+begin
+  Result := CheckURLMonModule;
+  if Result then
+  begin
+    ptr := GetProcAddress(URLMonModule, PChar(Name));
+    Result := Assigned(ptr);
+    if not Result then
+      ptr := Pointer(1); // ???
+  end;
+end;
+
+type
+  TCoInternetSetFeatureEnabled = function(aFeature: DWORD;
+    dwFlags: DWORD; fEnable: BOOL): HRESULT; stdcall;
+  TCoInternetIsFeatureEnabled = function(aFeature: DWORD;
+    dwFlags: DWORD): HRESULT; stdcall;
+  TCoInternetIsFeatureEnabledForUrl = function(aFeature: DWORD;
+    dwFlags: DWORD; szUrl: LPCWSTR; pSecMgr: IInternetSecurityManager): HRESULT;
+  stdcall;
+  TCoInternetIsFeatureZoneElevationEnabled = function(szFromURL, szToURL:
+    LPCWSTR; pSecMgr: IInternetSecurityManager;
+    dwFlags: DWORD): HRESULT; stdcall;
+
+var
+  CoInternetIsFeatureZoneElevationEnabledPtr: Pointer;
+
+  CoInternetSetFeatureEnabledPtr: Pointer;
+  CoInternetIsFeatureEnablePtr: Pointer;
+  CoInternetIsFeatureEnabledForUrlPtr: Pointer;
+
+function CoInternetSetFeatureEnabled(aFeature: TInternetFeature;
+  dwFlags: DWORD; fEnable: Boolean): HRESULT;
+begin
+  if (Integer(CoInternetSetFeatureEnabledPtr) > 1) or
+    CheckURLMonModuleFunc('CoInternetSetFeatureEnabled',
+    CoInternetSetFeatureEnabledPtr) then
+    Result := TCoInternetSetFeatureEnabled(CoInternetSetFeatureEnabledPtr)(
+      DWORD(aFeature), dwFlags, fEnable)
+  else
+    Result := E_NOTIMPL;
+end;
+
+function CoInternetIsFeatureEnabled(aFeature: TInternetFeature;
+  dwFlags: DWORD): HRESULT;
+begin
+  if (Integer(CoInternetIsFeatureEnablePtr) > 1) or
+    CheckURLMonModuleFunc('CoInternetIsFeatureEnabled',
+    CoInternetIsFeatureEnablePtr) then
+    Result := TCoInternetIsFeatureEnabled(CoInternetIsFeatureEnablePtr)(
+      DWORD(aFeature), dwFlags)
+  else
+    Result := E_NOTIMPL;
+end;
+
+function CoInternetIsFeatureEnabledForUrl(aFeature: TInternetFeature;
+  dwFlags: DWORD; szUrl: LPCWSTR; pSecMgr: IInternetSecurityManager): HRESULT;
+begin
+  if (Integer(CoInternetIsFeatureEnabledForUrlPtr) > 1) or
+    CheckURLMonModuleFunc('CoInternetIsFeatureEnabledForUrl',
+    CoInternetIsFeatureEnabledForUrlPtr) then
+    Result :=
+      TCoInternetIsFeatureEnabledForUrl(CoInternetIsFeatureEnabledForUrlPtr)(
+      DWORD(aFeature), dwFlags, szUrl, pSecMgr)
+  else
+    Result := E_NOTIMPL;
+end;
+
+
+function CoInternetIsFeatureZoneElevationEnabled(
+  szFromURL, szToURL: LPCWSTR; pSecMgr: IInternetSecurityManager;
+  dwFlags: DWORD): HRESULT;
+begin
+  if (Integer(CoInternetIsFeatureZoneElevationEnabledPtr) > 1) or
+    CheckURLMonModuleFunc('CoInternetIsFeatureZoneElevationEnabled',
+    CoInternetIsFeatureZoneElevationEnabledPtr) then
+    Result :=
+      TCoInternetIsFeatureZoneElevationEnabled(CoInternetIsFeatureZoneElevationEnabledPtr)(
+      szFromURL, szToURL, pSecMgr, dwFlags)
+  else
+    Result := E_NOTIMPL;
+end;
+
+var
+  HSHDOCLCModule: THandle;
+
+function GetSHDOCLCModule: THandle;
+begin
+  if HSHDOCLCModule = 0 then
+  begin
+    HSHDOCLCModule := GetModuleHandle('SHDOCLC.DLL');
+    if HSHDOCLCModule = 0 then
+      HSHDOCLCModule := SafeLoadLibrary('SHDOCLC.DLL');
+    if HSHDOCLCModule <= HINSTANCE_ERROR then
+      HSHDOCLCModule := 0;
+  end;
+  Result := HSHDOCLCModule;
+end;
+
+
+initialization
+
+finalization
+  if ShellModule <> 0 then
+    FreeLibrary(ShellModule);
+  if ComctlModule <> 0 then
+    FreeLibrary(ComctlModule);
+  if HHCtrlModule <> 0 then
+    FreeLibrary(HHCtrlModule);
+  if URLMonModule <> 0 then
+    FreeLibrary(URLMonModule);
+end.
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbActns.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbActns.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbActns.pas	(revision 541)
@@ -0,0 +1,145 @@
+//*************************************************************
+//                          EwbActns                          *
+//                                                            *
+//                     Freeware unit                          *
+//                       For Delphi                           *
+//                            by                              *
+//                     Serge Voloshenyuk                      *
+//      Developing Team:                                      *
+//          Serge Voloshenyuk (SergeV@bsalsa.com)             *
+//          Eran Bodankin (bsalsa) -(bsalsa@gmail.com)       *
+//                                                            *
+//       Documentation and updated versions:                  *
+//                                                            *
+//               http://www.bsalsa.com                        *
+//*************************************************************
+{LICENSE:
+THIS SOFTWARE IS PROVIDED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND,
+EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE APPLIED
+WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
+YOU ASSUME THE ENTIRE RISK AS TO THE ACCURACY AND THE USE OF THE SOFTWARE
+AND ALL OTHER RISK ARISING OUT OF THE USE OR PERFORMANCE OF THIS SOFTWARE
+AND DOCUMENTATION. BSALSA PRODUCTIONS DOES NOT WARRANT THAT THE SOFTWARE IS ERROR-FREE
+OR WILL OPERATE WITHOUT INTERRUPTION. THE SOFTWARE IS NOT DESIGNED, INTENDED
+OR LICENSED FOR USE IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE CONTROLS,
+INCLUDING WITHOUT LIMITATION, THE DESIGN, CONSTRUCTION, MAINTENANCE OR
+OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS,
+AIR TRAFFIC CONTROL, AND LIFE SUPPORT OR WEAPONS SYSTEMS. BSALSA PRODUCTIONS SPECIFICALLY
+DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR SUCH PURPOSE.
+
+You may use/ change/ modify the component under 3 conditions:
+1. In your website, add a link to "http://www.bsalsa.com"
+2. In your application, add credits to "Embedded Web Browser"
+3. Mail me  (bsalsa@gmail.com) any code change in the unit  for the benefit
+   of the other users.
+4. Please, consider donation in our web site!
+{*******************************************************************************}
+//$Id: EwbActns.pas,v 1.1.2.1 2006/11/29 22:13:00 sergev Exp $
+
+unit EwbActns;
+
+{$I EWB.inc}
+
+interface
+
+uses
+  Classes, ActnList, EwbCore;
+
+type
+  TEwbAction = class(TCustomAction)
+  private
+    FControl: TEwbCore;
+    procedure SetControl(Value: TEwbCore);
+  protected
+    function GetControl(Target: TObject): TEwbCore; virtual;
+    procedure Notification(AComponent: TComponent; Operation: TOperation); override;
+  public
+    destructor Destroy; override;
+    function HandlesTarget(Target: TObject): Boolean; override;
+    property Control: TEwbCore read FControl write SetControl;
+  end;
+
+  TEwbLinkAction = class(TEwbAction)
+  private
+    FURL: WideString;
+    procedure setURL(const Value: WideString);
+  public
+    procedure ExecuteTarget(Target: TObject); override;
+    constructor Create(AOwner: TComponent); override;
+  published
+    property URL: WideString read FURL write setURL;
+    property Caption;
+    property HelpContext;
+{$IFDEF DELPHI6_UP}
+    property HelpKeyword;
+    property HelpType;
+    property SecondaryShortCuts;
+{$ENDIF}
+    property Hint;
+    property ImageIndex;
+    property ShortCut;
+    property Visible;
+    property OnExecute;
+    property OnHint;
+    property OnUpdate;
+  end;
+
+implementation
+
+{ TEwbAction }
+
+destructor TEwbAction.Destroy;
+begin
+  if FControl <> nil then
+    FControl.RemoveFreeNotification(Self);
+  inherited;
+end;
+
+function TEwbAction.GetControl(Target: TObject): TEwbCore;
+begin
+  Result := Target as TEwbCore;
+end;
+
+function TEwbAction.HandlesTarget(Target: TObject): Boolean;
+begin
+  Result := ((Control <> nil) and (Target = Control) or
+    (Control = nil) and (Target is TEwbCore))
+    { and TEwbCore(Target).Focused}; //FIXME
+end;
+
+procedure TEwbAction.Notification(AComponent: TComponent;
+  Operation: TOperation);
+begin
+  inherited Notification(AComponent, Operation);
+  if (Operation = opRemove) and (AComponent = Control) then Control := nil;
+end;
+
+procedure TEwbAction.SetControl(Value: TEwbCore);
+begin
+  if Value <> FControl then
+  begin
+    FControl := Value;
+    if Value <> nil then Value.FreeNotification(Self);
+  end;
+end;
+
+{ TEwbLinkAction }
+
+constructor TEwbLinkAction.Create(AOwner: TComponent);
+begin
+  inherited;
+  Enabled := False;
+end;
+
+procedure TEwbLinkAction.ExecuteTarget(Target: TObject);
+begin
+  GetControl(Target).Navigate(Self.URL);
+end;
+
+procedure TEwbLinkAction.setURL(const Value: WideString);
+begin
+  FURL := Value;
+  Enabled := FURL <> '';
+end;
+
+end.
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbBehaviorsComp.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbBehaviorsComp.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbBehaviorsComp.pas	(revision 541)
@@ -0,0 +1,1166 @@
+//*************************************************************
+//                       EwbBehaviorsComp                     *
+//                                                            *
+//                     Freeware Component                     *
+//                       For Delphi                           *
+//                            by                              *
+//                     Serge Voloshenyuk                      *
+//      Developing Team:                                      *
+//          Serge Voloshenyuk (SergeV@bsalsa.com)             *
+//          Eran Bodankin (bsalsa) -(bsalsa@gmail.com)       *
+//                                                            *
+//       Documentation and updated versions:                  *
+//                                                            *
+//               http://www.bsalsa.com                        *
+//*************************************************************
+{LICENSE:
+THIS SOFTWARE IS PROVIDED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND,
+EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE APPLIED
+WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
+YOU ASSUME THE ENTIRE RISK AS TO THE ACCURACY AND THE USE OF THE SOFTWARE
+AND ALL OTHER RISK ARISING OUT OF THE USE OR PERFORMANCE OF THIS SOFTWARE
+AND DOCUMENTATION. BSALSA PRODUCTIONS DOES NOT WARRANT THAT THE SOFTWARE IS ERROR-FREE
+OR WILL OPERATE WITHOUT INTERRUPTION. THE SOFTWARE IS NOT DESIGNED, INTENDED
+OR LICENSED FOR USE IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE CONTROLS,
+INCLUDING WITHOUT LIMITATION, THE DESIGN, CONSTRUCTION, MAINTENANCE OR
+OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS,
+AIR TRAFFIC CONTROL, AND LIFE SUPPORT OR WEAPONS SYSTEMS. BSALSA PRODUCTIONS SPECIFICALLY
+DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR SUCH PURPOSE.
+
+You may use/ change/ modify the component under 3 conditions:
+1. In your website, add a link to "http://www.bsalsa.com"
+2. In your application, add credits to "Embedded Web Browser"
+3. Mail me  (bsalsa@gmail.com) any code change in the unit  for the benefit
+   of the other users.
+4. Please, consider donation in our web site!
+{*******************************************************************************}
+//$Id: EwbBehaviorsComp.pas,v 1.1.2.1 2006/11/29 22:13:00 sergev Exp $
+
+unit EwbBehaviorsComp;
+
+interface
+
+{$I EWB.inc}
+
+uses
+{$IFDEF DELPHI6_UP}Variants, {$ENDIF}
+  Windows, Classes, Graphics, ActiveX, Mshtml_Ewb, EwbAcc, EwbClasses, EwbEvents,
+  EwbEventsComp;
+
+type
+  TEwbBehaviorFactory = class;
+  TBinBehavior = class;
+  TEwbBehaviorController = class;
+
+  TPainterProperty = (
+    ppOpaque,
+    ppTransparent,
+    //NOIMPL     ppAlpha,
+    //NOIMPL     ppComplex,
+    ppOverlay,
+    ppHitTest,
+    ppSurface,
+    pp3DSurface,
+    //NOIMPL     ppNoBand,
+    ppNoDC,
+    ppNoPhysicalClip,
+    ppNoSaveDC,
+    ppSupportsXForm,
+    ppExpand,
+    ppNoScrollBits
+    );
+  TPainterProperties = set of TPainterProperty;
+
+  TPaintZOrder = (
+    pzNone,
+    pzReplaceAll,
+    pzReplaceContent,
+    pzReplaceBackground,
+    pzBelowContent,
+    pzBelowFlow,
+    pzAboveFlow,
+    pzAboveContent,
+    pzWinTop
+    );
+
+  TPaintEventFlag = (pfTarget, pfSetCursor);
+  TPaintEventFlags = set of TPaintEventFlag;
+
+  TLayoutMode = (
+    lmNone,
+    lmFullDelegation,
+    lmModifyNatural,
+    lmMapSize
+    );
+
+  {events}
+  TBehaviorNameEvent = procedure(Sender: TEwbBehaviorController;
+    Element: IHTMLElement2; var aName: WideString) of object;
+  TCreateBehaviorEvent = function(Sender: TEwbBehaviorController;
+    const bstrBehavior, bstrBehaviorUrl: WideString;
+    pSite: IElementBehaviorSite): IElementBehavior of object;
+
+  TGetIdOfNameEvent = procedure(Sender: TBinBehavior; const name: widestring; var id: Integer) of object;
+  TInvokeEvent = procedure(Sender: TBinBehavior; DispID: Integer;
+    VarResult: POleVariant; Params: TDispParams; var Rezult: HRESULT) of object;
+  TGetPropertyEvent = procedure(Sender: TBinBehavior; DispID: Integer;
+    VarResult: POleVariant; Params: TDispParams; var Rezult: HRESULT) of object;
+  TPutPropertyEvent = procedure(Sender: TBinBehavior; DispID: Integer;
+    Params: TDispParams; var Rezult: HRESULT) of object;
+
+
+  TBehaviorNotifyEvent = procedure(Sender: TBinBehavior) of object;
+  TPainterDrawEvent = procedure(Sender: TBinBehavior;
+    rcBounds, rcUpdate: TRect; lDrawFlags: Integer; Canvas: TCanvas) of object;
+  TPainterDirectDrawEvent = procedure(Sender: TBinBehavior;
+    rcBounds, rcUpdate: TRect; lDrawFlags: Integer; DrawObject: Pointer) of
+    object;
+  TPainterResizeEvent = procedure(Sender: TBinBehavior; size: TSize) of object;
+  TPainterInfoEvent = procedure(Sender: TBinBehavior; var pInfo:
+    _HTML_PAINTER_INFO) of object;
+  TPainterHitTestEvent = procedure(Sender: TBinBehavior; pt: TPoint; var pbHit:
+    BOOL;
+    var plPartID: Longint) of object;
+
+  TLayoutSizeEvent = procedure(Sender: TBinBehavior; dwFlags: Integer;
+    sizeContent: TSize; var pptTranslateBy: TPoint;
+    var pptTopLeft: TPoint; var psizeProposed: TSize) of object;
+  TLayoutPositionEvent = procedure(Sender: TBinBehavior; lFlags: Integer; var
+    pptTopLeft: TPoint) of object;
+  TLayoutMapSizeEvent = procedure(Sender: TBinBehavior; psizeIn: PSize; var
+    prcOut: TRect) of object;
+  TLayoutTextDescentEvent = procedure(Sender: TBinBehavior; var plDescent:
+    Integer) of object;
+
+  TEventTargetEvent = procedure(Sender: TBinBehavior; var ppElement:
+    IHTMLElement) of object;
+  TSetCursorEvent = procedure(Sender: TBinBehavior; lPartID: Integer) of object;
+  TStringFromPartIDEvent = procedure(Sender: TBinBehavior; lPartID: Integer; var
+    pbstrPart: WideString) of object;
+  TOverlayMoveEvent = procedure(Sender: TBinBehavior; rcDevice: TRect) of
+    object;
+  TGetFocusRectEvent = procedure(Sender: TBinBehavior; var pRect: TRect) of
+    object;
+  TGetSubmitInfoEvent = procedure(Sender: TBinBehavior; pSubmitData:
+    IHTMLSubmitData) of object;
+  TResetSubmitEvent = procedure(Sender: TBinBehavior) of object;
+
+  TFindBehaviorEvent = procedure(Sender: TObject;
+    const bstrBehavior, bstrBehaviorUrl: WideString;
+    pSite: IElementBehaviorSite; var ppBehavior: IElementBehavior) of object;
+
+  TResolveNSEvent = procedure(Sender: TObject;
+    const bstrNamespace, bstrTagName, bstrAttrs: WideString;
+    pNamespace: IElementNamespace) of object;
+
+  TCreateNamespaceEvent = procedure(Sender: TObject;
+    pNamespace: IElementNamespace) of object;
+
+  TCreateNSWithImplEvent = procedure(Sender: TObject;
+    pNamespace: IElementNamespace;
+    const bstrImplementation: WideString) of object;
+
+  TEwbBehaviorFactory = class(TComponent
+      , IElementBehaviorFactory
+      , IElementNamespaceFactoryCallback
+      , IElementNamespaceFactory
+      , IElementNamespaceFactory2
+      )
+  private
+    FOnFindBehavior: TFindBehaviorEvent;
+    FOnResolveNS: TResolveNSEvent;
+    FOnCreateNS: TCreateNamespaceEvent;
+    FOnCreateNSWithImpl: TCreateNSWithImplEvent;
+  protected
+    {IElementBehaviorFactory}
+    function FindBehavior(const bstrBehavior: WideString; const bstrBehaviorUrl:
+      WideString;
+      const pSite: IElementBehaviorSite; out ppBehavior: IElementBehavior):
+      HRESULT; stdcall;
+    {IElementNamespaceFactoryCallback}
+    function Resolve(const bstrNamespace: WideString; const bstrTagName:
+      WideString;
+      const bstrAttrs: WideString; pNamespace: IElementNamespace): HRESULT;
+      stdcall;
+    {IElementNamespaceFactory}
+    function IElementNamespaceFactory.create = FactoryCreate;
+    function FactoryCreate(pNamespace: IElementNamespace): HRESULT; stdcall;
+    {IElementNamespaceFactory2}
+    function IElementNamespaceFactory2.create = FactoryCreate;
+    function CreateWithImplementation(pNamespace: IElementNamespace;
+      const bstrImplementation: WideString): HRESULT; stdcall;
+  published
+    property OnFindBehavior: TFindBehaviorEvent read FOnFindBehavior write
+      FOnFindBehavior;
+    property OnResolveNS: TResolveNSEvent read FOnResolveNS write FOnResolveNS;
+    property OnCreateNS: TCreateNamespaceEvent read FOnCreateNS write
+      FOnCreateNS;
+    property OnCreateNSWithImpl: TCreateNSWithImplEvent read FOnCreateNSWithImpl
+      write FOnCreateNSWithImpl;
+  end;
+
+  TEwbBehaviorController = class(THtmlListener, IElementBehaviorFactory)
+  private
+    FBehaviors: TList;
+    FZOrder: TPaintZOrder;
+    FPainterProperties: TPainterProperties;
+    FPainterFlags: Integer;
+    FOnDetach: TBehaviorNotifyEvent;
+    FOnApplyStyle: TBehaviorNotifyEvent;
+    FOnDocContextChange: TBehaviorNotifyEvent;
+    FOnContentReady: TBehaviorNotifyEvent;
+    FOnInit: TBehaviorNotifyEvent;
+    FOnContentSave: TBehaviorNotifyEvent;
+    FOnDocReady: TBehaviorNotifyEvent;
+    FOnDraw: TPainterDrawEvent;
+    FOnHitTest: TPainterHitTestEvent;
+    FOnPainterInfo: TPainterInfoEvent;
+    FOnResize: TPainterResizeEvent;
+    FOnGetName: TBehaviorNameEvent;
+    FOnCreateBehavior: TCreateBehaviorEvent;
+    fHandleEvents: Boolean;
+    FLayoutMode: TLayoutMode;
+    fLayoutMapSize: TLayoutMapSizeEvent;
+    fLayoutPosition: TLayoutPositionEvent;
+    FLayoutSize: TLayoutSizeEvent;
+    FLayoutTextDescent: Integer;
+    FOnLayoutTextDescent: TLayoutTextDescentEvent;
+    fPaintEventInfo: TPaintEventFlags;
+    FOnEventTarget: TEventTargetEvent;
+    FOnSetCursor: TSetCursorEvent;
+    FOnStringFromPartID: TStringFromPartIDEvent;
+    FOnOverlayMove: TOverlayMoveEvent;
+    FOnDirectDraw: TPainterDirectDrawEvent;
+    FOnGetFocusRect: TGetFocusRectEvent;
+    FOnGetSubmitInfo: TGetSubmitInfoEvent;
+    FOnResetSubmit: TResetSubmitEvent;
+    FOnGetIdOfName: TGetIdOfNameEvent;
+    FOnGetProperty: TGetPropertyEvent;
+    FOnInvoke: TInvokeEvent;
+    FOnPutProperty: TPutPropertyEvent;
+    fAlive: Boolean;
+    procedure setPainterProperties(const Value: TPainterProperties);
+    procedure setZOrder(const Value: TPaintZOrder);
+    procedure setLayoutMode(const Value: TLayoutMode);
+    procedure setLayoutTextDescent(const Value: Integer);
+  protected
+    {IElementBehaviorFactory}
+    function FindBehavior(const bstrBehavior: WideString; const bstrBehaviorUrl:
+      WideString;
+      const pSite: IElementBehaviorSite; out ppBehavior: IElementBehavior):
+      HRESULT; stdcall;
+
+  protected
+    procedure Add(aBehavior: TBinBehavior);
+    procedure Remove(aBehavior: TBinBehavior);
+
+    procedure DoGetIdOfName(Sender: TBinBehavior; const name: widestring; var id: Integer); virtual;
+    procedure DoInvoke(Sender: TBinBehavior; DispID: Integer;
+      VarResult: POleVariant; Params: TDispParams; var Rezult: HRESULT); virtual;
+    procedure DoGetProperty(Sender: TBinBehavior; DispID: Integer;
+      VarResult: POleVariant; Params: TDispParams; var Rezult: HRESULT); virtual;
+    procedure DoPutProperty(Sender: TBinBehavior; DispID: Integer;
+      Params: TDispParams; var Rezult: HRESULT); virtual;
+
+    procedure DoInit(Sender: TBinBehavior); virtual;
+    procedure DoDetach(Sender: TBinBehavior); virtual;
+    procedure DoNotify(Sender: TBinBehavior; lEvent: Integer); virtual;
+    procedure DoDraw(Sender: TBinBehavior;
+      rcBounds, rcUpdate: TRect; lDrawFlags: Integer; Canvas: TCanvas); virtual;
+    procedure DoDirectDraw(Sender: TBinBehavior;
+      rcBounds, rcUpdate: TRect; lDrawFlags: Integer; pvDrawObject: Pointer);
+      virtual;
+    procedure DoPainterResize(Sender: TBinBehavior; size: TSize); virtual;
+    procedure GetPainterInfo(Sender: TBinBehavior; var pInfo:
+      _HTML_PAINTER_INFO); virtual;
+    procedure DoHitTestPoint(Sender: TBinBehavior; pt: TPoint; var pbHit: BOOL;
+      var plPartID: Longint); virtual;
+    procedure DoLayoutSize(Sender: TBinBehavior; dwFlags: Integer; sizeContent:
+      TSize; var pptTranslateBy: TPoint;
+      var pptTopLeft: TPoint; var psizeProposed: TSize); virtual;
+    procedure DoLayoutPosition(Sender: TBinBehavior; lFlags: Integer; var
+      pptTopLeft: TPoint); virtual;
+    procedure DoLayoutMapSize(Sender: TBinBehavior; psizeIn: PSize; var prcOut:
+      TRect); virtual;
+    procedure DoTextDescent(Sender: TBinBehavior; var plDescent: Integer);
+      virtual;
+
+    procedure DoEventTarget(Sender: TBinBehavior; var ppElement: IHTMLElement);
+      virtual;
+    procedure DoSetCursor(Sender: TBinBehavior; lPartID: Integer); virtual;
+    function DoStringFromPartID(Sender: TBinBehavior; lPartID: Integer; out
+      pbstrPart: WideString): Boolean; virtual;
+    procedure DoOverlayMove(Sender: TBinBehavior; rcDevice: TRect); virtual;
+    procedure DoGetFocusRect(Sender: TBinBehavior; var pRect: TRect); virtual;
+    procedure DoGetSubmitInfo(Sender: TBinBehavior; pSubmitData:
+      IHTMLSubmitData); virtual;
+    procedure DoResetSubmit(Sender: TBinBehavior); virtual;
+  public
+    destructor Destroy; override;
+
+    procedure InvalidatePainterInfo;
+    procedure InvalidateLayoutInfo;
+
+    function Attach(Element: IHTMLElement2): Integer; overload;
+    function Attach(Element: IHTMLElement): Integer; overload;
+  published
+    property Alive: Boolean read fAlive write fAlive;
+    property ZOrder: TPaintZOrder read FZOrder write setZOrder default pzNone;
+    property LayoutMode: TLayoutMode read FLayoutMode write setLayoutMode default lmNone;
+    property PainterProperties: TPainterProperties read FPainterProperties write
+      setPainterProperties;
+    property HandleEvents: Boolean read fHandleEvents write fHandleEvents;
+    property LayoutTextDescent: Integer read FLayoutTextDescent write
+      setLayoutTextDescent;
+    property PaintEventInfo: TPaintEventFlags read fPaintEventInfo write
+      fPaintEventInfo;
+
+    property OnGetName: TBehaviorNameEvent read FOnGetName write FOnGetName;
+    property OnInvoke: TInvokeEvent read FOnInvoke write FOnInvoke;
+    property OnGetProperty: TGetPropertyEvent read FOnGetProperty write FOnGetProperty;
+    property OnPutProperty: TPutPropertyEvent read FOnPutProperty write FOnPutProperty;
+
+
+    property OnCreateBehavior: TCreateBehaviorEvent read FOnCreateBehavior write
+      FOnCreateBehavior;
+
+    property OnGetIdOfName: TGetIdOfNameEvent read FOnGetIdOfName write FOnGetIdOfName;
+
+    property OnInit: TBehaviorNotifyEvent read FOnInit write FOnInit;
+    property OnDetach: TBehaviorNotifyEvent read FOnDetach write FOnDetach;
+    property OnContentReady: TBehaviorNotifyEvent read FOnContentReady write
+      FOnContentReady;
+    property OnDocReady: TBehaviorNotifyEvent read FOnDocReady write
+      FOnDocReady;
+    property OnApplyStyle: TBehaviorNotifyEvent read FOnApplyStyle write
+      FOnApplyStyle;
+    property OnDocContextChange: TBehaviorNotifyEvent read FOnDocContextChange
+      write FOnDocContextChange;
+    property OnContentSave: TBehaviorNotifyEvent read FOnContentSave write
+      FOnContentSave;
+
+    property OnDraw: TPainterDrawEvent read FOnDraw write FOnDraw;
+    property OnDirectDraw: TPainterDirectDrawEvent read FOnDirectDraw write
+      FOnDirectDraw;
+    property OnPainterResize: TPainterResizeEvent read FOnResize write
+      FOnResize;
+    property OnPainterInfo: TPainterInfoEvent read FOnPainterInfo write
+      FOnPainterInfo;
+    property OnPainterHitTest: TPainterHitTestEvent read FOnHitTest write
+      FOnHitTest;
+
+    property OnOverlayMove: TOverlayMoveEvent read FOnOverlayMove write
+      FOnOverlayMove;
+
+    property OnEventTarget: TEventTargetEvent read FOnEventTarget write
+      FOnEventTarget;
+    property OnSetCursor: TSetCursorEvent read FOnSetCursor write FOnSetCursor;
+    property OnStringFromPartID: TStringFromPartIDEvent read FOnStringFromPartID
+      write FOnStringFromPartID;
+
+    property OnLayoutSize: TLayoutSizeEvent read FLayoutSize write FLayoutSize;
+    property OnLayoutPosition: TLayoutPositionEvent read fLayoutPosition write
+      fLayoutPosition;
+    property OnLayoutMapSize: TLayoutMapSizeEvent read fLayoutMapSize write
+      fLayoutMapSize;
+    property OnLayoutTextDescent: TLayoutTextDescentEvent read
+      FOnLayoutTextDescent write FOnLayoutTextDescent;
+
+    property OnGetFocusRect: TGetFocusRectEvent read FOnGetFocusRect write
+      FOnGetFocusRect;
+    property OnGetSubmitInfo: TGetSubmitInfoEvent read FOnGetSubmitInfo write
+      FOnGetSubmitInfo;
+    property OnResetSubmit: TResetSubmitEvent read FOnResetSubmit write
+      FOnResetSubmit;
+  end;
+
+  TBihState = set of 0..7;
+
+  TBinBehavior = class(TInterfacedDispatchObject
+      , IElementBehavior
+      , IHTMLPainter
+      , IHTMLPainterEventInfo
+      , IHTMLPainterOverlay
+      , IElementBehaviorLayout
+      , IElementBehaviorLayout2
+      , IElementBehaviorFocus
+      , IElementBehaviorSubmit
+      )
+  private
+    fController: TEwbBehaviorController;
+    fSite: IElementBehaviorSite;
+    FElement: IHTMLElement;
+    FEventsLink: IHubLink;
+    fState: TBihState;
+    function getSiteOM: IElementBehaviorSiteOM;
+    function getPaintSite: IHTMLPaintSite;
+    function getDefaults: IHTMLElementDefaults;
+    function getSiteLayout: IElementBehaviorSiteLayout;
+    function getSiteLayout2: IElementBehaviorSiteLayout2;
+  protected
+    {IDispatch}
+    function GetIDsOfNames(const IID: TGUID; Names: Pointer;
+      NameCount, LocaleID: Integer; DispIDs: Pointer): HRESULT; override;
+      stdcall;
+    function Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HRESULT;
+      override; stdcall;
+    {IElementBehavior}
+    function Init(pBehaviorSite: IElementBehaviorSite): HRESULT; stdcall;
+    function Notify(lEvent: Integer; var pVar: OleVariant): HRESULT; stdcall;
+    function Detach: HRESULT; stdcall;
+    {IHTMLPainter}
+    function IHTMLPainter.Draw = PainterDraw;
+    function PainterDraw(rcBounds, rcUpdate: TRect; lDrawFlags: Integer;
+      hdc: hdc; pvDrawObject: Pointer): HRESULT; stdcall;
+    function IHTMLPainter.onresize = PainterResize;
+    function PainterResize(size: TSize): HRESULT; stdcall;
+    function IHTMLPainter.GetPainterInfo = PainterInfo;
+    function PainterInfo(out pInfo: _HTML_PAINTER_INFO): HRESULT; stdcall;
+    function IHTMLPainter.HitTestPoint = PainterHitTestPoint;
+    function PainterHitTestPoint(pt: TPoint; out pbHit: BOOL; out plPartID:
+      Longint): HRESULT; stdcall;
+    {IHTMLPainterEventInfo}
+    function GetEventInfoFlags(out plEventInfoFlags: Integer): HRESULT; stdcall;
+    function GetEventTarget(var ppElement: IHTMLElement): HRESULT; stdcall;
+    function SetCursor(lPartID: Integer): HRESULT; stdcall;
+    function StringFromPartID(lPartID: Integer; out pbstrPart: WideString):
+      HRESULT; stdcall;
+    {IHTMLPainterOverlay}
+    function IHTMLPainterOverlay.onmove = onOverlayMove;
+    function onOverlayMove(rcDevice: TRect): HRESULT; stdcall;
+    {IElementBehaviorLayout}
+    function GetSize(dwFlags: Integer; sizeContent: TSize; var pptTranslateBy:
+      TPoint;
+      var pptTopLeft: TPoint; var psizeProposed: TSize): HRESULT; stdcall;
+    function GetLayoutInfo(out plLayoutInfo: Integer): HRESULT; stdcall;
+    function GetPosition(lFlags: Integer; var pptTopLeft: TPoint): HRESULT;
+      stdcall;
+    function MapSize(psizeIn: PSize; out prcOut: TRect): HRESULT; stdcall;
+    {IElementBehaviorLayout2}
+    function GetTextDescent(out plDescent: Integer): HRESULT; stdcall;
+    {IElementBehaviorFocus}
+    function GetFocusRect(var pRect: TRect): HRESULT; stdcall;
+    {IElementBehaviorSubmit}
+    function GetSubmitInfo(pSubmitData: IHTMLSubmitData): HRESULT; stdcall;
+    function IElementBehaviorSubmit.reset = ResetSubmit;
+    function ResetSubmit: HRESULT; stdcall;
+  protected
+    function getBoolProp(const Index: Integer): Boolean;
+    procedure SetBoolProp(const Index: Integer; const Value: Boolean);
+  public
+    constructor Create(aController: TEwbBehaviorController);
+    destructor Destroy; override;
+
+    procedure ConnectToEvents;
+    procedure DisconnectFromEvents;
+    property Controller: TEwbBehaviorController read fController;
+    property Site: IElementBehaviorSite read fSite;
+    property SiteOM: IElementBehaviorSiteOM read getSiteOM;
+    property ContextReady: Boolean index 0 read getBoolProp;
+    property DocumentReady: Boolean index 1 read getBoolProp;
+    property Element: IHTMLElement read FElement;
+    property PaintSite: IHTMLPaintSite read getPaintSite;
+    property Defaults: IHTMLElementDefaults read getDefaults;
+    property SiteLayout: IElementBehaviorSiteLayout read getSiteLayout;
+    property SiteLayout2: IElementBehaviorSiteLayout2 read getSiteLayout2;
+  end;
+
+implementation
+uses SysUtils;
+
+const
+
+  _zorders: array[TPaintZOrder] of Integer = (
+    HTMLPAINT_ZORDER_NONE,
+    HTMLPAINT_ZORDER_REPLACE_ALL,
+    HTMLPAINT_ZORDER_REPLACE_CONTENT,
+    HTMLPAINT_ZORDER_REPLACE_BACKGROUND,
+    HTMLPAINT_ZORDER_BELOW_CONTENT,
+    HTMLPAINT_ZORDER_BELOW_FLOW,
+    HTMLPAINT_ZORDER_ABOVE_FLOW,
+    HTMLPAINT_ZORDER_ABOVE_CONTENT,
+    HTMLPAINT_ZORDER_WINDOW_TOP
+    );
+
+  _pproperties: array[TPainterProperty] of Integer = (
+    HTMLPAINTER_OPAQUE,
+    HTMLPAINTER_TRANSPARENT,
+    //NOIMPL   HTMLPAINTER_ALPHA,
+    //NOIMPL   HTMLPAINTER_COMPLEX,
+    HTMLPAINTER_OVERLAY,
+    HTMLPAINTER_HITTEST,
+    HTMLPAINTER_SURFACE,
+    HTMLPAINTER_3DSURFACE,
+    //NOIMPL   HTMLPAINTER_NOBAND,
+    HTMLPAINTER_NODC,
+    HTMLPAINTER_NOPHYSICALCLIP,
+    HTMLPAINTER_NOSAVEDC,
+    HTMLPAINTER_SUPPORTS_XFORM,
+    HTMLPAINTER_EXPAND,
+    HTMLPAINTER_NOSCROLLBITS
+    );
+
+  _layouts: array[TLayoutMode] of Integer = (
+    0,
+    BEHAVIORLAYOUTINFO_FULLDELEGATION,
+    BEHAVIORLAYOUTINFO_MODIFYNATURAL,
+    BEHAVIORLAYOUTINFO_MAPSIZE
+    );
+
+  { TEwbBehaviorFactory }
+
+function TEwbBehaviorFactory.CreateWithImplementation(
+  pNamespace: IElementNamespace;
+  const bstrImplementation: WideString): HRESULT;
+begin
+  Result := S_OK;
+  if Assigned(FOnCreateNSWithImpl) then
+    FOnCreateNSWithImpl(Self, pNamespace, bstrImplementation)
+  else if Assigned(FOnCreateNS) then
+    FOnCreateNS(Self, pNamespace);
+end;
+
+function TEwbBehaviorFactory.FactoryCreate(pNamespace: IElementNamespace):
+  HRESULT;
+begin
+  Result := S_OK;
+  if Assigned(FOnCreateNS) then
+    FOnCreateNS(Self, pNamespace);
+end;
+
+function TEwbBehaviorFactory.FindBehavior(const bstrBehavior,
+  bstrBehaviorUrl: WideString; const pSite: IElementBehaviorSite;
+  out ppBehavior: IElementBehavior): HRESULT;
+begin
+  ppBehavior := nil;
+  if Assigned(FOnFindBehavior) then
+    FOnFindBehavior(Self, bstrBehavior, bstrBehaviorUrl, pSite, ppBehavior);
+  if ppBehavior = nil then
+    Result := E_NOTIMPL
+  else
+    Result := S_OK;
+end;
+
+function TEwbBehaviorFactory.Resolve(const bstrNamespace, bstrTagName,
+  bstrAttrs: WideString; pNamespace: IElementNamespace): HRESULT;
+begin
+  Result := S_OK;
+  if Assigned(FOnResolveNS) then
+    FOnResolveNS(Self, bstrNamespace, bstrTagName, bstrAttrs, pNamespace);
+end;
+
+{ TBinBehavior }
+
+constructor TBinBehavior.Create(aController: TEwbBehaviorController);
+begin
+  inherited Create;
+  aController.Add(Self);
+end;
+
+destructor TBinBehavior.Destroy;
+begin
+  FController.Remove(Self);
+  inherited;
+end;
+
+function TBinBehavior.getBoolProp(const Index: Integer): Boolean;
+begin
+  Result := Index in fState;
+end;
+
+procedure TBinBehavior.SetBoolProp(const Index: Integer;
+  const Value: Boolean);
+begin
+  if Value then
+    Include(fState, Index)
+  else
+    Exclude(fState, Index);
+end;
+
+function TBinBehavior.getSiteOM: IElementBehaviorSiteOM;
+begin
+  if not Supports(fSite, IElementBehaviorSiteOM, Result) then
+    Result := nil;
+end;
+
+function TBinBehavior.getPaintSite: IHTMLPaintSite;
+begin
+  if not Supports(fSite, IHTMLPaintSite, Result) then
+    Result := nil;
+end;
+
+function TBinBehavior.getDefaults: IHTMLElementDefaults;
+var
+  OM2: IElementBehaviorSiteOM2;
+begin
+  if Supports(fSite, IElementBehaviorSiteOM2, OM2) then
+    OM2.GetDefaults(Result)
+  else
+    Result := nil;
+end;
+
+function TBinBehavior.getSiteLayout: IElementBehaviorSiteLayout;
+begin
+  if not Supports(fSite, IElementBehaviorSiteLayout, Result) then
+    Result := nil;
+end;
+
+function TBinBehavior.getSiteLayout2: IElementBehaviorSiteLayout2;
+begin
+  if not Supports(fSite, IElementBehaviorSiteLayout2, Result) then
+    Result := nil;
+end;
+
+function TBinBehavior.Detach: HRESULT;
+begin
+  FController.DoDetach(Self);
+  DisconnectFromEvents;
+  FElement := nil;
+  SetBoolProp(1, False);
+  fSite := nil;
+  SetBoolProp(0, False);
+  Result := S_OK;
+end;
+
+procedure TBinBehavior.ConnectToEvents;
+begin
+  if FEventsLink = nil then
+    FEventsLink := FController.Connect2(Element, Self);
+end;
+
+procedure TBinBehavior.DisconnectFromEvents;
+begin
+  if FEventsLink <> nil then
+  try
+    FEventsLink.Disconnect;
+  finally
+    FEventsLink := nil;
+  end;
+end;
+
+function TBinBehavior.Init(pBehaviorSite: IElementBehaviorSite): HRESULT;
+begin
+  fSite := pBehaviorSite;
+  FController.DoInit(Self);
+  Result := S_OK;
+end;
+
+function TBinBehavior.Notify(lEvent: Integer;
+  var pVar: OleVariant): HRESULT;
+begin
+  case lEvent of
+    BEHAVIOREVENT_CONTENTREADY:
+      begin
+        SetBoolProp(0, True);
+        Site.GetElement(FElement);
+        if FController.HandleEvents then
+          Self.ConnectToEvents;
+      end;
+    BEHAVIOREVENT_DOCUMENTREADY:
+      SetBoolProp(1, True);
+  end;
+  FController.DoNotify(Self, lEvent);
+  Result := S_OK;
+end;
+
+function TBinBehavior.PainterDraw(rcBounds, rcUpdate: TRect;
+  lDrawFlags: Integer; hdc: hdc; pvDrawObject: Pointer): HRESULT;
+var
+  Canvas: TCanvas;
+begin
+  Result := S_OK;
+  if hdc <> 0 then
+  begin
+    Canvas := TCanvas.Create;
+    Canvas.Handle := hdc;
+  end else if pvDrawObject <> nil then
+  begin
+    FController.DoDirectDraw(Self, rcBounds, rcUpdate, lDrawFlags,
+      pvDrawObject);
+    Exit;
+  end else
+    Canvas := nil;
+  try
+    FController.DoDraw(Self, rcBounds, rcUpdate, lDrawFlags, Canvas);
+  finally
+    Canvas.Free;
+  end;
+end;
+
+function TBinBehavior.PainterHitTestPoint(pt: TPoint; out pbHit: BOOL;
+  out plPartID: Integer): HRESULT;
+begin
+  pbHit := False;
+  plPartID := 0;
+  FController.DoHitTestPoint(Self, pt, pbHit, plPartID);
+  Result := S_OK;
+end;
+
+function TBinBehavior.PainterInfo(out pInfo: _HTML_PAINTER_INFO): HRESULT;
+begin
+  pInfo.lZOrder := _zorders[FController.ZOrder];
+  pInfo.lFlags := FController.FPainterFlags;
+  FController.GetPainterInfo(Self, pInfo);
+  Result := S_OK;
+end;
+
+function TBinBehavior.PainterResize(size: TSize): HRESULT;
+begin
+  FController.DoPainterResize(Self, size);
+  Result := S_OK;
+end;
+
+function TBinBehavior.GetLayoutInfo(out plLayoutInfo: Integer): HRESULT;
+begin
+  plLayoutInfo := _layouts[FController.LayoutMode];
+  Result := S_OK;
+end;
+
+function TBinBehavior.GetPosition(lFlags: Integer;
+  var pptTopLeft: TPoint): HRESULT;
+begin
+  FController.DoLayoutPosition(Self, lFlags, pptTopLeft);
+  Result := S_OK;
+end;
+
+function TBinBehavior.GetSize(dwFlags: Integer; sizeContent: TSize;
+  var pptTranslateBy, pptTopLeft: TPoint;
+  var psizeProposed: TSize): HRESULT;
+begin
+  FController.DoLayoutSize(Self, dwFlags, sizeContent,
+    pptTranslateBy, pptTopLeft, psizeProposed);
+  Result := S_OK;
+end;
+
+function TBinBehavior.MapSize(psizeIn: PSize; out prcOut: TRect): HRESULT;
+begin
+  FController.DoLayoutMapSize(Self, psizeIn, prcOut);
+  Result := S_OK;
+end;
+
+function TBinBehavior.GetTextDescent(out plDescent: Integer): HRESULT;
+begin
+  FController.DoTextDescent(Self, plDescent);
+  Result := S_OK;
+end;
+
+function TBinBehavior.GetEventInfoFlags(
+  out plEventInfoFlags: Integer): HRESULT;
+begin
+  plEventInfoFlags := 0;
+  with Self.FController do
+  begin
+    if pfTarget in PaintEventInfo then
+      plEventInfoFlags := HTMLPAINT_EVENT_TARGET;
+    if pfSetCursor in PaintEventInfo then
+      plEventInfoFlags := plEventInfoFlags or HTMLPAINT_EVENT_SETCURSOR;
+  end;
+  Result := S_OK;
+end;
+
+function TBinBehavior.GetEventTarget(var ppElement: IHTMLElement): HRESULT;
+begin
+  FController.DoEventTarget(Self, ppElement);
+  Result := S_OK;
+end;
+
+function TBinBehavior.SetCursor(lPartID: Integer): HRESULT;
+begin
+  FController.DoSetCursor(Self, lPartID);
+  Result := S_OK;
+end;
+
+function TBinBehavior.StringFromPartID(lPartID: Integer;
+  out pbstrPart: WideString): HRESULT;
+begin
+  if FController.DoStringFromPartID(Self, lPartID, pbstrPart) then
+    Result := S_OK
+  else
+    Result := E_NOTIMPL;
+end;
+
+function TBinBehavior.onOverlayMove(rcDevice: TRect): HRESULT;
+begin
+  FController.DoOverlayMove(Self, rcDevice);
+  Result := S_OK;
+end;
+
+function TBinBehavior.GetFocusRect(var pRect: TRect): HRESULT;
+begin
+  FController.DoGetFocusRect(Self, pRect);
+  Result := S_OK;
+end;
+
+function TBinBehavior.GetSubmitInfo(
+  pSubmitData: IHTMLSubmitData): HRESULT;
+begin
+  FController.DoGetSubmitInfo(Self, pSubmitData);
+  Result := S_OK;
+end;
+
+function TBinBehavior.ResetSubmit: HRESULT;
+begin
+  FController.DoResetSubmit(Self);
+  Result := S_OK;
+end;
+
+function TBinBehavior.GetIDsOfNames(const IID: TGUID; Names: Pointer;
+  NameCount, LocaleID: Integer; DispIDs: Pointer): HRESULT;
+var
+  I: Integer;
+  pname: WideString;
+  id: Integer;
+begin
+  pname := PWideChar(Names^);
+  for I := 0 to NameCount - 1 do
+    PDispIDList(DispIDs)^[i] := -1;
+  id := -1;
+  FController.DoGetIdOfName(Self, pname, id);
+  if id <> -1 then
+  begin
+    PDispIDList(DispIDs)^[0] := TDispID(id);
+    Result := S_OK
+  end else Result := E_NOTIMPL;
+end;
+
+function TBinBehavior.Invoke(DispID: Integer; const IID: TGUID;
+  LocaleID: Integer; Flags: Word; var Params; VarResult, ExcepInfo,
+  ArgErr: Pointer): HRESULT;
+begin
+  try
+    Result := DISP_E_MEMBERNOTFOUND;
+    if integer(DispID) <> -1 then
+      if Flags = DISPATCH_METHOD then
+        FController.DoInvoke(Self, DispID, POleVariant(VarResult),
+          TDispParams(Params), Result)
+      else
+        case Flags and not DISPATCH_METHOD of
+          DISPATCH_PROPERTYGET:
+            FController.DoGetProperty(Self, DispID, POleVariant(VarResult),
+              TDispParams(Params), Result);
+
+          DISPATCH_PROPERTYPUT,
+            DISPATCH_PROPERTYPUTREF,
+            DISPATCH_PROPERTYPUT + DISPATCH_PROPERTYPUTREF:
+            FController.DoPutProperty(Self, DispID, TDispParams(Params), Result);
+        end;
+  except
+    on E: Exception do
+      with PExcepInfo(ExcepInfo)^ do
+      begin
+        Result := DISP_E_EXCEPTION;
+        wCode := 9999;
+        bstrDescription := E.Message;
+        bstrSource := E.ClassName;
+        dwHelpContext := E.HelpContext;
+      end;
+  end;
+end;
+
+{ TEwbBehaviorController }
+
+destructor TEwbBehaviorController.Destroy;
+begin
+  FreeAndNil(FBehaviors);
+  inherited;
+end;
+
+procedure TEwbBehaviorController.Add(aBehavior: TBinBehavior);
+begin
+  aBehavior.fController := Self;
+  if Alive then
+  begin
+    if FBehaviors = nil then
+      FBehaviors := TList.Create;
+    FBehaviors.Add(aBehavior);
+  end;
+end;
+
+procedure TEwbBehaviorController.Remove(aBehavior: TBinBehavior);
+begin
+  aBehavior.fController := nil;
+  if FBehaviors <> nil then
+    FBehaviors.Remove(aBehavior);
+end;
+
+procedure TEwbBehaviorController.InvalidatePainterInfo;
+var I: Integer;
+begin
+  if FBehaviors <> nil then
+    for I := 0 to FBehaviors.Count - 1 do
+      with TBinBehavior(FBehaviors[I]) do
+        PaintSite.InvalidatePainterInfo;
+end;
+
+procedure TEwbBehaviorController.InvalidateLayoutInfo;
+var I: Integer;
+begin
+  if FBehaviors <> nil then
+    for I := 0 to FBehaviors.Count - 1 do
+      with TBinBehavior(FBehaviors[I]) do
+        SiteLayout.InvalidateLayoutInfo;
+end;
+
+procedure TEwbBehaviorController.setZOrder(const Value: TPaintZOrder);
+begin
+  if FZOrder <> Value then
+  begin
+    FZOrder := Value;
+    InvalidatePainterInfo;
+  end;
+end;
+
+procedure TEwbBehaviorController.setPainterProperties(
+  const Value: TPainterProperties);
+var
+  lFlags: Integer;
+  I: TPainterProperty;
+begin
+  lFlags := 0;
+  FPainterProperties := Value;
+  for I := Low(TPainterProperty) to High(TPainterProperty) do
+    if I in Value then
+      lFlags := lFlags or _pproperties[I];
+  FPainterFlags := lFlags;
+  InvalidatePainterInfo;
+end;
+
+procedure TEwbBehaviorController.setLayoutMode(const Value: TLayoutMode);
+begin
+  if FLayoutMode <> Value then
+  begin
+    FLayoutMode := Value;
+    InvalidateLayoutInfo;
+  end;
+end;
+
+procedure TEwbBehaviorController.setLayoutTextDescent(
+  const Value: Integer);
+begin
+  if FLayoutTextDescent <> Value then
+  begin
+    FLayoutTextDescent := Value;
+    InvalidateLayoutInfo;
+  end;
+end;
+
+function TEwbBehaviorController.FindBehavior(const bstrBehavior,
+  bstrBehaviorUrl: WideString; const pSite: IElementBehaviorSite;
+  out ppBehavior: IElementBehavior): HRESULT;
+begin
+  if Assigned(FOnCreateBehavior) then
+    ppBehavior := FOnCreateBehavior(Self, bstrBehavior, bstrBehaviorUrl, pSite);
+  if ppBehavior = nil then
+    ppBehavior := TBinBehavior.Create(Self) as IElementBehavior;
+  Result := S_OK;
+end;
+
+function TEwbBehaviorController.Attach(Element: IHTMLElement2): Integer;
+var
+  aName: Widestring;
+{$IFDEF DELPHI5_UP}
+  SelfIntf: IElementBehaviorFactory;
+{$ENDIF}
+begin
+  aName := '';
+  if Assigned(FOnGetName) then
+    FOnGetName(Self, Element, aName);
+{$IFDEF DELPHI5_UP}
+  GetInterface(IElementBehaviorFactory, SelfIntf);
+  Result := Element.addBehavior(aName, SelfIntf);
+{$ELSE}
+  Result := Element.addBehavior(aName, Self as IElementBehaviorFactory);
+{$ENDIF}
+end;
+
+function TEwbBehaviorController.Attach(Element: IHTMLElement): Integer;
+var
+  E: IHTMLElement2;
+begin
+  if Supports(Element, IHTMLElement2, E) then
+    Result := Attach(E)
+  else
+    Result := 0;
+end;
+
+procedure TEwbBehaviorController.DoInit(Sender: TBinBehavior);
+begin
+  if Assigned(FOnInit) then
+    FOnInit(Sender);
+end;
+
+procedure TEwbBehaviorController.DoDetach(Sender: TBinBehavior);
+begin
+  if Assigned(FOnDetach) then
+    FOnDetach(Sender);
+end;
+
+procedure TEwbBehaviorController.DoDraw(Sender: TBinBehavior; rcBounds,
+  rcUpdate: TRect; lDrawFlags: Integer; Canvas: TCanvas);
+begin
+  if Assigned(FOnDraw) then
+    FOnDraw(Sender, rcBounds, rcUpdate, lDrawFlags, Canvas);
+end;
+
+procedure TEwbBehaviorController.DoDirectDraw(Sender: TBinBehavior;
+  rcBounds, rcUpdate: TRect; lDrawFlags: Integer; pvDrawObject: Pointer);
+begin
+  if Assigned(FOnDirectDraw) then
+    FOnDirectDraw(Sender, rcBounds, rcUpdate, lDrawFlags, pvDrawObject);
+end;
+
+procedure TEwbBehaviorController.DoHitTestPoint(Sender: TBinBehavior;
+  pt: TPoint; var pbHit: BOOL; var plPartID: Integer);
+begin
+  if Assigned(FOnHitTest) then
+    FOnHitTest(Sender, pt, pbHit, plPartID);
+end;
+
+procedure TEwbBehaviorController.DoPainterResize(Sender: TBinBehavior;
+  Size: TSize);
+begin
+  if Assigned(FOnResize) then
+    FOnResize(Sender, size);
+end;
+
+procedure TEwbBehaviorController.GetPainterInfo(Sender: TBinBehavior;
+  var pInfo: _HTML_PAINTER_INFO);
+begin
+  if Assigned(FOnPainterInfo) then
+    FOnPainterInfo(Sender, pInfo);
+end;
+
+procedure TEwbBehaviorController.DoNotify(Sender: TBinBehavior;
+  lEvent: Integer);
+begin
+  case lEvent of
+    BEHAVIOREVENT_CONTENTREADY:
+      if Assigned(FOnContentReady) then
+        FOnContentReady(Sender);
+    BEHAVIOREVENT_DOCUMENTREADY:
+      if Assigned(FOnDocReady) then
+        FOnDocReady(Sender);
+    BEHAVIOREVENT_DOCUMENTCONTEXTCHANGE:
+      if Assigned(FOnDocContextChange) then
+        FOnDocContextChange(Sender);
+    BEHAVIOREVENT_CONTENTSAVE:
+      if Assigned(FOnContentSave) then
+        FOnContentSave(Sender);
+    BEHAVIOREVENT_APPLYSTYLE:
+      if Assigned(FOnApplyStyle) then
+        FOnApplyStyle(Sender);
+  end;
+end;
+
+procedure TEwbBehaviorController.DoLayoutMapSize(Sender: TBinBehavior;
+  psizeIn: PSize; var prcOut: TRect);
+begin
+  if Assigned(fLayoutMapSize) then
+    fLayoutMapSize(Sender, psizeIn, prcOut);
+end;
+
+procedure TEwbBehaviorController.DoLayoutPosition(Sender: TBinBehavior;
+  lFlags: Integer; var pptTopLeft: TPoint);
+begin
+  if Assigned(fLayoutPosition) then
+    fLayoutPosition(Sender, lFlags, pptTopLeft);
+end;
+
+procedure TEwbBehaviorController.DoLayoutSize(Sender: TBinBehavior;
+  dwFlags: Integer; sizeContent: TSize; var pptTranslateBy,
+  pptTopLeft: TPoint; var psizeProposed: TSize);
+begin
+  if Assigned(FLayoutSize) then
+    FLayoutSize(Sender, dwFlags, sizeContent, pptTranslateBy, pptTopLeft,
+      psizeProposed);
+end;
+
+procedure TEwbBehaviorController.DoTextDescent(Sender: TBinBehavior;
+  var plDescent: Integer);
+begin
+  plDescent := Self.LayoutTextDescent;
+  if Assigned(FOnLayoutTextDescent) then
+    FOnLayoutTextDescent(Sender, plDescent);
+end;
+
+procedure TEwbBehaviorController.DoEventTarget(Sender: TBinBehavior;
+  var ppElement: IHTMLElement);
+begin
+  if Assigned(FOnEventTarget) then
+    FOnEventTarget(Sender, ppElement);
+end;
+
+procedure TEwbBehaviorController.DoSetCursor(Sender: TBinBehavior;
+  lPartID: Integer);
+begin
+  if Assigned(FOnSetCursor) then
+    FOnSetCursor(Sender, lPartID);
+end;
+
+function TEwbBehaviorController.DoStringFromPartID(Sender: TBinBehavior;
+  lPartID: Integer; out pbstrPart: WideString): Boolean;
+begin
+  Result := Assigned(FOnStringFromPartID);
+  if Result then
+    FOnStringFromPartID(Sender, lPartID, pbstrPart);
+end;
+
+procedure TEwbBehaviorController.DoOverlayMove(Sender: TBinBehavior;
+  rcDevice: TRect);
+begin
+  if Assigned(FOnOverlayMove) then
+    FOnOverlayMove(Sender, rcDevice);
+end;
+
+procedure TEwbBehaviorController.DoGetFocusRect(Sender: TBinBehavior;
+  var pRect: TRect);
+begin
+  if Assigned(FOnGetFocusRect) then
+    FOnGetFocusRect(Sender, pRect);
+end;
+
+procedure TEwbBehaviorController.DoGetSubmitInfo(Sender: TBinBehavior;
+  pSubmitData: IHTMLSubmitData);
+begin
+  if Assigned(FOnGetSubmitInfo) then
+    FOnGetSubmitInfo(Sender, pSubmitData);
+end;
+
+procedure TEwbBehaviorController.DoResetSubmit(Sender: TBinBehavior);
+begin
+  if Assigned(FOnResetSubmit) then
+    FOnResetSubmit(Sender);
+end;
+
+procedure TEwbBehaviorController.DoGetIdOfName(Sender: TBinBehavior;
+  const name: widestring; var id: Integer);
+begin
+  if Assigned(FOnGetIdOfName) then
+    FOnGetIdOfName(Sender, name, id);
+end;
+
+procedure TEwbBehaviorController.DoGetProperty(Sender: TBinBehavior;
+  DispID: Integer; VarResult: POleVariant; Params: TDispParams;
+  var Rezult: HRESULT);
+begin
+  if Assigned(FOnGetProperty) then
+    FOnGetProperty(Sender, DispID, VarResult, Params, Rezult);
+end;
+
+procedure TEwbBehaviorController.DoInvoke(Sender: TBinBehavior;
+  DispID: Integer; VarResult: POleVariant; Params: TDispParams;
+  var Rezult: HRESULT);
+begin
+  if Assigned(FOnInvoke) then
+    FOnInvoke(Sender, DispID, VarResult, Params, Rezult);
+end;
+
+procedure TEwbBehaviorController.DoPutProperty(Sender: TBinBehavior;
+  DispID: Integer; Params: TDispParams; var Rezult: HRESULT);
+begin
+  if Assigned(FOnPutProperty) then
+    FOnPutProperty(Sender, DispID, Params, Rezult);
+end;
+
+end.
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbClasses.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbClasses.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbClasses.pas	(revision 541)
@@ -0,0 +1,146 @@
+//*************************************************************
+//                         EwbClasses                         *
+//                                                            *
+//                      Freeware unit                         *
+//                   For Delphi 5 - 2009                      *
+//                            by                              *
+//                     Serge Voloshenyuk                      *
+//      Developing Team:                                      *
+//          Serge Voloshenyuk (SergeV@bsalsa.com)             *
+//          Eran Bodankin (bsalsa) -(bsalsa@gmail.com)       *
+//                                                            *
+//       Documentation and updated versions:                  *
+//                                                            *
+//               http://www.bsalsa.com                        *
+//*************************************************************
+{LICENSE:
+THIS SOFTWARE IS PROVIDED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND,
+EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE APPLIED
+WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
+YOU ASSUME THE ENTIRE RISK AS TO THE ACCURACY AND THE USE OF THE SOFTWARE
+AND ALL OTHER RISK ARISING OUT OF THE USE OR PERFORMANCE OF THIS SOFTWARE
+AND DOCUMENTATION. BSALSA PRODUCTIONS DOES NOT WARRANT THAT THE SOFTWARE IS ERROR-FREE
+OR WILL OPERATE WITHOUT INTERRUPTION. THE SOFTWARE IS NOT DESIGNED, INTENDED
+OR LICENSED FOR USE IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE CONTROLS,
+INCLUDING WITHOUT LIMITATION, THE DESIGN, CONSTRUCTION, MAINTENANCE OR
+OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS,
+AIR TRAFFIC CONTROL, AND LIFE SUPPORT OR WEAPONS SYSTEMS. BSALSA PRODUCTIONS SPECIFICALLY
+DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR SUCH PURPOSE.
+
+You may use/ change/ modify the component under 3 conditions:
+1. In your website, add a link to "http://www.bsalsa.com"
+2. In your application, add credits to "Embedded Web Browser"
+3. Mail me  (bsalsa@gmail.com) any code change in the unit  for the benefit
+   of the other users.
+4. Please, consider donation in our web site!
+{*******************************************************************************}
+//$Id: EwbClasses.pas,v 1.1.2.1 2006/11/29 22:13:01 sergev Exp $
+
+unit EwbClasses;
+
+interface
+
+{$I EWB.inc}
+
+uses
+  Windows;
+
+type
+  IInterfaceObjectReference = interface
+    ['{C0D28425-8410-45F6-BD60-8AE66782E545}']
+    function GetObject: TObject;
+  end;
+
+  TInterfacedDispatchObject = class(TObject, IUnknown,
+      IInterfaceObjectReference, IDispatch)
+  protected
+    {IInterface}
+    FRefCount: Integer;
+    function QueryInterface(const IID: TGUID; out Obj): HResult;
+{$IFDEF RESEARCH_MODE} virtual; {$ENDIF} stdcall;
+    function _AddRef: Integer; stdcall;
+    function _Release: Integer; stdcall;
+    {IInterfaceObjectReference}
+    function GetObject: TObject;
+    {IDispatch}
+    function GetTypeInfoCount(out Count: Integer): HResult; stdcall;
+    function GetTypeInfo(Index, LocaleID: Integer; out TypeInfo): HResult; stdcall;
+    function GetIDsOfNames(const IID: TGUID; Names: Pointer;
+      NameCount, LocaleID: Integer; DispIDs: Pointer): HResult; virtual; stdcall;
+    function Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+      virtual; stdcall;
+  public
+    procedure AfterConstruction; override;
+    class function NewInstance: TObject; override;
+    property RefCount: Integer read FRefCount;
+  end;
+
+implementation
+
+{ TInterfacedDispatchObject }
+
+class function TInterfacedDispatchObject.NewInstance: TObject;
+begin
+  Result := inherited NewInstance;
+  TInterfacedDispatchObject(Result).FRefCount := 1;
+end;
+
+procedure TInterfacedDispatchObject.AfterConstruction;
+begin
+  InterlockedDecrement(FRefCount);
+end;
+
+function TInterfacedDispatchObject._AddRef: Integer;
+begin
+  Result := InterlockedIncrement(FRefCount);
+end;
+
+function TInterfacedDispatchObject._Release: Integer;
+begin
+  Result := InterlockedDecrement(FRefCount);
+  if Result = 0 then
+    Destroy;
+end;
+
+function TInterfacedDispatchObject.QueryInterface(const IID: TGUID;
+  out Obj): HResult;
+begin
+  if GetInterface(IID, Obj) then
+    Result := 0
+  else
+    Result := E_NOINTERFACE;
+end;
+
+function TInterfacedDispatchObject.GetIDsOfNames(const IID: TGUID;
+  Names: Pointer; NameCount, LocaleID: Integer; DispIDs: Pointer): HResult;
+begin
+  Result := DISP_E_UNKNOWNNAME;
+end;
+
+function TInterfacedDispatchObject.GetObject: TObject;
+begin
+  Result := Self;
+end;
+
+function TInterfacedDispatchObject.GetTypeInfo(Index, LocaleID: Integer;
+  out TypeInfo): HResult;
+begin
+  Result := DISP_E_BADINDEX;
+end;
+
+function TInterfacedDispatchObject.GetTypeInfoCount(
+  out Count: Integer): HResult;
+begin
+  Count := 0;
+  Result := S_OK;
+end;
+
+function TInterfacedDispatchObject.Invoke(DispID: Integer;
+  const IID: TGUID; LocaleID: Integer; Flags: Word; var Params; VarResult,
+  ExcepInfo, ArgErr: Pointer): HResult;
+begin
+  Result := S_OK;
+end;
+
+end.
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbControlComponent.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbControlComponent.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbControlComponent.pas	(revision 541)
@@ -0,0 +1,348 @@
+//***********************************************************
+//                       EwbControl component               *
+//                                                          *
+//                       For Delphi 5 to 2009               *
+//                     Freeware Component                   *
+//                            by                            *
+//                          (smot)                          *
+//                                                          *
+//  Documentation and updated versions:                     *
+//                                                          *
+//               http://www.bsalsa.com                      *
+//***********************************************************
+{*******************************************************************************}
+{LICENSE:
+THIS SOFTWARE IS PROVIDED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND,
+EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE APPLIED
+WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
+YOU ASSUME THE ENTIRE RISK AS TO THE ACCURACY AND THE USE OF THE SOFTWARE
+AND ALL OTHER RISK ARISING OUT OF THE USE OR PERFORMANCE OF THIS SOFTWARE
+AND DOCUMENTATION. BSALSA PRODUCTIONS DOES NOT WARRANT THAT THE SOFTWARE IS ERROR-FREE
+OR WILL OPERATE WITHOUT INTERRUPTION. THE SOFTWARE IS NOT DESIGNED, INTENDED
+OR LICENSED FOR USE IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE CONTROLS,
+INCLUDING WITHOUT LIMITATION, THE DESIGN, CONSTRUCTION, MAINTENANCE OR
+OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS,
+AIR TRAFFIC CONTROL, AND LIFE SUPPORT OR WEAPONS SYSTEMS. BSALSA PRODUCTIONS SPECIFICALLY
+DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR SUCH PURPOSE.
+
+You may use, change or modify the component under 4 conditions:
+1. In your website, add a link to "http://www.bsalsa.com"
+2. In your application, add credits to "Embedded Web Browser"
+3. Mail me  (bsalsa@gmail.com) any code change in the unit
+   for the benefit of the other users.
+4. Please, consider donation in our web site!
+{*******************************************************************************}
+
+unit EwbControlComponent;
+
+interface
+
+{$I EWB.inc}
+
+uses
+  Windows, Messages, SysUtils, Classes, Forms, EWBMouseHook;
+
+{============================================================================}
+// Mouse WheelFix
+{============================================================================}
+type
+  TMouseWheelFix = class(TPersistent)
+  private
+    FActive: Boolean;
+    FActiveFormOnly: Boolean;
+    FEWBMouseHook: TEWBMouseHook;
+    FDesignMode: Boolean;
+    procedure SetActive(const Value: Boolean);
+    procedure SetActiveFormOnly(const Value: Boolean);
+  public
+    OnMouseWheel: TMouseWheelEvent;
+  published
+    property Active: Boolean read FActive write SetActive default True;
+    property ActiveFormOnly: Boolean read FActiveFormOnly write SetActiveFormOnly
+      default False;
+  end;
+
+  {============================================================================}
+  // FocusControl
+  {============================================================================}
+type
+  TFocusControl = class(TPersistent)
+  private
+    FActive: Boolean;
+    FDesignMode: Boolean;
+    procedure SetActive(const Value: Boolean);
+  published
+    property Active: Boolean read FActive write SetActive default True;
+  end;
+
+  {============================================================================}
+  // OnMessage Handler
+  {============================================================================}
+{
+type
+  TMessageHandler = class(TPersistent)
+  private
+    FActive: Boolean;
+    FDesignMode: Boolean;
+    FOnMessage: TMessageEvent;
+    procedure SetActive(const Value: Boolean);
+  published
+    property Active: Boolean read FActive write SetActive default True;
+  end;
+}
+
+{$IFDEF Enable_InternetFeatures}
+  {============================================================================}
+  { Feature Controls }
+  { http://msdn.microsoft.com/en-us/library/ms537169(VS.85).aspx }
+  { TInternetFeatures = (
+    FEATURE_OBJECT_CACHING
+    FEATURE_ZONE_ELEVATION
+    FEATURE_MIME_HANDLING
+    FEATURE_MIME_SNIFFING
+    FEATURE_WINDOW_RESTRICTIONS
+    FEATURE_WEBOC_POPUPMANAGEMENT
+    FEATURE_BEHAVIORS
+    FEATURE_DISABLE_MK_PROTOCOL
+    FEATURE_LOCALMACHINE_LOCKDOWN
+    FEATURE_SECURITYBAND
+    FEATURE_RESTRICT_ACTIVEXINSTALL
+    FEATURE_VALIDATE_NAVIGATE_URL
+    FEATURE_RESTRICT_FILEDOWNLOAD
+    FEATURE_ADDON_MANAGEMENT
+    FEATURE_PROTOCOL_LOCKDOWN
+    FEATURE_HTTP_USERNAME_PASSWORD_DISABLE
+    FEATURE_SAFE_BINDTOOBJECT
+    FEATURE_UNC_SAVEDFILECHECK
+    FEATURE_GET_URL_DOM_FILEPATH_UNENCODED
+    FEATURE_TABBED_BROWSING
+    FEATURE_SSLUX
+    FEATURE_DISABLE_NAVIGATION_SOUNDS
+    FEATURE_DISABLE_LEGACY_COMPRESSION
+    FEATURE_FORCE_ADDR_AND_STATUS
+    FEATURE_XMLHTTP
+    FEATURE_DISABLE_TELNET_PROTOCOL
+    FEATURE_FEEDS
+    FEATURE_BLOCK_INPUT_PROMPTS
+    FEATURE_ENTRY_COUNT);
+  }
+
+  TInternetFeatureList = (
+    ObjectCaching, ZoneElevation, MimeHandling, MimeSniffing, WindowRestrictions,
+    WebocPopupManagement, Behaviors, DisableMkProtocol, LocalMachineLockDown,
+    Securityband, RestrictActivexInstall, ValidateNavigateUrl, RestrictFileDownload,
+    AddonManagement, ProtocolLockdown, HttpUsernamePasswordDisable, SafeBindToObject,
+    UncSavedFileCheck, GetUrlDomFilePathUnencoded, TabbedBrowsing, Sslux,
+    DisableNavigationSounds, DisableLegacyCompression, ForceAddrAndStatus,
+    XmlHttp, DisableTelnetProtocol, Feeds, BlockInputPrompts, EntryCount
+    );
+  TInternetFeatures = set of TInternetFeatureList;
+{$ENDIF Enable_InternetFeatures}
+
+{============================================================================}
+// TEwbControl
+{============================================================================}
+
+type
+  TEwbControl = class(TComponent)
+  private
+    { Private declarations }
+    FMouseWheelFix: TMouseWheelFix;
+    FFocusControl: TFocusControl;
+    //  FMessageHandler: TMessageHandler;
+    //  FOnMessage: TMessageEvent;
+    FOnMouseWheel: TMouseWheelEvent;
+    FDesignMode: Boolean;
+{$IFDEF Enable_InternetFeatures}
+    FInternetFeatures: TInternetFeatures;
+    procedure SetInternetFeatures(const Value: TInternetFeatures);
+{$ENDIF}
+    //  procedure DoMessage(var Msg: TMsg; var Handled: Boolean);
+  protected
+    { Protected declarations }
+    //  procedure ProcessWBEvents(var Msg: TMsg; var Handled: Boolean);
+{$IFDEF Enable_InternetFeatures}
+    procedure UpdateInternetFeatures;
+    procedure SetDefaultInternetFeatures;
+{$ENDIF}
+
+  public
+    { Public declarations }
+    constructor Create(AOwner: TComponent); override;
+    destructor Destroy; override;
+    procedure Loaded; override;
+  published
+    { Published declarations }
+    property MouseWheelFix: TMouseWheelFix read FMouseWheelFix write
+      FMouseWheelFix;
+    property FocusControl: TFocusControl read FFocusControl write FFocusControl;
+    // property MessageHandler: TMessageHandler read FMessageHandler write FMessageHandler;
+    // property OnMessage: TMessageEvent read FOnMessage write FOnMessage;
+    property OnMouseWheel: TMouseWheelEvent read FOnMouseWheel write
+      FOnMouseWheel;
+{$IFDEF Enable_InternetFeatures}
+    property InternetFeatures: TInternetFeatures read FInternetFeatures
+      write SetInternetFeatures default [];
+{$ENDIF}
+  end;
+
+implementation
+
+uses
+  EwbFocusControl, EwbAcc, IEConst;
+
+procedure TFocusControl.SetActive(const Value: Boolean);
+begin
+  FActive := Value;
+  if not FDesignMode then
+    TEWBFocusControl.Activate(Value);
+end;
+
+{procedure TMessageHandler.SetActive(const Value: Boolean);
+begin
+  FActive := Value;
+  if not FDesignMode then
+  begin
+    if FActive then
+      Application.OnMessage := FOnMessage;
+  end;
+end; }
+
+procedure TMouseWheelFix.SetActiveFormOnly(const Value: Boolean);
+begin
+  FActiveFormOnly := Value;
+  if Assigned(FEWBMouseHook) then
+    FEWBMouseHook.FActiveFormOnly := FActiveFormOnly;
+end;
+
+procedure TMouseWheelFix.SetActive(const Value: Boolean);
+begin
+  FActive := Value;
+  if not FDesignMode then
+    if Value then
+    begin
+      if FEWBMouseHook = nil then
+      begin
+        FEWBMouseHook := TEWBMouseHook.Create;
+        FEWBMouseHook.OnMouseWheel := OnMouseWheel;
+        FEWBMouseHook.FActiveFormOnly := FActiveFormOnly;
+        FEWBMouseHook.Activate;
+      end;
+    end
+    else
+    begin
+      if Assigned(FEWBMouseHook) then
+      begin
+        try
+          FEWBMouseHook.Deactivate;
+        finally
+          FreeAndNil(FEWBMouseHook);
+        end;
+      end;
+    end;
+end;
+
+procedure TEwbControl.Loaded;
+begin
+  inherited Loaded;
+  if Assigned(FMouseWheelFix) then
+    FMouseWheelFix.OnMouseWheel := OnMouseWheel;
+  {  if Assigned(FMessageHandler) then
+      FMessageHandler.FOnMessage := DoMessage; }
+end;
+
+constructor TEwbControl.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+
+  FDesignMode := (csDesigning in ComponentState);
+
+  FMouseWheelFix := TMouseWheelFix.Create;
+  FMouseWheelFix.FDesignMode := FDesignMode;
+  FMouseWheelFix.FActive := True;
+
+  FFocusControl := TFocusControl.Create;
+  FFocusControl.FDesignMode := FDesignMode;
+  FFocusControl.FActive := True;
+
+{$IFDEF Enable_InternetFeatures}
+  if FDesignMode then
+    SetDefaultInternetFeatures;
+{$ENDIF}
+
+  {  FMessageHandler := TMessageHandler.Create;
+    FMessageHandler.FDesignMode := FDesignMode;
+    FMessageHandler.FOnMessage := DoMessage;
+
+    FMessageHandler.FActive := True; }
+end;
+
+destructor TEwbControl.Destroy;
+begin
+  if not (csDesigning in ComponentState) then
+  begin
+  {  if Assigned(FMessageHandler) then
+    begin
+      FMessageHandler.Active := False;
+      Application.OnMessage := nil;
+      FreeAndNil(FMessageHandler);
+    end;  }
+    if Assigned(FMouseWheelFix) then
+    begin
+      FMouseWheelFix.Active := False;
+      FreeAndNil(FMouseWheelFix);
+    end;
+    if Assigned(FFocusControl) then
+    begin
+      FFocusControl.Active := False;
+      FreeAndNil(FFocusControl);
+    end;
+  end;
+  inherited Destroy;
+end;
+
+{$IFDEF Enable_InternetFeatures}
+
+procedure TEwbControl.UpdateInternetFeatures;
+var
+  dco: TInternetFeatureList;
+begin
+  if (FInternetFeatures <> []) then
+    for dco := Low(TInternetFeatureList) to High(TInternetFeatureList) do
+      CoInternetSetFeatureEnabled(TInternetFeature(dco), FEATURE_FROM_PROCESS, (dco in FInternetFeatures));
+end;
+
+procedure TEwbControl.SetInternetFeatures(const Value: TInternetFeatures);
+begin
+  FInternetFeatures := Value;
+  UpdateInternetFeatures;
+end;
+
+procedure TEwbControl.SetDefaultInternetFeatures;
+var
+  dco: TInternetFeatureList;
+begin
+  FInternetFeatures := [];
+  for dco := Low(TInternetFeatureList) to High(TInternetFeatureList) do
+    if CoInternetIsFeatureEnabled(TInternetFeature(dco), FEATURE_FROM_PROCESS) = S_OK then
+      FInternetFeatures := FInternetFeatures + [TInternetFeatureList(dco)];
+end;
+
+{$ENDIF}
+
+{
+procedure TEwbControl.ProcessWBEvents(var Msg: TMsg; var Handled: Boolean);
+begin
+end;
+
+procedure TEwbControl.DoMessage(var Msg: TMsg; var Handled: Boolean);
+begin
+  if Assigned(FOnMessage) then
+  begin
+    FOnMessage(Msg, Handled);
+  end;
+  ProcessWBEvents(Msg, Handled);
+end;
+}
+
+end.
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbCore.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbCore.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbCore.pas	(revision 541)
@@ -0,0 +1,1970 @@
+//*************************************************************
+//                          TEwbCore                          *
+//							      *
+//                     Freeware Component                     *
+//                       For Delphi                           *
+//                            by                              *
+//                     Per Lindso Larsen                      *
+//      Developing Team:                                      *
+//          Eran Bodankin (bsalsa) -(bsalsa@gmail.com)       *
+//          Serge Voloshenyuk (SergeV@bsalsa.com)             *
+//          Thomas Stutz (smot777@yahoo.com                   *
+//                                                            *
+//       Documentation and updated versions:                  *
+//                                                            *
+//               http://www.bsalsa.com                        *
+//*************************************************************
+{LICENSE:
+THIS SOFTWARE IS PROVIDED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND,
+EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE APPLIED
+WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
+YOU ASSUME THE ENTIRE RISK AS TO THE ACCURACY AND THE USE OF THE SOFTWARE
+AND ALL OTHER RISK ARISING OUT OF THE USE OR PERFORMANCE OF THIS SOFTWARE
+AND DOCUMENTATION. BSALSA PRODUCTIONS DOES NOT WARRANT THAT THE SOFTWARE IS ERROR-FREE
+OR WILL OPERATE WITHOUT INTERRUPTION. THE SOFTWARE IS NOT DESIGNED, INTENDED
+OR LICENSED FOR USE IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE CONTROLS,
+INCLUDING WITHOUT LIMITATION, THE DESIGN, CONSTRUCTION, MAINTENANCE OR
+OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS,
+AIR TRAFFIC CONTROL, AND LIFE SUPPORT OR WEAPONS SYSTEMS. BSALSA PRODUCTIONS SPECIFICALLY
+DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR SUCH PURPOSE.
+
+You may use/change/modify the component under 4 conditions:
+1. In your web site, add a link to "http://www.bsalsa.com"
+2. In your application, add credits to "Embedded Web Browser"
+3. Mail me  (bsalsa@gmail.com) any code change in the unit for the benefit
+   of the other users.
+4. Please, consider donation in our web site!
+{*******************************************************************************}
+
+
+unit EwbCore;
+
+interface
+
+{$I EWB.inc}
+
+uses
+{$IFDEF DELPHI6_UP}Variants, {$ENDIF}
+  Dialogs, Windows, Messages, Classes, MSHTML_EWB, EWBAcc, Controls, Forms,
+  ExtCtrls, ActiveX, ShlObj, SHDocVw_EWB, UrlMon, IEConst;
+
+type
+  TCustomEmbeddedWB = class;
+
+  TOleCmdArray = array of TOleCmd;
+  TDragDropHandlingType = (
+    ddtMS, // Microsoft implementation
+    ddtMy, // TCustomEmbeddedWB event handlers
+    ddtCustom, // granted by user in OnGetDropTarget event handler
+    ddtNo // No drag and drop
+    );
+  TDocDesignMode = (ddmOn, ddmOff, ddmInherit, ddmUnknown);
+
+  TIEPopupMenu = (
+    rcmDefault,
+    rcmImage,
+    rcmControl,
+    rcmTable,
+    rcmSelText,
+    rcmAnchor,
+    rcmUnKnown,
+    rcmImageArt,
+    rcmImgDynSrc,
+    rcmDebug,
+    rcmAll
+    );
+  TIEPopupMenus = set of TIEPopupMenu;
+
+  TIEPopupMenuItem = (
+    rcsBack,
+    rcsForward,
+    rcsSavePageBkg,
+    rcsSetAsBkg,
+    rcsCopyBkg,
+    rcsSetAsDeskT,
+    rcsSelectAll,
+    rcsPaste,
+    rcsCreateSC,
+    rcsAddToFav,
+    rcsEncoding,
+    rcsRefresh,
+    rcsViewSource,
+    rcsProperties,
+    rcsPrint,
+    rcsOpenNWindow,
+    rcsOpenLink
+    );
+  TIEPopupMenuItems = set of TIEPopupMenuItem;
+
+  {============================================================================}
+  { Controlling Download and Execution }
+  { http://msdn.microsoft.com/en-us/library/aa770041.aspx }
+  { TDownloadControlOption = (
+       DLCTL_DLIMAGES, DLCTL_VIDEOS, DLCTL_BGSOUNDS,
+       DLCTL_NO_SCRIPTS, DLCTL_NO_JAVA,
+       DLCTL_NO_RUNACTIVEXCTLS, DLCTL_NO_DLACTIVEXCTLS,
+       DLCTL_DOWNLOADONLY,
+       DLCTL_NO_FRAMEDOWNLOAD,
+       DLCTL_RESYNCHRONIZE,
+       DLCTL_PRAGMA_NO_CACHE,
+       DLCTL_NO_BEHAVIORS, DLCTL_NO_METACHARSET,
+       DLCTL_URL_ENCODING_DISABLE_UTF8, DLCTL_URL_ENCODING_ENABLE_UTF8,
+       DLCTL_FORCEOFFLINE, DLCTL_NO_CLIENTPULL,
+       DLCTL_SILENT, DLCTL_OFFLINE);
+  }
+  TDownloadControlOption = (
+    DownloadImages, DownloadVideos, DownloadBGSounds, DontExecuteScripts,
+    DontExecuteJava, DontExecuteActiveX, DontDownloadActiveX,
+    DownloadButDontDisplay, DontDownloadFrame, CheckPageResynchronize,
+    DownloadAndIgnoreCache, DontDownloadBehaviors, SuppressedMetaCharset,
+    DisableUrlIfEncodingUTF8, EnableUrlIfEncodingUTF8,
+    ForceOfflineMode, DontPerformClientPull, DownloadInSilentMode, WorkOffline);
+  TDownloadControlOptions = set of TDownloadControlOption;
+
+  { Doc Host Flags:
+    http://msdn.microsoft.com/en-us/library/aa753277.aspx }
+  { TUserInterfaceOption = (DIALOG, DISABLE_HELP_MENU, NO3DBORDER,
+      SCROLL_NO, DISABLE_SCRIPT_INACTIVE, OPENNEWWIN, DISABLE_OFFSCREEN,
+      FLAT_SCROLLBAR, DIV_BLOCKDEFAULT, ACTIVATE_CLIENTHIT_ONLY,
+      OVERRIDEBEHAVIORFACTORY,
+      CODEPAGELINKEDFONTS, URL_ENCODING_DISABLE_UTF8,
+      URL_ENCODING_ENABLE_UTF8,
+       ENABLE_FORMS_AUTOCOMPLETE, ENABLE_INPLACE_NAVIGATION,
+      IME_ENABLE_RECONVERSION,
+      THEME, NOTHEME, NOPICS, NO3DOUTERBORDER, DISABLE_EDIT_NS_FIXUP,
+      LOCAL_MACHINE_ACCESS_CHECK, DISABLE_UNTRUSTEDPROTOCOL,
+      HOST_NAVIGATES, ENABLE_REDIRECT_NOTIFICATION, USE_WINDOWLESS_SELECTCONTROL,
+      USE_WINDOWED_SELECTCONTROL, ENABLE_ACTIVEX_INACTIVATE_MODE);
+  }
+  TUserInterfaceOption = (DisableTextSelect, DisableHelpMenu, DontUse3DBorders,
+    DontUseScrollBars, PostponeScriptUntilActive, ForceOpenNewWindow,
+    Reserved_OFFSCREEN,
+    ForceFlatScrollBars, InsertDivTagOnEditMode, ActivateUIOnlyOnDocClick,
+    ConsultBeforeRetrievingBehavior,
+    CheckFontSupportsCodePage, DisableSubmitUrlInUTF8,
+    EnableSubmitUrlInUTF8,
+    EnablesFormsAutoComplete, ForceSameWindowNavigation,
+    EmableImeLocalLanguages,
+    EnableThemes, DisableThemes, DisablePicsRatings, DisableFrameSetBorder,
+    DisablesAutoNameSpaceCorrection,
+    DisableLocalFileAccess, DisableUntrustedProtocol,
+    CheckNavigationDelegatedToHost, EnableRedirectNotification, EnableDomWindlessControls,
+    EnableWindowedControls, ForceUserActivationOnActiveXJava);
+  TUserInterfaceOptions = set of TUserInterfaceOption;
+
+  {events}
+  TMenuPreprocess = procedure(Sender: TObject; ID: DWORD; Menu: HMENU; const Context: IDispatch) of object;
+
+  TEWBNotifyEvent = procedure(Sender: TObject; var Rezult: HRESULT) of object;
+  TBoolQueryEvent = procedure(Sender: TObject; var Value: BOOL) of object;
+  TMaskedCtrlCharEvent = procedure(Sender: TCustomEmbeddedWB; MaskedChar: Char) of object;
+  TOMWindowMoveEvent = procedure(Sender: TCustomEmbeddedWB; cx, cy: Integer) of object;
+
+   {IDocHostShowUI Interface}
+  TShowHelpEvent = function(Sender: TObject; HWND: THandle; pszHelpFile: POleStr; uCommand: Integer;
+    dwData: Longint; ptMouse: TPoint;
+    var pDispatchObjectHit: IDispatch): HRESULT of object;
+  TShowMessageEvent = function(Sender: TObject; HWND: THandle;
+    lpstrText: POleStr; lpstrCaption: POleStr; dwType: Longint; lpstrHelpFile: POleStr;
+    dwHelpContext: Longint; var plResult: LRESULT): HRESULT of object;
+  {IDocHostUIHandler Interface}
+  TEnableModelessEvent = procedure(Sender: TCustomEmbeddedWB; const fEnable: BOOL) of object;
+  TFilterDataObjectEvent = procedure(Sender: TCustomEmbeddedWB; const pDO: IDataObject;
+    var ppDORet: IDataObject) of object;
+  TGetDropTargetEvent = procedure(Sender: TCustomEmbeddedWB; var DropTarget: IDropTarget) of object;
+  TGetExternalEvent = procedure(Sender: TCustomEmbeddedWB; var ppDispatch: IDispatch) of object;
+  TGetHostInfoEvent = procedure(Sender: TCustomEmbeddedWB; var pInfo: TDOCHOSTUIINFO) of object;
+  TGetOptionKeyPathEvent = procedure(Sender: TCustomEmbeddedWB; var pchKey: POleStr) of object;
+  TOnActivateEvent = procedure(Sender: TCustomEmbeddedWB; const fActivate: BOOL) of object;
+  TResizeBorderEvent = procedure(Sender: TCustomEmbeddedWB; const prcBorder: PRect;
+    const pUIWindow: IOleInPlaceUIWindow;
+    const fRameWindow: BOOL) of object;
+  TShowContextMenuEvent = procedure(Sender: TCustomEmbeddedWB; const dwID: DWORD; const ppt: PPOINT;
+    const CommandTarget: IUnknown; const Context: IDispatch; var Result: HRESULT) of object;
+  TShowUIEvent = procedure(Sender: TCustomEmbeddedWB; const dwID: DWORD; const
+    pActiveObject: IOleInPlaceActiveObject;
+    const pCommandTarget: IOleCommandTarget; const pFrame: IOleInPlaceFrame;
+    const pDoc: IOleInPlaceUIWindow; var Rezult: HRESULT) of object;
+  TTranslateAcceleratorEvent = procedure(Sender: TCustomEmbeddedWB; const lpMsg: PMSG;
+    const pguidCmdGroup: PGUID;
+    const nCmdID: DWORD; var Done: Boolean) of object;
+  TTranslateUrlEvent = procedure(Sender: TCustomEmbeddedWB; const pchURLIn: POleStr;
+    var ppchURLOut: WideString) of object;
+
+{$IFDEF USE_IOLECOMMANDTARGET}
+  TRefreshEvent = procedure(Sender: TCustomEmbeddedWB; CmdID: Integer; var Cancel: Boolean) of object;
+{$ENDIF}
+  {INewWindowManager Interface}
+  TEvaluateNewWindowEvent = procedure(Sender: TCustomEmbeddedWB; pszUrl, pszName,
+    pszUrlContext, pszFeatures: LPCWSTR;
+    fReplace: BOOL; dwFlags, dwUserActionTime: DWORD; var Rezult: HRESULT) of object;
+  {IDownloadManager Interface}
+  TDownloadEvent = procedure(Sender: TCustomEmbeddedWB; pmk: IMoniker; pbc: IBindCtx;
+    dwBindVerb: DWORD;
+    grfBINDF: DWORD; pBindInfo: PBindInfo; pszHeaders: PWideChar;
+    pszRedir: PWidechar; uiCP: UINT; var Rezult: HRESULT) of object;
+  {IAuthenticate Interface}
+  TAuthenticateEvent = procedure(Sender: TCustomEmbeddedWB; var hwnd: HWnd;
+    var szUserName, szPassWord: WideString; var Rezult: HRESULT) of object;
+   {IZoomEvents Interface}
+  TZoomPercentChangedEvent = function(Sender: TCustomEmbeddedWB; const ulZoomPercent: uLong): HRESULT of object;
+   {Script Error handling}
+  TScriptErrorAction = (eaContinue, eaCancel, eaAskUser);
+  TScriptErrorEvent = procedure(Sender: TObject; ErrorLine, ErrorCharacter, ErrorCode, ErrorMessage, ErrorUrl: string;
+    var ScriptErrorAction: TScriptErrorAction) of object;
+
+   {User Agent Mode Event}
+  TSetUserAgentEvent = function(var UserAgent: string): HRESULT of object;
+
+  { TCustomEmbeddedWB }
+  TCustomEmbeddedWB = class(TEWB
+      , IDispatch // http://msdn.microsoft.com/en-us/library/ms221608.aspx
+      , IDocHostShowUI // http://msdn.microsoft.com/en-us/library/aa753269.aspx
+      , IDocHostUIHandler // http://msdn.microsoft.com/en-us/library/aa753260(VS.85).aspx
+      , IDocHostUIHandler2 // http://msdn.microsoft.com/en-us/library/aa753275(VS.85).aspx
+      , IDropTarget // http://msdn.microsoft.com/en-us/library/ms679679.aspx
+{$IFDEF USE_IOLECOMMANDTARGET}
+      , IOleCommandTarget // http://msdn.microsoft.com/en-us/library/ms683797.aspx
+{$ENDIF}
+      , IServiceProvider // http://msdn.microsoft.com/en-us/library/cc678965(VS.85).aspx
+      , INewWindowManager // http://msdn.microsoft.com/en-us/library/bb775418(VS.85).aspx
+      , IProtectFocus // http://msdn2.microsoft.com/en-us/library/aa361771.aspx
+      , IDownloadManager // http://msdn.microsoft.com/en-us/library/aa753613(VS.85).aspx
+      , IHTMLOMWindowServices //http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/hosting/reference/ifaces/IHTMLOMWindowServices/IHTMLOMWindowServices.asp
+      , IHostBehaviorInit // http://msdn.microsoft.com/en-us/library/aa753687(VS.85).aspx
+      , IZoomEvents // http://msdn.microsoft.com/en-us/library/aa770056(VS.85).aspx
+      , IAuthenticate // http://msdn.microsoft.com/en-us/library/ms835407.aspx
+      )
+
+  private
+    FOnZoomPercentChanged: TZoomPercentChangedEvent;
+    FOnGetIDsOfNames: TGetIDsOfNamesEvent;
+    FOnGetTypeInfo: TGetTypeInfoEvent;
+    FOnGetTypeInfoCount: TGetTypeInfoCountEvent;
+    FOnInvoke: TInvokeEvent;
+    FDownloadControlOptions: TDownloadControlOptions;
+    FOnShowMessage: TShowMessageEvent;
+    FOnShowHelp: TShowHelpEvent;
+    FHelpFile: string;
+    fOptionKeyPath: string;
+    fOverOptionKeyPath: Boolean;
+    FOnFilterDataObject: TFilterDataObjectEvent;
+    FOnGetExternal: TGetExternalEvent;
+    FOnGetHostInfo: TGetHostInfoEvent;
+    FUserInterfaceOptions: TUserInterfaceOptions;
+    FOnEnableModeless: TEnableModelessEvent;
+{$IFDEF GETKEYPATH_HANDLERS}
+    FOnGetOptionKeyPath: TGetOptionKeyPathEvent;
+    FOnGetOverrideKeyPath: TGetOptionKeyPathEvent;
+{$ENDIF}
+    FOnGetDropTarget: TGetDropTargetEvent;
+    FOnHideUI: TEWBNotifyEvent;
+    FOnOnDocWindowActivate: TOnActivateEvent;
+    FOnOnFrameWindowActivate: TOnActivateEvent;
+    FOnResizeBorder: TResizeBorderEvent;
+    FOnShowContextmenu: TShowContextMenuEvent;
+    FOnShowUI: TShowUIEvent;
+    FOnTranslateAccelerator: TTranslateAcceleratorEvent;
+    FOnTranslateUrL: TTranslateUrlEvent;
+    FOnUpdateUI: TEWBNotifyEvent;
+    FOnDragLeaveEvent: TNotifyEvent;
+    FOnDragEnterEvent: TOnDragEnterEvent;
+    FOnDragOverEvent: TOnDragOverEvent;
+    FOnDropEvent: TOnDropEvent;
+    FOnScriptError: TScriptErrorEvent;
+    FScriptErrorAction: TScriptErrorAction;
+{$IFDEF USE_IOLECOMMANDTARGET}
+    FOnUnload: TNotifyEvent;
+    FOnRefresh: TRefreshEvent;
+    FOnCommandExec: TComTargetExecEvent;
+{$ENDIF}
+    FOnQueryService: TQueryServiceEvent;
+    FOnEvaluateNewWindow: TEvaluateNewWindowEvent;
+    FCanGrabFocus: Boolean;
+    FOnAllowFocusChange: TBoolQueryEvent;
+    FOnDownload: TDownloadEvent;
+    FDropHandlingType: TDragDropHandlingType;
+    FZoomPercent: Integer;
+    FDesignMode: Boolean;
+    FDisabledPopupMenus: TIEPopupMenus;
+    FOnFilterPopupMenu: TMenuPreprocess;
+    FOnMaskedCtrlChar: TMaskedCtrlCharEvent;
+    FDisableCtrlShortcuts: string;
+    FOnResize: TOMWindowMoveEvent;
+    FOnMoveBy: TOMWindowMoveEvent;
+    FOnMove: TOMWindowMoveEvent;
+    FOnResizeBy: TOMWindowMoveEvent;
+    FFloatingHosting: Boolean;
+    FOnPopulateNSTable: TNotifyEvent;
+    FOnAuthenticate: TAuthenticateEvent;
+{$IFDEF RESEARCH_MODE}
+    FOnQueryInterface: OnQueryInterfaceEvent;
+{$ENDIF}
+    procedure SetDownloadOptions(const Value: TDownloadControlOptions);
+    procedure SetUserInterfaceOptions(const Value: TUserInterfaceOptions);
+    function GetDoc2: IHtmlDocument2;
+    function GetDoc3: IHtmlDocument3;
+    function GetDoc4: IHtmlDocument4;
+    function GetDoc5: IHtmlDocument5;
+    function GetElemByID(const ID: WideString): IHTMLElement;
+    function GetZoom: Integer;
+    procedure SetZoom(const Value: Integer);
+    procedure setOpticalZoom(const Value: Integer);
+    function _getCookie: WideString;
+    function GetCharSet: WideString;
+    procedure SetCharSet(const Value: WideString);
+    procedure SetDropHandlingType(const Value: TDragDropHandlingType);
+    procedure SetDesignMode(const Value: Boolean);
+    function GetDocDesignMode: TDocDesignMode;
+    procedure SetDocDesignMode(const Value: TDocDesignMode);
+    function GetBody: IHTMLElement;
+
+  protected
+    CurrentHandle: HWND; //jls
+    procedure CreateWnd; override; //jls
+    procedure DestroyWnd; override; //jls
+  protected
+{$IFDEF RESEARCH_MODE}
+    { IInterface }
+    function QueryInterface(const IID: TGUID; out Obj): HRESULT; override; stdcall;
+{$ENDIF}
+    {IDispatch Interface}
+    function GetIDsOfNames(const IID: TGUID; Names: Pointer;
+      NameCount, LocaleID: Integer; DispIDs: Pointer): HRESULT; stdcall;
+    function GetTypeInfo(Index, LocaleID: Integer; out TypeInfo): HRESULT;
+      stdcall;
+    function GetTypeInfoCount(out Count: Integer): HRESULT; stdcall;
+    function Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HRESULT;
+      stdcall;
+      {IDocHostShowUI Interface }
+    function ShowHelp(HWND: THandle; pszHelpFile: POleStr; uCommand: Integer;
+      dwData: Longint; ptMouse: TPoint; var pDispatchObjectHit: IDispatch): HRESULT; stdcall;
+    function ShowMessage(HWND: THandle; lpstrText: POleStr; lpstrCaption: POleStr;
+      dwType: Longint; lpstrHelpFile: POleStr; dwHelpContext: Longint;
+      var plResult: LRESULT): HRESULT; stdcall;
+    {IDocHostUIHandler Interface}
+    function EnableModeless(const fEnable: BOOL): HRESULT; stdcall;
+    function FilterDataObject(const pDO: IDataObject; out ppDORet: IDataObject): HRESULT; stdcall;
+    function GetDropTarget(const pDropTarget: IDropTarget;
+      out ppDropTarget: IDropTarget): HRESULT; stdcall;
+    function GetExternal(out ppDispatch: IDispatch): HRESULT; stdcall;
+    function GetHostInfo(var pInfo: TDOCHOSTUIINFO): HRESULT; stdcall;
+    function GetOptionKeyPath(out pchKey: POleStr; const dw: DWORD): HRESULT; stdcall;
+    function HideUI: HRESULT; stdcall;
+    function OnDocWindowActivate(const fActivate: BOOL): HRESULT; stdcall;
+    function OnFrameWindowActivate(const fActivate: BOOL): HRESULT; stdcall;
+    function ResizeBorder(const prcBorder: PRECT; const pUIWindow:
+      IOleInPlaceUIWindow;
+      const FrameWindow: BOOL): HRESULT; stdcall;
+    function ShowContextMenu(const dwID: DWORD; const ppt: PPOINT;
+      const CommandTarget: IUnknown; const Context: IDispatch): HRESULT; stdcall;
+    function ShowUI(const dwID: DWORD; const pActiveObject:
+      IOleInPlaceActiveObject;
+      const pCommandTarget: IOleCommandTarget; const pFrame: IOleInPlaceFrame;
+      const pDoc: IOleInPlaceUIWindow): HRESULT; stdcall;
+    function TranslateAccelerator(const lpMsg: PMSG; const pguidCmdGroup: PGUID;
+      const nCmdID: DWORD): HRESULT; stdcall;
+    function TranslateUrl(const dwTranslate: DWORD; const pchURLIn: POleStr;
+      out ppchURLOut: POleStr): HRESULT; stdcall;
+    function UpdateUI: HRESULT; stdcall;
+    {IDocHostUIHandler2 Interface}
+    function GetOverrideKeyPath(out pchKey: POleStr; dw: DWORD): HRESULT; stdcall;
+    {IDropTarget Interface}
+    function DragEnter(const dataObj: IDataObject; grfKeyState: Longint;
+      pt: TPoint; var dwEffect: Longint): HRESULT; stdcall;
+    function IDropTarget.DragOver = DropTargetDragOver;
+    function DropTargetDragOver(grfKeyState: Longint; pt: TPoint;
+      var dwEffect: Longint): HRESULT; stdcall;
+    function DragLeave: HRESULT; stdcall;
+    function Drop(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint;
+      var dwEffect: Longint): HRESULT; stdcall;
+{$IFDEF USE_IOLECOMMANDTARGET}
+    {IOleCommandTarget interface}
+    function IOleCommandTarget.QueryStatus = CommandTarget_QueryStatus;
+    function CommandTarget_QueryStatus(CmdGroup: PGUID; cCmds: Cardinal;
+      prgCmds: POleCmd; CmdText: POleCmdText): HRESULT; stdcall;
+    function IOleCommandTarget.Exec = CommandTarget_Exec;
+    function CommandTarget_Exec(CmdGroup: PGUID; nCmdID, nCmdexecopt: DWORD;
+      const vaIn: OleVariant; var vaOut: OleVariant): HRESULT; stdcall;
+{$ENDIF}
+    {IServiceProvider Interface}
+    function QueryService(const rsid, iid: TGUID; out Obj): HRESULT; stdcall;
+    {INewWindowManager Interface}
+    function EvaluateNewWindow(pszUrl, pszName, pszUrlContext, pszFeatures: LPCWSTR;
+      fReplace: BOOL; dwFlags, dwUserActionTime: DWORD): HRESULT; stdcall;
+    {IProtectFocus IE7 interface}
+    function AllowFocusChange(out pfAllow: BOOL): HRESULT; stdcall;
+    {IDownloadManager Interface}
+    function Download(
+      pmk: IMoniker; // Identifies the object to be downloaded
+      pbc: IBindCtx; // Stores information used by the moniker to bind
+      dwBindVerb: DWORD; // The action to be performed during the bind
+      grfBINDF: DWORD; // Determines the use of URL encoding during the bind
+      pBindInfo: PBindInfo; // Used to implement IBindStatusCallback::GetBindInfo
+      pszHeaders: PWidechar; // Additional headers to use with IHttpNegotiate
+      pszRedir: PWidechar; // The URL that the moniker is redirected to
+      uiCP: UINT // The code page of the object's display name
+      ): HRESULT; stdcall;
+    {IHostBehaviorInit}
+    function PopulateNamespaceTable: HRESULT; stdcall;
+    {IHTMLOMWindowServices Interface}
+    function ResizeBy(const x, y: Integer): HRESULT; stdcall;
+    function ResizeTo(const x, y: Integer): HRESULT; stdcall;
+    function MoveBy(const x, y: Integer): HRESULT; stdcall;
+    function MoveTo(const x, y: Integer): HRESULT; stdcall;
+    {IZoomEvents  interface}
+    function OnZoomPercentChanged(const ulZoomPercent: uLong): HRESULT; stdcall;
+    {IAuthenticate}
+    function Authenticate(var hwnd: HWnd; var szUserName, szPassWord: LPWSTR):
+      HRESULT; stdcall;
+  protected
+    FDownloadOptionValue: Longint;
+    FUserInterfaceValue: Cardinal;
+    FOnSetUserAgent: TSetUserAgentEvent;
+    FOnPreRefresh: TNotifyEvent;
+    FOnHookChildWindow : TNotifyEvent;
+    procedure UpdateDownloadControlValues;
+    procedure UpdateUserInterfaceValues;
+    function CopyOptionKeyPath(Overrided: Boolean): PWideChar;
+    function DoFilterMsg(const lpMsg: PMSG): Boolean; virtual;
+    function ScriptErrorHandler(const vaIn: OleVariant; var vaOut: OleVariant): HRESULT; virtual;
+    function DoQueryService(const rsid, iid: TGUID; var Obj): Boolean; virtual;
+    function FilterPopupMenu: Boolean; virtual;
+    procedure DoFilterPopupMenu(Sender: TObject; ID: DWORD; Menu: HMENU; const Context:
+      IDispatch); virtual;
+    procedure MoveParentForm(x, y: Integer; Delta: Boolean);
+    procedure ResizeParentForm(w, h: Integer; Delta: Boolean);
+  public
+    class function dwEffectToStr(Command: Int64): string;
+    class procedure DropEffect(grfKeyState: Longint; var dwEffect: longint);
+    constructor Create(AOwner: TComponent); override;
+    destructor Destroy; override;
+    function InvokeCommand(CmdGroup: PGUID; Cmd, nCmdexecopt: DWORD;
+      var vaIn, vaOut: OleVariant): HRESULT; overload;
+    function InvokeCommand(CmdGroup: PGUID; Cmd: DWORD): HRESULT; overload;
+    function QueryCommandStatus(CmdGroup: PGUID; cCmds: Cardinal;
+      prgCmds: POleCmd; CmdText: POleCmdText): HRESULT;
+    function QueryCMDEnabled(CmdGroup: PGUID; cmdID: Cardinal): Boolean;
+    function QueryCMDLatched(CmdGroup: PGUID; cmdID: Cardinal): Boolean;
+    function QueryCMDStatus(CmdGroup: PGUID; cmdID: Cardinal): OLECMDF;
+    function QueryCMDArrayStatus(CmdGroup: PGUID; cmds: TOleCmdArray): Boolean;
+
+    procedure Client2HostWin(var CX, CY: Integer);
+      // just call it in OnClientToHostWindow handler
+
+    function GetIEWin(const ClassName: string): HWND;
+    procedure SetFocusToDoc;
+    procedure SetFocusToBody;
+    procedure SetFocusToParent;
+
+    function ZoomRangeHigh: Integer;
+    function ZoomRangeLow: Integer;
+    property Zoom: Integer read getZoom write setZoom;
+    property ZoomPercent: Integer read FZoomPercent write setOpticalZoom default 100;
+
+    property Cookie: WideString read _getCookie;
+    property DesignMode: Boolean read FDesignMode write SetDesignMode;
+    {html functions}
+    property Doc2: IHtmlDocument2 read GetDoc2;
+    property Doc3: IHtmlDocument3 read GetDoc3;
+    property Doc4: IHtmlDocument4 read GetDoc4;
+    property Doc5: IHtmlDocument5 read GetDoc5;
+
+    property Body: IHTMLElement read getBody;
+    property DocDesignMode: TDocDesignMode read getDocDesignMode write
+      setDocDesignMode;
+    property CharactersSet: WideString read GetCharSet write SetCharSet;
+    property ElementByID[const ID: WideString]: IHTMLElement read getElemByID;
+    function ScrollToElement(Element: IHTMLElement): Boolean;
+
+
+    function GetElementNamespaceTable(out aTable: IElementNamespaceTable):
+      Boolean;
+
+{$IFDEF RESEARCH_MODE}
+    property OnQueryInterface: OnQueryInterfaceEvent read fOnQueryInterface write fOnQueryInterface;
+{$ENDIF}
+    property CanGrabFocus: Boolean read FCanGrabFocus write FCanGrabFocus default True;
+  published
+    property OnAllowFocusChange: TBoolQueryEvent read FOnAllowFocusChange write
+      FOnAllowFocusChange;
+    property DisableCtrlShortcuts: string read FDisableCtrlShortcuts write FDisableCtrlShortcuts;
+    property DownloadOptions: TDownloadControlOptions read FDownloadControlOptions
+      write SetDownloadOptions default [DownloadImages, DownloadVideos, DownloadBGSounds];
+    property UserInterfaceOptions: TUserInterfaceOptions read FUserInterfaceOptions
+      write SetUserInterfaceOptions default [];
+    property HelpFile: string read FHelpFile write FHelpFile;
+    property OptionKeyPath: string read FOptionKeyPath write FOptionKeyPath;
+    property OverrideOptionKeyPath: Boolean read FOverOptionKeyPath write
+      FOverOptionKeyPath default False;
+
+    property DropHandlingType: TDragDropHandlingType read FDropHandlingType write
+      setDropHandlingType default ddtMS;
+    property DisabledPopupMenus: TIEPopupMenus
+      read FDisabledPopupMenus write FDisabledPopupMenus default [];
+    property FloatingHosting: Boolean read FFloatingHosting write
+      fFloatingHosting default False;
+
+    property OnGetIDsOfNames: TGetIDsOfNamesEvent read FOnGetIDsOfNames write
+      FOnGetIdsOfNames;
+    property OnGetTypeInfo: TGetTypeInfoEvent read FonGetTypeInfo write
+      FOnGetTypeInfo;
+    property OnGetTypeInfoCount: TGetTypeInfoCountEvent read FonGetTypeInfoCount
+      write FOnGetTypeInfoCount;
+    property OnInvoke: TInvokeEvent read FOnInvoke write FOnInvoke;
+    property OnShowHelpRequest: TShowHelpEvent read FOnShowHelp write
+      FOnShowHelp;
+    property OnShowMessage: TShowMessageEvent read FOnShowMessage write
+      FOnShowMessage;
+    property OnFilterDataObject: TFilterDataObjectEvent read FOnFilterDataObject
+      write FOnFilterDataObject;
+    property OnGetExternal: TGetExternalEvent read FOnGetExternal write
+      FOnGetExternal;
+    property OnGetHostInfo: TGetHostInfoEvent read FOnGetHostInfo write
+      FOnGetHostInfo;
+    property OnEnableModeless: TEnableModelessEvent read FOnEnableModeless
+      write FOnEnableModeless;
+{$IFDEF GETKEYPATH_HANDLERS}
+    property OnGetOptionKeyPath: TGetOptionKeyPathEvent read FOnGetOptionKeyPath
+      write FOnGetOptionKeyPath;
+    property OnGetOverrideKeyPath: TGetOptionKeyPathEvent read
+      FOnGetOverrideKeyPath
+      write FOnGetOverrideKeyPath;
+{$ENDIF}
+    property OnZoomPercentChange: TZoomPercentChangedEvent read FOnZoomPercentChanged write FOnZoomPercentChanged;
+    property OnGetDropTarget: TGetDropTargetEvent read FOnGetDropTarget write FOnGetDropTarget;
+    property OnHideUI: TEWBNotifyEvent read FOnHideUI write FOnHideUI;
+    property OnOnDocWindowActivate: TOnActivateEvent read FOnOnDocWindowActivate
+      write FOnOnDocWindowActivate;
+    property OnOnFrameWindowActivate: TOnActivateEvent read
+      FOnOnFrameWindowActivate
+      write FOnOnFrameWindowActivate;
+    property OnResizeBorder: TResizeBorderEvent read FOnResizeBorder write
+      FOnResizeBorder;
+    property OnShowContextMenu: TShowContextMenuEvent read FOnShowContextmenu
+      write FOnShowContextmenu;
+    property OnShowUI: TShowUIEvent read FOnShowUI write FOnShowUI;
+    property OnTranslateAccelerator: TTranslateAcceleratorEvent read
+      FOnTranslateAccelerator
+      write FOnTranslateAccelerator;
+    property OnTranslateUrl: TTranslateUrlEvent read FOnTranslateUrL
+      write FOnTranslateUrL;
+    property OnUpdateUI: TEWBNotifyEvent read FOnUpdateUI write FOnUpdateUI;
+
+    property OnDragEnter: TOnDragEnterEvent read FOnDragEnterEvent write
+      FOnDragEnterEvent;
+    property OnDragLeave: TNotifyEvent read FOnDragLeaveEvent write
+      FOnDragLeaveEvent;
+    property OnDragOver2: TOnDragOverEvent read FOnDragOverEvent write
+      FOnDragOverEvent;
+    property OnDropEvent: TOnDropEvent read FOnDropEvent write FOnDropEvent;
+
+    property OnScriptError: TScriptErrorEvent read FOnScriptError write FOnScriptError;
+    property ScriptErrorAction: TScriptErrorAction read FScriptErrorAction
+      write FScriptErrorAction default eaContinue;
+{$IFDEF USE_IOLECOMMANDTARGET}
+    property OnRefresh: TRefreshEvent read FOnRefresh write FOnRefresh;
+    property OnUnload: TNotifyEvent read FOnUnload write FOnUnload;
+    property OnCommandExec: TComTargetExecEvent read FOnCommandExec write
+      fOnCommandExec;
+{$ENDIF}
+    property OnQueryService: TQueryServiceEvent read FOnQueryService write
+      FOnQueryService;
+    property OnEvaluateNewWindow: TEvaluateNewWindowEvent read
+      FOnEvaluateNewWindow
+      write FOnEvaluateNewWindow;
+    property OnFileDownload: TDownloadEvent read FOnDownload write FOnDownload;
+    property OnFilterPopupMenu: TMenuPreprocess read FOnFilterPopupMenu write
+      FOnFilterPopupMenu;
+    property OnMaskedCtrlChar: TMaskedCtrlCharEvent read FOnMaskedCtrlChar write
+      FOnMaskedCtrlChar;
+
+    property OnMove: TOMWindowMoveEvent read FOnMove write FOnMove;
+    property OnMoveBy: TOMWindowMoveEvent read FOnMoveBy write FOnMoveBy;
+    property OnResize: TOMWindowMoveEvent read FOnResize write FOnResize;
+    property OnResizeBy: TOMWindowMoveEvent read FOnResizeBy write FOnResizeBy;
+    property OnPopulateNSTable: TNotifyEvent read FOnPopulateNSTable write
+      FOnPopulateNSTable;
+    property OnAuthenticate: TAuthenticateEvent read FOnAuthenticate write
+      FOnAuthenticate;
+    property  OnPreRefresh: TNotifyEvent read FOnPreRefresh write FOnPreRefresh;
+  end;
+
+  TEwbCore = class(TCustomEmbeddedWB)
+  private
+    function IsCtrlCharMask: Boolean;
+  published
+    property DisableCtrlShortcuts stored IsCtrlCharMask;
+  end;
+
+//this two functions for using in custom OnShowContextMenu handler.
+function IsSeTIEPopupMenus(ID: DWORD; rcm: TIEPopupMenus): Boolean;
+function ShowRightClickMenu(Sender: TObject; dwID: DWORD;
+  const Target: IUnknown; const Context: IDispatch;
+  const ppt: PPOINT;
+  const EncodingSubMenu: OleVariant;
+  preprocess: TMenuPreprocess = nil): Boolean;
+
+
+implementation
+
+uses
+  SysUtils, ComObj, EwbCoreTools, Registry;
+
+function IsSeTIEPopupMenus(ID: DWORD; rcm: TIEPopupMenus): Boolean;
+begin
+  Result := (rcmAll in rcm) or
+    ((ID in [0..9]) and (TIEPopupMenu(ID) in rcm));
+end;
+
+function ShowRightClickMenu(Sender: TObject; dwID: DWORD; const Target: IUnknown; const Context:
+  IDispatch;
+  const ppt: PPOINT; const EncodingSubMenu: OleVariant;
+  Preprocess: TMenuPreprocess = nil): Boolean;
+var
+  ShDocLcHandle: THandle;
+  OleCommandTarget: IOleCommandTarget;
+  OleWindow: IOleWindow;
+  WindowHandle: HWND;
+  ParentMenu, SubMenu: HMENU;
+  SubMenuItemInfo: MENUITEMINFO;
+  PopupResult: LongBool;
+begin
+  Result := False;
+  ShDocLcHandle := GetSHDOCLCModule;
+
+  if ShDocLcHandle = 0 then Exit;
+
+  if Supports(Target, IOleCommandTarget, OleCommandTarget) and
+    Supports(Target, IOleWindow, OleWindow) and
+    ActiveX.Succeeded(OleWindow.GetWindow(WindowHandle)) then
+  begin
+    ParentMenu := Windows.LoadMenu(ShDocLcHandle,
+      MAKEINTRESOURCE(CContextMenuID));
+    if ParentMenu <> 0 then
+    try
+      SubMenu := GetSubMenu(ParentMenu, dwID);
+      FillChar(SubMenuItemInfo, SizeOf(SubMenuItemInfo), 0);
+      SubMenuItemInfo.cbSize := SizeOf(MENUITEMINFO);
+      SubMenuItemInfo.fMask := MIIM_SUBMENU;
+      SubMenuItemInfo.hSubMenu := HMENU(@EncodingSubMenu);
+      SetMenuItemInfo(SubMenu, IDM_LANGUAGE, False, SubMenuItemInfo);
+
+      if Assigned(Preprocess) then
+        Preprocess(Sender, dwID, SubMenu, Context);
+
+      PopupResult := Windows.TrackPopupMenuEx(SubMenu, TPM_LEFTALIGN
+        or TPM_TOPALIGN or TPM_RETURNCMD or TPM_RIGHTBUTTON
+        or TPM_HORPOSANIMATION or TPM_VERPOSANIMATION, ppt^.X, ppt^.Y,
+        WindowHandle, nil);
+      if PopupResult then
+        SendMessage(WindowHandle, WM_COMMAND, MakeWParam(LOWORD(PopupResult), 0), 0);
+      Result := True;
+    finally
+      DestroyMenu(ParentMenu);
+    end;
+  end;
+end;
+
+
+type
+  { TnoDragDrop }
+  TnoDragDrop = class(TInterfacedObject, IDropTarget)
+  protected
+    function DragEnter(const dataObj: IDataObject; grfKeyState: Longint;
+      pt: TPoint; var dwEffect: Longint): HRESULT; stdcall;
+    function DragOver(grfKeyState: Longint; pt: TPoint;
+      var dwEffect: Longint): HRESULT; stdcall;
+    function DragLeave: HRESULT; stdcall;
+    function Drop(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint;
+      var dwEffect: Longint): HRESULT; stdcall;
+  end;
+
+function TnoDragDrop.DragEnter(const dataObj: IDataObject; grfKeyState: Integer;
+  pt: TPoint; var dwEffect: Integer): HRESULT;
+begin
+  dwEffect := DROPEFFECT_NONE;
+  Result := S_OK;
+end;
+
+function TnoDragDrop.DragLeave: HRESULT;
+begin
+  Result := S_OK;
+end;
+
+function TnoDragDrop.DragOver(grfKeyState: Integer; pt: TPoint;
+  var dwEffect: Integer): HRESULT;
+begin
+  dwEffect := DROPEFFECT_NONE;
+  Result := S_OK;
+end;
+
+function TnoDragDrop.Drop(const dataObj: IDataObject; grfKeyState: Integer;
+  pt: TPoint; var dwEffect: Integer): HRESULT;
+begin
+  dwEffect := DROPEFFECT_NONE;
+  Result := S_OK;
+end;
+
+{ TCustomEmbeddedWB }
+
+class function TCustomEmbeddedWB.dwEffectToStr(Command: Int64): string;
+const
+  E_UNSPEC = E_Fail;
+begin
+  case (Command) of
+    DROPEFFECT_NONE: Result := 'Drop target cannot accept the data.';
+    DROPEFFECT_COPY: Result := 'Drag source should copy the data.';
+    DROPEFFECT_MOVE: Result := 'Drag source should remove the data.';
+    DROPEFFECT_LINK: Result :=
+      'Drag source should create a link to the original data.';
+    DRAGDROP_S_DROP: Result := 'The drag-and-drop operation was successful.';
+    DRAGDROP_S_CANCEL: Result := 'The drag-and-drop operation was canceled.';
+    DRAGDROP_S_USEDEFAULTCURSORS: Result :=
+      'Successful completion. Restoring defaults.';
+    DRAGDROP_E_INVALIDHWND: Result :=
+      'Invalid handle returned in the hwnd parameter.';
+    DRAGDROP_E_NOTREGISTERED: Result :=
+      'Failed to revoke a drop target that has not been registered.';
+    E_UNSPEC: Result := 'Unexpected error occurred.';
+    E_OUTOFMEMORY: Result := 'Out of memory.';
+    7: Result := 'operation was successful.';
+  else
+    Result := 'Unknown.';
+  end;
+end;
+
+class procedure TCustomEmbeddedWB.DropEffect(grfKeyState: Longint; var dwEffect:
+  longint);
+begin
+  if (grfKeyState and MK_CONTROL = 0) and (grfKeyState and MK_SHIFT <> 0) and
+    (dwEffect and DropEffect_Move <> 0) then
+    dwEffect := DropEffect_Move
+  else if (grfKeyState and MK_CONTROL <> 0) and (grfKeyState and MK_SHIFT <> 0)
+    and
+    (dwEffect and DropEffect_Link <> 0) then
+    dwEffect := DropEffect_Link
+  else if (dwEffect and DropEffect_Copy <> 0) then
+    dwEffect := DropEffect_Copy
+  else if (dwEffect and DropEffect_Move <> 0) then
+    dwEffect := DropEffect_Move
+  else if (dwEffect and DropEffect_Link <> 0) then
+    dwEffect := DropEffect_Link
+  else
+    dwEffect := DropEffect_None;
+end;
+
+function TCustomEmbeddedWB.AllowFocusChange(out pfAllow: BOOL): HRESULT;
+begin
+  Result := S_OK;
+  pfAllow := CanGrabFocus;
+  if Assigned(OnAllowFocusChange) then
+    OnAllowFocusChange(Self, pfAllow);
+end;
+
+function TCustomEmbeddedWB.CopyOptionKeyPath(Overrided: Boolean): PWideChar;
+begin
+  if (OptionKeyPath = '') or
+    (OverrideOptionKeyPath xor Overrided) then
+    Result := nil
+  else
+    Result := StringToLPOLESTR(OptionKeyPath);
+end;
+
+constructor TCustomEmbeddedWB.Create(AOwner: TComponent);
+begin
+  inherited;
+  FCanGrabFocus := True;
+  FScriptErrorAction := eaContinue;
+  DownloadOptions := [DownloadImages, DownloadVideos, DownloadBGSounds];
+  UserInterfaceOptions := [EnableThemes, EnablesFormsAutoComplete];
+  FDropHandlingType := ddtMS;
+  FDisableCtrlShortcuts := 'N';
+end;
+
+destructor TCustomEmbeddedWB.Destroy();
+begin
+  inherited;
+end;
+
+procedure TCustomEmbeddedWB.CreateWnd; //jls
+begin
+  if (CurrentHandle <> 0) and IsWindow(CurrentHandle) then
+  begin
+    WindowHandle := CurrentHandle;
+    CurrentHandle := 0;
+    Windows.SetParent(WindowHandle, TWinControl(Self).Parent.Handle);
+    MoveWindow(WindowHandle, 0, 0, TWinControl(Self).Parent.Width,
+      TWinControl(Self).Parent.Height, True); //Force a resize on the client window
+  end
+  else
+    inherited;
+end;
+
+procedure TCustomEmbeddedWB.DestroyWnd; //jls
+begin
+  if (csDestroying in ComponentState) then
+    inherited
+  else
+  begin
+    Windows.SetParent(WindowHandle, Forms.Application.Handle); //Parent to the Application window which is 0x0 in size
+    CurrentHandle := WindowHandle; // Save the WindowHandle
+    WindowHandle := 0; // Set it to 0 so Createwnd will be called again...
+  end;
+end;
+
+function TCustomEmbeddedWB.EnableModeless(const fEnable: BOOL): HRESULT;
+begin
+  Result := S_OK;
+  if Assigned(FOnEnableModeless) then
+    FOnEnableModeless(Self, fEnable);
+end;
+
+function TCustomEmbeddedWB.EvaluateNewWindow(pszUrl, pszName, pszUrlContext,
+  pszFeatures: LPCWSTR; fReplace: BOOL; dwFlags,
+  dwUserActionTime: DWORD): HRESULT;
+begin
+  Result := E_FAIL;
+  if Assigned(FOnEvaluateNewWindow) then
+    FOnEvaluateNewWindow(Self, pszUrl, pszName, pszUrlContext, pszFeatures,
+      FReplace, dwFlags, dwUserActionTime, Result);
+end;
+
+function TCustomEmbeddedWB.FilterDataObject(const pDO: IDataObject;
+  out ppDORet: IDataObject): HRESULT;
+begin
+  ppDORet := nil;
+  if Assigned(FOnFilterDataObject) then
+    FOnFilterDataObject(Self, pDO, ppDORet);
+  if ppDORet = nil then
+    Result := S_FALSE
+  else
+    Result := S_OK;
+end;
+
+function TCustomEmbeddedWB.GetDoc2: IHtmlDocument2;
+begin
+  if not Supports(Document, IHtmlDocument2, Result) then
+    Result := nil;
+end;
+
+function TCustomEmbeddedWB.GetDoc3: IHtmlDocument3;
+begin
+  if not Supports(Document, IHtmlDocument3, Result) then
+    Result := nil;
+end;
+
+function TCustomEmbeddedWB.GetDoc4: IHtmlDocument4;
+begin
+  if not Supports(Document, IHtmlDocument4, Result) then
+    Result := nil;
+end;
+
+function TCustomEmbeddedWB.GetDoc5: IHtmlDocument5;
+begin
+  if not Supports(Document, IHtmlDocument5, Result) then
+    Result := nil;
+end;
+
+function TCustomEmbeddedWB.getBody: IHTMLElement;
+var
+  D: IHtmlDocument2;
+begin
+  if Supports(Document, IHtmlDocument2, D) then
+    Result := D.body
+  else
+    Result := nil;
+end;
+
+function TCustomEmbeddedWB.GetExternal(out ppDispatch: IDispatch): HRESULT;
+begin
+  ppDispatch := nil;
+  if Assigned(FOnGetExternal) then
+    FOnGetExternal(Self, ppDispatch);
+  if ppDispatch = nil then
+    Result := S_FALSE
+  else
+    Result := S_OK;
+end;
+
+function TCustomEmbeddedWB.GetHostInfo(var pInfo: TDOCHOSTUIINFO): HRESULT;
+begin
+  FillChar(pInfo, SizeOf(TDOCHOSTUIINFO), #0);
+  pInfo.cbSize := SizeOf(pInfo);
+  pInfo.dwFlags := FUserInterfaceValue;
+  pInfo.dwDoubleClick := DOCHOSTUIDBLCLK_DEFAULT;
+  Result := S_OK;
+
+  if Assigned(FOnGetHostInfo) then
+    FOnGetHostInfo(Self, pInfo);
+end;
+
+function TCustomEmbeddedWB.GetIDsOfNames(const IID: TGUID; Names: Pointer; NameCount,
+  LocaleID: Integer; DispIDs: Pointer): HRESULT;
+begin
+  Result := inherited GetIDsOfNames(IID, Names, NameCount, LocaleID, DispIDs);
+  if Assigned(FOnGetIDsOfNames) then
+    FOnGetIDsOfNames(Self, IID, Names, NameCount, LocaleID, DispIds, Result);
+end;
+
+function TCustomEmbeddedWB.GetIEWin(const ClassName: string): HWND;
+var
+  szClass: array[0..255] of char;
+begin
+  if HandleAllocated then
+  begin
+    Result := GetWindow(WindowHandle, GW_CHILD);
+    repeat
+      if (GetClassName(Result, szClass, SizeOf(szClass)) > 0) and
+        (AnsiStrComp(PChar(ClassName), szClass) = 0) then Exit;
+      Result := GetWindow(Result, GW_CHILD);
+    until not IsWindow(Result);
+  end;
+  Result := 0;
+end;
+
+function TCustomEmbeddedWB.GetOptionKeyPath(out pchKey: POleStr;
+  const dw: DWORD): HRESULT;
+begin
+  pchKey := CopyOptionKeyPath(False);
+{$IFDEF GETKEYPATH_HANDLERS}
+  if Assigned(FOnGetOptionKeyPath) then
+    FOnGetOptionKeyPath(Self, pchKey);
+{$ENDIF}
+  if pchKey = nil then
+    Result := S_FALSE
+  else
+    Result := S_OK;
+end;
+
+function TCustomEmbeddedWB.GetOverrideKeyPath(out pchKey: POleStr; dw: DWORD): HRESULT;
+begin
+  pchKey := CopyOptionKeyPath(True);
+{$IFDEF GETKEYPATH_HANDLERS}
+  if Assigned(FOnGetOverrideKeyPath) then
+    FOnGetOverrideKeyPath(Self, pchKey);
+{$ENDIF}
+  if pchKey = nil then
+    Result := S_FALSE
+  else
+    Result := S_OK;
+end;
+
+function TCustomEmbeddedWB.GetTypeInfo(Index, LocaleID: Integer; out TypeInfo): HRESULT;
+begin
+  Result := inherited GetTypeInfo(Index, LocaleID, TypeInfo);
+  if Assigned(FOnGetTypeInfo) then
+    FOnGetTypeInfo(Self, Index, LocaleID, ITypeInfo(TypeInfo), Result);
+end;
+
+function TCustomEmbeddedWB.GetTypeInfoCount(out Count: Integer): HRESULT;
+begin
+  Result := inherited GetTypeInfoCount(Count);
+  if Assigned(FOnGetTypeInfoCount) then
+    FOnGetTypeInfoCount(Self, Count, Result);
+end;
+
+function TCustomEmbeddedWB.GetZoom: Integer;
+var
+  vaIn, vaOut: OleVariant;
+begin
+  vaIn := NULL;
+  InvokeCommand(nil, OLECMDID_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, vaIn, vaOut);
+  Result := vaOut;
+end;
+
+procedure TCustomEmbeddedWB.SetZoom(const Value: Integer);
+var
+  vaIn, vaOut: OleVariant;
+  Range: DWORD;
+begin
+  InvokeCommand(nil, OLECMDID_GETZOOMRANGE, OLECMDEXECOPT_DONTPROMPTUSER, vaIn,
+    vaOut);
+  Range := DWORD(vaOut);
+  if Value < LoWord(Range) then
+    vaIn := LoWord(Range)
+  else if Value > HiWord(Range) then
+    vaIn := HiWord(Range)
+  else
+    vaIn := Value;
+  InvokeCommand(nil, OLECMDID_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, vaIn, vaOut);
+end;
+
+procedure TCustomEmbeddedWB.SetOpticalZoom(const Value: Integer);
+var
+  vaIn, vaOut: OleVariant;
+  Range: DWORD;
+begin
+  if FZoomPercent <> Value then
+  begin
+    FZoomPercent := Value;
+    InvokeCommand(nil, OLECMDID_OPTICAL_GETZOOMRANGE, OLECMDEXECOPT_DONTPROMPTUSER, vaIn, vaOut);
+    Range := DWORD(vaOut);
+    if Value < LoWord(Range) then
+      vaIn := LoWord(Range)
+    else
+      if Value > HiWord(Range) then
+        vaIn := HiWord(Range)
+      else
+        vaIn := Value;
+    InvokeCommand(nil, OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, vaIn, vaOut);
+    if Assigned(FOnZoomPercentChanged) then
+      FOnZoomPercentChanged(Self, vaOut);
+  end;
+end;
+
+function TCustomEmbeddedWB.HideUI: HRESULT;
+begin
+  Result := S_FALSE;
+  if Assigned(FOnHideUI) then
+    FOnHideUI(Self, Result);
+end;
+
+function TCustomEmbeddedWB.InvokeCommand(CmdGroup: PGUID; Cmd, nCmdexecopt: DWORD;
+  var vaIn, vaOut: OleVariant): HRESULT;
+var
+  CmdTarget: IOleCommandTarget;
+begin
+  if Supports(Document, IOleCommandTarget, CmdTarget) then
+    Result := CmdTarget.Exec(CmdGroup, Cmd, nCmdexecopt, vaIn, vaOut)
+  else
+    Result := E_UNEXPECTED;
+end;
+
+function TCustomEmbeddedWB.InvokeCommand(CmdGroup: PGUID; Cmd: DWORD): HRESULT;
+var
+  CmdTarget: IOleCommandTarget;
+  vaIn, vaOut: Olevariant;
+begin
+  if Supports(Document, IOleCommandTarget, CmdTarget) then
+    Result := CmdTarget.Exec(CmdGroup, Cmd, OLECMDEXECOPT_DODEFAULT, vaIn, vaOut)
+  else
+    Result := E_UNEXPECTED;
+end;
+
+function TCustomEmbeddedWB.QueryCMDArrayStatus(CmdGroup: PGUID;
+  cmds: TOleCmdArray): Boolean;
+var
+  CmdTarget: IOleCommandTarget;
+begin
+  if Supports(Document, IOleCommandTarget, CmdTarget) then
+    Result := CmdTarget.QueryStatus(CmdGroup,
+      Length(cmds), @Cmds, nil) = S_OK
+  else
+    Result := False;
+end;
+
+function TCustomEmbeddedWB.QueryCMDEnabled(CmdGroup: PGUID; cmdID: Cardinal): Boolean;
+begin
+  Result := (QueryCMDStatus(CmdGroup, cmdID) and OLECMDF_ENABLED) <> 0;
+end;
+
+function TCustomEmbeddedWB.QueryCMDLatched(CmdGroup: PGUID; cmdID: Cardinal): Boolean;
+begin
+  Result := (QueryCMDStatus(CmdGroup, cmdID) and OLECMDF_LATCHED) <> 0;
+end;
+
+function TCustomEmbeddedWB.QueryCMDStatus(CmdGroup: PGUID; cmdID: Cardinal): OLECMDF;
+var
+  CmdTarget: IOleCommandTarget;
+  Cmd: TOleCmd;
+begin
+  Result := 0;
+  if Supports(Document, IOleCommandTarget, CmdTarget) then
+  begin
+    Cmd.CmdID := cmdID;
+    Cmd.cmdf := 0;
+    if CmdTarget.QueryStatus(CmdGroup, 1, @Cmd, nil) = S_OK then
+      Result := Cmd.cmdf;
+  end;
+end;
+
+function TCustomEmbeddedWB.QueryCommandStatus(CmdGroup: PGUID; cCmds: Cardinal; prgCmds:
+  POleCmd;
+  CmdText: POleCmdText): HRESULT;
+var
+  CmdTarget: IOleCommandTarget;
+begin
+  if Supports(Document, IOleCommandTarget, CmdTarget) then
+    Result := CmdTarget.QueryStatus(CmdGroup, cCmds, prgCmds, CmdText)
+  else
+    Result := E_UNEXPECTED;
+end;
+
+{$IFDEF RESEARCH_MODE}
+
+function TCustomEmbeddedWB.QueryInterface(const IID: TGUID; out Obj): HRESULT;
+begin
+  Result := inherited QueryInterface(IID, Obj);
+  if Assigned(OnQueryInterface) then
+    OnQueryInterface(Self, IID, Obj, Result);
+end;
+{$ENDIF}
+
+
+function TCustomEmbeddedWB.Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HRESULT;
+var
+  UserAgent: string;
+begin
+  try
+    Result := S_FALSE;
+    if (Flags and DISPATCH_PROPERTYGET <> 0) and (VarResult <> nil) then
+    begin
+      Result := S_OK;
+      case DispID of
+        DISPID_AMBIENT_DLCONTROL:
+          begin
+            PVariant(VarResult)^ := FDownloadOptionValue;
+          end;
+        DISPID_AMBIENT_USERMODE:
+          begin
+            POleVariant(VarResult)^ := not DesignMode;
+          end;
+        DISPID_AMBIENT_USERAGENT:
+          begin
+            Result := S_FALSE;
+            if Assigned(FOnSetUserAgent) then
+            begin
+              if FOnSetUserAgent(UserAgent) = S_OK then
+                if UserAgent <> '' then
+                begin
+                  POleVariant(VarResult)^ := UserAgent + #13#10;
+                  Result := S_OK;
+                end;
+            end;
+          end;
+      else
+        Result := S_FALSE;
+      end;
+    end
+
+    else if (Flags and DISPATCH_PROPERTYPUT <> 0) and
+      (DispID = DISPID_AMBIENT_USERMODE) then
+    begin
+      Result := S_OK;
+      Self.FDesignMode := POleVariant(TDispParams(Params).rgvarg)^;
+    end;
+
+    if Result = S_FALSE then
+    begin
+      Result := inherited Invoke(DispID, IID, LocaleID, Flags, Params,
+        VarResult, ExcepInfo, ArgErr);
+      if (result = DISP_E_MEMBERNOTFOUND) and Assigned(FOnInvoke) then
+        FOnInvoke(Self, DispID, IID, LocaleID, Flags, TagDispParams(Params),
+          VarResult, ExcepInfo, ArgErr, Result);
+    end;
+  except
+    on E: Exception do
+    begin
+      Result := DISP_E_EXCEPTION;
+      with PExcepInfo(ExcepInfo)^ do
+      begin
+        wCode := 9999;
+        bstrDescription := E.Message;
+        bstrSource := E.ClassName;
+        dwHelpContext := E.HelpContext;
+      end;
+    end;
+  end;
+end;
+
+function TCustomEmbeddedWB.OnDocWindowActivate(const fActivate: BOOL): HRESULT;
+begin
+  if Assigned(FOnOnDocWindowActivate) then
+    FOnOnDocWindowActivate(Self, FActivate);
+  Result := S_OK;
+end;
+
+function TCustomEmbeddedWB.OnFrameWindowActivate(const fActivate: BOOL): HRESULT;
+begin
+  if Assigned(FOnOnFrameWindowActivate) then
+    FOnOnFrameWindowActivate(Self, fActivate);
+  Result := S_OK;
+end;
+
+function TCustomEmbeddedWB.DoQueryService(const rsid, iid: TGUID; var Obj): Boolean;
+begin
+  if (IsEqualGuid(rsid, IID_INewWindowManager) and Assigned(FOnEvaluateNewWindow))
+    or IsEqualGuid(rsid, IID_IProtectFocus)
+    or (IsEqualGuid(rsid, IID_IDownloadManager) and Assigned(FOnDownload))
+    or (IsEqualGuid(rsid, IID_IHostBehaviorInit) and Assigned(OnPopulateNSTable))
+    or (IsEqualGuid(rsid, IID_IHTMLOMWindowServices) and
+    (FloatingHosting or Assigned(OnMove) or Assigned(Self.OnMoveBy)
+    or Assigned(OnResize) or Assigned(OnResizeBy)))
+    or (IsEqualGUID(iid, IID_IAuthenticate) and Assigned(OnAuthenticate))
+    then Result := QueryInterface(iid, Obj) = S_OK
+  else Result := False;
+end;
+
+function TCustomEmbeddedWB.QueryService(const rsid, iid: TGUID; out Obj): HRESULT;
+begin
+  Pointer(Obj) := nil;
+  if (not DoQueryService(rsid, iid, Obj)) and Assigned(FOnQueryService) then
+    FOnQueryService(Self, rsid, iid, IUnknown(obj));
+
+  if Pointer(Obj) <> nil then
+    Result := S_OK
+  else
+    Result := E_NOINTERFACE;
+end;
+
+function TCustomEmbeddedWB.ResizeBorder(const prcBorder: PRECT;
+  const pUIWindow: IOleInPlaceUIWindow; const FrameWindow: BOOL): HRESULT;
+begin
+  if Assigned(FOnResizeBorder) then
+    FOnResizeBorder(Self, prcBorder, pUIWindow, fRameWindow);
+  Result := S_OK;
+end;
+
+procedure TCustomEmbeddedWB.MoveParentForm(x, y: Integer; Delta: Boolean);
+var
+  F: TCustomForm;
+begin
+  F := GetParentForm(Self);
+  if F <> nil then
+  begin
+    if Delta then
+    begin
+      x := F.Left + x;
+      y := F.Top + y;
+    end; //FIXME defend from moving outside of screen  (don't forget multimonitor)
+    F.SetBounds(x, y, F.Width, F.Height);
+  end;
+end;
+
+procedure TCustomEmbeddedWB.ResizeParentForm(w, h: Integer; Delta: Boolean);
+var
+  F: TCustomForm;
+begin
+  F := GetParentForm(Self);
+  if F <> nil then
+  begin
+    if Delta then
+    begin
+      w := F.Width + w;
+      h := F.Height + h;
+    end;
+    F.SetBounds(F.Left, F.Top, w, h);
+  end;
+end;
+
+function TCustomEmbeddedWB.ResizeBy(const x, y: Integer): HRESULT;
+begin
+  if FloatingHosting then
+    ResizeParentForm(x, y, True);
+  if Assigned(OnResizeBy) then
+    OnResizeBy(Self, x, y);
+  Result := S_OK; // always return success to prevent script error messages
+end;
+
+function TCustomEmbeddedWB.ResizeTo(const x, y: Integer): HRESULT;
+begin
+  if FloatingHosting then
+    ResizeParentForm(x, y, False);
+  if Assigned(OnResize) then
+    OnResize(self, x, y);
+  Result := S_OK; // always return success to prevent script error messages
+end;
+
+function TCustomEmbeddedWB.MoveBy(const x, y: Integer): HRESULT;
+begin
+  if FloatingHosting then
+    MoveParentForm(x, y, True);
+  if Assigned(OnMoveBy) then
+    OnMoveBy(self, x, y);
+  Result := S_OK; // always return success to prevent script error messages
+end;
+
+function TCustomEmbeddedWB.MoveTo(const x, y: Integer): HRESULT;
+begin
+  if FloatingHosting then
+    MoveParentForm(x, y, False);
+  if Assigned(OnMove) then
+    OnMove(self, x, y);
+  Result := S_OK; // always return success to prevent script error messages
+end;
+
+function TCustomEmbeddedWB.OnZoomPercentChanged(const ulZoomPercent: uLong): HRESULT;
+begin
+  if Assigned(FOnZoomPercentChanged) then
+    Result := FOnZoomPercentChanged(Self, ulZoomPercent)
+  else
+    Result := S_FALSE;
+end;
+
+function TCustomEmbeddedWB.GetElemByID(const ID: WideString): IHTMLElement;
+var
+  Doc3: IHTMLDocument3;
+begin
+  if Supports(Document, IHTMLDocument3, Doc3) then
+    Result := Doc3.getElementById(ID)
+  else
+    Result := nil;
+end;
+
+function TCustomEmbeddedWB.ScrollToElement(Element: IHTMLElement): Boolean;
+var
+  RV: IHTMLRect;
+begin
+  Result := Element <> nil;
+  if Result then
+  begin
+    RV := (Element as IHTMLElement2).getBoundingClientRect;
+    Doc2.parentWindow.scrollBy(RV.left, RV.top);
+  end;
+end;
+
+function TCustomEmbeddedWB.GetCharSet: WideString;
+begin
+  Result := Doc2.charset;
+end;
+
+procedure TCustomEmbeddedWB.SetCharSet(const Value: WideString);
+var
+  Level: OleVariant;
+begin
+  Doc2.charset := Value;
+  Level := 7;
+  DefaultInterface.Refresh2(Level);
+end;
+
+procedure TCustomEmbeddedWB.SetDesignMode(const Value: Boolean);
+var
+  Control: IOleControl;
+begin
+  FDesignMode := Value;
+  if DefaultInterface.QueryInterface(IOleControl, Control) = 0 then
+    with (Application as IOleControl) do
+    begin
+      OnAmbientPropertyChange(DISPID_AMBIENT_USERMODE);
+      _Release;
+    end;
+end;
+
+const
+  _DesignModeValues: array[TDocDesignMode] of string =
+  ('On', 'Off', 'Inherit', '');
+
+function TCustomEmbeddedWB.GetDocDesignMode: TDocDesignMode;
+var
+  D: IHTMLDocument2;
+  I: Integer;
+begin
+  Result := ddmUnknown;
+  if Supports(Document, IHTMLDocument2, D) then
+  begin
+    I := AnsiIndexStr(D.designMode, _DesignModeValues);
+    if I in [0..2] then
+      Result := TDocDesignMode(I);
+  end;
+end;
+
+procedure TCustomEmbeddedWB.SetDocDesignMode(const Value: TDocDesignMode);
+var
+  D: IHTMLDocument2;
+begin
+  if (Value <> ddmUnknown) and Supports(Document, IHTMLDocument2, D) then
+    D.designMode := _DesignModeValues[Value];
+end;
+
+procedure TCustomEmbeddedWB.SetDownloadOptions(const Value: TDownloadControlOptions);
+begin
+  FDownloadControlOptions := Value;
+  UpdateDownloadControlValues;
+  with (Application as IOleControl) do
+  begin
+    OnAmbientPropertyChange(DISPID_AMBIENT_DLCONTROL);
+    _Release;
+  end;
+end;
+
+procedure TCustomEmbeddedWB.SetFocusToBody;
+var
+  bodyElement: IHTMLElement2;
+  HTMLDoc2: IHTMLDocument2;
+begin
+  HTMLDoc2 := GetDoc2;
+  if Assigned(HTMLDoc2) then
+  begin
+    bodyElement := HTMLDoc2.body as IHTMLElement2;
+    if Assigned(bodyElement) then
+      bodyElement.focus;
+  end;
+end;
+
+procedure TCustomEmbeddedWB.SetFocusToDoc;
+var
+  bCanGrabFocus: Boolean;
+  ParentForm: TCustomForm;
+begin
+  if Document <> nil then
+  begin
+    bCanGrabFocus := CanGrabFocus;
+    CanGrabFocus := True;
+    with (Application as IOleObject) do
+    begin
+      if DoVerb(OLEIVERB_UIACTIVATE, nil, Self, 0, Handle, GetClientRect) = S_OK then
+      begin
+        ParentForm := GetParentForm(Self);
+        if Assigned(ParentForm) and Self.CanFocus then
+          ParentForm.ActiveControl := Self;
+      end;
+    end;
+    CanGrabFocus := bCanGrabFocus;
+  end;
+end;
+
+procedure TCustomEmbeddedWB.SetFocusToParent;
+begin
+ {if IsWindow(WindowHandle) then
+  begin
+    Windows.SetParent(WindowHandle, Parent.Handle);
+    MoveWindow(WindowHandle, 0, 0, Parent.Width, Parent.Height, True);
+    Parent.SetFocus;
+  end;}
+  if IsWindow(WindowHandle) then
+  begin
+    Windows.SetParent(WindowHandle, TWinControl(Self).Parent.Handle);
+    MoveWindow(WindowHandle, 0, 0, TWinControl(Self).Parent.Width,
+      TWinControl(Self).Parent.Height, True);
+    TWinControl(Self).Parent.SetFocus;
+  end;
+end;
+
+procedure TCustomEmbeddedWB.SetUserInterfaceOptions(const Value: TUserInterfaceOptions);
+begin
+  FUserInterfaceOptions := Value;
+  UpdateUserInterfaceValues;
+  with (Application as IOleControl) do
+  begin
+    OnAmbientPropertyChange(DISPID_AMBIENT_DLCONTROL);
+    _Release;
+  end;
+end;
+
+procedure TCustomEmbeddedWB.SetDropHandlingType(const Value: TDragDropHandlingType);
+var
+  innerWnd: LongWord;
+  Impl: IDropTarget;
+begin
+  if FDropHandlingType <> Value then
+  begin
+    FDropHandlingType := Value;
+
+    if HandleAllocated then
+      innerWnd := GetIEWin('Internet Explorer_Server')
+    else
+      innerWnd := 0;
+    if innerWnd <> 0 then
+      RevokeDragDrop(innerWnd);
+
+    Impl := nil;
+    case Value of
+      ddtMS:
+        DefaultInterface.RegisterAsDropTarget := True;
+      ddtMy: Impl := Self;
+      ddtCustom:
+        if innerWnd <> 0 then
+        begin
+          Impl := Self;
+          if Assigned(FOnGetDropTarget) then
+            FOnGetDropTarget(Self, Impl);
+        end;
+      ddtNo:
+        DefaultInterface.RegisterAsDropTarget := False;
+    end;
+    if (innerWnd <> 0) and (Impl <> nil) then
+      RegisterDragDrop(innerWnd, Impl);
+  end;
+end;
+
+function TCustomEmbeddedWB.GetDropTarget(const pDropTarget: IDropTarget;
+  out ppDropTarget: IDropTarget): HRESULT;
+begin
+  Result := S_OK;
+  case DropHandlingType of
+    ddtMS:
+      begin
+        DefaultInterface.RegisterAsDropTarget := True;
+        Result := E_NOTIMPL;
+      end;
+    ddtMy:
+      ppDropTarget := Self;
+    ddtCustom:
+      begin
+        ppDropTarget := Self;
+        if Assigned(FOnGetDropTarget) then
+          FOnGetDropTarget(Self, ppDropTarget);
+      end;
+    ddtNo:
+      begin
+        DefaultInterface.RegisterAsDropTarget := False;
+        ppDropTarget := nil;
+      end;
+  end;
+end;
+
+function TCustomEmbeddedWB.DragEnter(const dataObj: IDataObject; grfKeyState: Integer;
+  pt: TPoint; var dwEffect: Integer): HRESULT;
+begin
+  Result := NOERROR;
+  dwEffect := DROPEFFECT_NONE;
+  if Assigned(OnDragEnter) then
+    OnDragEnter(Self, dataObj, grfKeyState, pt, dwEffect, Result);
+end;
+
+function TCustomEmbeddedWB.DragLeave: HRESULT;
+begin
+  Result := NOERROR;
+  if Assigned(OnDragLeave) then
+    OnDragLeave(Self);
+end;
+
+function TCustomEmbeddedWB.Drop(const dataObj: IDataObject; grfKeyState: Integer;
+  pt: TPoint; var dwEffect: Integer): HRESULT;
+begin
+  Result := NOERROR;
+  dwEffect := DROPEFFECT_NONE;
+  if Assigned(FOnDropEvent) then
+    FOnDropEvent(Self, dataObj, grfKeyState, pt, dwEffect, Result);
+end;
+
+function TCustomEmbeddedWB.DropTargetDragOver(grfKeyState: Integer; pt: TPoint;
+  var dwEffect: Integer): HRESULT;
+begin
+  Result := NOERROR;
+  dwEffect := DROPEFFECT_NONE;
+  if Assigned(FOnDragOverEvent) then
+    FOnDragOverEvent(Self, grfKeyState, pt, dwEffect, Result);
+end;
+
+function TCustomEmbeddedWB.Download(pmk: IMoniker; pbc: IBindCtx; dwBindVerb,
+  grfBINDF: DWORD; pBindInfo: PBindInfo; pszHeaders, pszRedir: PWidechar;
+  uiCP: UINT): HRESULT;
+begin
+  Result := E_NOTIMPL;
+  if Assigned(FOnDownload) then
+    FOnDownload(Self, pmk, pbc, dwBindVerb, grfBINDF, pBindInfo, pszHeaders,
+      pszRedir, uiCP, Result);
+end;
+
+function TCustomEmbeddedWB.FilterPopupMenu: Boolean;
+begin
+  Result := Assigned(OnFilterPopupMenu);
+end;
+
+procedure TCustomEmbeddedWB.DoFilterPopupMenu(Sender: TObject; ID: DWORD; Menu: HMENU; const Context:
+  IDispatch);
+begin
+  if Assigned(OnFilterPopupMenu) then
+    OnFilterPopupMenu(Sender, ID, Menu, Context);
+end;
+
+function TCustomEmbeddedWB.ShowContextMenu(const dwID: DWORD; const ppt: PPOINT;
+  const CommandTarget: IUnknown; const Context: IDispatch): HRESULT;
+var
+  EncodingSubMenu: OleVariant;
+begin
+  Result := E_NOTIMPL;
+  if Assigned(FOnShowContextMenu) then
+    FOnShowContextMenu(Self, dwID, ppt, CommandTarget, Context, Result);
+
+  if Result = E_NOTIMPL then
+  begin
+    if IsSeTIEPopupMenus(dwID, DisabledPopupMenus) then
+    begin
+      Result := S_OK;
+      if Assigned(PopUpMenu) then // Show assigned TPopupMenu
+        PopUpMenu.Popup(Mouse.CursorPos.X, Mouse.CursorPos.Y);
+    end else
+      if FilterPopupMenu then
+      begin
+        ExecWB(CGetMimeSubMenuCommandID, OLECMDEXECOPT_DODEFAULT, EncodingSubMenu);
+        if ShowRightClickMenu(Self, dwID, CommandTarget, Context, ppt, EncodingSubMenu,
+          DoFilterPopupMenu) then
+          Result := S_OK
+        else
+          Result := S_FALSE;
+      end
+      else
+        Result := S_FALSE;
+  end;
+end;
+
+function TCustomEmbeddedWB.ShowHelp(HWND: THandle; pszHelpFile: POleStr; uCommand,
+  dwData: Integer; ptMouse: TPoint; var pDispatchObjectHit: IDispatch): HRESULT;
+begin
+  if Assigned(FOnShowHelp) then
+    Result := FOnShowHelp(Self, HWND, pszHelpFile, uCommand, dwData, ptMouse, pDispatchObjectHit)
+  else
+    if (pszHelpFile = nil) and (HelpFile <> '') then
+    begin
+      HtmlHelp(HWND, PChar(HelpFile), uCommand, dwData);
+      Result := S_OK;
+    end
+    else
+      Result := S_FALSE;
+end;
+
+function TCustomEmbeddedWB.ShowMessage(HWND: THandle; lpstrText, lpstrCaption: POleStr;
+  dwType: Integer; lpstrHelpFile: POleStr; dwHelpContext: Integer;
+  var plResult: LRESULT): HRESULT;
+begin
+  if Assigned(FOnShowMessage) then
+    Result := FOnShowMessage(Self, HWND, lpstrText, lpStrCaption, dwType, lpStrHelpFile, dwHelpContext, plResult)
+  else
+    Result := S_FALSE;
+end;
+
+function TCustomEmbeddedWB.ShowUI(const dwID: DWORD;
+  const pActiveObject: IOleInPlaceActiveObject;
+  const pCommandTarget: IOleCommandTarget; const pFrame: IOleInPlaceFrame;
+  const pDoc: IOleInPlaceUIWindow): HRESULT;
+begin
+  Result := S_FALSE;
+  if Assigned(FOnShowUI) then
+    FOnShowUI(Self, dwID, pActiveObject, pCommandTarget, pFrame, pDoc, Result);
+end;
+
+function TCustomEmbeddedWB.DoFilterMsg(const lpMsg: PMSG): Boolean;
+type
+  PWMKey = ^TWMKey;
+var
+  ShiftState: TShiftState;
+begin
+ {
+  Result := (FDisableCtrlShortcuts <> '') and (lpMsg^.message = WM_KEYDOWN)
+    and (((GetKeyState(VK_LCONTROL) < 0) and (GetKeyState(VK_MENU) >= 0)) or
+    ((GetKeyState(VK_RCONTROL) < 0) and (GetKeyState(VK_LMENU) >= 0)))
+    and (_CharPos(Char(lpMsg.wParam), FDisableCtrlShortcuts) > 0);      }
+
+  ShiftState := KeyDataToShiftState(PWMKey(lpMsg)^.KeyData);
+  Result := (FDisableCtrlShortcuts <> '') and (lpMsg^.message = WM_KEYDOWN)
+    and ((ShiftState = [ssCtrl]) and (ShiftState <> [ssAlt]))
+    and (_CharPos(Char(lpMsg.wParam), FDisableCtrlShortcuts) > 0);
+
+  if Result and Assigned(OnMaskedCtrlChar) then
+    OnMaskedCtrlChar(Self, Char(lpMsg.wParam));
+end;
+
+function TCustomEmbeddedWB.TranslateAccelerator(const lpMsg: PMSG;
+  const pguidCmdGroup: PGUID; const nCmdID: DWORD): HRESULT;
+ { Called by MSHTML when IOleInPlaceActiveObject.TranslateAccelerator or
+    IOleControlSite.TranslateAccelerator is called }
+var
+  Filtered: Boolean;
+begin
+  Filtered := DoFilterMsg(lpMsg);
+  if (not Filtered) and Assigned(FOnTranslateAccelerator) then
+    FOnTranslateAccelerator(Self, lpMsg, pguidCmdGroup, nCmdID, Filtered);
+
+  if Filtered then
+    Result := S_OK
+  else
+    Result := S_FALSE;
+end;
+
+
+function TCustomEmbeddedWB.TranslateUrl(const dwTranslate: DWORD; const pchURLIn:
+  POleStr; out ppchURLOut: POleStr): HRESULT;
+var
+  URLOut: WideString;
+begin
+  URLOut := '';
+  if Assigned(FOnTranslateUrl) then
+    FOnTranslateUrl(Self, pchUrlIn, URLOut);
+  if URLOut <> '' then
+  begin
+    Result := S_OK;
+    ppchURLOut := WideStringToLPOLESTR(URLOut);
+  end
+  else
+    Result := S_FALSE;
+end;
+
+function TCustomEmbeddedWB.UpdateUI: HRESULT;
+begin
+  Result := S_FALSE;
+  if Assigned(FOnUpdateUI) then
+    FOnUpdateUI(Self, Result);
+end;
+
+procedure TCustomEmbeddedWB.UpdateUserInterfaceValues;
+const
+  acardUserInterfaceValues: array[TUserInterfaceOption] of Cardinal =
+  ($00000001, $00000002, $00000004, $00000008,
+    $00000010, $00000020, $00000040, $00000080,
+    $00000100, $00000200, $00000400, $00000800,
+    $00001000, $00002000, $00004000, $00010000, $00020000,
+    $00040000, $00080000, $00100000, $00200000, $00400000,
+    $00800000, $01000000, $02000000, $04000000, $08000000,
+    $10000000, $20000000);
+var
+  uio: TUserInterfaceOption;
+begin
+  FUserInterfaceValue := 0;
+  if (FUserInterfaceOptions <> []) then
+    for uio := Low(TUserInterfaceOption) to High(TUserInterfaceOption) do
+      if (uio in FUserInterfaceOptions) then
+        Inc(FUserInterfaceValue, acardUserInterfaceValues[uio]);
+end;
+
+
+procedure TCustomEmbeddedWB.UpdateDownloadControlValues;
+const
+  acardDownloadControlValues: array[TDownloadControlOption] of Cardinal =
+  ($00000010, $00000020, $00000040, $00000080,
+    $00000100, $00000200, $00000400, $00000800,
+    $00001000, $00002000, $00004000, $00008000,
+    $00010000, $00020000, $00040000, $10000000,
+    $20000000, $40000000, $80000000);
+var
+  dco: TDownloadControlOption;
+begin
+  FDownloadOptionValue := 0;
+  if (FDownloadControlOptions <> []) then
+    for dco := Low(TDownloadControlOption) to High(TDownloadControlOption) do
+      if (dco in FDownloadControlOptions) then
+        Inc(FDownloadOptionValue, acardDownloadControlValues[dco]);
+end;
+
+function TCustomEmbeddedWB.ZoomRangeHigh: Integer;
+var
+  vaIn, vaOut: OleVariant;
+begin
+  InvokeCommand(nil, OLECMDID_GETZOOMRANGE, OLECMDEXECOPT_DONTPROMPTUSER, vaIn, vaOut);
+  Result := HiWord(DWORD(vaOut));
+end;
+
+function TCustomEmbeddedWB.ZoomRangeLow: Integer;
+var
+  vaIn, vaOut: OleVariant;
+begin
+  InvokeCommand(nil, OLECMDID_GETZOOMRANGE, OLECMDEXECOPT_DONTPROMPTUSER, vaIn, vaOut);
+  Result := LoWord(DWORD(vaOut));
+end;
+
+function TCustomEmbeddedWB._getCookie: WideString;
+var
+  D: IHTMLDocument2;
+begin
+  if Supports(Document, IHTMLDocument2, D) then
+    Result := OleObject.Document.Cookie
+  else
+    Result := '';
+end;
+
+procedure TCustomEmbeddedWB.Client2HostWin(var CX, CY: Integer);
+var
+  F: TCustomForm;
+begin
+  F := GetParentForm(Self);
+  if F <> nil then
+  begin
+    Inc(CX, F.ClientWidth - Self.Width);
+    Inc(CY, F.ClientHeight - Self.Height);
+  end;
+end;
+
+{$IFDEF USE_IOLECOMMANDTARGET}
+//======IOleCommandTarget interface ============================================
+
+function TCustomEmbeddedWB.CommandTarget_QueryStatus(CmdGroup: PGUID; cCmds: Cardinal;
+  prgCmds: POleCmd; CmdText: POleCmdText): HRESULT;
+begin
+  Result := S_OK;
+end;
+
+function TCustomEmbeddedWB.CommandTarget_Exec(CmdGroup: PGUID; nCmdID, nCmdexecopt: DWORD;
+  const vaIn: OleVariant; var vaOut: OleVariant): HRESULT;
+var
+  tmpCancel: Boolean;
+const
+{$J+}
+  LastTickEvent: Cardinal = 0;
+{$J-}
+begin
+  Result := OLECMDERR_E_NOTSUPPORTED;
+  if CmdGroup <> nil then
+  begin
+    if IsEqualGuid(cmdGroup^, CGID_EXPLORER) then
+    begin
+      case nCmdID of
+        OLECMDID_ONUNLOAD:
+          if Assigned(FOnUnload) then
+          begin
+            FOnUnload(Self);
+            Result := S_OK;
+            Exit;
+          end;
+
+        OLECMDID_PREREFRESH:
+          begin
+            if Assigned(FOnPreRefresh) then
+            begin
+              if GetTickCount - LastTickEvent > 150 then
+              begin
+                LastTickEvent := GetTickCount;
+                FOnPreRefresh(Self);
+              end;
+            end;
+
+            if Assigned(FOnHookChildWindow) then
+             if (GetIEWin('Internet Explorer_Server') <> 0) or (GetIEWin('SysListView32') <> 0) then
+                FOnHookChildWindow(Self);
+          end;
+      end
+    end else
+      if IsEqualGuid(cmdGroup^, CGID_DocHostCommandHandler) then
+      begin
+        case nCmdID of
+          ID_IE_F5_REFRESH {nCmdID 6041, F5},
+            ID_IE_CONTEXTMENU_REFRESH {nCmdID 6042, Refresh by ContextMenu},
+            IDM_REFRESH {nCmdID 2300}:
+            begin
+              if Assigned(FOnRefresh) then
+              begin
+                tmpCancel := False;
+                FOnRefresh(Self, nCmdID, tmpCancel);
+                if tmpCancel then
+                  Result := S_OK; //FIXME is it true? Why not OLECMDERR_E_CANCELED
+              end;
+              Exit;
+            end;
+          OLECMDID_SHOWSCRIPTERROR:
+            begin
+              Result := ScriptErrorHandler(vaIn, vaOut);
+              Exit;
+            end;
+        end;
+      end;
+  end;
+  if Assigned(OnCommandExec) then
+    Self.OnCommandExec(Self, CmdGroup, nCmdID, nCmdexecopt,
+      vaIn, vaOut, Result);
+end;
+{$ENDIF}
+
+function TCustomEmbeddedWB.ScriptErrorHandler(const vaIn: OleVariant;
+  var vaOut: OleVariant): HRESULT;
+var
+  EventObject: IHTMLEventObj;
+  CurWindow: IHTMLWindow2;
+  CurDocument: IHTMLDocument2;
+  CurUnknown: IUnknown;
+
+  function GetProperty(const PropName: WideString): OleVariant;
+  var
+    DispParams: TDispParams;
+    Disp, Status: Integer;
+    ExcepInfo: TExcepInfo;
+    PPropName: PWideChar;
+  begin
+    DispParams.rgvarg := nil;
+    DispParams.rgdispidNamedArgs := nil;
+    DispParams.cArgs := 0;
+    DispParams.cNamedArgs := 0;
+    PPropName := PWideChar(PropName);
+    Status := EventObject.GetIDsOfNames(GUID_NULL, @PPropName, 1, LOCALE_SYSTEM_DEFAULT, @Disp);
+    if Status = 0 then
+    begin
+      Status := EventObject.Invoke(disp, GUID_NULL, LOCALE_SYSTEM_DEFAULT,
+        DISPATCH_PROPERTYGET, DispParams, @Result, @ExcepInfo, nil);
+      if Status <> 0 then
+        DispatchInvokeError(Status, ExcepInfo);
+    end
+    else
+      if Status = DISP_E_UNKNOWNNAME then
+        raise
+          EOleError.CreateFmt('''%s'' is not supported.', [PropName])
+      else
+        OleCheck(Status);
+  end;
+begin
+  Result := S_OK;
+  case FScriptErrorAction of
+    eaAskUser: Result := S_FALSE; //E_FAIL;
+    eaContinue: vaOut := True;
+    eaCancel: vaOut := False;
+  end;
+
+  if Assigned(FOnScriptError) then
+  begin
+    CurUnknown := IUnknown(TVarData(vaIn).VUnknown);
+    if Succeeded(CurUnknown.QueryInterface(IID_IHTMLDocument2, CurDocument)) then
+    begin
+      CurWindow := CurDocument.Get_parentWindow;
+      CurDocument := nil;
+      if Assigned(CurWindow) then
+      begin
+        EventObject := CurWindow.Get_event;
+        if EventObject <> nil then
+        begin
+          FOnScriptError(Self,
+            GetProperty('errorline'),
+            GetProperty('errorCharacter'),
+            GetProperty('errorCode'),
+            GetProperty('errorMessage'),
+            GetProperty('errorUrl'),
+            FScriptErrorAction);
+        end;
+      end;
+    end;
+  end;
+end;
+
+function TCustomEmbeddedWB.PopulateNamespaceTable: HRESULT;
+begin
+  Result := S_OK;
+  if Assigned(fOnPopulateNSTable) then
+    FOnPopulateNSTable(Self);
+end;
+
+function TCustomEmbeddedWB.GetElementNamespaceTable(
+  out aTable: IElementNamespaceTable): Boolean;
+var
+  SP: IServiceProvider;
+begin
+  Result := Supports(Self.Document, IServiceProvider, SP) and
+    (SP.QueryService(IID_IElementNamespaceTable, IID_IElementNamespaceTable,
+    aTable) = S_OK);
+end;
+
+function WideStringToLPOLESTR(const Src: WideString): POLEStr;
+begin
+  Result := CoTaskMemAlloc((Length(Src) + 1) * SizeOf(WideChar));
+  if Result <> nil then
+    Move(PWideChar(Src)^, Result^, (Length(Src) + 1) * SizeOf(WideChar));
+end;
+
+function TCustomEmbeddedWB.Authenticate(var hwnd: HWnd; var szUserName,
+  szPassWord: LPWSTR): HRESULT;
+var
+  aUser, aPwd: WideString;
+begin
+  Result := S_OK;
+  hwnd := Self.Handle;
+  aUser := '';
+  aPwd := '';
+  if Assigned(OnAuthenticate) then
+    OnAuthenticate(Self, hwnd, aUser, aPwd, Result);
+  if aUser <> '' then
+    szUserName := WideStringToLPOLESTR(aUser)
+  else
+    szUserName := nil;
+  if aPwd <> '' then
+    szPassWord := WideStringToLPOLESTR(aPwd)
+  else
+    szPassWord := nil;
+end;
+
+{ TEwbCore }
+
+function TEwbCore.IsCtrlCharMask: Boolean;
+begin
+  Result := FDisableCtrlShortcuts <> 'N';
+end;
+
+end.
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbCoreTools.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbCoreTools.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbCoreTools.pas	(revision 541)
@@ -0,0 +1,411 @@
+//*************************************************************
+//                      EwbCoreTools                          *
+//                                                            *
+//                     Freeware Unit 			      *
+//                       For Delphi                           *
+//      Developing Team:                                      *
+//          Serge Voloshenyuk (SergeV@bsalsa.com)             *
+//          Eran Bodankin (bsalsa) -(bsalsa@gmail.com)       *
+//                                                            *
+//       Documentation and updated versions:                  *
+//                                                            *
+//               http://www.bsalsa.com                        *
+//*************************************************************
+{LICENSE:
+THIS SOFTWARE IS PROVIDED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND,
+EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE APPLIED
+WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
+YOU ASSUME THE ENTIRE RISK AS TO THE ACCURACY AND THE USE OF THE SOFTWARE
+AND ALL OTHER RISK ARISING OUT OF THE USE OR PERFORMANCE OF THIS SOFTWARE
+AND DOCUMENTATION. BSALSA PRODUCTIONS DOES NOT WARRANT THAT THE SOFTWARE IS ERROR-FREE
+OR WILL OPERATE WITHOUT INTERRUPTION. THE SOFTWARE IS NOT DESIGNED, INTENDED
+OR LICENSED FOR USE IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE CONTROLS,
+INCLUDING WITHOUT LIMITATION, THE DESIGN, CONSTRUCTION, MAINTENANCE OR
+OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS,
+AIR TRAFFIC CONTROL, AND LIFE SUPPORT OR WEAPONS SYSTEMS. BSALSA PRODUCTIONS SPECIFICALLY
+DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR SUCH PURPOSE.
+
+You may use/ change/ modify the component under 3 conditions:
+1. In your website, add a link to "http://www.bsalsa.com"
+2. In your application, add credits to "Embedded Web Browser"
+3. Mail me  (bsalsa@gmail.com) any code change in the unit  for the benefit
+   of the other users.
+4. Please, consider donation in our web site!
+{*******************************************************************************}
+
+
+unit EwbCoreTools;
+
+{$I EWB.inc}
+
+interface
+
+uses
+  Graphics, ActiveX, Mshtml_Ewb, Windows, SysUtils;
+
+function IsWinXPSP2OrLater(): Boolean;
+function ColorToHTML(const Color: TColor): string;
+function WideStringToLPOLESTR(const Source: Widestring): POleStr;
+function XPath4Node(node: IHTMLElement): string;
+function TaskAllocWideString(const S: string): PWChar;
+function AnsiIndexStr(const AText: string; const AValues: array of string): Integer;
+function GetPos(const SubSt, Text: string; StartPos: Integer = -1): Integer;
+function _CharPos(const C: Char; const S: string): Integer;
+function CutString(var Text: string; const Delimiter: string = ' ';
+  const Remove: Boolean = True): string;
+procedure FormatPath(Path: string);
+function GetWinText(WinHandle: THandle): string;
+function GetWinClass(Handle: Hwnd): WideString;
+function GetParentWinByClass(ChildHandle: HWND; const ClassName: string): HWND;
+{$IFDEF DELPHI5}
+function DirectoryExists(const Directory: string): Boolean;
+function VarSupports(const V: Variant; const IID: TGUID; out Intf): Boolean;
+{$ENDIF}
+{$IFNDEF DELPHI12_UP}
+function CharInSet(C: Char; const CharSet: TSysCharSet): Boolean;
+{$ENDIF}
+function AddBackSlash(const S: string): string;
+
+const
+  WM_SETWBFOCUS = $0400 {WM_USER} + $44;
+
+implementation
+
+uses
+  IeConst, EwbAcc;
+
+type
+   {VerifyVersion}
+  fn_VerifyVersionInfo = function(var VersionInformation: OSVERSIONINFOEX;
+    dwTypeMask: DWORD; dwlConditionMask: LONGLONG): BOOL; stdcall;
+  fn_VerSetConditionMask = function(ConditionMask: LONGLONG; TypeMask: DWORD;
+    Condition: Byte): LONGLONG; stdcall;
+
+
+function IsWinXPSP2OrLater(): Boolean;
+var
+  osvi: TOSVersionInfoEx;
+  dwlConditionMask: LONGLONG;
+  op: Integer;
+  hlib: THandle;
+  VerifyVersionInfo: fn_VerifyVersionInfo;
+  VerSetConditionMask: fn_VerSetConditionMask;
+begin
+  Result := False;
+  hLib := GetModuleHandle('kernel32.dll');
+  if hLib = 0 then
+    hLib := LoadLibrary('kernel32.dll');
+  if (hLib <> 0) then
+  begin
+    @VerifyVersionInfo := GetProcAddress(hLib, 'VerifyVersionInfoA');
+    @VerSetConditionMask := GetProcAddress(hLib, 'VerSetConditionMask');
+    if ((@VerifyVersionInfo = nil) or (@VerSetConditionMask = nil)) then Exit;
+
+    dwlConditionMask := 0;
+    op := VER_GREATER_EQUAL;
+
+    // Initialize the OSVERSIONINFOEX structure.
+    ZeroMemory(@osvi, SizeOf(OSVERSIONINFOEX));
+    osvi.dwOSVersionInfoSize := SizeOf(OSVERSIONINFOEX);
+    osvi.dwMajorVersion := 5;
+    osvi.dwMinorVersion := 1;
+    osvi.wServicePackMajor := 2;
+    osvi.wServicePackMinor := 0;
+
+    // Initialize the condition mask.
+    dwlConditionMask := VerSetConditionMask(dwlConditionMask, VER_MAJORVERSION, op);
+    dwlConditionMask := VerSetConditionMask(dwlConditionMask, VER_MINORVERSION, op);
+    dwlConditionMask := VerSetConditionMask(dwlConditionMask, VER_SERVICEPACKMAJOR, op);
+    dwlConditionMask := VerSetConditionMask(dwlConditionMask, VER_SERVICEPACKMINOR, op);
+
+    // Perform the test.
+    Result := VerifyVersionInfo(osvi, VER_MAJORVERSION or VER_MINORVERSION or
+      VER_SERVICEPACKMAJOR or VER_SERVICEPACKMINOR, dwlConditionMask);
+  end;
+end;
+
+function GetParentWinByClass(ChildHandle: HWND; const ClassName: string): HWND;
+var
+  szClass: array[0..255] of Char;
+begin
+  Result := GetParent(ChildHandle);
+  while IsWindow(Result) do
+  begin
+    if (GetClassName(Result, szClass, SizeOf(szClass)) > 0) and
+      (AnsiStrComp(PChar(ClassName), szClass) = 0) then Exit;
+    Result := GetParent(Result);
+  end;
+end;
+
+
+
+{$IFNDEF DELPHI12_UP}
+
+function CharInSet(C: Char; const CharSet: TSysCharSet): Boolean;
+begin
+  Result := C in CharSet;
+end;
+{$ENDIF}
+
+{$IFDEF DELPHI5}
+
+function DirectoryExists(const Directory: string): Boolean;
+var
+  Code: Integer;
+begin
+{$RANGECHECKS OFF}
+  Code := GetFileAttributes(PChar(Directory));
+  Result := (Code <> -1) and (FILE_ATTRIBUTE_DIRECTORY and Code <> 0);
+{$RANGECHECKS ON}
+end;
+
+function VarSupports(const V: Variant; const IID: TGUID; out Intf): Boolean;
+begin
+  Result := Supports(V, IID, Intf);
+end;
+{$ENDIF}
+
+function AddBackSlash(const S: string): string;
+begin
+{$IFDEF DELPHI5}
+  Result := IncludeTrailingBackslash(S);
+{$ELSE}
+{$IFDEF DELPHI6UP}
+  Result := IncludeTrailingPathDelimiter(S);
+{$ELSE}
+  if Copy(S, Length(S), 1) = '\' then
+    Result := S
+  else
+    Result := S + '\';
+{$ENDIF}
+{$ENDIF}
+end;
+
+function CutString(var Text: string; const Delimiter: string = ' ';
+  const Remove: Boolean = True): string;
+var
+  IdxPos: Integer;
+begin
+  if Delimiter = #0 then
+    IdxPos := Pos(Delimiter, Text)
+  else
+    IdxPos := AnsiPos(Delimiter, Text);
+
+  if (IdxPos = 0) then
+  begin
+    Result := Text;
+    if Remove then
+      Text := '';
+  end
+  else
+  begin
+    Result := Copy(Text, 1, IdxPos - 1);
+    if Remove then
+      Delete(Text, 1, IdxPos + Length(Delimiter) - 1);
+  end;
+end;
+
+
+function GetPos(const SubSt, Text: string; StartPos: Integer = -1): Integer;
+var
+  i: Integer;
+  LStartPos: Integer;
+  LTokenLen: Integer;
+begin
+  result := 0;
+  LTokenLen := Length(SubSt);
+  if StartPos = -1 then
+  begin
+    StartPos := Length(Text);
+  end;
+  if StartPos < (Length(Text) - LTokenLen + 1) then
+  begin
+    LStartPos := StartPos;
+  end
+  else
+  begin
+    LStartPos := (Length(Text) - LTokenLen + 1);
+  end;
+  for i := LStartPos downto 1 do
+  begin
+    if AnsiSameText(Copy(Text, i, LTokenLen), SubSt) then
+    begin
+      Result := i;
+      Break;
+    end;
+  end;
+end;
+
+function _CharPos(const C: Char; const S: string): Integer;
+begin
+  for Result := 1 to Length(S) do
+    if S[Result] = C then Exit;
+  Result := 0;
+end;
+
+procedure FormatPath(Path: string);
+var
+  i: Integer;
+begin
+  i := 1;
+  while i <= Length(Path) do
+  begin
+    if CharInSet(Path[i], LeadBytes) then
+      Inc(i, 2)
+    else
+      if Path[i] = '\' then
+      begin
+        Path[i] := '/';
+        Inc(i, 1);
+      end
+      else
+        Inc(i, 1);
+  end;
+end;
+
+function AnsiIndexStr(const AText: string; const AValues: array of string): Integer;
+var
+  I: Integer;
+begin
+  Result := -1;
+  for I := Low(AValues) to High(AValues) do
+    if AnsiSameStr(AText, AValues[I]) then
+    begin
+      Result := I;
+      Break;
+    end;
+end;
+
+
+function TaskAllocWideString(const S: string): PWChar;
+var
+  WideLength: integer;
+  Wide: PWideChar;
+begin
+  WideLength := Length(S) + 1;
+  Wide := CoTaskMemAlloc(WideLength * SizeOf(WideChar));
+  StringToWideChar(S, Wide, WideLength);
+  Result := Wide;
+end;
+
+{
+function TaskAllocWideString(const S: string): PWChar;
+var
+  Len: Integer;
+begin
+  Len := Length(S) + 1;
+  Result := CoTaskMemAlloc(2 * Len);
+  StringToWideChar(S, Result, Len);
+end;
+}
+
+function WideStringToLPOLESTR(const Source: Widestring): POleStr;
+var
+  Len: Integer;
+begin
+  Len := Length(Source) * SizeOf(WideChar);
+  Result := CoTaskMemAlloc(Len + 2);
+  FillChar(Result^, Len + 2, 0);
+  Move(Result^, PWideString(Source)^, Len);
+end;
+
+function ColorToHTML(const Color: TColor): string;
+var
+  ColorRGB: LongWord;
+begin
+  ColorRGB := ColorToRGB(Color);
+  FmtStr(Result, '#%0.2X%0.2X%0.2X',
+    [Byte(ColorRGB), Byte(ColorRGB shr 8), Byte(ColorRGB shr 16)]);
+end;
+
+function GetWinText(WinHandle: THandle): string;
+var
+  DlgName: string;
+  TxtLength: Integer;
+begin
+  TxtLength := GetWindowTextLength(WinHandle);
+  SetLength(DlgName, TxtLength + 1);
+  GetWindowText(WinHandle, PChar(DlgName), TxtLength + 1);
+  Result := DlgName;
+end;
+
+
+function GetWinClass(Handle: Hwnd): WideString;
+var
+  pwc: PWideChar;
+const
+  maxbufsize = 32767 * SizeOf(WideChar);
+begin
+  Result := '';
+  if IsWindow(Handle) then
+  begin
+    pwc := GetMemory(maxbufsize);
+    if Assigned(pwc) then
+    try
+      ZeroMemory(pwc, maxbufsize);
+      if GetClassnameW(Handle, pwc, maxbufsize) > 0 then
+        SetString(Result, pwc, lstrlenW(pwc));
+    finally
+      FreeMemory(pwc);
+    end;
+  end;
+end;
+
+{
+function GetWinClass(WinHandle: THANDLE): string;
+begin
+  SetLength(Result, 80);
+  SetLength(Result, GetClassName(WinHandle, PChar(Result), Length(Result)));
+end;
+}
+
+
+function XPath4Node(node: IHTMLElement): string;
+
+  function NodePosition(elem: IHTMLElement): string;
+  var tag: Widestring;
+    Idx: Integer;
+    n: IHTMLElement;
+    cl: IHTMLElementCollection;
+    itm: IDispatch;
+    I, C, mI: Integer;
+  begin
+    Result := '';
+    if (elem.parentElement = nil) or
+      not Supports(elem.parentElement.children, IHTMLElementCollection, cl) then Exit;
+
+    Tag := elem.tagName;
+    Idx := elem.sourceIndex;
+    C := 0;
+    mI := -1;
+
+    for I := 0 to cl.length - 1 do
+    begin
+      itm := cl.item(I, I);
+      if Supports(itm, IHTMLElement, n) then
+      begin
+        if n.tagName = Tag then
+        begin
+          if n.sourceIndex = Idx then mI := C;
+          Inc(C);
+        end;
+      end;
+    end;
+    if (mI > 0) or (C > 1) then Result := Format('[%d]', [mI]);
+  end;
+
+var id: string;
+begin
+  if node <> nil then
+  begin
+    id := node.id;
+    if id <> '' then
+      Result := Format('%s[@id="%s"]', [node.tagName, id])
+    else if node.parentElement = nil then
+      Result := '/' + node.tagName
+    else Result := Format('%s/%s%s',
+        [XPath4Node(node.parentElement), node.tagName, NodePosition(node)]);
+  end else Result := '';
+end;
+
+end.
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbDDE.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbDDE.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbDDE.pas	(revision 541)
@@ -0,0 +1,234 @@
+//*************************************************************
+//                          Ewb_DDE                           *
+//                                                            *
+//                      Freeware Unit                         *
+//                    For Delphi 5 - 2009                     *
+//                            by                              *
+//          Eran Bodankin (bsalsa) -(bsalsa@gmail.com)       *
+//          Mathias Walter (mich@matze.tv)                    *
+//                                                            *
+//       Documentation and updated versions:                  *
+//                                                            *
+//               http://www.bsalsa.com                        *
+//*************************************************************
+{LICENSE:
+THIS SOFTWARE IS PROVIDED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND,
+EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE APPLIED
+WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
+YOU ASSUME THE ENTIRE RISK AS TO THE ACCURACY AND THE USE OF THE SOFTWARE
+AND ALL OTHER RISK ARISING OUT OF THE USE OR PERFORMANCE OF THIS SOFTWARE
+AND DOCUMENTATION. BSALSA PRODUCTIONS DOES NOT WARRANT THAT THE SOFTWARE IS ERROR-FREE
+OR WILL OPERATE WITHOUT INTERRUPTION. THE SOFTWARE IS NOT DESIGNED, INTENDED
+OR LICENSED FOR USE IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE CONTROLS,
+INCLUDING WITHOUT LIMITATION, THE DESIGN, CONSTRUCTION, MAINTENANCE OR
+OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS,
+AIR TRAFFIC CONTROL, AND LIFE SUPPORT OR WEAPONS SYSTEMS. BSALSA PRODUCTIONS SPECIFICALLY
+DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR SUCH PURPOSE.
+
+You may use/ change/ modify the component under 4 conditions:
+1. In your website, add a link to "http://www.bsalsa.com"
+2. In your application, add credits to "Embedded Web Browser"
+3. Mail me  (bsalsa@gmail.com) any code change in the unit  for the benefit
+   of the other users.
+4. Please, consider donation in our web site!
+{*******************************************************************************}
+
+unit EwbDDE;
+
+interface
+
+uses
+  Windows, Classes, ShellAPI, EWBAcc, Registry, EwbTools, ShlObj, IEConst,
+  sysUtils, ActiveX, ComObj;
+
+type
+  TEwb_DDE = class(TThread)
+  end;
+
+procedure GetDDEVariables;
+function GetCommandTypeFromDDEString(szCommand: string): UINT;
+function GetPathFromDDEString(szCommand: string; var szFolder: string): Boolean;
+function GetPidlFromDDEString(const szCommand: string): PItemIDList;
+function GetShowCmdFromDDEString(szCommand: string): Integer;
+function ParseDDECommand(const szCommand: string; var szFolder: string;
+  var pidl: PItemIDList; var show: Integer): UINT;
+procedure DisposePIDL(ID: PItemIDList);
+
+implementation
+
+uses
+  EwbCoreTools;
+
+var
+  FindFolder, OpenFolder, ExploreFolder, HtmlFileApp, HtmlFileTopic: string;
+    //All DDE variables
+  FoldersApp, FoldersTopic: string;
+
+procedure DisposePIDL(ID: PItemIDList);
+var
+  Malloc: IMalloc;
+begin
+  if ID <> nil then
+  begin
+    OLECheck(SHGetMalloc(Malloc));
+    Malloc.Free(ID);
+  end;
+end;
+
+procedure GetDDEVariables;
+var
+  tmpStr: string;
+  Reg: TRegistry;
+begin
+  Reg := TRegistry.Create;
+  with Reg do
+  try
+    RootKey := HKEY_CLASSES_ROOT;
+    OpenKey('htmlfile\shell\open\ddeexec\application', False);
+    HtmlFileApp := Readstring('');
+    CloseKey;
+    OpenKey('htmlfile\shell\open\ddeexec\topic', False);
+    HtmlFileTopic := ReadString('');
+    CloseKey;
+    OpenKey('Folder\shell\open\ddeexec\application', False);
+    FoldersApp := Readstring('');
+    CloseKey;
+    OpenKey('Folder\shell\open\ddeexec\topic', False);
+    FoldersTopic := ReadString('');
+    CloseKey;
+    OpenKey('Folder\shell\open\ddeexec', False);
+    tmpStr := readString('');
+    CloseKey;
+    tmpStr := Copy(tmpStr, Pos('[', tmpStr) + 1, length(tmpStr));
+    OpenFolder := Copy(tmpStr, 1, Pos('(', tmpStr) - 1);
+    OpenKey('Folder\shell\explore\ddeexec', False);
+    tmpStr := readString('');
+    CloseKey;
+    tmpStr := Copy(tmpStr, Pos('[', tmpStr) + 1, length(tmpStr));
+    ExploreFolder := Copy(tmpStr, 1, Pos('(', tmpStr) - 1);
+    OpenKey('Directory\shell\find\ddeexec', False);
+    tmpStr := readString('');
+    CloseKey;
+    tmpStr := Copy(tmpStr, Pos('[', tmpStr) + 1, length(tmpStr));
+    FindFolder := Copy(tmpStr, 1, Pos('(', tmpStr) - 1);
+  finally
+    Free;
+  end;
+end;
+
+function GetCommandTypeFromDDEString(szCommand: string): UINT;
+begin
+  szCommand := Copy(szCommand, Pos('[', szCommand) + 1, length(szCommand));
+  szCommand := Copy(szCommand, 1, Pos('(', szCommand) - 1);
+  if szCommand = OpenFolder then
+    Result := VIEW_COMMAND
+  else if szCommand = ExploreFolder then
+    Result := EXPLORE_COMMAND
+  else if szCommand = FindFolder then
+    Result := FIND_COMMAND
+  else
+    Result := NO_COMMAND;
+end;
+
+function GetPathFromDDEString(szCommand: string; var szFolder: string): Boolean;
+begin
+  szCommand := Copy(szCommand, Pos('"', szCommand) + 1, length(szCommand));
+  szFolder := Copy(szCommand, 1, Pos('"', szCommand) - 1);
+  Result := (szFolder <> '');
+end;
+
+function GetPidlFromDDEString(const szCommand: string): PItemIDList;
+var
+  PidlShared, PidlGlobal: PItemIDList;
+  dwProcessId: Integer;
+  hShared: THandle;
+  St: string;
+  ProcessID: string;
+  i: Integer;
+begin
+  St := Copy(szCommand, Pos(',', szCommand) + 1, length(szCommand));
+  i := 1;
+  while not (CharInSet(St[i], IsDigit) and (i <= Length(St))) do
+    Inc(i);
+  ProcessID := Copy(St, i, Length(St));
+  St := Copy(St, i, length(St) - 1);
+  i := 1;
+  while CharInSet(St[i], IsDigit) and (i <= Length(St)) do
+    Inc(i);
+  St := Copy(St, 1, i - 1);
+
+  while not ((ProcessID[i] = ':') or (ProcessID[i] = ',')) and (i <=
+    Length(ProcessID)) do
+    Inc(i);
+  if ProcessID[i] = ':' then
+  begin
+    ProcessID := Copy(ProcessID, i, Length(ProcessID));
+    i := 1;
+    while not (CharInSet(ProcessID[i], IsDigit) and (i <= Length(ProcessID)))
+      do
+      Inc(i);
+    ProcessID := Copy(ProcessID, i, Length(ProcessID));
+    i := 1;
+    while (CharInSet(ProcessID[i], IsDigit)) and (i <= Length(ProcessID)) do
+      Inc(i);
+    if not (CharInSet(ProcessID[i], IsDigit)) then
+      ProcessID := Copy(ProcessID, 1, i - 1);
+  end
+  else
+    ProcessID := '0';
+  dwProcessId := StrToInt(ProcessID);
+  if dwProcessId <> 0 then
+  begin
+    hShared := StrToInt(St);
+    PidlShared := ShLockShared(hShared, dwProcessId);
+    if PidlShared <> nil then
+    begin
+      Result := CopyPidl(PidlShared);
+      ShUnlockShared(PidlShared);
+    end
+    else
+      Result := nil;
+    ShFreeShared(hShared, dwProcessId);
+  end
+  else
+  begin
+    PidlGlobal := PItemIDList(StrToInt(St));
+    Result := CopyPidl(PidlGlobal);
+    _Free(PidlGlobal);
+  end;
+end;
+
+function GetShowCmdFromDDEString(szCommand: string): Integer;
+var
+  tmpInt: Integer;
+begin
+  tmpInt := 1;
+  while szCommand[tmpInt] <> ',' do
+    Inc(tmpInt);
+  Inc(tmpInt);
+  while szCommand[tmpInt] <> ',' do
+    Inc(tmpInt);
+  szCommand := Copy(szCommand, tmpInt, Length(szCommand));
+  tmpInt := 0;
+  repeat
+    inc(tmpInt)
+  until (tmpInt > Length(szCommand)) or CharInSet(szCommand[tmpInt], IsDigit);
+  if tmpInt <= length(szCommand) then
+    Result := StrtoInt(szCommand[tmpInt])
+  else
+    Result := 1;
+end;
+
+function ParseDDECommand(const szCommand: string; var szFolder: string;
+  var pidl: PItemIDList; var show: Integer): UINT;
+begin
+  Result := GetCommandTypeFromDDEString(szCommand);
+  if Result <> NO_COMMAND then
+  begin
+    GetPathFromDDEString(szCommand, szFolder);
+    pidl := GetPidlFromDDEString(szCommand);
+    show := GetShowCmdFromDDEString(szCommand);
+  end;
+end;
+
+end.
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbDisableFocusControl.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbDisableFocusControl.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbDisableFocusControl.pas	(revision 541)
@@ -0,0 +1,36 @@
+(*
+
+This unit's purpose is to disable the FocusControl even if Enable_AutoFocusControl
+is defined in EWB.inc.
+
+EwbControl.FocusControl is activated in the initialization section of the
+EmbeddedWB unit.
+To disable it, put this unit before the first form
+unit in your DPR 'uses' clause.
+
+Example:
+
+program Project1;
+
+uses
+  //..
+  EWBDisableFocusControl,
+  Forms,
+  Unit1 in 'Unit1.pas' {Form1};
+  //..
+
+*)
+
+unit EWBDisableFocusControl;
+
+interface
+
+uses
+  EwbFocusControl;
+
+implementation
+
+initialization
+  EWBEnableFocusControl := False;
+
+end.
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbDisableMouseWheelFix.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbDisableMouseWheelFix.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbDisableMouseWheelFix.pas	(revision 541)
@@ -0,0 +1,36 @@
+(*
+
+This unit's purpose is to disable the MouseWheelFix even if Enable_AutoMouseWheelFix
+is defined in EWB.inc.
+
+EwbControl.MouseWheelFix is activated in the initialization section of the
+EmbeddedWB unit.
+To disable it, put this unit before the first form
+unit in your DPR 'uses' clause.
+
+Example:
+
+program Project1;
+
+uses
+  //..
+  EwbDisableMouseWheelFix,
+  Forms,
+  Unit1 in 'Unit1.pas' {Form1};
+  //..
+
+*)
+
+unit EwbDisableMouseWheelFix;
+
+interface
+
+uses
+  EWBMouseHook;
+
+implementation
+
+initialization
+  EWBEnableMouseWheelFix := False;
+
+end.
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbEditors.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbEditors.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbEditors.pas	(revision 541)
@@ -0,0 +1,344 @@
+//**************************************************************
+//                                                             *
+//                      Ewb_Editors                            *
+//                       For Delphi                            *
+//                                                             *
+//                 For Delphi 5, 6, 7, 2005, 2006              *
+//                            by                               *
+//       bsalsa - Eran Bodankin  - bsalsa@gmail.com           *
+//                                                             *
+//                                                             *
+//  Updated versions:                                          *
+//               http://www.bsalsa.com                         *
+//**************************************************************
+
+{*******************************************************************************}
+{LICENSE:
+THIS SOFTWARE IS PROVIDED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND,
+EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE APPLIED
+WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
+YOU ASSUME THE ENTIRE RISK AS TO THE ACCURACY AND THE USE OF THE SOFTWARE
+AND ALL OTHER RISK ARISING OUT OF THE USE OR PERFORMANCE OF THIS SOFTWARE
+AND DOCUMENTATION. BSALSA PRODUCTIONS DOES NOT WARRANT THAT THE SOFTWARE IS ERROR-FREE
+OR WILL OPERATE WITHOUT INTERRUPTION. THE SOFTWARE IS NOT DESIGNED, INTENDED
+OR LICENSED FOR USE IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE CONTROLS,
+INCLUDING WITHOUT LIMITATION, THE DESIGN, CONSTRUCTION, MAINTENANCE OR
+OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS,
+AIR TRAFFIC CONTROL, AND LIFE SUPPORT OR WEAPONS SYSTEMS. BSALSA PRODUCTIONS SPECIFICALLY
+DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR SUCH PURPOSE.
+
+You may use, change or modify the component under 3 conditions:
+1. In your website, add a link to "http://www.bsalsa.com"
+2. In your application, add credits to "Embedded Web Browser"
+3. Mail me  (bsalsa@gmail.com) any code change in the unit
+   for the benefit of the other users.
+4. Please consider donation in our web site!
+{*******************************************************************************}
+//$Id: EwbEditors.pas,v 1.3.2.1 2006/12/10 18:43:49 sergev Exp $
+
+unit EwbEditors;
+
+interface
+
+{$I EWB.inc}
+
+uses
+{$IFDEF DELPHI6_UP}DesignEditors, DesignIntf, StrEdit{$ELSE}DsgnIntf{$ENDIF}
+  , Classes;
+
+type
+  TEwbCompEditor = class(TComponentEditor)
+  public
+    procedure ExecuteVerb(Idx: integer); override;
+    function GetVerb(Idx: integer): string; override;
+    function GetVerbCount: integer; override;
+  end;
+
+  TBFFEditor = class(TComponentEditor)
+  public
+    procedure ExecuteVerb(Idx: integer); override;
+    function GetVerb(Idx: integer): string; override;
+    function GetVerbCount: integer; override;
+  end;
+
+  TSaveFileDLG = class(TStringProperty)
+  public
+    procedure Edit; override;
+    function GetAttributes: TPropertyAttributes; override;
+  end;
+
+  TSaveTextDLG = class(TStringProperty)
+  public
+    procedure Edit; override;
+    function GetAttributes: TPropertyAttributes; override;
+  end;
+
+  TSaveHtmlDLG = class(TStringProperty)
+  public
+    procedure Edit; override;
+    function GetAttributes: TPropertyAttributes; override;
+  end;
+
+  TOpenFileDLG = class(TStringProperty)
+  public
+    procedure Edit; override;
+    function GetAttributes: TPropertyAttributes; override;
+  end;
+
+  TOpenHtmlDLG = class(TStringProperty)
+  public
+    procedure Edit; override;
+    function GetAttributes: TPropertyAttributes; override;
+  end;
+
+  TBrowse4FolderDLG = class(TStringProperty)
+  public
+    procedure Edit; override;
+    function GetAttributes: TPropertyAttributes; override;
+  end;
+{$IFDEF DELPHI6_UP}
+  TMultiStringProperty = class(TStringListProperty)
+  private
+    fStrings: TStringList;
+  protected
+    function GetStrings: TStrings; override;
+    procedure SetStrings(const Value: TStrings); override;
+  end;
+{$ENDIF}
+
+implementation
+
+uses
+  Browse4Folder, TypInfo, ShellApi, Windows, Dialogs, SysUtils, IEConst, Forms, shlobj;
+
+//--Verb Delphi menu------------------------------------------------------------
+
+procedure TEwbCompEditor.ExecuteVerb(Idx: integer);
+begin
+  case Idx of
+    0: ShellExecute(0, 'open', SITE_ADDRESS, nil, nil, SW_SHOW);
+  end;
+end;
+
+function TEwbCompEditor.GetVerb(Idx: Integer): string;
+begin
+  case Idx of
+    0: Result := 'Support:  ' + SITE_ADDRESS;
+    1: Result := 'Package Version:' + VER_NUM;
+  end;
+end;
+
+function TEwbCompEditor.GetVerbCount: integer;
+begin
+  Result := 2;
+end;
+
+//---BuildIn Save Dialog for the components-------------------------------------
+
+procedure TSaveFileDLG.Edit;
+var
+  SD: TSaveDialog;
+begin
+  SD := TSaveDialog.Create(Application);
+  try
+    with SD do
+    begin
+      Filename := GetValue();
+      InitialDir := ExtractFilePath(FileName);
+      Filter := '*.*';
+      HelpContext := 0;
+      Options := Options + [ofShowHelp, ofEnableSizing];
+      if Execute then
+        SetValue(FileName);
+    end;
+  finally
+    SD.Free;
+  end;
+end;
+
+function TSaveFileDLG.GetAttributes: TPropertyAttributes;
+begin
+  Result := [paDialog, paRevertable];
+end;
+
+procedure TSaveHtmlDLG.Edit;
+var
+  SD: TSaveDialog;
+begin
+  SD := TSaveDialog.Create(Application);
+  try
+    with SD do
+    begin
+      Filename := GetValue();
+      InitialDir := ExtractFilePath(FileName);
+      Filter := 'Html files|*.html|Htm files|*.htm';
+      HelpContext := 0;
+      Options := Options + [ofShowHelp, ofEnableSizing];
+      if Execute then
+        SetValue(FileName);
+    end;
+  finally
+    SD.Free;
+  end;
+end;
+
+function TSaveHtmlDLG.GetAttributes: TPropertyAttributes;
+begin
+  Result := [paDialog, paRevertable];
+end;
+
+procedure TSaveTextDLG.Edit;
+var
+  SD: TSaveDialog;
+begin
+  SD := TSaveDialog.Create(Application);
+  try
+    with SD do
+    begin
+      Filename := GetValue();
+      InitialDir := ExtractFilePath(FileName);
+      Filter := 'Text files|*.txt|Word files|*.doc';
+      HelpContext := 0;
+      Options := Options + [ofShowHelp, ofEnableSizing];
+      if Execute then
+        SetValue(FileName);
+    end;
+  finally
+    SD.Free;
+  end;
+end;
+
+function TSaveTextDLG.GetAttributes: TPropertyAttributes;
+begin
+  Result := [paDialog, paRevertable];
+end;
+
+//---BuildIn Open Dialog for the components-------------------------------------
+
+procedure TOpenFileDLG.Edit;
+var
+  OD: TOpenDialog;
+begin
+  OD := TOpenDialog.Create(Application);
+  try
+    with OD do
+    begin
+      Filename := GetValue();
+      InitialDir := ExtractFilePath(FileName);
+      Filter := '*.*';
+      HelpContext := 0;
+      Options := Options + [ofShowHelp, ofEnableSizing];
+      if Execute then
+        SetValue(FileName);
+    end;
+  finally
+    OD.Free;
+  end;
+end;
+
+function TOpenFileDLG.GetAttributes: TPropertyAttributes;
+begin
+  Result := [paDialog, paRevertable];
+end;
+
+procedure TOpenHtmlDLG.Edit;
+var
+  OD: TOpenDialog;
+begin
+  OD := TOpenDialog.Create(Application);
+  try
+    with OD do
+    begin
+      Filename := GetValue();
+      InitialDir := ExtractFilePath(FileName);
+      Filter := 'Html files|*.html|Htm files|*.htm';
+      HelpContext := 0;
+      Options := Options + [ofShowHelp, ofEnableSizing];
+      if Execute then
+        SetValue(FileName);
+    end;
+  finally
+    OD.Free;
+  end;
+end;
+
+function TOpenHtmlDLG.GetAttributes: TPropertyAttributes;
+begin
+  Result := [paDialog, paRevertable];
+end;
+
+//---Browse For Folder----------------------------------------------------------
+
+function TBrowse4FolderDLG.GetAttributes: TPropertyAttributes;
+begin
+  Result := [paDialog, paRevertable];
+end;
+
+procedure TBrowse4FolderDLG.Edit;
+var
+  BD: TBrowse4Folder;
+begin
+  BD := TBrowse4Folder.Create(Application);
+  try
+    with BD do
+    begin
+      Filename := GetValue();
+      InitialDir := ExtractFilePath(FileName);
+      if Execute then
+        SetValue(FileName);
+    end;
+  finally
+    BD.Free;
+  end;
+end;
+
+procedure TBFFEditor.ExecuteVerb(Idx: integer);
+var
+  BD: TBrowse4Folder;
+begin
+  case Idx of
+    0:
+      begin
+        BD := TBrowse4Folder.Create(Application);
+        try
+          with BD do
+          begin
+            InitialDir := ExtractFilePath(FileName);
+            Execute;
+          end;
+        finally
+          BD.Free;
+        end;
+      end;
+  end;
+end;
+
+function TBFFEditor.GetVerb(Idx: Integer): string;
+begin
+  case Idx of
+    0: Result := 'Support:  ' + SITE_ADDRESS;
+    1: Result := 'Package Version:' + VER_NUM;
+  end;
+end;
+
+function TBFFEditor.GetVerbCount: integer;
+begin
+  Result := 2;
+end;
+{$IFDEF DELPHI6_UP}
+{ TMultiStringProperty }
+
+function TMultiStringProperty.GetStrings: TStrings;
+begin
+  if fStrings = nil then fStrings := TStringList.Create;
+  fStrings.Text := GetStrValue;
+  Result := fStrings;
+end;
+
+procedure TMultiStringProperty.SetStrings(const Value: TStrings);
+begin
+  SetStrValue(Value.Text);
+end;
+{$ENDIF}
+
+end.
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbEvents.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbEvents.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbEvents.pas	(revision 541)
@@ -0,0 +1,349 @@
+//*************************************************************
+//                        EwbEvents                           *
+//                                                            *
+//                     Freeware Unit                          *
+//                       For Delphi                           *
+//                            by                              *
+//                     Serge Voloshenyuk                      *
+//      Developing Team:                                      *
+//          Serge Voloshenyuk (SergeV@bsalsa.com)             *
+//          Eran Bodankin (bsalsa) -(bsalsa@gmail.com)       *
+//                                                            *
+//       Documentation and updated versions:                  *
+//                                                            *
+//               http://www.bsalsa.com                        *
+//*************************************************************
+{LICENSE:
+THIS SOFTWARE IS PROVIDED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND,
+EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE APPLIED
+WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
+YOU ASSUME THE ENTIRE RISK AS TO THE ACCURACY AND THE USE OF THE SOFTWARE
+AND ALL OTHER RISK ARISING OUT OF THE USE OR PERFORMANCE OF THIS SOFTWARE
+AND DOCUMENTATION. BSALSA PRODUCTIONS DOES NOT WARRANT THAT THE SOFTWARE IS ERROR-FREE
+OR WILL OPERATE WITHOUT INTERRUPTION. THE SOFTWARE IS NOT DESIGNED, INTENDED
+OR LICENSED FOR USE IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE CONTROLS,
+INCLUDING WITHOUT LIMITATION, THE DESIGN, CONSTRUCTION, MAINTENANCE OR
+OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS,
+AIR TRAFFIC CONTROL, AND LIFE SUPPORT OR WEAPONS SYSTEMS. BSALSA PRODUCTIONS SPECIFICALLY
+DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR SUCH PURPOSE.
+
+You may use/ change/ modify the component under 3 conditions:
+1. In your website, add a link to "http://www.bsalsa.com"
+2. In your application, add credits to "Embedded Web Browser"
+3. Mail me  (bsalsa@gmail.com) any code change in the unit  for the benefit
+   of the other users.
+4. Please, consider donation in our web site!
+{*******************************************************************************}
+//$Id: EwbEvents.pas,v 1.1.2.1 2006/11/29 22:13:01 sergev Exp $
+
+unit EwbEvents;
+
+interface
+
+{$I EWB.inc}
+
+uses
+
+  Windows, Classes, ActiveX, Mshtml_Ewb, EwbClasses, wbhFixes;
+
+type
+  TSinkKind = (
+    skElement,
+    skLink,
+    skForm,
+    skControl,
+    skTextContainer,
+    skImg,
+    skAnchor,
+    skLabel,
+    skSelect,
+    skButton,
+    skInputText,
+    skOptionButton,
+    skInputFile,
+    skInputImage,
+    skMarquee,
+    skWindow,
+    skDocument,
+    skMap,
+    skArea,
+    skTable,
+    skScript,
+    skObject,
+    skFrameSite,
+    skStyle,
+    skNamespace
+    );
+
+  TEventID = Integer;
+const
+  heOnAbort = 1000;
+  heOnChange = 1001; //f
+  heOnError = 1002;
+  // HTMLWindowEvents2.onerror(const description: WideString; const url: WideString; line: Integer); dispid 1002;
+  heOnLoad = 1003;
+  heOnSelect = 1006;
+  heOnSubmit = 1007; //f
+  heOnUnload = 1008;
+  heOnBounce = 1009;
+  heOnFinish = 1010;
+  heOnStart = 1011;
+  heOnScroll = 1014;
+  heOnReset = 1015; //f
+  heOnresize = 1016;
+  heOnBeforeUnload = 1017;
+  heOncontextmenu = 1023; //f
+  heOnBeforePrint = 1024;
+  heOnAfterPrint = 1025;
+  heOnStop = 1026; //f
+  heOnBeforeEditFocus = 1027;
+  heOnlayoutcomplete = 1030;
+  heOnPage = 1031;
+  heOnMousewheel = 1033; //f
+  heOnBeforeDeactivate = 1034; //f
+  heOnMove = 1035;
+  heOnControlSelect = 1036; //f
+  heOnSelectionChange = 1037;
+  heOnMoveStart = 1038; //f
+  heOnMoveEnd = 1039;
+  heOnResizeStart = 1040; //f
+  heOnResizeEnd = 1041;
+  heOnMouseEnter = 1042;
+  heOnMouseLeave = 1043;
+  heOnActivate = 1044;
+  heOnDeactivate = 1045;
+  heOnBeforeActivate = 1047; //f
+  heOnfocusIn = 1048;
+  heOnfocusOut = 1049;
+
+  heOnClick = -600; //f
+  heOnDblClick = -601; //f
+  heOnKeyDown = -602;
+  heOnKeyPress = -603; //f
+  heOnKeyUp = -604;
+  heOnMouseDown = -605;
+  heOnMouseMove = -606;
+  heOnMouseUp = -607;
+  heOnReadyStateChange = -609;
+
+  heOnCellChange = -2147418078;
+  heOnRowsInserted = -2147418079;
+  heOnRowsDelete = -2147418080;
+  heOnBeforePaste = -2147418081; //f
+  heOnBeforeCopy = -2147418082; //f
+  heOnBeforeCut = -2147418083; //f
+  heOnPaste = -2147418084; //f
+  heOnCopy = -2147418085; //f
+  heOnCut = -2147418086; //f
+  heOnDrop = -2147418087; //f
+  heOnDragLeave = -2147418088;
+  heOnDragOver = -2147418089; //f
+  heOnDragEnter = -2147418090; //f
+  heOnDragEnd = -2147418091;
+  heOnDrag = -2147418092; //f
+  //  heOnObjReadyStateChange  = -2147418092; //HTMLObjectElementEvents2
+  heOnPropertyChange = -2147418093;
+  //  heOnObjError        = -2147418093; //f HTMLObjectElementEvents2
+  heOnLoseCapture = -2147418094;
+  heOnFilterChange = -2147418095;
+  heOnDatasetComplete = -2147418096;
+  heOnDataAvailable = -2147418097;
+  heOnDatasetChanged = -2147418098;
+  heOnErrorUpdate = -2147418099; //f
+  heOnSelectStart = -2147418100; //f
+  heOnDragStart = -2147418101; //f
+  heOnHelp = -2147418102; //f
+  heOnMouseOut = -2147418103;
+  heOnMouseOver = -2147418104;
+  heOnRowEnter = -2147418105;
+  heOnRowExit = -2147418106; //f
+  heOnAfterUpdate = -2147418107;
+  heOnBeforeUpdate = -2147418108; //f
+  heOnFocus = -2147418111;
+  heOnBlur = -2147418112;
+
+type
+  IHubLink = interface
+    ['{EC22D916-CC24-4D88-A7ED-20C5E9AE0852}']
+    procedure Disconnect;
+  end;
+
+  TMshtmlHandler = function(Sender: IUnknown): Boolean of object;
+
+  TMSHTMLEventHandler = class(TInterfacedDispatchObject, IDispatchEx)
+  private
+    FHandler: TMshtmlHandler;
+  protected
+    function Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+      override; stdcall;
+    {IDispatchEx}
+    function GetDispID(const bstrName: TBSTR; const grfdex: DWORD;
+      out id: TDispID): HResult; stdcall;
+    function InvokeEx(const id: TDispID; const lcid: LCID; const wflags:
+      WORD; const pdp: PDispParams; out varRes: OleVariant; out pei:
+      TExcepInfo; const pspCaller: PServiceProvider): HResult; stdcall;
+    function DeleteMemberByName(const bstr: TBSTR;
+      const grfdex: DWORD): HResult; stdcall;
+    function DeleteMemberByDispID(const id: TDispID): HResult; stdcall;
+    function GetMemberProperties(const id: TDispID; const grfdexFetch:
+      DWORD; out grfdex: DWORD): HResult; stdcall;
+    function GetMemberName(const id: TDispID; out bstrName: TBSTR):
+      HResult; stdcall;
+    function GetNextDispID(const grfdex: DWORD; const id: TDispID;
+      out nid: TDispID): HResult; stdcall;
+    function GetNameSpaceParent(out unk: IUnknown): HResult; stdcall;
+  public
+    constructor Create(Handler: TMshtmlHandler);
+    destructor Destroy; override;
+  end;
+
+function MSHTMLEventHandler(Handler: TMshtmlHandler): IDispatchEx;
+const
+  mshtmlEventGUIDs: array[TSinkKind] of PGUID = (
+    @DIID_HTMLElementEvents2, //IHTMLElement
+    @DIID_HTMLLinkElementEvents2, //IHTMLLinkElement
+    @DIID_HTMLFormElementEvents2, //IHTMLFormElement
+    @DIID_HTMLControlElementEvents2, //IHTMLControlElement
+    @DIID_HTMLTextContainerEvents2, //IHTMLTextContainer
+    @DIID_HTMLImgEvents2, //IHTMLImgElement
+    @DIID_HTMLAnchorEvents2, //IHTMLAnchorElement
+    @DIID_HTMLLabelEvents2, //IHTMLLabelElement
+    @DIID_HTMLSelectElementEvents2, //IHTMLSelectElement
+    @DIID_HTMLButtonElementEvents2, //IHTMLButtonElement
+    @DIID_HTMLInputTextElementEvents2, //IHTMLInputTextElement
+    @DIID_HTMLOptionButtonElementEvents2, //IHTMLOptionButtonElement
+    @DIID_HTMLInputFileElementEvents2, //IHTMLInputFileElement
+    @DIID_HTMLInputImageEvents2, //IHTMLInputImage
+    @DIID_HTMLMarqueeElementEvents2, //IHTMLMarqueeElement
+    @DIID_HTMLWindowEvents2, //IHTMLWindow2
+    @DIID_HTMLDocumentEvents2, //IHTMLDocument
+    @DIID_HTMLMapEvents2, //IHTMLMapElement
+    @DIID_HTMLAreaEvents2, //IHTMLAreaElement
+    @DIID_HTMLTableEvents2, //IHTMLTable
+    @DIID_HTMLScriptEvents2, //IHTMLScriptElement
+    @DIID_HTMLObjectElementEvents2, //IHTMLObjectElement
+    @DIID_HTMLFrameSiteEvents2,
+    @DIID_HTMLStyleElementEvents2, //IHTMLStyleElement
+    @DIID_HTMLNamespaceEvents //IHTMLNamespace
+    );
+
+implementation
+uses SysUtils;
+
+{ TMSHTMLEventHandler }
+
+function MSHTMLEventHandler(Handler: TMshtmlHandler): IDispatchEx;
+begin
+  Result := TMSHTMLEventHandler.Create(Handler) as IDispatchEx;
+end;
+
+constructor TMSHTMLEventHandler.Create(Handler: TMshtmlHandler);
+begin
+  inherited Create;
+  FHandler := Handler;
+end;
+
+destructor TMSHTMLEventHandler.Destroy;
+begin
+  inherited;
+end;
+
+function TMSHTMLEventHandler.DeleteMemberByDispID(const id: TDispID): HResult;
+begin
+  Result := S_FALSE;
+end;
+
+function TMSHTMLEventHandler.DeleteMemberByName(const bstr: TBSTR;
+  const grfdex: DWORD): HResult;
+begin
+  Result := S_FALSE;
+end;
+
+function TMSHTMLEventHandler.GetDispID(const bstrName: TBSTR;
+  const grfdex: DWORD; out id: TDispID): HResult;
+begin
+  Result := DISP_E_UNKNOWNNAME;
+end;
+
+function TMSHTMLEventHandler.GetMemberName(const id: TDispID;
+  out bstrName: TBSTR): HResult;
+begin
+  Result := DISP_E_UNKNOWNNAME;
+end;
+
+function TMSHTMLEventHandler.GetMemberProperties(const id: TDispID;
+  const grfdexFetch: DWORD; out grfdex: DWORD): HResult;
+begin
+  Result := DISP_E_UNKNOWNNAME;
+end;
+
+function TMSHTMLEventHandler.GetNameSpaceParent(
+  out unk: IUnknown): HResult;
+begin
+  Result := E_NOTIMPL;
+end;
+
+function TMSHTMLEventHandler.GetNextDispID(const grfdex: DWORD;
+  const id: TDispID; out nid: TDispID): HResult;
+begin
+  Result := S_FALSE;
+end;
+
+function TMSHTMLEventHandler.Invoke(DispID: Integer; const IID: TGUID;
+  LocaleID: Integer; Flags: Word; var Params; VarResult, ExcepInfo,
+  ArgErr: Pointer): HResult;
+var
+  Instance: IUnknown;
+  R: Boolean;
+begin
+  Result := S_OK;
+  if (Flags and DISPATCH_METHOD = 0) then Exit;
+  try
+    Instance := POleVariant(TDispParams(Params).rgvarg)^;
+    R := FHandler(Instance);
+    if VarResult <> nil then
+      POleVariant(VarResult)^ := R;
+  except
+    on E: Exception do
+    begin
+      Result := DISP_E_EXCEPTION;
+      with PExcepInfo(ExcepInfo)^ do
+      begin
+        wCode := 9999;
+        bstrDescription := E.Message;
+        bstrSource := E.ClassName;
+        dwHelpContext := E.HelpContext;
+      end;
+    end;
+  end;
+end;
+
+
+function TMSHTMLEventHandler.InvokeEx(const id: TDispID; const lcid: LCID;
+  const wflags: WORD; const pdp: PDispParams; out varRes: OleVariant;
+  out pei: TExcepInfo; const pspCaller: PServiceProvider): HResult;
+var
+  Instance: IUnknown;
+begin
+  Result := S_OK;
+  if (wflags and DISPATCH_METHOD = 0) then Exit;
+  try
+    Instance := POleVariant(pdp.rgvarg)^;
+    varRes := FHandler(Instance);
+  except
+    on E: Exception do
+    begin
+      Result := DISP_E_EXCEPTION;
+      with pei do
+      begin
+        wCode := 9999;
+        bstrDescription := E.Message;
+        bstrSource := E.ClassName;
+        dwHelpContext := E.HelpContext;
+      end;
+    end;
+  end;
+end;
+
+end.
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbEventsComp.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbEventsComp.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbEventsComp.pas	(revision 541)
@@ -0,0 +1,756 @@
+//*************************************************************
+//                       EwbEventsComp                        *
+//                                                            *
+//                     Freeware Component                     *
+//                       For Delphi                           *
+//                            by                              *
+//                     Serge Voloshenyuk                      *
+//      Developing Team:                                      *
+//          Serge Voloshenyuk (SergeV@bsalsa.com)             *
+//          Eran Bodankin (bsalsa) -(bsalsa@gmail.com)       *
+//                                                            *
+//       Documentation and updated versions:                  *
+//                                                            *
+//               http://www.bsalsa.com                        *
+//*************************************************************
+{LICENSE:
+THIS SOFTWARE IS PROVIDED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND,
+EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE APPLIED
+WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
+YOU ASSUME THE ENTIRE RISK AS TO THE ACCURACY AND THE USE OF THE SOFTWARE
+AND ALL OTHER RISK ARISING OUT OF THE USE OR PERFORMANCE OF THIS SOFTWARE
+AND DOCUMENTATION. BSALSA PRODUCTIONS DOES NOT WARRANT THAT THE SOFTWARE IS ERROR-FREE
+OR WILL OPERATE WITHOUT INTERRUPTION. THE SOFTWARE IS NOT DESIGNED, INTENDED
+OR LICENSED FOR USE IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE CONTROLS,
+INCLUDING WITHOUT LIMITATION, THE DESIGN, CONSTRUCTION, MAINTENANCE OR
+OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS,
+AIR TRAFFIC CONTROL, AND LIFE SUPPORT OR WEAPONS SYSTEMS. BSALSA PRODUCTIONS SPECIFICALLY
+DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR SUCH PURPOSE.
+
+You may use/ change/ modify the component under 3 conditions:
+1. In your website, add a link to "http://www.bsalsa.com"
+2. In your application, add credits to "Embedded Web Browser"
+3. Mail me  (bsalsa@gmail.com) any code change in the unit  for the benefit
+   of the other users.
+4. Please, consider donation in our web site!
+{*******************************************************************************}
+//$Id: EwbEventsComp.pas,v 1.1.2.1 2006/11/29 22:13:01 sergev Exp $
+
+unit EwbEventsComp;
+
+interface
+
+{$I EWB.inc}
+
+uses
+{$IFDEF DELPHI6_UP}Variants, {$ENDIF}
+  Windows, Classes, ActiveX, Mshtml_Ewb, EwbAcc, EwbClasses, EwbEvents;
+
+type
+  THtmlListener = class;
+
+  TEventEnum = (
+    eiUnknown,
+    eiOnAbort,
+    eiOnChange,
+    eiOnError,
+    eiOnLoad,
+    eiOnSelect,
+    eiOnSubmit,
+    eiOnUnload,
+    eiOnBounce,
+    eiOnFinish,
+    eiOnStart,
+    eiOnScroll,
+    eiOnReset,
+    eiOnresize,
+    eiOnBeforeUnload,
+    eiOncontextmenu,
+    eiOnBeforePrint,
+    eiOnAfterPrint,
+    eiOnStop,
+    eiOnBeforeEditFocus,
+    eiOnlayoutcomplete,
+    eiOnpage,
+    eiOnmousewheel,
+    eiOnbeforedeactivate,
+    eiOnmove,
+    eiOncontrolselect,
+    eiOnSelectionChange,
+    eiOnmoveStart,
+    eiOnmoveEnd,
+    eiOnresizeStart,
+    eiOnresizeEnd,
+    eiOnmouseEnter,
+    eiOnmouseLeave,
+    eiOnActivate,
+    eiOnDeactivate,
+    eiOnBeforeActivate,
+    eiOnfocusIn,
+    eiOnfocusOut,
+    eiOnClick,
+    eiOnDblClick,
+    eiOnKeyDown,
+    eiOnKeyPress,
+    eiOnKeyUp,
+    eiOnMouseDown,
+    eiOnMouseMove,
+    eiOnMouseUp,
+    eiOnReadyStateChange,
+    eiOnCellChange,
+    eiOnRowsInserted,
+    eiOnRowsDelete,
+    eiOnBeforePaste,
+    eiOnBeforeCopy,
+    eiOnBeforeCut,
+    eiOnPaste,
+    eiOnCopy,
+    eiOnCut,
+    eiOnDrop,
+    eiOnDragLeave,
+    eiOnDragOver,
+    eiOnDragEnter,
+    eiOnDragEnd,
+    eiOnDrag,
+    eiOnPropertyChange,
+    eiOnLoseCapture,
+    eiOnFilterChange,
+    eiOnDatasetComplete,
+    eiOnDataAvailable,
+    eiOnDatasetChanged,
+    eiOnErrorUpdate,
+    eiOnSelectStart,
+    eiOnDragStart,
+    eiOnHelp,
+    eiOnMouseOut,
+    eiOnMouseOver,
+    eiOnRowEnter,
+    eiOnRowExit,
+    eiOnAfterUpdate,
+    eiOnBeforeUpdate,
+    eiOnFocus,
+    eiOnBlur
+    );
+
+  TMSHTMLDelegate = procedure(Sender: TObject; Event: IHTMLEventObj) of object;
+
+  TEventHandlerItem = class(TCollectionItem)
+  private
+    FEventID: TEventEnum;
+    FEvID: TEventID;
+    FOnHandle: TMSHTMLDelegate;
+    procedure setEventID(const Value: TEventEnum);
+  protected
+    procedure AssignTo(Dest: TPersistent); override;
+    function GetDisplayName: string; override;
+  public
+    function GetNamePath: string; override;
+  published
+    property EventID: TEventEnum read FEventID write setEventID;
+    property OnHandle: TMSHTMLDelegate read FOnHandle write FOnHandle;
+  end;
+
+  THandlerCollection = class(TCollection)
+  private
+    FOwner: THtmlListener;
+    function GetItem(Index: Integer): TEventHandlerItem;
+  protected
+    function GetOwner: TPersistent; override;
+    procedure Update(Item: TCollectionItem); override;
+  public
+    constructor Create(AOwner: THtmlListener);
+    function Add: TEventHandlerItem;
+    property Items[Index: Integer]: TEventHandlerItem read GetItem; default;
+  end;
+
+  THtmlListenerLink = class;
+
+  THtmlListener = class(TComponent, IDispatch)
+  private
+    FHandlers: THandlerCollection;
+    FDispList: TList;
+    FSinkKind: TSinkKind;
+    FSinkIID: PGUID;
+    Flink: THtmlListenerLink;
+    procedure setHandlers(const Value: THandlerCollection);
+    procedure setSinkKind(const Value: TSinkKind);
+  protected
+    { IInterface }
+    function QueryInterface(const IID: TGUID; out Obj): HRESULT; override;
+      stdcall;
+    { IDispatch }
+    function GetIDsOfNames(const IID: TGUID; Names: Pointer;
+      NameCount, LocaleID: Integer; DispIDs: Pointer): HRESULT; stdcall;
+    function GetTypeInfo(Index, LocaleID: Integer; out TypeInfo): HRESULT;
+      stdcall;
+    function GetTypeInfoCount(out Count: Integer): HRESULT; stdcall;
+    function Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HRESULT;
+      stdcall;
+  protected
+    procedure FillDispList;
+    procedure Update(Item: TEventHandlerItem);
+    procedure AddDisp(Item: TEventHandlerItem);
+    function Find(DispID: TEventID; var Index: Integer): Boolean;
+    procedure DispatchEvent(Sender: TObject; DispID: TEventID; Event:
+      IHTMLEventObj);
+  public
+    constructor Create(AOwner: TComponent); override;
+    destructor Destroy; override;
+    procedure Connect(Source: IUnknown); overload;
+    function Connect2(Source: IUnknown; aAgent: TObject = nil): IHubLink;
+  published
+    property Handlers: THandlerCollection read fHandlers write setHandlers;
+    property SinkKind: TSinkKind read FSinkKind write setSinkKind default
+      skElement;
+  end;
+
+  THtmlListenerLink = class(TInterfacedDispatchObject, IHubLink)
+  private
+    FHub: THtmlListener;
+    FCP: IConnectionPoint;
+    FAgent: TObject;
+    FSinkCookies: Integer;
+  protected
+    function Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HRESULT;
+      override; stdcall;
+    procedure Connect(Source: IUnknown);
+  public
+    constructor Create(aHub: THtmlListener; aAgent: TObject);
+    procedure Disconnect;
+  end;
+
+implementation
+
+uses
+  SysUtils, EwbCoreTools;
+
+const
+  _eventids: array[TEventEnum] of TEventID = (
+    TEventID(0),
+    heOnAbort,
+    heOnChange,
+    heOnError,
+    heOnLoad,
+    heOnSelect,
+    heOnSubmit,
+    heOnUnload,
+    heOnBounce,
+    heOnFinish,
+    heOnStart,
+    heOnScroll,
+    heOnReset,
+    heOnresize,
+    heOnBeforeUnload,
+    heOncontextmenu,
+    heOnBeforePrint,
+    heOnAfterPrint,
+    heOnStop,
+    heOnBeforeEditFocus,
+    heOnlayoutcomplete,
+    heOnpage,
+    heOnmousewheel,
+    heOnbeforedeactivate,
+    heOnmove,
+    heOncontrolselect,
+    heOnSelectionChange,
+    heOnmoveStart,
+    heOnmoveEnd,
+    heOnresizeStart,
+    heOnresizeEnd,
+    heOnmouseEnter,
+    heOnmouseLeave,
+    heOnActivate,
+    heOnDeactivate,
+    heOnBeforeActivate,
+    heOnfocusIn,
+    heOnfocusOut,
+
+    heOnClick,
+    heOnDblClick,
+    heOnKeyDown,
+    heOnKeyPress,
+    heOnKeyUp,
+    heOnMouseDown,
+    heOnMouseMove,
+    heOnMouseUp,
+    heOnReadyStateChange,
+
+    heOnCellChange,
+    heOnRowsInserted,
+    heOnRowsDelete,
+    heOnBeforePaste,
+    heOnBeforeCopy,
+    heOnBeforeCut,
+    heOnPaste,
+    heOnCopy,
+    heOnCut,
+    heOnDrop,
+    heOnDragLeave,
+    heOnDragOver,
+    heOnDragEnter,
+    heOnDragEnd,
+    heOnDrag,
+    heOnPropertyChange,
+    heOnLoseCapture,
+    heOnFilterChange,
+    heOnDatasetComplete,
+    heOnDataAvailable,
+    heOnDatasetChanged,
+    heOnErrorUpdate,
+    heOnSelectStart,
+    heOnDragStart,
+    heOnHelp,
+    heOnMouseOut,
+    heOnMouseOver,
+    heOnRowEnter,
+    heOnRowExit,
+    heOnAfterUpdate,
+    heOnBeforeUpdate,
+    heOnFocus,
+    heOnBlur
+    );
+
+  _eventNames: array[TEventEnum] of string = (
+    '',
+    'OnAbort',
+    'OnChange',
+    'OnError',
+    'OnLoad',
+    'OnSelect',
+    'OnSubmit',
+    'OnUnload',
+    'OnBounce',
+    'OnFinish',
+    'OnStart',
+    'OnScroll',
+    'OnReset',
+    'Onresize',
+    'OnBeforeUnload',
+    'Oncontextmenu',
+    'OnBeforePrint',
+    'OnAfterPrint',
+    'OnStop',
+    'OnBeforeEditFocus',
+    'Onlayoutcomplete',
+    'Onpage',
+    'Onmousewheel',
+    'Onbeforedeactivate',
+    'Onmove',
+    'Oncontrolselect',
+    'OnSelectionChange',
+    'OnmoveStart',
+    'OnmoveEnd',
+    'OnresizeStart',
+    'OnresizeEnd',
+    'OnmouseEnter',
+    'OnmouseLeave',
+    'OnActivate',
+    'OnDeactivate',
+    'OnBeforeActivate',
+    'OnfocusIn',
+    'OnfocusOut',
+
+    'OnClick',
+    'OnDblClick',
+    'OnKeyDown',
+    'OnKeyPress',
+    'OnKeyUp',
+    'OnMouseDown',
+    'OnMouseMove',
+    'OnMouseUp',
+    'OnReadyStateChange',
+
+    'OnCellChange',
+    'OnRowsInserted',
+    'OnRowsDelete',
+    'OnBeforePaste',
+    'OnBeforeCopy',
+    'OnBeforeCut',
+    'OnPaste',
+    'OnCopy',
+    'OnCut',
+    'OnDrop',
+    'OnDragLeave',
+    'OnDragOver',
+    'OnDragEnter',
+    'OnDragEnd',
+    'OnDrag',
+    'OnPropertyChange',
+    'OnLoseCapture',
+    'OnFilterChange',
+    'OnDatasetComplete',
+    'OnDataAvailable',
+    'OnDatasetChanged',
+    'OnErrorUpdate',
+    'OnSelectStart',
+    'OnDragStart',
+    'OnHelp',
+    'OnMouseOut',
+    'OnMouseOver',
+    'OnRowEnter',
+    'OnRowExit',
+    'OnAfterUpdate',
+    'OnBeforeUpdate',
+    'OnFocus',
+    'OnBlur'
+    );
+
+  { TEventHandlerItem }
+
+procedure TEventHandlerItem.AssignTo(Dest: TPersistent);
+begin
+  if Dest is TEventHandlerItem then
+    with TEventHandlerItem(Dest) do
+    begin
+      EventID := Self.EventID;
+      OnHandle := Self.OnHandle;
+    end
+  else
+    inherited AssignTo(Dest);
+end;
+
+function TEventHandlerItem.GetDisplayName: string;
+begin
+  if FEventID = eiUnknown then
+    Result := inherited GetDisplayName
+  else
+    Result := _eventNames[FEventID];
+end;
+
+function TEventHandlerItem.GetNamePath: string;
+begin
+  if Collection <> nil then
+    Result := Collection.GetNamePath + GetDisplayName
+  else
+    Result := ClassName;
+end;
+
+procedure TEventHandlerItem.setEventID(const Value: TEventEnum);
+begin
+  if FEventID <> Value then
+  begin
+    FEventID := Value;
+    FEvID := _eventids[FEventID];
+    try
+      Changed(False);
+    except
+      FEventID := eiUnknown;
+      FEvID := 0;
+      raise;
+    end;
+  end;
+end;
+
+{ THandlerCollection }
+
+function THandlerCollection.Add: TEventHandlerItem;
+begin
+  Result := TEventHandlerItem(inherited Add);
+end;
+
+constructor THandlerCollection.Create(AOwner: THtmlListener);
+begin
+  inherited Create(TEventHandlerItem);
+  FOwner := AOwner;
+end;
+
+function THandlerCollection.GetItem(Index: Integer): TEventHandlerItem;
+begin
+  Result := TEventHandlerItem(inherited GetItem(Index));
+end;
+
+function THandlerCollection.GetOwner: TPersistent;
+begin
+  Result := FOwner;
+end;
+
+procedure THandlerCollection.Update(Item: TCollectionItem);
+begin
+  FOwner.Update(TEventHandlerItem(Item));
+end;
+
+{ THtmlListener }
+
+constructor THtmlListener.Create(AOwner: TComponent);
+begin
+  inherited;
+  FHandlers := THandlerCollection.Create(Self);
+  FSinkKind := skElement;
+  FSinkIID := @DIID_HTMLElementEvents2;
+end;
+
+destructor THtmlListener.Destroy;
+begin
+  FHandlers.Free;
+  FDispList.Free;
+  inherited;
+end;
+
+procedure THtmlListener.Connect(Source: IUnknown);
+var
+  pcpc: IConnectionPointContainer;
+  cp: IConnectionPoint;
+  c: Integer;
+{$IFDEF DELPHI5}
+  SelfIntf: IDispatch;
+{$ENDIF DELPHI5}
+begin
+  if Supports(Source, IConnectionPointContainer, pcpc) and
+    (pcpc.FindConnectionPoint(FSinkIID^, cp) = S_OK) then
+  begin
+{$IFDEF DELPHI5}
+    GetInterFace(IDispatch, SelfIntf);
+    if cp.Advise(SelfIntf, c) <> S_OK then
+{$ELSE}
+    if cp.Advise(Self, c) <> S_OK then
+{$ENDIF}
+      raise Exception.Create('Error on IConnectionPoint.Advise');
+  end
+  else
+{$IFDEF DELPHI6_UP}
+    raise Exception.CreateFmt('Source don''t have connection point for [%s]',
+      [GUIDToString(FSinkIID^)]);
+{$ENDIF}
+end;
+
+
+function THtmlListener.Connect2(Source: IUnknown;
+  aAgent: TObject = nil): IHubLink;
+begin
+  Flink := THtmlListenerLink.Create(Self, aAgent);
+  Flink.Connect(Source);
+  Result := Flink as IHubLink;
+end;
+
+procedure THtmlListener.setHandlers(const Value: THandlerCollection);
+begin
+  FHandlers.Assign(Value);
+end;
+
+procedure THtmlListener.setSinkKind(const Value: TSinkKind);
+begin
+  FSinkKind := Value;
+  FSinkIID := mshtmlEventGUIDs[Value];
+end;
+
+procedure THtmlListener.Update(Item: TEventHandlerItem);
+begin
+  if csDestroying in ComponentState then
+    Exit;
+  if FDispList = nil then
+    FDispList := TList.Create;
+  if Item = nil then
+    FillDispList
+  else
+  begin
+    FDispList.Remove(Item);
+    if Item.EventID <> eiUnknown then
+      AddDisp(Item);
+  end;
+end;
+
+procedure THtmlListener.AddDisp(Item: TEventHandlerItem);
+var
+  I: Integer;
+begin
+  if Find(Item.fEvID, I) then
+    raise Exception.CreateFmt('Handler with EventID = %s already exists.',
+      [_eventNames[Item.EventID]]);
+  FDispList.Insert(I, Item);
+end;
+
+procedure THtmlListener.FillDispList;
+var
+  I: Integer;
+begin
+  FDispList.Clear;
+  FDispList.Capacity := FHandlers.Count;
+  for I := 0 to FHandlers.Count - 1 do
+    if FHandlers[I].EventID <> eiUnknown then
+      AddDisp(FHandlers[I]);
+end;
+
+function THtmlListener.Find(DispID: TEventID; var Index: Integer): Boolean;
+var
+  L, H, I: Integer;
+begin
+  Result := False;
+  if FDispList = nil then
+    Exit;
+
+  L := 0;
+  H := FDispList.Count - 1;
+  while L <= H do
+  begin
+    I := (L + H) shr 1;
+    if TEventHandlerItem(FDispList[I]).FEvID < DispID then
+      L := I + 1
+    else
+    begin
+      H := I - 1;
+      if TEventHandlerItem(FDispList[I]).FEvID = DispID then
+      begin
+        Result := True;
+        Index := I;
+        Exit;
+      end;
+    end;
+  end;
+  Index := L;
+end;
+
+procedure THtmlListener.DispatchEvent(Sender: TObject; DispID: TEventID;
+  Event: IHTMLEventObj);
+var
+  I: Integer;
+begin
+  if Find(DispID, I) then
+    with TEventHandlerItem(FDispList[I]) do
+      if Assigned(OnHandle) then
+        OnHandle(Sender, Event);
+end;
+
+function THtmlListener.QueryInterface(const IID: TGUID; out Obj): HRESULT;
+{$IFDEF DELPHI5}
+var
+  SelfIntf: IDispatch;
+{$ENDIF}
+begin
+  Result := S_OK;
+  if GetInterface(IID, Obj) then
+    Exit;
+  if IsEqualGuid(IID, fSinkIID^) then
+{$IFDEF DELPHI5}
+  begin
+    GetInterface(IDispatch, SelfIntf);
+    IUnknown(Obj) := SelfIntf;
+  end
+{$ELSE}
+    IUnknown(Obj) := Self as IDispatch
+{$ENDIF}
+  else
+    Result := E_NOINTERFACE;
+end;
+
+function THtmlListener.GetIDsOfNames(const IID: TGUID; Names: Pointer;
+  NameCount, LocaleID: Integer; DispIDs: Pointer): HRESULT;
+begin
+  Result := E_NOTIMPL;
+end;
+
+function THtmlListener.GetTypeInfo(Index, LocaleID: Integer;
+  out TypeInfo): HRESULT;
+begin
+  Result := DISP_E_BADINDEX;
+end;
+
+function THtmlListener.GetTypeInfoCount(out Count: Integer): HRESULT;
+begin
+  Count := 0;
+  Result := S_OK;
+end;
+
+function THtmlListener.Invoke(DispID: Integer; const IID: TGUID;
+  LocaleID: Integer; Flags: Word; var Params; VarResult, ExcepInfo,
+  ArgErr: Pointer): HRESULT;
+var
+  Event: IHTMLEventObj;
+begin
+  Result := S_OK;
+  try
+    if Flags and DISPATCH_METHOD <> 0 then
+    begin
+      if (TDispParams(Params).cArgs = 0) or
+        not VarSupports(POleVariant(TDispParams(Params).rgvarg)^, IHTMLEventObj,
+        Event) then
+        Event := nil;
+      DispatchEvent(Self, TEventID(DispID), Event);
+      //      if VarResult<>nil then
+      //         POleVariant(VarResult)^ := False;
+    end;
+  except
+    on E: Exception do
+    begin
+      Result := DISP_E_EXCEPTION;
+      with PExcepInfo(ExcepInfo)^ do
+      begin
+        wCode := 9999;
+        bstrDescription := E.Message;
+        bstrSource := E.ClassName;
+        dwHelpContext := E.HelpContext;
+      end;
+    end;
+  end;
+end;
+
+
+{ THtmlListenerLink }
+
+constructor THtmlListenerLink.Create(aHub: THtmlListener; aAgent: TObject);
+begin
+  inherited Create;
+  FHub := aHub;
+  FAgent := aAgent;
+end;
+
+procedure THtmlListenerLink.Disconnect;
+begin
+  if FCP <> nil then
+  try
+    FCP.Unadvise(FSinkCookies);
+  finally
+    FCP := nil;
+  end;
+end;
+
+procedure THtmlListenerLink.Connect(Source: IUnknown);
+var
+  pcpc: IConnectionPointContainer;
+begin
+  if Supports(Source, IConnectionPointContainer, pcpc) and
+    (pcpc.FindConnectionPoint(fHub.fSinkIID^, FCP) = S_OK) then
+  begin
+    if FCP.Advise(Self, FSinkCookies) <> S_OK then
+      raise Exception.Create('Error on IConnectionPoint.Advise');
+  end
+  else
+{$IFDEF DELPHI6_UP}
+    raise Exception.CreateFmt('Source don''t have connection point for [%s]',
+      [GUIDToString(FHub.FSinkIID^)]);
+{$ENDIF}
+end;
+
+function THtmlListenerLink.Invoke(DispID: Integer; const IID: TGUID;
+  LocaleID: Integer; Flags: Word; var Params; VarResult, ExcepInfo,
+  ArgErr: Pointer): HRESULT;
+var
+  Event: IHTMLEventObj;
+begin
+  Result := S_OK;
+  try
+    if Flags and DISPATCH_METHOD <> 0 then
+    begin
+      if (TDispParams(Params).cArgs = 0) or
+        not VarSupports(POleVariant(TDispParams(Params).rgvarg)^, IHTMLEventObj,
+        Event) then
+        Event := nil;
+      FHub.DispatchEvent(FAgent, TEventID(DispID), Event);
+    end;
+  except
+    on E: Exception do
+    begin
+      Result := DISP_E_EXCEPTION;
+      with PExcepInfo(ExcepInfo)^ do
+      begin
+        wCode := 9999;
+        bstrDescription := E.Message;
+        bstrSource := E.ClassName;
+        dwHelpContext := E.HelpContext;
+      end;
+    end;
+  end;
+end;
+
+end.
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbFocusControl.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbFocusControl.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbFocusControl.pas	(revision 541)
@@ -0,0 +1,199 @@
+//***********************************************************
+//                       TEWBFocusControl unit              *
+//                                                          *
+//                       For Delphi 5 to 2009               *
+//                     Freeware Component                   *
+//                            by                            *
+//                          (smot)                          *
+//                                                          *
+//  Documentation and updated versions:                     *
+//                                                          *
+//               http://www.bsalsa.com                      *
+//***********************************************************
+{*******************************************************************************}
+{LICENSE:
+THIS SOFTWARE IS PROVIDED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND,
+EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE APPLIED
+WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
+YOU ASSUME THE ENTIRE RISK AS TO THE ACCURACY AND THE USE OF THE SOFTWARE
+AND ALL OTHER RISK ARISING OUT OF THE USE OR PERFORMANCE OF THIS SOFTWARE
+AND DOCUMENTATION. BSALSA PRODUCTIONS DOES NOT WARRANT THAT THE SOFTWARE IS ERROR-FREE
+OR WILL OPERATE WITHOUT INTERRUPTION. THE SOFTWARE IS NOT DESIGNED, INTENDED
+OR LICENSED FOR USE IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE CONTROLS,
+INCLUDING WITHOUT LIMITATION, THE DESIGN, CONSTRUCTION, MAINTENANCE OR
+OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS,
+AIR TRAFFIC CONTROL, AND LIFE SUPPORT OR WEAPONS SYSTEMS. BSALSA PRODUCTIONS SPECIFICALLY
+DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR SUCH PURPOSE.
+
+You may use, change or modify the component under 4 conditions:
+1. In your website, add a link to "http://www.bsalsa.com"
+2. In your application, add credits to "Embedded Web Browser"
+3. Mail me  (bsalsa@gmail.com) any code change in the unit
+   for the benefit of the other users.
+4. Please, consider donation in our web site!
+{*******************************************************************************}
+
+unit EwbFocusControl;
+
+{$I EWB.inc}
+
+interface
+
+uses
+  Windows, Messages, Classes, Forms, Controls;
+
+// -- TEWBFocusControl ---------------------------------------------------------
+
+type
+  TEWBFocusControl = class { Singleton }
+  private
+    constructor Create;
+  public
+    class procedure Activate(Value: Boolean);
+  end;
+
+  // Enable TEWBApplicationHook, if accessible at runtime only
+  // Enable_HookMainWindow must be defined in EWB.inc
+  // EWBHookMainWindow is activated by default.
+
+var
+  EWBEnableFocusControl: Boolean = True; // DO NOT CHANGE HERE
+
+implementation
+
+uses
+  EwbCoreTools;
+
+// -- FreeAndNil (SysUtils) ----------------------------------------------------
+
+procedure FreeAndNil(var Obj);
+var
+  Temp: TObject;
+begin
+  try
+    Temp := TObject(Obj);
+  finally
+    Pointer(Obj) := nil;
+  end;
+  Temp.Free;
+end;
+
+// -- TAppHookWindow ----------------------------------------------------------
+
+type
+  TAppHookWindow = class(TWinControl)
+  private
+    FHookSet: Boolean;
+    function MessageHook(var Msg: TMessage): Boolean;
+  public
+    destructor Destroy; override;
+    procedure Activate;
+    procedure Deactivate;
+  end;
+
+var
+  EWBAppHookInstance: TAppHookWindow;
+
+  // -- TEWBFocusControl ---------------------------------------------------------
+
+constructor TEWBFocusControl.Create;
+begin
+  inherited;
+  if EWBEnableFocusControl then
+  begin
+    if EWBAppHookInstance = nil then
+    begin
+      EWBAppHookInstance := TAppHookWindow.Create(nil);
+      EWBAppHookInstance.Activate;
+    end;
+  end;
+end;
+
+class procedure TEWBFocusControl.Activate(Value: Boolean)
+  {: TEWBApplicationHook};
+const
+{$J+}
+  Instance: TEWBFocusControl = nil;
+{$J-}
+begin
+  if EWBEnableFocusControl then
+    case Value of
+      True:
+        begin
+          if not Assigned(Instance) then
+            Instance := Create;
+        end;
+      False:
+        begin
+          if Assigned(EWBAppHookInstance) then
+            FreeAndNil(EWBAppHookInstance);
+          if Assigned(Instance) then
+            FreeAndNil(Instance);
+        end;
+    end;
+end;
+
+// -- TAppHookWindow -----------------------------------------------------------
+
+function TAppHookWindow.MessageHook(var Msg: TMessage): Boolean;
+var
+  ActiveControl: TWinControl;
+  ActiveForm: TCustomForm;
+  bContinue: Boolean;
+//  s: string;
+begin
+  Result := False;
+  if (Msg.Msg = WM_WINDOWPOSCHANGING) or (Msg.Msg = CM_ACTIVATE) then
+  begin
+    ActiveForm := Screen.ActiveForm;
+    if Assigned(ActiveForm) then
+    begin
+      if Screen.ActiveForm.FormStyle = fsMDIChild then // Check if MDI
+        bContinue := IsChild(GetActiveWindow, ActiveForm.Handle)
+      else
+        bContinue :=  not Forms.Application.Terminated and (ActiveForm.Handle = GetActiveWindow);
+
+      if bContinue and (ActiveForm.CanFocus) then
+      begin
+        ActiveControl := ActiveForm.ActiveControl;
+       // s := '** MessageHook ' + ActiveControl.ClassName + ' ' + Inttostr(ActiveForm.Handle) + ' ' +  Inttostr(GetFocus);
+      //  OutputDebugString(PChar(s));
+        if Assigned(ActiveControl) and ((ActiveControl.ClassName = 'TEmbeddedWB') or
+          (ActiveControl.ClassName = 'TEWBCore')) then
+          if GetFocus <> ActiveControl.Handle then
+          begin
+            PostMessage(ActiveControl.Handle, WM_SETWBFOCUS, Integer(ActiveControl), 0);
+             //  OutputDebugString(PChar('Focus set'));
+             //  ActiveControl.SetFocus doesn't work when switching between forms.
+          end;
+      end;
+    end;
+  end;
+end;
+
+destructor TAppHookWindow.Destroy;
+begin
+  inherited;
+  Deactivate;
+end;
+
+procedure TAppHookWindow.Activate;
+begin
+  if (not FHookSet) and EWBEnableFocusControl then
+    if Assigned(Application) then
+    begin
+      Application.HookMainWindow(MessageHook);
+      FHookSet := True;
+    end;
+end;
+
+procedure TAppHookWindow.Deactivate;
+begin
+  if Assigned(Application) then
+  begin
+    Application.UnHookMainWindow(MessageHook);
+    FHookSet := False;
+  end;
+end;
+
+end.
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbMouseHook.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbMouseHook.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbMouseHook.pas	(revision 541)
@@ -0,0 +1,259 @@
+//***********************************************************
+//                       EwbMouseHook unit                  *
+//                                                          *
+//                       For Delphi 5 to 2009               *
+//                     Freeware Component                   *
+//                            by                            *
+//                          (smot)                          *
+//                                                          *
+//  Documentation and updated versions:                     *
+//                                                          *
+//               http://www.bsalsa.com                      *
+//***********************************************************
+{*******************************************************************************}
+{LICENSE:
+THIS SOFTWARE IS PROVIDED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND,
+EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE APPLIED
+WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
+YOU ASSUME THE ENTIRE RISK AS TO THE ACCURACY AND THE USE OF THE SOFTWARE
+AND ALL OTHER RISK ARISING OUT OF THE USE OR PERFORMANCE OF THIS SOFTWARE
+AND DOCUMENTATION. BSALSA PRODUCTIONS DOES NOT WARRANT THAT THE SOFTWARE IS ERROR-FREE
+OR WILL OPERATE WITHOUT INTERRUPTION. THE SOFTWARE IS NOT DESIGNED, INTENDED
+OR LICENSED FOR USE IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE CONTROLS,
+INCLUDING WITHOUT LIMITATION, THE DESIGN, CONSTRUCTION, MAINTENANCE OR
+OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS,
+AIR TRAFFIC CONTROL, AND LIFE SUPPORT OR WEAPONS SYSTEMS. BSALSA PRODUCTIONS SPECIFICALLY
+DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR SUCH PURPOSE.
+
+You may use, change or modify the component under 4 conditions:
+1. In your website, add a link to "http://www.bsalsa.com"
+2. In your application, add credits to "Embedded Web Browser"
+3. Mail me  (bsalsa@gmail.com) any code change in the unit
+   for the benefit of the other users.
+4. Please, consider donation in our web site!
+{*******************************************************************************}
+
+unit EwbMouseHook;
+
+interface
+
+{$I EWB.inc}
+
+uses
+  Windows, Messages, Classes, Forms, Controls;
+
+// -- TEWBMouseHook ------------------------------------------------------------
+
+type
+  TFNMouseProc = function(nCode: Integer; wp: WPARAM; lp: WParam): LRESULT
+    stdcall;
+  TFNMouseMethod = function(nCode: Integer; wp: WPARAM; lp: WParam): LRESULT
+    stdcall of object;
+  TMouseWheelEvent = procedure(Point: TPoint; hwndFromPoint: HWND; lp: LPARAM;
+    var Handled: Boolean) of object;
+
+type
+  TEWBMouseHook = class(TObject)
+  private
+    FMouseHook: HHOOK;
+    FMouseHookProc: TFNMouseProc;
+    FMouseHookMethod: TFNMouseMethod;
+    function LocalMouseProc(nCode: Integer; wp: WPARAM; lp: LPARAM): LRESULT
+      stdcall;
+  public
+    OnMouseWheel: TMouseWheelEvent;
+    FActiveFormOnly: Boolean;
+    class function NewInstance: TObject; override;
+    procedure FreeInstance; override;
+    constructor Create;
+    destructor Destroy; override;
+    procedure Activate;
+    procedure Deactivate;
+  end;
+
+var
+  EWBEnableMouseWheelFix: Boolean = True; // DO NOT CHANGE HERE
+
+implementation
+
+uses
+  EWBCoreTools;
+
+{$IFDEF DELPHI5}
+type
+  TMethod = record
+    Code, Data: Pointer;
+  end;
+{$ENDIF}
+
+var
+  GEWBMouseHook: TEWBMouseHook = nil;
+  GRefCount: Integer = 0;
+
+  //  MakeStdcallCallback (thunk to use stdcall method as static callback)
+
+function MakeStdcallCallback(const Method: TMethod): Pointer;
+type
+  PCallbackCode = ^TCallbackCode;
+  TCallbackCode = packed record
+    Ops1: array[0..2] of Longword;
+    Val1: Pointer;
+    Ops2: array[0..1] of Longword;
+    Val2: Pointer;
+  end;
+begin
+  Result := VirtualAlloc(nil, $100, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
+  if Assigned(Result) then
+  try
+    with PCallbackCode(Result)^ do
+    begin
+      Ops1[0] := $448B5050;
+      Ops1[1] := $44890824;
+      Ops1[2] := $058B0424;
+      Val1 := Addr(Method.Data);
+      Ops2[0] := $08244489;
+      Ops2[1] := $25FF9058;
+      Val2 := Addr(Method.Code);
+    end;
+  except
+    VirtualFree(Result, 0, MEM_RELEASE);
+    Result := nil;
+  end;
+end;
+
+procedure FreeCallback(Callback: Pointer);
+begin
+  if Assigned(Callback) then
+    VirtualFree(Callback, 0, MEM_RELEASE);
+end;
+
+function TEWBMouseHook.LocalMouseProc(nCode: Integer; wp: WPARAM; lp: LPARAM):
+  LRESULT stdcall;
+var
+  bHandled, bCancel: Boolean;
+  mhs: TMouseHookStruct;
+  hwndCurrentFocus: HWND;
+  P: TPoint;
+  hwndFromPoint, hwndFocusShellEmbedding, hwndWFPShellEmbedding: HWND;
+  WinControl: TWinControl;
+  ParentForm: TCustomForm;
+begin
+  if nCode < 0 then
+    Result := CallNextHookEx(FMouseHook, nCode, wp, LPARAM(lp))
+  else
+  begin
+    bHandled := False;
+    if (wp = WM_MOUSEWHEEL) and (nCode = HC_ACTION) then
+    begin
+      mhs := PMouseHookStruct(lp)^;
+      P := Point(mhs.pt.X, mhs.pt.Y);
+      hwndFromPoint := WindowFromPoint(P);
+          // Handle OnMouseWheel
+      bCancel := False;
+      if Assigned(OnMouseWheel) then
+        OnMouseWheel(P, hwndFromPoint, lp, bCancel);
+          // Handle ActiveFormOnly
+      if FActiveFormOnly then
+      begin
+        WinControl := FindVCLWindow(P);
+        if Assigned(WinControl) then
+        begin
+          ParentForm := GetParentForm(WinControl);
+          if Assigned(ParentForm) then
+            bCancel := ParentForm <> Screen.ActiveForm;
+        end;
+      end;
+
+      if not bCancel then
+        if hwndFromPoint <> 0 then
+        begin
+          hwndCurrentFocus := GetFocus;
+          if hwndCurrentFocus <> 0 then
+          begin
+            hwndWFPShellEmbedding := GetParentWinByClass(hwndFromPoint,
+              'Shell Embedding');
+            if (hwndWFPShellEmbedding <> 0) then
+                      // Parent of WindowFromPoint is WB
+            begin
+              hwndFocusShellEmbedding :=
+                GetParentWinByClass(hwndCurrentFocus,
+                'Shell Embedding');
+              if (hwndWFPShellEmbedding <> hwndFocusShellEmbedding) or
+                (GetWinClass(hwndCurrentFocus) =
+                'Shell DocObject View') then
+                          // Only handle if WB has not the focus or other WB has the focus
+              begin
+                bHandled := True;
+                Windows.SetFocus(hwndFromPoint);
+              end;
+            end;
+          end;
+        end;
+    end;
+    if bHandled then
+      Result := HC_SKIP
+    else
+      Result := CallNextHookEx(FMouseHook, nCode, wp, lp);
+  end;
+end;
+
+class function TEWBMouseHook.NewInstance: TObject;
+begin
+  if not Assigned(GEWBMouseHook) then
+  begin
+    GEWBMouseHook := TEWBMouseHook(inherited NewInstance);
+    GEWBMouseHook.FActiveFormOnly := False;
+  end;
+  Result := GEWBMouseHook;
+  Inc(GRefCount);
+end;
+
+procedure TEWBMouseHook.FreeInstance;
+begin
+  Dec(GRefCount);
+  if GRefCount = 0 then
+  begin
+    GEWBMouseHook := nil;
+    inherited FreeInstance;
+  end;
+end;
+
+procedure TEWBMouseHook.Activate;
+begin
+  if (FMouseHook = 0) and EWBEnableMouseWheelFix then
+  begin
+    FMouseHookMethod := LocalMouseProc;
+    FMouseHookProc :=
+      TFNMouseProc(MakeStdcallCallback(TMethod(FMouseHookMethod)));
+    FMouseHook := SetWindowsHookEx(WH_MOUSE, TFNHookProc(FMouseHookProc), 0,
+      GetCurrentThreadID);
+  end;
+end;
+
+procedure TEWBMouseHook.Deactivate;
+begin
+  if FMouseHook <> 0 then
+  begin
+    if UnhookWindowsHookEx(FMouseHook) then
+      FMouseHook := 0;
+  end;
+  if Assigned(FMouseHookProc) then
+  begin
+    FreeCallback(Addr(FMouseHookProc));
+    FMouseHookProc := nil;
+  end;
+end;
+
+constructor TEWBMouseHook.Create;
+begin
+  inherited;
+  //  if (GRefCount = 1) then
+end;
+
+destructor TEWBMouseHook.Destroy;
+begin
+  inherited;
+  //  if ((GRefCount <= 1)) then
+end;
+
+end.
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbReg.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbReg.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbReg.pas	(revision 541)
@@ -0,0 +1,152 @@
+//**************************************************************
+//                                                             *
+//                         Ewb_Reg                             *
+//                                                             *
+//                       For Delphi                            *
+//                            by                               *
+//       bsalsa - Eran Bodankin  - bsalsa@gmail.com           *
+//                                                             *
+//                                                             *
+//  Updated versions:                                          *
+//               http://www.bsalsa.com                         *
+//**************************************************************
+{*******************************************************************************}
+{LICENSE:
+THIS SOFTWARE IS PROVIDED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND,
+EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE APPLIED
+WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
+YOU ASSUME THE ENTIRE RISK AS TO THE ACCURACY AND THE USE OF THE SOFTWARE
+AND ALL OTHER RISK ARISING OUT OF THE USE OR PERFORMANCE OF THIS SOFTWARE
+AND DOCUMENTATION. BSALSA PRODUCTIONS DOES NOT WARRANT THAT THE SOFTWARE IS ERROR-FREE
+OR WILL OPERATE WITHOUT INTERRUPTION. THE SOFTWARE IS NOT DESIGNED, INTENDED
+OR LICENSED FOR USE IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE CONTROLS,
+INCLUDING WITHOUT LIMITATION, THE DESIGN, CONSTRUCTION, MAINTENANCE OR
+OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS,
+AIR TRAFFIC CONTROL, AND LIFE SUPPORT OR WEAPONS SYSTEMS. BSALSA PRODUCTIONS SPECIFICALLY
+DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR SUCH PURPOSE.
+
+You may use, change or modify the component under 4 conditions:
+1. In your website, add a link to "http://www.bsalsa.com"
+2. In your application, add credits to "Embedded Web Browser"
+3. Mail me  (bsalsa@gmail.com) any code change in the unit
+   for the benefit of the other users.
+4. Please, consider donation in our web site!
+{*******************************************************************************}
+
+unit EwbReg;
+
+interface
+
+{$I EWB.inc}
+
+uses
+  Classes, {$IFDEF DELPHI6_UP}DesignEditors, DesignIntf, {$ELSE}DsgnIntf, {$ENDIF}
+  EwbEditors, AppWebUpdater, IEParser, ExportFavorites, FavoritesTree, IETravelLog,
+  FavMenu, FavoritesListView, FavoritesPopup, HistoryMenu, HistoryListView,
+  ImportFavorites, LibXmlComps, LibXmlParser, LinksBar, RichEditBrowser,
+  SecurityManager, SendMail_For_Ewb, UrlHistory, Edithost, EditDesigner,
+  IEAddress, IEDownload, IEMultiDownload, EwbCore, EmbeddedWB, EwbControlComponent, IECache, Browse4Folder,
+  FileExtAssociate, LinkLabel, UI_Less,
+{$IFDEF DELPHI6_UP}EwbEventsComp, EwbBehaviorsComp, {$ENDIF}EwbActns;
+
+procedure Register;
+
+implementation
+
+uses
+  SysUtils, ActnList;
+
+procedure Register;
+begin
+  RegisterComponents('Embedded Web Browser', [
+    TBrowse4Folder,
+{$IFDEF DELPHI6_UP}
+    TEwbBehaviorFactory,
+      TEwbBehaviorController,
+{$ENDIF}
+    TEasyXmlScanner,
+      TEditDesigner,
+      TEdithost,
+      TEmbeddedWB,
+      TEwbCore,
+      TEwbControl,
+      TEwbMapiMail,
+      TExportFavorite,
+      TFavoritesListView,
+      TFavoritesMenu,
+      TFavoritesPopup,
+      TFavoritesTree,
+      TFileExtAssociate,
+      THistoryListView,
+      THistoryMenu,
+{$IFDEF DELPHI6_UP}
+    THtmlListener,
+{$ENDIF}
+    TIEAddress,
+      TIECache,
+      TIEDownload,
+      TIEMultiDownload,
+      TIEParser,
+      TIETravelLog,
+      TImportFavorite,
+      TLinkLabel,
+      TLinksBar,
+      TRichEditWB,
+      TSecurityManager,
+      TUILess,
+      TUrlHistory,
+      TWebUpdater,
+      TXmlScanner
+      ]);
+
+
+  RegisterComponentEditor(TBrowse4Folder, TBFFEditor);
+{$IFDEF DELPHI6_UP}
+  RegisterComponentEditor(TEwbBehaviorFactory, TEwbCompEditor);
+  RegisterComponentEditor(TEwbBehaviorController, TEwbCompEditor);
+{$ENDIF}
+  RegisterComponentEditor(TEasyXmlScanner, TEwbCompEditor);
+  RegisterComponentEditor(TEditDesigner, TEwbCompEditor);
+  RegisterComponentEditor(TEdithost, TEwbCompEditor);
+  RegisterComponentEditor(TEmbeddedWB, TEwbCompEditor);
+  RegisterComponentEditor(TEwbCore, TEwbCompEditor);
+  RegisterComponentEditor(TEwbControl, TEwbCompEditor);
+  RegisterComponentEditor(TEwbMapiMail, TEwbCompEditor);
+  RegisterComponentEditor(TExportFavorite, TEwbCompEditor);
+  RegisterComponentEditor(TFavoritesListView, TEwbCompEditor);
+  RegisterComponentEditor(TFavoritesMenu, TEwbCompEditor);
+  RegisterComponentEditor(TFavoritesTree, TEwbCompEditor);
+  RegisterComponentEditor(TFileExtAssociate, TEwbCompEditor);
+  RegisterComponentEditor(THistoryListView, TEwbCompEditor);
+  RegisterComponentEditor(THistoryMenu, TEwbCompEditor);
+{$IFDEF DELPHI6_UP}
+  RegisterComponentEditor(THtmlListener, TEwbCompEditor);
+{$ENDIF}
+  RegisterComponentEditor(TIEAddress, TEwbCompEditor);
+  RegisterComponentEditor(TIECache, TEwbCompEditor);
+  RegisterComponentEditor(TIEDownload, TEwbCompEditor);
+  RegisterComponentEditor(TIEMultiDownload, TEwbCompEditor);
+  RegisterComponentEditor(TIEParser, TEwbCompEditor);
+  RegisterComponentEditor(TIETravelLog, TEwbCompEditor);
+  RegisterComponentEditor(TImportFavorite, TEwbCompEditor);
+  RegisterComponentEditor(TLinkLabel, TEwbCompEditor);
+  RegisterComponentEditor(TLinksBar, TEwbCompEditor);
+  RegisterComponentEditor(TRichEditWB, TEwbCompEditor);
+  RegisterComponentEditor(TSecurityManager, TEwbCompEditor);
+  RegisterComponentEditor(TUILess, TEwbCompEditor);
+  RegisterComponentEditor(TUrlHistory, TEwbCompEditor);
+  RegisterComponentEditor(TWebUpdater, TEwbCompEditor);
+  RegisterComponentEditor(TXmlScanner, TEwbCompEditor);
+
+
+  RegisterPropertyEditor(TypeInfo(WideString), TIEDownload, 'DownloadDir', TBrowse4FolderDLG);
+  RegisterPropertyEditor(TypeInfo(WideString), TIEParser, 'LocalFileName', TOpenFileDLG);
+  RegisterPropertyEditor(TypeInfo(WideString), TIEParser, 'SaveLogAs', TSaveTextDLG);
+  RegisterPropertyEditor(TypeInfo(WideString), TBrowse4Folder, 'InitialDir', TBrowse4FolderDLG);
+{$IFDEF DELPHI6_UP}
+  RegisterPropertyEditor(TypeInfo(WideString), TEmbeddedWB, 'HostCSS', TMultiStringProperty);
+{$ENDIF}
+  RegisterActions('EmbeddedWB', [TEwbLinkAction], nil);
+end;
+
+end.
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbUrl.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbUrl.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/EwbUrl.pas	(revision 541)
@@ -0,0 +1,831 @@
+//***********************************************************
+//                        URL Tools                         *
+//                (Uniform Resource identifier)             *
+//                                                          *
+//                     For Borland Delphi                   *
+//                       Freeware Unit                      *
+//       by Eran Bodankin - bsalsa - bsalsa@gmail.com      *
+//                                                          *
+//        QueryUrl function is based on Indy algorithm      *
+//             from: http://www.indyproject.org/            *
+//                                                          *
+//           Documentation and updated versions:            *
+//                  http://www.bsalsa.com                   *
+//***********************************************************
+
+{*******************************************************************************}
+{LICENSE:
+THIS SOFTWARE IS PROVIDED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND,
+EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE APPLIED
+WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
+YOU ASSUME THE ENTIRE RISK AS TO THE ACCURACY AND THE USE OF THE SOFTWARE
+AND ALL OTHER RISK ARISING OUT OF THE USE OR PERFORMANCE OF THIS SOFTWARE
+AND DOCUMENTATION. BSALSA PRODUCTIONS DOES NOT WARRANT THAT THE SOFTWARE IS ERROR-FREE
+OR WILL OPERATE WITHOUT INTERRUPTION. THE SOFTWARE IS NOT DESIGNED, INTENDED
+OR LICENSED FOR USE IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE CONTROLS,
+INCLUDING WITHOUT LIMITATION, THE DESIGN, CONSTRUCTION, MAINTENANCE OR
+OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS,
+AIR TRAFFIC CONTROL, AND LIFE SUPPORT OR WEAPONS SYSTEMS. BSALSA PRODUCTIONS SPECIFICALLY
+DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR SUCH PURPOSE.
+
+You may use, change or modify the component under 4 conditions:
+1. In your website, add a link to "http://www.bsalsa.com"
+2. In your application, add credits to "Embedded Web Browser"
+3. Mail me (bsalsa@gmail.com) any code change in the unit
+   for the benefit of the other users.
+4. Please, consider donation in our web site!
+{*******************************************************************************}
+//$Id: EwbUrl.pas,v 1 2007/02/15 21:01:42 bsalsa Exp $
+{
+QueryUrl Structure:
+  Protocol + :// + UserName + : + Password + HostName + Port + Path +
+  Document + Parameters+ Bookmark
+
+CrackUrl Structure:
+<Scheme>://<UserName>:<Password>@<HostName>:<PortNumber>/<UrlPath><ExtraInfo>
+ Note by MS:
+(Some fields are optional.) For example, consider this URL:
+http://someone:secret@www.microsoft.com:80/visualc/stuff.htm#contents
+
+CrackUrl parses it as follows:
+* Scheme: "http" or ATL_URL_SCHEME_HTTP
+* UserName: "someone"
+* Password: "secret"
+* HostName: "www.microsoft.com"
+* PortNumber: 80
+* UrlPath: "visualc/stuff.htm"
+* ExtraInfo: "#contents"
+
+URL_COMPONENTS = record that contains:
+    dwStructSize: DWORD;      =  size of this structure. Used in version check
+    lpszScheme: LPSTR;        =  pointer to scheme name
+    dwSchemeLength: DWORD;    =   length of scheme name
+    nScheme: TInternetScheme; =  enumerated scheme type (if known)
+    lpszHostName: LPSTR;      =  pointer to host name
+    dwHostNameLength: DWORD;  =  length of host name
+    nPort: INTERNET_PORT;     =  converted port number
+    pad: WORD;                =  force correct allignment regardless of comp. flags
+    lpszUserName: LPSTR;      =  pointer to user name
+    dwUserNameLength: DWORD;  =  length of user name
+    lpszPassword: LPSTR;      =  pointer to password
+    dwPasswordLength: DWORD;  =  length of password
+    lpszUrlPath: LPSTR;       =  pointer to URL-path
+    dwUrlPathLength: DWORD;   =  length of URL-path
+    lpszExtraInfo: LPSTR;     =  pointer to extra information (e.g. ?foo or #foo)
+    dwExtraInfoLength: DWORD; =  length of extra information
+
+URL_COMPONENTS on MSDN:
+http://msdn2.microsoft.com/en-us/library/aa385420.aspx
+
+CoInternetQueryInfo Function fags:
+http://msdn.microsoft.com/library/default.asp?url=/workshop/networking/moniker/reference/enums/queryoption.asp
+}
+
+unit EwbUrl;
+
+{$I EWB.inc}
+
+{$DEFINE USE_DebugString}
+
+interface
+
+uses
+  Dialogs, Windows, WinInet;
+
+const
+  TEMP_SIZE = 1024;
+  MAX_BUFFER = 256;
+  WebDelim = '/';
+  ProtocolDelim = '://';
+  QueryDelim = '?';
+  BookmarkDelim = '#';
+  EqualDelim = '=';
+  DriveDelim = ':'; //I know it's in SysUtils already but, not in D5.
+type
+  TQueryOption = ULONG;
+  TCoInternetQueryInfo = function(pwzUrl: LPCWSTR; QueryOptions: TQueryOption; dwQueryFlags: DWORD;
+    pvBuffer: Pointer; cbBuffer: DWORD; var pcbBuffer: DWORD; dwReserved: DWORD): HResult; stdcall;
+
+type
+  TOnError = procedure(Sender: TObject; ErrorCode: integer; ErrMessage: string) of object;
+type
+  TUrl = class
+  private
+    FDocument: string;
+    FProtocol: string;
+    FUrl: string;
+    FPort: Integer;
+    FUrlPath: string;
+    FHostName: string;
+    FExtraInfo: string;
+    FUserName: string;
+    FPassword: string;
+    FBookmark: string;
+    FOnError: TOnError;
+    FParameters: string;
+    FUrlComponent: URL_COMPONENTS;
+    CoInternetQueryInfo: TCoInternetQueryInfo;
+    function initCoInternetQueryInfo: boolean;
+  protected
+    procedure SetUrl(const Value: string);
+    procedure FillUrlComponent;
+  public
+    function FixUrl(Url: string): string;
+    function BuildUrl: WideString;
+    function CanonicalizeUrl(const Url: string; dwFlags: integer): WideString;
+    function CombineUrl(const BaseUrl, RelativaUrl: string; dwFlags: DWord): WideString;
+    function CompareUrl(const pwzUrl1, pwzUrl2: WideString): HResult;
+    function CrackUrl(const Url: string; dwFlags: DWord): WideString;
+    function CreateUrl(const dwFlags: DWord): WideString;
+    function EncodeUrl(const InputStr: string; const bQueryStr: Boolean): string;
+    function DecodeUrl(const InputStr: string): string;
+    function IsUrlValid(const Url: string): boolean;
+    function IsUrlCached(const Url: string): boolean;
+    function GetUrlSize(const Url: string): string;
+    function GetUrlType(const Url: string): string;
+    function GetUrlProtocolVersion(const Url: string): string;
+    function GetUrlServerDetails(const Url: string): string;
+    function GetUrlCharSet(const Url: string): string;
+    function GetUrlServer(const Url: string): string;
+    function GetUrlLastModified(const Url: string): string;
+    function GetUrlDate(const Url: string): string;
+    function GetUrlStatusCode(const Url: string): string;
+    function GetUrlEntityTag(const Url: string): string;
+    function QueryInfo(const Url: string; dwInfoFlag: Integer): string;
+    function CoInetQueryInfo(const Url: WideString; QueryOptions: Cardinal): Boolean;
+    function ReadFile(const URL: string; TimeOut: LongWord): string;
+    procedure Clear;
+    procedure ClearUrlComponent;
+    procedure QueryUrl(Url: string);
+    constructor Create(const Url: string); overload;
+  public
+    property Bookmark: string read FBookmark write FBookmark;
+    property Document: string read FDocument write FDocument;
+    property ExtraInfo: string read FExtraInfo write FExtraInfo;
+    property HostName: string read FHostName write FHostName;
+    property Parameters: string read FParameters write FParameters;
+    property Password: string read FPassword write FPassword;
+    property Port: Integer read FPort write FPort;
+    property Protocol: string read FProtocol write FProtocol;
+    property OnError: TOnError read FOnError write FOnError;
+    property Url: string read FUrl write SetUrl;
+    property UrlComponent: URL_COMPONENTS read FUrlComponent write FUrlComponent;
+    property UrlPath: string read FUrlPath write FUrlPath;
+    property UserName: string read FUserName write FUserName;
+  end;
+
+implementation
+
+uses
+  EwbCoreTools, SysUtils, Forms, IEConst;
+
+constructor TUrl.Create(const Url: string);
+begin
+  if Length(Url) > 0 then
+    FUrl := Url;
+end;
+
+procedure TUrl.SetUrl(const Value: string);
+begin
+  if Length(Value) > 0 then
+    QueryUrl(Value);
+end;
+
+//==============================================================================
+
+procedure TUrl.Clear;
+begin
+  FBookmark := '';
+  FHostName := '';
+  FProtocol := '';
+  FUrlPath := '';
+  FDocument := '';
+  FPort := 80;
+  FExtraInfo := '';
+  FUserName := '';
+  FPassword := '';
+  FParameters := '';
+  ClearUrlComponent;
+end;
+
+procedure TUrl.ClearUrlComponent;
+begin
+  with FUrlComponent do
+  begin
+    lpszScheme := nil;
+    lpszHostName := nil;
+    lpszUrlPath := nil;
+    lpszUserName := nil;
+    lpszPassword := nil;
+    lpszExtraInfo := nil;
+  end;
+end;
+
+procedure TUrl.FillUrlComponent;
+begin
+  ClearUrlComponent;
+  with FUrlComponent do
+  begin
+    dwStructSize := SizeOf(URL_COMPONENTS);
+    if FProtocol <> '' then
+    begin
+      lpszScheme := PChar(FProtocol);
+      dwSchemeLength := Length(FProtocol);
+    end
+    else
+      lpszScheme := nil;
+    if FHostName <> '' then
+    begin
+      lpszHostName := PChar(FHostName);
+      dwHostNameLength := Length(PChar(FHostName));
+    end
+    else
+      lpszHostName := nil;
+    if FUrlPath <> '' then
+    begin
+      lpszUrlPath := PChar(FUrlPath);
+      dwUrlPathLength := Length(FUrlPath);
+    end
+    else
+      lpszUrlPath := nil;
+    if FUserName <> '' then
+    begin
+      lpszUserName := PChar(FUserName);
+      dwUserNameLength := Length(FUserName);
+    end
+    else
+      lpszUserName := nil;
+    if FPassword <> '' then
+    begin
+      lpszPassword := PChar(FPassword);
+      dwPasswordLength := Length(FPassword);
+    end
+    else
+      lpszPassword := nil;
+    if FExtraInfo = '' then
+      FExtraInfo := FDocument + FParameters;
+    if FBookmark <> '' then
+      FExtraInfo := FExtraInfo + BookmarkDelim + FBookmark;
+    if FExtraInfo <> '' then
+    begin
+      lpszExtraInfo := PChar(FExtraInfo);
+      dwExtraInfoLength := Length(FExtraInfo);
+    end
+    else
+      lpszExtraInfo := nil;
+    if (FPort = 0) then
+      nPort := FPort;
+{$IFDEF DELPHI6_UP}
+    pad := 1; //force correct allignment regardless of comp. flags
+{$ENDIF}
+  end;
+end;
+
+function TUrl.initCoInternetQueryInfo: boolean;
+var
+  lh: HMODULE;
+begin
+  Result := False;
+  CoInternetQueryInfo := nil;
+  lh := loadlibrary('URLMON.DLL');
+  if lh = 0 then
+    Exit;
+  CoInternetQueryInfo := GetProcAddress(lh, 'CoInternetQueryInfo');
+  Result := (@CoInternetQueryInfo) <> nil;
+end;
+
+procedure TUrl.QueryUrl(Url: string);
+var
+  TmpStr: string;
+  IdxPos, CharPos: Integer;
+begin
+  Clear;
+  Url := FixUrl(Url);
+  FormatPath(Url);
+  IdxPos := AnsiPos(ProtocolDelim, Url);
+  if IdxPos > 0 then
+  begin
+    FProtocol := Copy(Url, 1, IdxPos - 1);
+    Delete(Url, 1, IdxPos + 2);
+    TmpStr := CutString(Url, WebDelim, True);
+    IdxPos := AnsiPos('@', TmpStr);
+    FPassword := Copy(TmpStr, 1, IdxPos - 1);
+    if IdxPos > 0 then
+      Delete(TmpStr, 1, IdxPos);
+    FUserName := CutString(FPassword, DriveDelim, True);
+    if Length(FUserName) = 0 then
+    begin
+      FPassword := '';
+    end;
+    if (AnsiPos('[', TmpStr) > 0) and (AnsiPos(']', TmpStr) > AnsiPos('[', TmpStr)) then
+    begin
+      FHostName := CutString(TmpStr, ']');
+      CutString(FHostName, '[');
+      CutString(TmpStr, DriveDelim);
+    end
+    else
+    begin
+      FHostName := CutString(TmpStr, DriveDelim, True);
+    end;
+    FPort := StrToIntDef(TmpStr, 80);
+    CharPos := AnsiPos(QueryDelim, Url);
+    if CharPos > 0 then
+    begin
+      IdxPos := GetPos(WebDelim, Url, CharPos);
+    end
+    else
+    begin
+      CharPos := AnsiPos(EqualDelim, Url);
+      if CharPos > 0 then
+      begin
+        IdxPos := GetPos(WebDelim, Url, CharPos);
+      end
+      else
+      begin
+        IdxPos := GetPos(WebDelim, Url, -1);
+      end;
+    end;
+    FUrlPath := WebDelim + Copy(Url, 1, IdxPos);
+    if CharPos > 0 then
+    begin
+      FDocument := Copy(Url, 1, CharPos - 1);
+      Delete(Url, 1, CharPos - 1);
+      FParameters := Url;
+    end
+    else
+      FDocument := Url;
+    Delete(FDocument, 1, IdxPos);
+    FBookmark := FDocument;
+    FDocument := CutString(FBookmark, BookmarkDelim);
+  end
+  else
+  begin
+    CharPos := AnsiPos(QueryDelim, Url);
+    if CharPos > 0 then
+    begin
+      IdxPos := GetPos(WebDelim, Url, CharPos);
+    end
+    else
+    begin
+      CharPos := AnsiPos(EqualDelim, Url);
+      if CharPos > 0 then
+      begin
+        IdxPos := GetPos(WebDelim, Url, CharPos);
+      end
+      else
+      begin
+        IdxPos := GetPos(WebDelim, Url, -1);
+      end;
+    end;
+    FUrlPath := Copy(Url, 1, IdxPos);
+    if CharPos > 0 then
+    begin
+      FDocument := Copy(Url, 1, CharPos - 1);
+      Delete(Url, 1, CharPos - 1);
+      FParameters := Url;
+    end
+    else
+    begin
+      FDocument := Url;
+    end;
+    Delete(FDocument, 1, IdxPos);
+  end;
+  if FBookmark = '' then
+  begin
+    FBookmark := FParameters;
+    FParameters := CutString(FBookmark, BookmarkDelim);
+  end;
+  FillUrlComponent;
+end;
+
+function TUrl.CrackUrl(const Url: string; dwFlags: DWord): WideString;
+var
+  Buffers: array[0..5, 0..MAX_BUFFER - 1] of Char;
+  bResult: boolean;
+begin
+  Clear;
+  FUrl := FixUrl(Url);
+  ZeroMemory(@FUrlComponent, SizeOf(URL_COMPONENTS));
+  with FUrlComponent do
+  begin
+    dwStructSize := SizeOf(URL_COMPONENTS);
+    dwSchemeLength := INTERNET_MAX_SCHEME_LENGTH;
+    lpszScheme := Buffers[0];
+    dwHostNameLength := INTERNET_MAX_HOST_NAME_LENGTH;
+    lpszHostName := Buffers[1];
+    dwUserNameLength := INTERNET_MAX_USER_NAME_LENGTH;
+    lpszUserName := Buffers[2];
+    dwPasswordLength := INTERNET_MAX_PASSWORD_LENGTH;
+    lpszPassword := Buffers[3];
+    dwUrlPathLength := INTERNET_MAX_PATH_LENGTH;
+    lpszUrlPath := Buffers[4];
+    dwExtraInfoLength := INTERNET_MAX_URL_LENGTH;
+    lpszExtraInfo := Buffers[5];
+  end;
+  bResult := InternetCrackURL(PChar(Url), 0, dwFlags, FUrlComponent);
+  if bResult then
+  begin
+    with FUrlComponent do
+    begin
+      FHostName := lpszHostName;
+      FProtocol := lpszScheme;
+      FUrlPath := lpszUrlPath;
+      FPort := nPort;
+      FExtraInfo := lpszExtraInfo;
+      FUserName := lpszUserName;
+      FPassword := lpszPassword;
+      Result := Url;
+    end;
+  end
+  else
+  begin
+    Clear;
+    if Assigned(FOnError) then
+      FOnError(Self, GetLastError, SysErrorMessage(GetLastError));
+{$IFDEF USE_DebugString}
+    OutputDebugString(PChar(SysErrorMessage(GetLastError)));
+{$ENDIF}
+    Result := '';
+  end;
+end;
+
+function TUrl.CombineUrl(const BaseUrl, RelativaUrl: string; dwFlags: DWord): WideString;
+var
+  Buffer: array[0..255] of Char;
+  Size: DWORD;
+  bResult: boolean;
+begin
+  Size := SizeOf(Buffer);
+  bResult := InternetCombineUrl(PChar(BaseUrl), PChar(RelativaUrl),
+    Buffer, Size, dwFlags);
+  if bResult then
+  begin
+    Result := Buffer;
+    FUrl := Result;
+  end
+  else
+  begin
+    if Assigned(FOnError) then
+      FOnError(Self, GetLastError, SysErrorMessage(GetLastError));
+{$IFDEF USE_DebugString}
+    OutputDebugString(PChar(SysErrorMessage(GetLastError)));
+{$ENDIF}
+    Result := '';
+  end;
+
+end;
+
+function TUrl.CanonicalizeUrl(const Url: string; dwFlags: integer): WideString;
+var
+  Buffer: array[0..255] of Char;
+  Size: DWORD;
+  bResult: boolean;
+begin
+  Size := SizeOf(Buffer);
+  bResult := InternetCanonicalizeUrl(PChar(Url), Buffer, Size, dwFlags);
+  if bResult then
+  begin
+    Result := Buffer;
+    FUrl := Result;
+  end
+  else
+  begin
+    if Assigned(FOnError) then
+      FOnError(Self, GetLastError, SysErrorMessage(GetLastError));
+{$IFDEF USE_DebugString}
+    OutputDebugString(PChar(SysErrorMessage(GetLastError)));
+{$ENDIF}
+    Result := '';
+  end;
+end;
+
+function TUrl.CreateUrl(const dwFlags: DWord): WideString;
+var
+  Size: DWORD;
+  Buffer: array[0..511] of Char;
+  bResult: boolean;
+begin
+  FillUrlComponent;
+  Size := FUrlComponent.dwStructSize;
+  bResult := InternetCreateUrl(FUrlComponent, dwFlags, Buffer, Size);
+  if bResult then
+  begin
+    Result := Buffer;
+    FUrl := Result;
+  end
+  else
+  begin
+{$IFDEF USE_DebugString}
+    OutputDebugString(PChar(SysErrorMessage(GetLastError)));
+{$ENDIF}
+    if Assigned(FOnError) then
+      FOnError(Self, GetLastError, SysErrorMessage(GetLastError));
+  end;
+end;
+
+function TUrl.FixUrl(Url: string): string;
+
+  function AnsiEndsStr(const ASubText, AText: string): Boolean;
+  var
+    SubTextLocation: Integer;
+  begin
+    SubTextLocation := Length(AText) - Length(ASubText) + 1;
+    if (SubTextLocation > 0) and (ASubText <> '') and
+      (ByteType(AText, SubTextLocation) <> mbTrailByte) then
+      Result := AnsiStrComp((PChar(ASubText)), Pointer(@AText[SubTextLocation])) = 0
+    else
+      Result := False;
+  end;
+var
+  DotPos, ipos: Integer;
+begin
+  Result := Url;
+  if not AnsiEndsStr('/', Url) then
+  begin
+    ipos := LastDelimiter('/', Url);
+    DotPos := LastDelimiter('.', Url);
+    if DotPos < ipos then
+      Result := Url + '/';
+  end;
+end;
+
+function TUrl.EncodeURL(const InputStr: string; const bQueryStr: Boolean): string;
+var
+  Idx: Integer;
+begin
+  Result := '';
+  for Idx := 1 to Length(InputStr) do
+  begin
+    case InputStr[Idx] of
+      'A'..'Z', 'a'..'z', '0'..'9', '-', '_', '.':
+        Result := Result + InputStr[Idx];
+      ' ':
+        if bQueryStr then
+          Result := Result + '+'
+        else
+          Result := Result + '%20';
+    else
+      Result := Result + '%' + SysUtils.IntToHex(Ord(InputStr[Idx]), 2);
+    end;
+  end;
+end;
+
+function TUrl.DecodeUrl(const InputStr: string): string;
+var
+  Idx: Integer;
+  Hex: string;
+  Code: Integer;
+begin
+  Result := '';
+  Idx := 1;
+  while Idx <= Length(InputStr) do
+  begin
+    case InputStr[Idx] of
+      '%':
+        begin
+          if Idx <= Length(InputStr) - 2 then
+          begin
+            Hex := InputStr[Idx + 1] + InputStr[Idx + 2];
+            Code := SysUtils.StrToIntDef('$' + Hex, -1);
+            Inc(Idx, 2);
+          end
+          else
+            Code := -1;
+          if Code = -1 then
+            raise SysUtils.EConvertError.Create('Invalid hex digit in URL');
+          Result := Result + Chr(Code);
+        end;
+      '+':
+        Result := Result + ' '
+    else
+      Result := Result + InputStr[Idx];
+    end;
+    Inc(Idx);
+  end;
+end;
+
+function TUrl.BuildUrl: WideString;
+begin
+  FillUrlComponent;
+  if (FProtocol = '') or (FHostName = '') then
+  begin
+    if Assigned(FOnError) then
+      FOnError(Self, 0, 'Can not Create Url. Protocol or HostName are not valid!');
+{$IFDEF USE_DebugString}
+    OutputDebugString('Can not Create Url. Protocol or HostName are not valid!');
+{$ENDIF}
+    Exit;
+  end;
+  Result := FProtocol + ProtocolDelim;
+  if (FUserName <> '') then
+  begin
+    Result := Result + FUserName;
+    if FPassword <> '' then
+    begin
+      Result := Result + DriveDelim + FPassword;
+    end;
+    Result := Result + '@';
+  end;
+  Result := Result + FHostName;
+  if (FPort <> 0) and (FPort <> 80) then
+  begin
+    Result := Result + DriveDelim + IntToStr(FPort);
+  end;
+  Result := Result + FUrlPath + FDocument + FParameters;
+  if (FBookmark <> '') then
+  begin
+    Result := Result + BookmarkDelim + FBookmark;
+  end;
+end;
+
+function TUrl.CompareUrl(const pwzUrl1, pwzUrl2: WideString): HResult;
+begin
+  if (pwzUrl1 = '') or (pwzUrl2 = '') then
+  begin
+{$IFDEF USE_DebugString}
+    OutputDebugString('Can not Compare Url. pwzUrl1  or pwzUrl2 are empty!');
+{$ENDIF}
+    if Assigned(FOnError) then
+      FOnError(Self, 0, 'Can not Compare Url. pwzUrl1  or pwzUrl2 are empty!');
+  end;
+  Result := AnsiCompareText(pwzUrl1, pwzUrl2);
+end;
+
+function TUrl.CoInetQueryInfo(const Url: WideString; QueryOptions: Cardinal): boolean;
+var
+  pcbBuffer: DWORD;
+  dwCached: DWORD;
+begin
+  if not initCoInternetQueryInfo then
+  begin
+    Result := False;
+    Exit;
+  end;
+  pcbBuffer := SizeOf(dwCached);
+  if CoInternetQueryInfo(PWideChar(Url), QueryOptions, 0, @dwCached,
+    SizeOf(dwCached), pcbBuffer, 0) <> S_OK then
+  begin
+    if Assigned(FOnError) then
+      FOnError(Self, GetLastError, SysErrorMessage(GetLastError));
+{$IFDEF USE_DebugString}
+    OutputDebugString(PChar(SysErrorMessage(GetLastError)));
+{$ENDIF}
+  end;
+  Result := dwCached <> 0;
+end;
+
+function TUrl.QueryInfo(const Url: string; dwInfoFlag: Integer): string;
+var
+  hInet: HINTERNET;
+  hConnect: HINTERNET;
+  infoBuffer: array[0..512] of char;
+  dummy: DWORD;
+  bufLen: DWORD;
+  ok: LongBool;
+begin
+  hInet := InternetOpen(PChar(Forms.Application.Title),
+    INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY, nil, nil, 0);
+  hConnect := InternetOpenUrl(hInet, PChar(Url), nil, 0, INTERNET_FLAG_NO_UI, 0);
+  if not Assigned(hConnect) then
+  begin
+    if Assigned(FOnError) then
+      FOnError(Self, GetLastError, SysErrorMessage(GetLastError));
+{$IFDEF USE_DebugString}
+    OutputDebugString(PChar(SysErrorMessage(GetLastError)));
+{$ENDIF}
+    Result := '';
+  end
+  else
+  begin
+    dummy := 0;
+    bufLen := Length(infoBuffer);
+    ok := HttpQueryInfo(hConnect, dwInfoFlag, @infoBuffer[0], bufLen, dummy);
+    if ok then
+      Result := infoBuffer
+    else
+      Result := '';
+    InternetCloseHandle(hConnect);
+  end;
+  InternetCloseHandle(hInet);
+end;
+
+function TUrl.ReadFile(const URL: string; TimeOut: LongWord): string;
+var
+  hInet: HInternet;
+  hConnect: HInternet;
+  infoBuffer: array[0..TEMP_SIZE - 1] of Char;
+  iRead, iTimeOut: DWORD;
+  strRead: string;
+begin
+  strRead := '';
+  hInet := InternetOpen(PChar(Forms.Application.Title), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, INTERNET_FLAG_NO_CACHE_WRITE);
+  if Assigned(hInet) then
+  begin
+    InternetQueryOption(hInet, INTERNET_OPTION_CONNECT_TIMEOUT, @iTimeOut, iRead);
+    iTimeOut := TimeOut;
+    InternetSetOption(hInet, INTERNET_OPTION_CONNECT_TIMEOUT, @iTimeOut, iRead);
+    try
+      hConnect := InternetOpenURL(hInet, PChar(Url), nil, 0, 0, 0);
+      if Assigned(hConnect) then
+      try
+        repeat
+          FillChar(infoBuffer, SizeOf(infoBuffer), #0);
+          InternetReadFile(hConnect, @infoBuffer, sizeof(infoBuffer), iRead);
+          strRead := strRead + string(infoBuffer);
+        until iRead < TEMP_SIZE;
+      finally
+        InternetCloseHandle(hConnect);
+      end
+      else
+      begin
+        if Assigned(FOnError) then
+          FOnError(Self, GetLastError, SysErrorMessage(GetLastError));
+{$IFDEF USE_DebugString}
+        OutputDebugString(PChar(SysErrorMessage(GetLastError)));
+{$ENDIF}
+        Result := '';
+      end;
+    finally
+      InternetCloseHandle(hInet);
+    end;
+    Result := strRead;
+  end
+  else
+  begin
+    if Assigned(FOnError) then
+      FOnError(Self, GetLastError, SysErrorMessage(GetLastError));
+{$IFDEF USE_DebugString}
+    OutputDebugString(PChar(SysErrorMessage(GetLastError)));
+{$ENDIF}
+    Result := '';
+  end;
+end;
+
+function TUrl.IsUrlValid(const Url: string): boolean;
+var
+  Reply: string;
+begin
+  Reply := QueryInfo(Url, HTTP_QUERY_STATUS_CODE);
+  if (Reply = '200') or (Reply = '401') then
+    Result := True
+  else
+    Result := False;
+end;
+
+function TUrl.GetUrlSize(const Url: string): string;
+begin
+  Result := QueryInfo(Url, HTTP_QUERY_CONTENT_LENGTH);
+end;
+
+function TUrl.GetUrlType(const Url: string): string;
+begin
+  Result := QueryInfo(Url, HTTP_QUERY_CONTENT_TYPE);
+end;
+
+function TUrl.GetUrlDate(const Url: string): string;
+begin
+  Result := QueryInfo(Url, HTTP_QUERY_DATE);
+end;
+
+function TUrl.GetUrlLastModified(const Url: string): string;
+begin
+  Result := QueryInfo(Url, HTTP_QUERY_LAST_MODIFIED);
+end;
+
+function TUrl.GetUrlStatusCode(const Url: string): string;
+begin
+  Result := QueryInfo(Url, HTTP_QUERY_STATUS_CODE);
+end;
+
+function TUrl.GetUrlServer(const Url: string): string;
+begin
+  Result := QueryInfo(Url, HTTP_QUERY_SERVER);
+end;
+
+function TUrl.GetUrlEntityTag(const Url: string): string;
+begin
+  Result := QueryInfo(Url, HTTP_QUERY_ETAG);
+end;
+
+function TUrl.GetUrlCharset(const Url: string): string;
+begin
+  Result := QueryInfo(Url, HTTP_QUERY_ACCEPT_CHARSET);
+end;
+
+function TUrl.GetUrlServerDetails(const Url: string): string;
+begin
+  Result := QueryInfo(Url, HTTP_QUERY_RAW_HEADERS_CRLF);
+end;
+
+function TUrl.GetUrlProtocolVersion(const Url: string): string;
+begin
+  Result := QueryInfo(Url, HTTP_QUERY_VERSION);
+end;
+
+function TUrl.IsUrlCached(const Url: string): boolean;
+begin
+  Result := CoInetQueryInfo(Url, QUERY_IS_CACHED);
+end;
+{=====================================================================================}
+
+end.
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IEAddress.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IEAddress.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IEAddress.pas	(revision 541)
@@ -0,0 +1,1862 @@
+{*******************************************************}
+{                  IEAddress Component                  }
+{                          STAGE 3                      }
+{            For Delphi 5, 6, 7, 2005, 2006             }
+{                Freeware Component                     }
+{                                                       }
+{     CONTRIBUTORS:                                     }
+{      Eran Bodankin (bsalsa) bsalsa@gmail.com         }
+{      Per Lindsø Larsen                                }
+{      Peter Morris (Pete@StuckIndoors.com)             }
+{      Thomas Stutz (aka smot)                          }
+{                                                       }
+{                       Enjoy!                          }
+{   UPDATES:                                            }
+{               http://www.bsalsa.com                   }
+{*******************************************************************************}
+{LICENSE:
+THIS SOFTWARE IS PROVIDED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND,
+EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE APPLIED
+WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
+YOU ASSUME THE ENTIRE RISK AS TO THE ACCURACY AND THE USE OF THE SOFTWARE
+AND ALL OTHER RISK ARISING OUT OF THE USE OR PERFORMANCE OF THIS SOFTWARE
+AND DOCUMENTATION. BSALSA PRODUCTIONS DOES NOT WARRANT THAT THE SOFTWARE IS ERROR-FREE
+OR WILL OPERATE WITHOUT INTERRUPTION. THE SOFTWARE IS NOT DESIGNED, INTENDED
+OR LICENSED FOR USE IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE CONTROLS,
+INCLUDING WITHOUT LIMITATION, THE DESIGN, CONSTRUCTION, MAINTENANCE OR
+OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS,
+AIR TRAFFIC CONTROL, AND LIFE SUPPORT OR WEAPONS SYSTEMS. BSALSA PRODUCTIONS SPECIFICALLY
+DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR SUCH PURPOSE.
+
+You may use, change or modify the component under 4 conditions:
+1. In your website, add a link to "http://www.bsalsa.com"
+2. In your application, add credits to "Embedded Web Browser"
+3. Mail me (bsalsa@gmail.com) any code change in the unit
+   for the benefit of the other users.
+4. Please consider donation in our web site!
+{*******************************************************************************}
+//$Id: IEAddress.pas,v 1.6 2006/12/07 11:27:31 bsalsa Exp $
+
+{ Remove the dot from the define below to enable support for TFlatComboBox.
+ (FlatStyle Components, All Components look like MS Money und MS Encarta)
+  http://www.torry.net/vcl/packs/interfacemiddle/flatstyl.zip}
+
+{.$DEFINE USE_TFlatComboBox}
+
+unit IEAddress;
+
+interface
+
+{$I EWB.inc}
+{$I EWB.inc}
+
+uses
+  ActiveX, ComCtrls, ShlObj, Windows, Messages, Classes, Controls, StdCtrls,
+  Graphics, EmbeddedWB, Dialogs{$IFDEF USE_TFlatComboBox}, TFlatComboBoxUnit{$ENDIF}; //By Smot
+
+type
+  IObjMgr = interface(IUnknown)
+    ['{00BB2761-6A77-11D0-A535-00C04FD7D062}']
+    function Append(punk: IUnknown): HResult; stdcall;
+    function Remove(punk: IUnknown): HResult; stdcall;
+  end;
+
+  IACList = interface(IUnknown)
+    ['{77A130B0-94FD-11D0-A544-00C04FD7d062}']
+    function Expand(pszExpand: POLESTR): HResult; stdcall;
+  end;
+
+  IACList2 = interface(IACList)
+    ['{470141a0-5186-11d2-bbb6-0060977b464c}']
+    function SetOptions(dwFlag: DWORD): HResult; stdcall;
+    function GetOptions(var pdwFlag: DWORD): HResult; stdcall;
+  end;
+  IAutoComplete = interface(IUnknown)
+    ['{00bb2762-6a77-11d0-a535-00c04fd7d062}']
+    function Init(hwndEdit: HWND; const punkACL: IUnknown; pwszRegKeyPath,
+      pwszQuickComplete: POLESTR): HResult; stdcall;
+    function Enable(fEnable: BOOL): HResult; stdcall;
+  end;
+type
+  IAutoComplete2 = interface(IAutoComplete)
+    ['{EAC04BC0-3791-11d2-BB95-0060977B464C}']
+    function SetOptions(dwFlag: DWORD): HResult; stdcall;
+    function GetOptions(out pdwFlag: DWORD): HResult; stdcall;
+  end;
+
+  TEnumString = class(TInterfacedObject, IEnumString)
+  private
+    FStrings: TStringList;
+    FCurrIndex: integer;
+  public
+    {IEnumString}
+    function Next(celt: Longint; out elt; pceltFetched: PLongint): HResult; stdcall;
+    function Skip(celt: Longint): HResult; stdcall;
+    function Reset: HResult; stdcall;
+    function Clone(out enm: IEnumString): HResult; stdcall;
+    {VCL}
+    constructor Create;
+    destructor Destroy; override;
+  end;
+
+  TAutoComplete2Option = (acoNone, acoAutoSuggest, acoAutoAppend, acoSearch, acoFilterPrefix,
+    acoUseTab, acoUpDownKeyDropList, acoRtlReading, acoWordFilter,
+    acoNoPrefixFiltering);
+  TAutoComplete2Options = set of TAutoComplete2Option;
+  TACSource = (acsList, acsHistory, acsMRU, acsShell);
+  TAutoComplete2Source = set of TACSource;
+  TAComp = (AutoComplete1, AutoComplete2);
+  TAutoCompleteOption = (acAutoSuggest, acAutoAppend, acFileSystem, acUrlHistory,
+    acUrlMRU, acUrlAll, acUseTab);
+  TAutoCompleteOptions = set of TAutoCompleteOption;
+  TIEAddressState = set of (csButtonPressed, csMouseCaptured);
+  TThemes = (tmNone, tmXP, tmSilver, tmSoil);
+  TGUI = (gsCombobox, gsThemes);
+  TTypedUrlsMethod = (tuCommon, tuExtended);
+  TTextAfterNav = (anLocationUrl, anLocationName);
+  TTextOnLoad = (tlIELastVisited, tlIEHomePage, tlBlank, tlUserDefine);
+  TOnUrlSelectedEvent = procedure(Sender: TObject; Url: WideString; var Cancel: boolean) of object;
+  TOnGetFaviconEvent = procedure(Sender: TObject; Favicon, SiteUrl: WideString; var Cancel: boolean; Icon: TIcon) of object;
+  TOnGetAppIconEvent = procedure(Sender: TObject; var Cancel: boolean; Icon: TIcon) of object;
+  TOnGetIconEvent = procedure(Sender: TObject; Ext: string; hIco: hIcon) of object;
+  TOnUpdateRegistryEvent = procedure(Sender: TObject; Url: WideString; var Cancel: boolean) of object;
+  TOnUpdateTextEvent = procedure(Sender: TObject; OldUrl, NewUrl: WideString; var Cancel: boolean) of object;
+  TOnPaintEvent = procedure(Sender: TObject; var Continue: boolean) of object;
+
+type
+{$IFDEF USE_TFlatComboBox} //By Smot
+  TComboBoxType = TFlatComboBox;
+{$ELSE}
+  TComboBoxType = TCustomComboBox;
+{$ENDIF}
+
+type
+  TCustomIEAddress = class(TComboBoxType)
+  private
+    dllVer: Extended;
+    FAbout: string;
+    FArrowColor: TColor;
+    FBorderColor: TColor;
+    FButtonColor: TColor;
+    FButtonPressedColor: TColor;
+    FButtonWidth: Integer;
+    FCanvas: TControlCanvas;
+    FCustomProperty: string;
+    FEditState: TIEAddressState;
+    FEmbeddedWB: TEmbeddedWB;
+    FFlat: Boolean;
+    FGUI: TGUI;
+    FHasBorder: Boolean;
+    FHasDropDown: Boolean;
+    FHintColor: TColor;
+    FIconLeft: Integer;
+    FIconTop: Integer;
+    FImageIndex: Integer;
+    FImageList: TImageList;
+    FImageSize: Integer;
+    FModified: Boolean;
+    FMouseActive: Boolean;
+    FNavOnDblClk: Boolean;
+    FNavOnEnterKey: Boolean;
+    FNavOnLoad: Boolean;
+    FNavOnSelected: Boolean;
+    FOldBGColor: TColor;
+    FOldHintColor: TColor;
+    FOnGetAppIcon: TOnGetAppIconEvent;
+    FOnGetFavicon: TOnGetFaviconEvent;
+    FOnGetIcon: TOnGetIconEvent;
+    FOnPaint: TOnPaintEvent;
+    FOnUpdateRegistry: TOnUpdateRegistryEvent;
+    FOnUpdateText: TOnUpdateTextEvent;
+    FOnUrlSelected: TOnUrlSelectedEvent;
+    FSecureSiteBG: TColor;
+    FSelImageIndex: Integer;
+    FShowFavicons: Boolean;
+    FShowSiteHint: Boolean;
+    FTextAfterNav: TTextAfterNav;
+    FTextOnLoad: TTextOnLoad;
+    FTextOnShow: WideString;
+    FThemes: TThemes;
+    FTypedUrlsMethod: TTypedUrlsMethod;
+    FUAfterNav: Boolean;
+    FUpdateRegistry: Boolean;
+    FUseAppIcon: Boolean;
+    FUseSecureSiteBGColor: Boolean;
+    FAutoComplete2Source: TAutoComplete2Source;
+    FAutoComplete: IAutoComplete;
+    FAutoCompleteOptions: TAutoCompleteOptions;
+    FAutoComplete2Options: TAutoComplete2Options;
+    FAComp: TAComp;
+    function AddFaviconToImageList: integer;
+    function GetImageIndex(aUrl: string; IntoLV: Boolean): Integer;
+    function GrabFavicon(URL: string; dest: string): Boolean;
+    function RemovePrefix(UrlIn, Prefix: WideString): WideString;
+    function FixUrl(Url: string): string;
+    function GetModified: Boolean;
+    procedure SetModified(Value: Boolean);
+    procedure GetTypedURLs;
+    procedure InsertTextToList;
+    procedure RegistryUpdate;
+    procedure RepaintIEAddress(MouseActive: Boolean);
+    procedure SetAbout(Value: string);
+    procedure SetDropDown(const Value: Boolean);
+    procedure SetTextPosition;
+    procedure SetFlat(const Value: Boolean);
+    procedure SetHasBorder(const Value: Boolean);
+    procedure SetSiteHint;
+    procedure SetTextOnLd;
+    procedure SetTheme;
+    procedure SetAutoCompleteOptions(const Value: TAutoCompleteOptions);
+    procedure SetAutoComplete2Source(const Value: TAutoComplete2Source);
+    procedure SetACOptions(const Value: TAutoComplete2Options);
+    procedure TextUpdate;
+    procedure UpdateIAutoComplete2;
+    procedure UpdateAutoComplete;
+  protected
+    procedure CalculateRGN;
+    procedure Change; override;
+    procedure CheckButtonState(X, Y: Integer);
+    procedure Click; override;
+    procedure CreateParams(var Params: TCreateParams); override;
+    procedure CreateWindowHandle(const Params: TCreateParams); override;
+    procedure CreateWnd; override;
+    procedure DblClick; override;
+    procedure DestroyWnd; override;
+    procedure DrawIEAddress(MouseInControl, DroppedDown: boolean);
+    procedure DrawItem(Index: Integer; Rect: TRect; State: TOwnerDrawState); override;
+    procedure KeyDown(var Key: Word; Shift: TShiftState); override;
+    procedure Loaded; override;
+    procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
+    procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
+    procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
+    procedure WndProc(var Message: TMessage); override;
+  public
+    constructor Create(AOwner: TComponent); override;
+    destructor Destroy; override;
+    function IsValidURL(const URL: WideString): Boolean;
+    function GetDllVersion(const ADll: string): Extended;
+    procedure DragOver(Source: TObject; X, Y: Integer;
+      State: TDragState; var Accept: Boolean); override;
+    procedure DragDrop(Source: TObject; X, Y: Integer); override;
+    procedure CheckSecureSite;
+    procedure ClearList;
+    procedure AddToList;
+{$IFDEF DELPHI6_UP}
+    procedure DeleteSelected; override;
+{$ENDIF}
+    procedure LoadFromFile(FileName: WideString);
+    procedure SaveToFile(FileName: WideString);
+    procedure SetBounds(Left, Top, Width, Height: Integer); override;
+   {published}
+    property AutoCompleteVersion: TAComp read FAComp write FAComp default AutoComplete2;
+    property AutoComplete2Source: TAutoComplete2Source read FAutoComplete2Source
+      write SetAutoComplete2Source default [acsList, acsHistory, acsMRU, acsShell];
+    property AutoComplete2Options: TAutoComplete2Options read FAutoComplete2Options
+      write FAutoComplete2Options default [acoAutoSuggest, acoAutoAppend, acoSearch];
+    property AutoCompleteOptions: TAutoCompleteOptions read FAutoCompleteOptions
+      write SetAutoCompleteOptions default [acAutoAppend, acUrlHistory];
+    property About: string read FAbout write SetAbout;
+    property ArrowColor: Tcolor read FArrowColor write FArrowColor default clblack;
+    property AutoNavigateOnDblClk: Boolean read FNavOnDblClk write FNavOnDblClk default True;
+    property AutoNavigateOnEnterKey: Boolean read FNavOnEnterKey write FNavOnEnterKey default True;
+    property AutoNavigateOnLoad: Boolean read FNavOnLoad write FNavOnLoad default True;
+    property AutoNavigateOnSelected: Boolean read FNavOnSelected write FNavOnSelected default True;
+    property BorderColor: Tcolor read FBorderColor write FBorderColor default clblack;
+    property ButtonColor: Tcolor read FButtonColor write FButtonColor default clBtnFace;
+    property ButtonPressedColor: Tcolor read FButtonPressedColor write FButtonPressedColor default clBtnFace;
+    property ButtonWidth: integer read FButtonWidth;
+    property DropDownCount;
+    property EmbeddedWB: TEmbeddedWB read FEmbeddedWB write FEmbeddedWB;
+    property Flat: Boolean read FFlat write SetFlat default False;
+    property GUI: TGUI read FGUI write FGUI default gsThemes;
+    property HasBorder: Boolean read FHasBorder write SetHasBorder default True;
+    property HasDropDown: Boolean read FHasDropDown write SetDropDown default True;
+    property HintColor: Tcolor read FHintColor write FHintColor default clInfoBK;
+    property IconLeft: Integer read FIconLeft write FIconLeft;
+    property IconTop: Integer read FIconTop write FIconTop;
+    property Modified: Boolean read GetModified write SetModified;
+    property OnGetAppIcon: TOnGetAppIconEvent read FOnGetAppIcon write FOnGetAppIcon;
+    property OnGetFavicon: TOnGetFaviconEvent read FOnGetFavicon write FOnGetFavicon;
+    property OnGetIcon: TOnGetIconEvent read FOnGetIcon write FOnGetIcon;
+    property OnUpdateRegistry: TOnUpdateRegistryEvent read FOnUpdateRegistry write FOnUpdateRegistry;
+    property OnUpdateText: TOnUpdateTextEvent read FOnUpdateText write FOnUpdateText;
+    property OnUrlSelected: TOnUrlSelectedEvent read FOnUrlSelected write FOnUrlSelected;
+    property SecureSiteBG: TColor read FSecureSiteBG write FSecureSiteBG default clInfobk;
+    property ShowFavicon: Boolean read FShowFavicons write FShowFavicons default False;
+    property ShowSiteToolTip: Boolean read FShowSiteHint write FShowSiteHint default True;
+    property TextAfterNav: TTextAfterNav read FTextAfterNav write FTextAfterNav default anLocationUrl;
+    property TextOnLoad: TTextOnLoad read FTextOnLoad write FTextOnLoad default tlIEHomepage;
+    property TextOnShow: WideString read FTextOnShow write FTextOnShow;
+    property Themes: TThemes read FThemes write FThemes default tmNone;
+    property UpdateItemsToRegistry: Boolean read FUpdateRegistry write FUpdateRegistry default True;
+    property UpdateTextAfterNav: Boolean read FUAfterNav write FUAfterNav default True;
+    property UseAppIcon: Boolean read FUseAppIcon write FUseAppIcon default False;
+    property UseSecureSiteBGColor: Boolean read FUseSecureSiteBGColor write FUseSecureSiteBGColor default True;
+  end;
+
+  TIEAddress = class(TCustomIEAddress)
+  published
+    property Style; //Apparently this must be published first (see VCL);
+    //New stuff-----------------------------------------------------------------
+    property AutoComplete2Source default [acsList, acsHistory, acsMRU, acsShell];
+    property AutoComplete2Options default [acoAutoSuggest, acoAutoAppend, acoSearch];
+    property AutoCompleteOptions default [acAutoAppend, acUrlHistory];
+    property AutoNavigateOnDblClk default True;
+    property AutoNavigateOnEnterKey default True;
+    property AutoNavigateOnLoad default True;
+    property AutoNavigateOnSelected default True;
+    property AutoCompleteVersion default AutoComplete2;
+    property About;
+    property Align;
+    property Anchors;
+    property ArrowColor;
+    property BiDiMode;
+    property BorderColor;
+    property ButtonColor;
+    property ButtonPressedColor;
+    property Color;
+    property Constraints;
+    property Cursor;
+    property DragCursor;
+    property DragKind;
+    property DragMode;
+    property DropDownCount;
+    property EmbeddedWB;
+    property Enabled;
+    property Flat;
+    property Font;
+    property GUI;
+    property HasBorder;
+    property HasDropDown;
+    property HelpContext;
+    property Hint;
+    property HintColor;
+    property IconLeft;
+    property IconTop;
+    property ImeMode;
+    property ImeName;
+    property ItemHeight;
+    property MaxLength;
+    property OnChange;
+    property OnClick;
+    property OnContextPopup;
+    property OnDblClick;
+    property OnDragDrop;
+    property OnDragOver;
+    property OnDrawItem;
+    property OnDropDown;
+    property OnEndDock;
+    property OnEndDrag;
+    property OnEnter;
+    property OnExit;
+    property OnGetAppIcon;
+    property OnGetFavicon;
+    property OnGetIcon;
+    property OnKeyDown;
+    property OnKeyPress;
+    property OnKeyUp;
+    property OnMeasureItem;
+    property OnStartDock;
+    property OnStartDrag;
+    property OnUpdateRegistry;
+    property OnUpdateText;
+    property OnUrlSelected;
+    property ParentBiDiMode default False;
+    property ParentColor;
+    property ParentFont;
+    property ParentShowHint default False;
+    property PopupMenu;
+    property SecureSiteBG;
+    property ShowFavicon;
+    property ShowHint default True;
+    property ShowSiteToolTip;
+    property Sorted;
+    property TabOrder;
+    property TabStop;
+    property Text;
+    property TextAfterNav;
+    property TextOnLoad;
+    property TextOnShow;
+    property Themes;
+    property UpdateTextAfterNav default True;
+    property UseAppIcon;
+    property UseSecureSiteBGColor;
+    property Visible;
+    property Items; //And this must be published last
+  end;
+
+implementation
+
+uses
+  ComObj, UrlMon, ImgList, ShellAPI, Forms, SysUtils, Registry, IEConst, EwbCoreTools;
+
+function TEnumString.Clone(out enm: IEnumString): HResult;
+begin
+  Result := E_NOTIMPL;
+  pointer(enm) := nil;
+end;
+
+constructor TEnumString.Create;
+begin
+  inherited Create;
+  FStrings := TStringList.Create;
+  FCurrIndex := 0;
+end;
+
+destructor TEnumString.Destroy;
+begin
+  FStrings.Free;
+  inherited;
+end;
+
+function TEnumString.Next(celt: Integer; out elt; pceltFetched: PLongint): HResult;
+var
+  I: Integer;
+  wStr: WideString;
+begin
+  I := 0;
+  while (I < celt) and (FCurrIndex < FStrings.Count) do
+  begin
+    wStr := FStrings[FCurrIndex];
+    TPointerList(elt)[I] := PWideChar(WideString(wStr));
+        /// TPointerList(elt)[I] := CoTaskMemAlloc(2 * (Length(wStr) + 1));
+    StringToWideChar(wStr, TPointerList(elt)[I], 2 * (Length(wStr) + 1));
+    Inc(I);
+    Inc(FCurrIndex);
+  end;
+  if pceltFetched <> nil then
+    pceltFetched^ := I;
+  if I = celt then
+    Result := S_OK
+  else
+    Result := S_FALSE;
+end;
+
+function TEnumString.Reset: HResult;
+begin
+  FCurrIndex := 0;
+  Result := S_OK;
+end;
+
+function TEnumString.Skip(celt: Integer): HResult;
+begin
+  if (FCurrIndex + celt) <= FStrings.Count then
+  begin
+    Inc(FCurrIndex, celt);
+    Result := S_OK;
+  end
+  else
+  begin
+    FCurrIndex := FStrings.Count;
+    Result := S_FALSE;
+  end;
+end;
+
+//Accesories--------------------------------------------------------------------
+
+function SHAutoComplete(hwndEdit: HWND; dwFlags: DWORD): HRESULT; stdcall; external 'shlwapi.dll';
+{$R-}
+
+function GetExtension(Url: WideString): string;
+var
+  st: string;
+begin
+  st := LowerCase(Trim(ExtractFileExt(Url)));
+  if (AnsiPos('.xml', st) <> 0) or (AnsiPos('.txt', st) <> 0) or (AnsiPos('.doc', st) <> 0)
+    or (AnsiPos('.bmp', st) <> 0) or (AnsiPos('.zip', st) <> 0) or (AnsiPos('.rar', st) <> 0)
+    or (AnsiPos('.jpg', st) <> 0) or (AnsiPos('.gif', st) <> 0) or (AnsiPos('.jpeg', st) <> 0) then
+    Result := st
+  else
+    Result := '*.htm';
+end;
+
+function GetCacheFolder: WideString;
+var
+  Reg: TRegistry;
+begin
+  Result := '';
+  Reg := TRegistry.Create;
+  with Reg do
+  try
+    begin
+      RootKey := HKEY_CURRENT_USER;
+      if OpenKey('Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders', False) then
+        Result := ReadString('Cache') + '\';
+    end;
+  finally
+    CloseKey;
+    Free;
+  end;
+end;
+
+function StrToCase(StringOf: string; CasesList: array of string): Integer;
+var
+  Idx: integer;
+begin
+  Result := -1;
+  for Idx := 0 to Length(CasesList) - 1 do
+  begin
+    if CompareText(StringOf, CasesList[Idx]) = 0 then
+    begin
+      Result := Idx;
+      Break;
+    end;
+  end;
+end;
+
+function GetSpecialFolderNo(bUrl: WideString): Cardinal;
+var
+  Url: string;
+begin
+  Result := 3000;
+  Url := AnsiUpperCase(Trim(bUrl));
+  case StrToCase(Url, ['DESKTOP', 'INTERNET', 'PROGRAMS', 'CONTROL PANEL', 'PRINTERS',
+    'MY DOCUMENTS', 'FAVORITES', 'STARTUP', 'RECENT', 'SENDTO',
+      'RECYCLE BIN', 'STARTMENU', 'DESKTOP DIRECTORY', 'MY COMPUTER',
+      'NETWORK NEIGHBORHOOD', 'NETHOOD', 'FONTS', 'TEMPLATES', 'START MENU',
+      'COMMON PROGRAMS', 'COMMON STARTUP', 'COMMON DESKTOP', 'APPDATA',
+      'PRINTHOOD', 'APPLICATION DATA', 'TEMPORARY INTERNET FILES',
+      'COOKIES', 'HISTORY', 'USERPROFILE', 'DIAL UP CONNECTIONS',
+      'MY MUSIC', 'MY PICTURES', 'MY VIDEO', 'CD BURNING',
+      'COMPUTERS NEAR ME', 'PROFILES']) of
+    0: Result := CSIDL_DESKTOP;
+    1: Result := CSIDL_INTERNET;
+    2: Result := CSIDL_PROGRAMS;
+    3: Result := CSIDL_CONTROLS;
+    4: Result := CSIDL_PRINTERS;
+    5: Result := CSIDL_PERSONAL;
+    6: Result := CSIDL_FAVORITES;
+    7: Result := CSIDL_STARTUP;
+    8: Result := CSIDL_RECENT;
+    9: Result := CSIDL_SENDTO;
+    10: Result := CSIDL_BITBUCKET;
+    11: Result := CSIDL_STARTMENU;
+    12: Result := CSIDL_DESKTOPDIRECTORY;
+    13: Result := CSIDL_DRIVES;
+    14: Result := CSIDL_NETWORK;
+    15: Result := CSIDL_NETHOOD;
+    16: Result := CSIDL_FONTS;
+    17: Result := CSIDL_TEMPLATES;
+    18: Result := CSIDL_COMMON_STARTMENU;
+    19: Result := CSIDL_COMMON_PROGRAMS;
+    20: Result := CSIDL_COMMON_STARTUP;
+    21: Result := CSIDL_COMMON_DESKTOPDIRECTORY;
+    22: Result := CSIDL_APPDATA;
+    23: Result := CSIDL_PRINTHOOD;
+{$IFDEF DELPHI9_UP}
+    24: Result := CSIDL_LOCAL_APPDATA;
+    25: Result := CSIDL_INTERNET_CACHE;
+    26: Result := CSIDL_COOKIES;
+    27: Result := CSIDL_HISTORY;
+    28: Result := CSIDL_PROFILE;
+    29: Result := CSIDL_CONNECTIONS;
+    30: Result := CSIDL_COMMON_MUSIC;
+    31: Result := CSIDL_COMMON_PICTURES;
+    32: Result := CSIDL_COMMON_VIDEO;
+    33: Result := CSIDL_CDBURN_AREA;
+    34: Result := CSIDL_COMPUTERSNEARME;
+    35: Result := CSIDL_PROFILES
+{$ENDIF}
+  end;
+end;
+
+function TCustomIEAddress.GetDllVersion(const ADll: string): Extended;
+type //by Fabio Lucarelli
+  DLLVERSIONINFO = packed record
+    cbSize: DWORD;
+    dwMajorVersion: DWORD;
+    dwMinorVersion: DWORD;
+    dwBuildNumber: DWORD;
+    dwPlatformID: DWORD;
+  end;
+  DLLGETVERSIONPROC = function(var pdvi: DLLVERSIONINFO): HRESULT; stdcall;
+var
+  hinstDll: THANDLE;
+  pBuffer: POINTER;
+  dvi: DLLVERSIONINFO;
+  pDllGetVersion: DLLGETVERSIONPROC;
+begin
+  hinstDll := LoadLibrary(PChar(ADll));
+  if hinstDll = 0 then
+    Result := 0
+  else
+  try
+    pBuffer := GetProcAddress(hinstDll, 'DllGetVersion');
+    if Assigned(pBuffer) then
+    begin
+      ZeroMemory(@dvi, SizeOf(dvi));
+      dvi.cbSize := SizeOf(dvi);
+      pDllGetVersion := DLLGETVERSIONPROC(pBuffer);
+      if pDllGetVersion(dvi) = NOERROR then
+      begin
+        Result := (dvi.dwMajorVersion + dvi.dwMinorVersion);
+      end
+      else
+        Result := 0;
+    end
+    else
+      Result := 0;
+  finally
+    FreeLibrary(hinstDll);
+  end;
+end;
+
+function TCustomIEAddress.GetModified: Boolean;
+begin
+  Result := FModified;
+  if HandleAllocated then
+    Result := SendMessage(EditHandle, EM_GETMODIFY, 0, 0) <> 0;
+end;
+
+function TCustomIEAddress.IsValidURL(const URL: WideString): Boolean;
+begin
+  if UrlMon.IsValidURL(nil, PWideChar(URL), 0) = S_OK then
+    Result := True
+  else
+    Result := False;
+end;
+
+function TCustomIEAddress.RemovePrefix(UrlIn, Prefix: WideString): WideString;
+var
+  i, j: integer;
+begin
+  i := Length(Prefix);
+  j := AnsiPos(Prefix, UPPERCASE(URLIn));
+  if j <> 0 then
+    System.delete(UrlIn, j, i);
+  Result := UrlIn;
+end;
+
+procedure TCustomIEAddress.ClearList;
+begin
+  Items.Clear;
+end;
+
+{$IFDEF DELPHI6_UP}
+
+procedure TCustomIEAddress.DeleteSelected;
+begin
+  if ItemIndex <> -1 then
+    Items.Delete(ItemIndex);
+end;
+{$ENDIF}
+
+procedure TCustomIEAddress.AddToList;
+begin
+  if not (csDesigning in ComponentState) then
+  begin
+    Text := FixUrl(Text);
+    RegistryUpdate;
+    CheckSecureSite;
+    TextUpdate;
+    InsertTextToList;
+    SetSiteHint;
+    AddFaviconToImageList;
+  end;
+end;
+
+procedure TCustomIEAddress.CheckButtonState(X, Y: Integer);
+var
+  ARect: TRect;
+begin
+  SetRect(ARect, ClientWidth - FButtonWidth, 0, ClientWidth, ClientHeight);
+  if (csButtonPressed in FEditState) and not PtInRect(ARect, Point(X, Y)) then
+  begin
+    Exclude(FEditState, csButtonPressed);
+    RepaintIEAddress(True);
+  end;
+end;
+
+function TCustomIEAddress.FixUrl(Url: string): string;
+
+
+  function AnsiEndsStr(const ASubText, AText: string): Boolean;
+  var
+    SubTextLocation: Integer;
+  begin
+    SubTextLocation := Length(AText) - Length(ASubText) + 1;
+    if (SubTextLocation > 0) and (ASubText <> '') and
+      (ByteType(AText, SubTextLocation) <> mbTrailByte) then
+      Result := AnsiStrComp((PChar(ASubText)), Pointer(@AText[SubTextLocation])) = 0
+    else
+      Result := False;
+  end;
+
+var
+  DotPos, ipos: Integer;
+begin
+  Result := Url;
+  if not AnsiEndsStr('/', Url) then
+  begin
+    ipos := LastDelimiter('/', Url);
+    DotPos := LastDelimiter('.', Url);
+    if DotPos < ipos then
+      Result := Url + '/';
+  end;
+end;
+
+procedure TCustomIEAddress.InsertTextToList;
+var
+  i: integer;
+  Found: boolean;
+begin
+  Found := False;
+  for i := 0 to Items.Count do
+  begin
+    if Text = Items.Strings[i] then
+      Found := True;
+  end;
+  if Items.Count = 0 then
+    Found := False;
+  if not Found then
+    Items.Insert(0, Text);
+end;
+
+procedure TCustomIEAddress.CheckSecureSite;
+
+  function AnsiStartsStr(const ASubText, AText: WideString): Boolean;
+  begin
+    Result := AnsiSameStr(ASubText, Copy(AText, 1, Length(ASubText)));
+  end;
+begin
+  if FUseSecureSiteBGColor then
+  begin
+    if AnsiStartsStr('https', Text) then
+      Color := FSecureSiteBG
+    else
+      Color := FOldBGColor;
+  end;
+end;
+
+procedure TCustomIEAddress.LoadFromFile(FileName: WideString);
+begin
+  Clear;
+  try
+    Items.LoadFromFile(FileName);
+  finally
+  end;
+end;
+
+procedure TCustomIEAddress.SaveToFile(FileName: WideString);
+begin
+  try
+    Items.SaveToFile(FileName);
+  finally
+  end;
+end;
+
+procedure TCustomIEAddress.TextUpdate;
+var
+  st: WideString;
+  bCancel: Boolean;
+begin
+  if Assigned(FEmbeddedWB) then
+  begin
+    st := Text;
+    bCancel := False;
+    if FUAfterNav then
+    begin
+      try
+        if FEmbeddedWB.HandleAllocated then
+          while (FEmbeddedWB.ReadyState <> READYSTATE_COMPLETE) do
+          begin
+            Forms.Application.ProcessMessages;
+          end;
+        case FTextAfterNav of
+          anLocationUrl: st := FEmbeddedWB.LocationURL;
+          anLocationName: st := FEmbeddedWB.LocationName;
+        end;
+        if Assigned(FOnUpdateText) then
+          FOnUpdateText(Self, Text, st, bCancel);
+        if not bCancel then
+          Text := st;
+      except
+      end;
+    end;
+  end;
+end;
+
+//End of Accesories-------------------------------------------------------------
+
+//Graphical interface----------------------------------------------------------
+
+procedure TCustomIEAddress.DrawIEAddress(MouseInControl, DroppedDown: boolean);
+var
+  CanvasCtrl: TControlCanvas;
+  Rect: TRect;
+  Position, RectT: integer;
+begin
+  case FGUI of
+    gsThemes:
+      begin
+        CanvasCtrl := TControlCanvas.Create;
+        try
+          CanvasCtrl.Control := Self;
+          Rect := ClientRect;
+          CanvasCtrl.Brush.Style := bsClear; //bsSolid;
+          with CanvasCtrl do
+          begin
+            if BorderColor <> clNone then
+            begin
+              Brush.Color := BorderColor;
+              if FHasBorder then
+              begin
+                FrameRect(Rect);
+              end;
+            end
+            else
+            begin
+              Brush.Color := Color;
+              if FHasBorder then
+              begin
+                FrameRect(Rect);
+              end;
+            end;
+          end;
+          Rect.Left := Rect.Right - GetSystemMetrics(SM_CXHTHUMB) - 3;
+          Dec(Rect.Right);
+          InflateRect(Rect, 0, -1);
+          if DroppedDown then
+            with CanvasCtrl do
+            begin
+              Brush.Color := FButtonPressedColor;
+              FillRect(Rect);
+              Rect.Right := Rect.Left + 6;
+              Brush.Color := Color;
+              FillRect(Rect);
+            end
+          else
+            with CanvasCtrl do
+            begin
+              Brush.Color := ButtonColor;
+              FillRect(Rect);
+              Rect.Right := Rect.Left + 6;
+              Brush.Color := Color;
+              FillRect(Rect);
+            end;
+          if BorderColor <> clNone then
+          begin
+            Dec(Rect.Right);
+            with CanvasCtrl do
+            begin
+              Pen.Color := BorderColor;
+              MoveTo(Rect.Right, Rect.Top);
+              LineTo(Rect.Right, Rect.Bottom);
+            end;
+          end;
+          CanvasCtrl.Pen.Color := ArrowColor;
+          Rect := ClientRect;
+          Position := Rect.Right - 10;
+          RectT := Rect.Top;
+          with CanvasCtrl do
+          begin
+            Moveto(Position + 0, RectT + 10);
+            LineTo(Position + 5, RectT + 10);
+            MoveTo(Position + 1, RectT + 11);
+            LineTo(Position + 4, RectT + 11);
+            MoveTo(Position + 2, RectT + 12);
+            LineTo(Position + 3, RectT + 12);
+          end;
+        finally
+          CanvasCtrl.Free;
+        end;
+      end;
+  end;
+end;
+
+procedure TCustomIEAddress.RepaintIEAddress(MouseActive: Boolean);
+var
+  Bool: boolean;
+begin
+  Bool := True;
+  if Assigned(FonPaint) then
+    FOnPaint(Self, Bool);
+  try
+    if not Bool then
+    begin
+      ValidateRect(EditHandle, nil);
+      Refresh;
+      Exit;
+    end;
+    if not (csDesigning in ComponentState) then
+      DrawIEAddress(FMouseActive, DroppedDown);
+  finally
+  end;
+end;
+
+procedure TCustomIEAddress.CalculateRGN;
+var
+  BorderRGN, DropDownRGN: HRGN;
+  BorderWidth, W: Integer;
+begin
+  if Parent = nil then
+    Exit;
+  BorderRGN := CreateRectRGN(0, 0, Width, Height);
+  BorderWidth := GetSystemMetrics(SM_CXDLGFRAME);
+  if not FHasDropDown and not (Style in [csSimple]) then
+  begin
+    W := GetSystemMetrics(SM_CXVSCROLL);
+    Invalidate;
+    DropDownRGN := CreateRectRGN(Width - W - BorderWidth, 0, Width, Height);
+    CombineRgn(BorderRGN, BorderRGN, DropDownRGN, RGN_XOR);
+    DeleteObject(DropDownRGN);
+  end;
+  SetWindowRGN(Handle, BorderRGN, True);
+end;
+
+procedure TCustomIEAddress.DrawItem(Index: Integer; Rect: TRect; State: TOwnerDrawState);
+var
+  ImageIndex: Integer;
+  Bitmap: TBitmap;
+  Offset: Integer;
+begin
+  Offset := 16;
+  if not (csDesigning in ComponentState) and DroppedDown then
+  begin
+    ImageIndex := GetImageIndex(Items[Index], True); //ListV
+    if (odSelected in State) then
+      FImageIndex := ImageIndex;
+    Bitmap := TBitMap.Create();
+    with Canvas do
+    begin
+      FillRect(Rect);
+      if Index < Items.Count then
+      begin
+        FImageList.GetBitmap(ImageIndex, Bitmap);
+        if Assigned(Bitmap) then
+        begin
+          Bitmap.Canvas.Brush.Style := bsClear;
+          BrushCopy(Bounds(Rect.Left + 4, (Rect.Top + Rect.Bottom - Bitmap.Height) div 2,
+            Bitmap.Width, Bitmap.Height), Bitmap, Bounds(0, 0, Bitmap.Width, Bitmap.Height),
+            Bitmap.Canvas.Pixels[0, Bitmap.Height - 1]);
+          Offset := Bitmap.Width + 6;
+        end;
+        TextOut(Rect.Left + OffSet, Rect.Top, Items[Index]);
+      end;
+    end;
+    BitMap.free;
+  end;
+end;
+//End of Graphical interface----------------------------------------------------
+
+//Icons Section-----------------------------------------------------------------
+
+function TCustomIEAddress.GetImageIndex(aUrl: string; IntoLV: Boolean): Integer;
+var
+  Malloc: Imalloc;
+  SpecialFolder: Cardinal;
+  sfi: TShFileInfo;
+  pidl: PItemIDList;
+  ImgIdx: integer;
+  Ext: string;
+  bCancel: Boolean;
+  Icon: TIcon;
+begin
+  Result := -1;
+  try
+    ShGetMalloc(Malloc);
+    //If its a MS special folder
+    SpecialFolder := GetSpecialFolderNo(aUrl);
+    if (SUCCEEDED(SHGetSpecialFolderLocation(Handle, SpecialFolder, Pidl))) then
+    begin
+      ShGetFileInfo(PChar(pidl), 0, sfi, sizeof(sfi), SHGFI_ICON or SHGFI_PIDL);
+      Result := sfi.iIcon;
+    end
+    else
+    begin //If its a local file
+      if FileExists(aUrl) or (AnsiCompareText(Copy(aURL, 1, 7), 'file://') = 0) then
+      begin
+        ShGetFileInfo(PChar(aUrl), FILE_ATTRIBUTE_NORMAL, sfi, sizeOf(sfi),
+          SHGFI_SYSICONINDEX or SHGFI_USEFILEATTRIBUTES or SHGFI_SMALLICON);
+        Result := sfi.iIcon;
+      end
+        // If its a folder
+      else
+        if DirectoryExists(aUrl) then
+        begin
+          ShGetFileInfo(PChar(aUrl), FILE_ATTRIBUTE_DIRECTORY, sfi, SHGFI_EXETYPE,
+            SHGFI_SYSICONINDEX or SHGFI_USEFILEATTRIBUTES or SHGFI_SMALLICON);
+          Result := sfi.iIcon;
+        end
+        // if its a a url (File/internet Address or Shortcut). so, lets start ;)
+        else
+          if aURL <> '' then
+          begin
+            Ext := GetExtension(aUrl);
+            if Ext = '*.htm' then
+            begin
+              if (not (DroppedDown)) and FShowFavicons then
+              begin //Get Favicon
+                ImgIdx := AddFaviconToImageList;
+                if ImgIdx > -1 then
+                begin
+                  sfi.iIcon := AddFaviconToImageList;
+                  Result := sfi.iIcon;
+                  DestroyIcon(sfi.iIcon);
+                  Malloc.Free(pidl);
+                  Exit;
+                end;
+              end;
+              if FUseAppIcon then
+              begin //Get app icon
+                icon := Forms.Application.Icon;
+                if Assigned(FOnGetAppIcon) then
+                  FOnGetAppIcon(Self, bCancel, Icon);
+                if not bCancel then
+                begin
+                  ImgIdx := FImageList.AddIcon(Icon);
+                  sfi.iIcon := ImgIdx;
+                  Result := sfi.iIcon;
+                end;
+              end
+              else
+              begin //Get icon for internet shortcuts and addresses
+                ShGetFileInfo('*.htm', FILE_ATTRIBUTE_NORMAL, sfi, sizeOf(sfi),
+                  SHGFI_SYSICONINDEX or SHGFI_USEFILEATTRIBUTES or SHGFI_SMALLICON);
+                if Assigned(FOnGetIcon) then
+                  FOnGetIcon(Self, 'htm', sfi.hIcon);
+                Result := sfi.iIcon;
+              end
+            end
+            else
+            begin //Get all the rest system icons
+              ShGetFileInfo(Pchar(Ext), FILE_ATTRIBUTE_NORMAL, sfi, sizeOf(sfi),
+                SHGFI_SYSICONINDEX or SHGFI_USEFILEATTRIBUTES or SHGFI_SMALLICON);
+              Result := sfi.iIcon;
+            end;
+          end;
+    end;
+  finally
+    try
+      if Result <> -1 then
+        DestroyIcon(sfi.iIcon)
+      else
+        Result := 0;
+    finally
+    end;
+    Malloc.Free(pidl);
+  end;
+end;
+
+function TCustomIEAddress.GrabFavicon(URL: string; dest: string): Boolean;
+var
+  i: Integer;
+  St: string;
+  bCancel: Boolean;
+begin
+  Result := False;
+  try
+    bCancel := False;
+    St := RemovePrefix(URL, 'HTTP://');
+    I := AnsiPos('/', RemovePrefix(St, 'HTTP://'));
+    if I > 0 then
+      St := 'http://' + System.Copy(St, 1, I);
+    if Assigned(FOnGetFavicon) then
+      FOnGetFavicon(Self, (GetCacheFolder + 'favicon.ico'), Text, bCancel, nil);
+    if not bCancel then
+    try
+      Result := UrlDownloadToFile(nil, PChar(St + 'favicon.ico'), PChar(dest), 0, nil) = 0;
+    except
+      Result := False;
+    end;
+  finally
+  end;
+end;
+
+function TCustomIEAddress.AddFaviconToImageList: integer;
+var
+  ImgIdx: integer;
+  Icon: TIcon;
+  bCancel: Boolean;
+  st: WideString;
+begin
+  Result := -1;
+  bCancel := False;
+  if FShowFavicons and (not DroppedDown) and IsValidURL(Text) and
+    (not (csDesigning in ComponentState)) then
+  begin
+    st := GetCacheFolder + 'favicon.ico';
+    if GrabFavIcon(Text, st) then
+    begin
+      ImgIdx := -1;
+      Icon := TIcon.Create();
+      try
+        Icon.LoadFromFile(st);
+      except
+      end;
+{$IFDEF DELPHI10_UP}
+      Icon.SetSize(16, 16);
+{$ELSE}
+      Icon.Height := 16;
+      Icon.Width := 16;
+{$ENDIF}
+      if Assigned(FOnGetFavicon) then
+        FOnGetFavicon(Self, st, Text, bCancel, Icon);
+      if not bCancel then
+      try
+        ImgIdx := FImageList.AddIcon(Icon)
+      except
+      end;
+      if ImgIdx > 0 then
+      begin
+        Result := ImgIdx;
+        if not bCancel then
+          FImageList.Draw(FCanvas, IconLeft, IConTop, ImgIdx, True);
+      end;
+      Icon.Free;
+    end;
+  end;
+end;
+
+//End of Icons section----------------------------------------------------------
+
+// Registry Section ------------------------------------------------------------
+
+procedure TCustomIEAddress.GetTypedURLs;
+var
+  Counter: Integer;
+  S: WideString;
+  GetTextTmp: PChar;
+begin
+  Items.Clear;
+  with TRegistry.Create do
+  try
+    RootKey := HKEY_CURRENT_USER;
+    if FTypedUrlsMethod = tuCommon then
+    begin
+      if OpenKey('Software\Microsoft\Internet Explorer\TypedURLs', False) then
+      begin
+        for Counter := 1 to 25 do
+        begin
+          if ValueExists('Url' + IntToStr(Counter)) then
+          begin
+            S := ReadString('Url' + IntToStr(Counter));
+            GetTextTmp := Items.GetText;
+            if (AnsiPos(S, GetTextTmp) = 0) and (Trim(S) <> '') then
+              Items.Add(Trim(S));
+            StrDispose(GetTextTmp);
+          end;
+        end;
+        CloseKey;
+      end;
+    end;
+    if FTypedUrlsMethod = tuExtended then
+    begin
+      if OpenKey('Software\Microsoft\Internet Explorer\TypedAddress', False) then
+      begin
+        for Counter := 1 to 25 do
+        begin
+          if ValueExists('Url' + IntToStr(Counter)) then
+          begin
+            S := ReadString('Url' + IntToStr(Counter));
+            GetTextTmp := Items.GetText;
+            if (Ansipos(S, GetTextTmp) = 0) and (Trim(S) <> '') then
+              Items.Add(S);
+            StrDispose(GetTextTmp);
+          end;
+        end;
+        CloseKey;
+      end;
+    end;
+  finally
+    Free;
+  end;
+  if not Assigned(FEmbeddedWB) and (TextOnLoad <> tlUserDefine) then
+    if Items.Count <> 0 then
+      Text := Trim(Items[0])
+    else
+      Text := '';
+end;
+
+procedure TCustomIEAddress.RegistryUpdate;
+var
+  MaxItems, Counter: Integer;
+  Name, SName: WideString;
+  Reg: TRegistry;
+  bCancel: Boolean;
+begin
+  if (Trim(Text) <> '') and FUpdateRegistry then
+  begin
+    Reg := TRegistry.Create;
+    bCancel := False;
+    try
+      with Reg do
+      begin
+        if Assigned(FOnUpdateRegistry) then
+          FOnUpdateRegistry(Self, Text, bCancel);
+        if not bCancel then
+        begin
+          RootKey := HKEY_CURRENT_USER;
+          if FTypedUrlsMethod = tuCommon then
+          begin
+            if OpenKey('Software\Microsoft\Internet Explorer\TypedURLs', True) then
+            begin
+              if Items.Count < 24 then
+                MaxItems := Items.Count + 1
+              else
+                MaxItems := 25;
+              for Counter := 0 to MaxItems - 1 do
+              begin
+                Name := 'Url' + IntToStr(Counter);
+                if items[Counter - 1] <> '' then
+                  WriteString(Name, items[Counter - 1]);
+              end;
+            end;
+            CloseKey;
+          end;
+          if FTypedUrlsMethod = tuExtended then
+          begin
+            if OpenKey('Software\Microsoft\Internet Explorer\TypedAddress', True) then
+            begin
+              if Items.Count < 24 then
+                MaxItems := Items.Count + 1
+              else
+                MaxItems := 25;
+              for Counter := 0 to MaxItems - 1 do
+              begin
+                Name := 'Url' + IntToStr(Counter);
+                if items[Counter - 1] <> '' then
+                begin
+                  if Assigned(FEmbeddedWB) then
+                  begin
+                    FEmbeddedWB.Wait;
+                    SName := items[Counter - 1] + '      SiteName:' +
+                      FEmbeddedWB.LocationName;
+                    WriteString(Name, SName);
+                  end;
+                end;
+              end;
+            end;
+          end;
+          CloseKey;
+        end;
+      end;
+    finally
+      Reg.Free;
+    end;
+  end;
+end;
+// End of Registry Section -----------------------------------------------------
+
+// Set--------------------------------------------------------------------------
+
+procedure TCustomIEAddress.SetAbout(Value: string);
+begin
+  Exit;
+end;
+
+procedure TCustomIEAddress.SetBounds(Left, Top, Width, Height: Integer);
+begin
+  inherited SetBounds(Left, Top, Width, Height);
+  SetTextPosition;
+  CalculateRGN;
+end;
+
+procedure TCustomIEAddress.SetDropDown(const Value: Boolean);
+begin
+  FHasDropDown := Value;
+  CalculateRGN;
+end;
+
+procedure TCustomIEAddress.SetFlat(const Value: Boolean);
+begin
+  if Value <> FFlat then
+  begin
+    FFlat := Value;
+    Ctl3D := not Value;
+    FHasBorder := False;
+    Invalidate;
+  end;
+end;
+
+procedure TCustomIEAddress.SetTextPosition;
+begin
+  SetWindowPos(EditHandle, 0, FImageSize + 7, 5, Width - 46, Height - 7, 0);
+end;
+
+procedure TCustomIEAddress.SetHasBorder(const Value: Boolean);
+begin
+  FHasBorder := Value;
+  Invalidate;
+  CalculateRGN;
+  DrawIEAddress(FMouseActive, DroppedDown);
+end;
+
+procedure TCustomIEAddress.SetSiteHint;
+begin
+  if Assigned(FEmbeddedWB) and FShowSiteHint then
+  begin
+    if FEmbeddedWB.HandleAllocated then
+      while (FEmbeddedWB.ReadyState <> READYSTATE_COMPLETE) do
+        Forms.Application.ProcessMessages;
+    ShowHint := True;
+    Application.HintColor := FHintColor;
+    if FEmbeddedWB.LocationUrl = Text then
+      Hint := FEmbeddedWB.LocationName;
+  end;
+end;
+
+procedure TCustomIEAddress.SetTheme;
+begin
+  case FGUI of
+    gsThemes:
+      begin
+        case FThemes of
+          tmNone:
+            begin
+              FBorderColor := clblack;
+              FArrowColor := clblack;
+              FButtonPressedColor := clBtnShadow;
+              FButtonColor := clBtnFace;
+            end;
+          tmXP:
+            begin
+              FBorderColor := clInactiveCaptionText;
+              FArrowColor := clNavy;
+              FButtonColor := $F0CAA6;
+              FButtonPressedColor := clInactiveCaptionText;
+            end;
+          tmSilver:
+            begin
+              FBorderColor := clGray;
+              FArrowColor := cl3DDKShadow;
+              FButtonColor := clSilver;
+              FButtonPressedColor := clActiveBorder;
+            end;
+          tmSoil:
+            begin
+              FBorderColor := clMaroon;
+              FArrowColor := clMaroon;
+              FButtonColor := clInfoBk;
+              FButtonPressedColor := cl3DLight;
+            end;
+        end;
+        RepaintIEAddress(True);
+      end;
+  end;
+end;
+
+procedure TCustomIEAddress.SetTextOnLd();
+begin
+  if Assigned(FEmbeddedWB) then
+  begin
+    case FTextOnLoad of
+      tlIELastVisited: ;
+      tlIEHomePage: Text := FEmbeddedWB.GetIEHomePage;
+      tlBlank: FEmbeddedWB.AssignEmptyDocument;
+      tlUserDefine: Text := FTextOnShow;
+    end;
+    if FNavOnLoad then
+      FEmbeddedWB.Go(Text);
+  end;
+end;
+
+procedure TCustomIEAddress.SetModified(Value: Boolean);
+begin
+  if HandleAllocated then
+    PostMessage(EditHandle, EM_SETMODIFY, Byte(Value), 0)
+  else
+    FModified := Value;
+end;
+
+procedure TCustomIEAddress.SetAutoCompleteOptions(const Value: TAutoCompleteOptions);
+begin
+  if FAutoCompleteOptions <> Value then
+  begin
+    FAutoCompleteOptions := Value;
+    case FAComp of
+      AutoComplete1: UpdateAutoComplete;
+      AutoComplete2: Exit;
+    end;
+
+  end;
+end;
+
+procedure TCustomIEAddress.SetACOptions(const Value: TAutoComplete2Options);
+const
+  IID_IAutoComplete2: TGUID = '{EAC04BC0-3791-11d2-BB95-0060977B464C}';
+  Options: array[TAutoComplete2Option] of integer =
+  ($0000, $0001, $0002, $0004, $0008, $0010, $0020, $0040, $0080, $0100);
+var
+  Option: TAutoComplete2Option;
+  Opt: DWORD;
+  AC2: IAutoComplete2;
+begin
+  if (FAutoComplete <> nil) then
+  begin
+    if S_OK = FAutoComplete.QueryInterface(IID_IAutoComplete2, AC2) then
+    begin
+      Opt := ACO_NONE;
+      for Option := Low(Options) to High(Options) do
+      begin
+        if (Option in FAutoComplete2Options) then
+          Opt := Opt or DWORD(Options[Option]);
+      end;
+      AC2.SetOptions(Opt);
+    end;
+  end;
+  FAutoComplete2Options := Value;
+end;
+
+procedure TCustomIEAddress.SetAutoComplete2Source(const Value: TAutoComplete2Source);
+begin
+  if FAutoComplete2Source <> Value then
+  begin
+    FAutoComplete2Source := Value;
+    RecreateWnd;
+  end;
+end;
+
+// End of Set-------------------------------------------------------------------
+
+//events------------------------------------------------------------------
+
+constructor TCustomIEAddress.Create(AOwner: TComponent);
+var
+  sfi: TShFileInfo;
+  aHandle: Cardinal;
+begin
+  inherited Create(AOwner);
+  ControlStyle := ControlStyle + [csOpaque] - [csSetCaption];
+  DoubleBuffered := True;
+  FAbout := 'TIEAddress. ' + WEB_SITE;
+  FButtonWidth := GetSystemMetrics(SM_CXVSCROLL);
+  FButtonColor := clBtnFace;
+  FButtonPressedColor := clBtnFace;
+  AutoComplete2Options := [acoAutoSuggest, acoAutoAppend, acoSearch];
+  AutoComplete2Source := [acsList, acsHistory, acsMRU, acsShell];
+  AutoCompleteOptions := [acAutoAppend, acUrlHistory];
+  AutoCompleteVersion := AutoComplete2;
+  AutoNavigateOnDblClk := True;
+  AutoNavigateOnEnterKey := True;
+  AutoNavigateOnLoad := True;
+  AutoNavigateOnSelected := True;
+  FCustomProperty := '';
+  FGUI := gsThemes;
+  FHasBorder := True;
+  FHasDropDown := True;
+  FHintColor := clInfoBK;
+  FImageIndex := -1;
+  FImageSize := 16;
+  FMouseActive := False;
+  ShowHint := True;
+  FSecureSiteBG := clInfobk;
+  FSelImageIndex := -1;
+  FShowFavicons := False;
+  FShowSiteHint := True;
+  FTextOnLoad := tlIEHomePage;
+  FTypedUrlsMethod := tuCommon;
+  FUAfterNav := True;
+  FUpdateRegistry := True;
+  FUseAppIcon := False;
+  FUseSecureSiteBGColor := True;
+  Height := 22;
+  IconLeft := 4;
+  IconTop := 3;
+  ItemHeight := 16;
+  Sorted := False;
+  Style := csDropDown;
+  TabOrder := 0;
+  Width := 145;
+  FImageList := TImageList.Create(self);
+  FImageList.DrawingStyle := dsNormal;
+  FImageList.ShareImages := True;
+  FImageList.Height := 16;
+  FImageList.Width := 16;
+  FCanvas := TControlCanvas.Create;
+  FCanvas.Control := Self;
+  FCanvas.Brush.Style := bsClear;
+  FCanvas.Handle := EditHandle;
+  dllVer := GetDllVersion('Shlwapi.dll');
+  aHandle := ShGetFileInfo('', 0, sfi, sizeOf(sfi), SHGFI_SYSICONINDEX or SHGFI_SMALLICON);
+  if (aHandle <> 0) then
+    FImageList.Handle := aHandle;
+end;
+
+destructor TCustomIEAddress.Destroy;
+begin
+  Application.HintColor := FOldHintColor;
+  Color := FOldBGColor;
+  FImageList.free;
+  FCanvas.free; //Ray
+  inherited Destroy;
+end;
+
+procedure TCustomIEAddress.Loaded;
+begin
+  inherited;
+  FOldBGColor := Self.Color;
+  FOldHintColor := Application.HintColor;
+  DoubleBuffered := True;
+  Modified := False;
+  if not (csDesigning in ComponentState) then
+  begin
+    case FGUI of
+      gsThemes:
+        begin
+          BevelEdges := [];
+          BevelInner := bvnone;
+          BevelKind := bkFlat;
+          BevelOuter := BVNone;
+          BiDiMode := bdLeftToRight;
+          Ctl3D := False;
+          ParentBiDiMode := False;
+          ParentCtl3D := False;
+          ImeMode := imDontCare;
+          ImeName := '';
+          SetTheme;
+        end;
+    end;
+    CalculateRGN;
+    GetTypedURLs;
+    Text := FixUrl(Text);
+    CheckSecureSite;
+    TextUpdate;
+    SetSiteHint;
+    AddFaviconToImageList;
+    SetTextOnLd();
+  end;
+end;
+
+procedure TCustomIEAddress.CreateParams(var Params: TCreateParams);
+begin
+  inherited CreateParams(Params);
+  Params.Style := Params.Style or cbs_OwnerDrawFixed or ES_MULTILINE;
+end;
+
+procedure TCustomIEAddress.CreateWindowHandle(const Params: TCreateParams);
+begin
+  inherited CreateWindowHandle(Params);
+  SetTextPosition;
+end;
+
+procedure TCustomIEAddress.CreateWnd;
+begin
+  inherited CreateWnd;
+  case FAComp of
+    AutoComplete1: UpdateAutoComplete;
+    AutoComplete2:
+      if (GetDllVersion('Shlwapi.dll') > 4.72) then
+        UpdateIAutoComplete2
+      else
+        UpdateAutoComplete;
+  end;
+end;
+
+procedure TCustomIEAddress.UpdateAutoComplete;
+var
+  SelOptions: DWORD;
+begin
+  SelOptions := 0;
+  if acAutoSuggest in FAutoCompleteOptions then
+    SelOptions := SelOptions or SHACF_AUTOSUGGEST_FORCE_ON
+  else
+    SelOptions := SelOptions or SHACF_AUTOSUGGEST_FORCE_OFF;
+  if acAutoAppend in FAutoCompleteOptions then
+    SelOptions := SelOptions or SHACF_AUTOAPPEND_FORCE_ON
+  else
+    SelOptions := SelOptions or SHACF_AUTOAPPEND_FORCE_OFF;
+  if acFileSystem in FAutoCompleteOptions then
+    SelOptions := SelOptions or SHACF_FILESYSTEM
+  else
+    SelOptions := SelOptions or SHACF_FILESYSTEM;
+  if acUrlHistory in FAutoCompleteOptions then
+    SelOptions := SelOptions or SHACF_URLHISTORY
+  else
+    SelOptions := SelOptions or SHACF_URLHISTORY;
+  if acUrlMRU in FAutoCompleteOptions then
+    SelOptions := SelOptions or SHACF_URLMRU
+  else
+    SelOptions := SelOptions or SHACF_URLMRU;
+  if acUrlAll in FAutoCompleteOptions then
+    SelOptions := SelOptions or SHACF_URLALL
+  else
+    SelOptions := SelOptions or SHACF_URLALL;
+  if acUseTab in FAutoCompleteOptions then
+    SelOptions := SelOptions or SHACF_USETAB
+  else
+    SelOptions := SelOptions or SHACF_USETAB;
+  SHAutoComplete(EditHandle, SelOptions);
+end;
+
+procedure TCustomIEAddress.UpdateIAutoComplete2;
+const
+  IID_IAutoComplete: TGUID = '{00bb2762-6a77-11d0-a535-00c04fd7d062}';
+  CLSID_IAutoComplete: TGUID = '{00BB2763-6A77-11D0-A535-00C04FD7D062}';
+  CLSID_ACLHistory: TGUID = (D1: $00BB2764; D2: $6A77; D3: $11D0; D4: ($A5, $35, $00, $C0, $4F, $D7, $D0, $62));
+  CLSID_ACListISF: TGUID = (D1: $03C036F1; D2: $A186; D3: $11D0; D4: ($82, $4A, $00, $AA, $00, $5B, $43, $83));
+  CLSID_ACLMRU: TGUID = (D1: $6756A641; D2: $DE71; D3: $11D0; D4: ($83, $1B, $00, $AA, $00, $5B, $43, $83));
+var
+  Uk: IUnknown;
+  ACInterface: IEnumString;
+begin
+  try
+    Uk := CreateComObject(CLSID_IAutoComplete);
+    if (Uk <> nil) and (Uk.QueryInterface(IID_IAutoComplete, FAutoComplete) = S_OK) then
+    begin
+      if acsHistory in FAutoComplete2Source then
+        ACInterface := CreateComObject(CLSID_ACLHistory) as IEnumString
+      else
+        if acsMRU in FAutoComplete2Source then
+          ACInterface := CreateComObject(CLSID_ACLMRU) as IEnumString
+        else
+          if acsShell in FAutoComplete2Source then
+            ACInterface := CreateComObject(CLSID_ACListISF) as IEnumString;
+      ACInterface := CreateComObject(CLSID_ACLHistory) as IEnumString;
+      SetACOptions(FAutoComplete2Options);
+      FAutoComplete.Init(Edithandle, ACInterface, nil, nil)
+    end;
+  except
+  end;
+end;
+
+procedure TCustomIEAddress.DestroyWnd;
+begin
+  FModified := Modified;
+  inherited DestroyWnd;
+end;
+
+procedure TCustomIEAddress.WndProc(var Message: TMessage);
+begin
+  inherited;
+  case Message.Msg of
+    CBN_DropDown or CB_ShowDropDown: SetTextPosition;
+    CM_MouseEnter: RepaintIEAddress(True);
+
+    WM_MOUSEACTIVATE:
+      begin
+        if not DroppedDown then
+          Exit;
+        Message.Result := MA_NOACTIVATE;
+        SetWindowPos(Parent.Handle, HWND_TOP, 0, 0, 0, 0, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
+        if (GetActiveWindow <> Parent.Handle) then
+          SetActiveWindow(Parent.Handle);
+      end;
+
+    WM_Paint:
+      begin
+        if not (csReading in ComponentState) then
+        begin
+          ControlStyle := ControlStyle + [csOpaque];
+          RepaintIEAddress(False);
+          SetTextPosition;
+          FImageList.Draw(FCanvas, IconLeft, IconTop,
+            GetImageIndex(Text, False), True);
+        end;
+      end;
+  end;
+end;
+
+procedure TCustomIEAddress.MouseMove(Shift: TShiftState; X, Y: Integer);
+begin
+  CheckButtonState(-1, -1);
+  inherited;
+end;
+
+procedure TCustomIEAddress.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
+begin
+  if DroppedDown then
+  begin
+    Include(FEditState, csButtonPressed);
+    Include(FEditState, csMouseCaptured);
+  end;
+  inherited;
+end;
+
+procedure TCustomIEAddress.MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
+begin
+  CheckButtonState(-1, -1);
+  inherited;
+end;
+
+procedure TCustomIEAddress.Change;
+// var
+// Key: Word;
+begin
+  PostMessage(Handle, CB_SHOWDROPDOWN, 0, 0);
+  FImageList.Draw(FCanvas, IconLeft, IconTop, GetImageIndex(Text, False), True);
+//  key := VK_RETURN;
+//  KeyDown(key, []);
+end;
+
+procedure TCustomIEAddress.Click;
+var
+  Rec: TRect;
+  pt: TPoint;
+  bCancel: Boolean;
+begin
+  inherited;
+  if not (csDesigning in ComponentState) then
+  begin
+    bCancel := False;
+    GetCursorPos(pt);
+    PostMessage(Handle, CB_GETDROPPEDCONTROLRECT, 0, longint(@rec));
+    if ((pt.x >= Rec.Left) and (pt.x <= Rec.Right)
+      and (pt.y >= Rec.Top) and (pt.y <= Rec.Bottom)) then
+    begin
+      if Assigned(FOnUrlSelected) then
+        FOnUrlSelected(Self, Text, bCancel);
+      if not bCancel then
+      begin
+        FSelImageIndex := FImageIndex;
+        FImageList.Draw(FCanvas, 4, 3, FSelImageIndex, True);
+        if FNavOnSelected and Assigned(FEmbeddedWB) then
+          FEmbeddedWB.Go(Text);
+        AddToList;
+      end;
+    end;
+       // PostMessage(EditHandle, EM_SETREADONLY, 0, 0);
+       // PostMessage(EditHandle, EM_SETSEL, 0, -1);
+  end;
+end;
+
+procedure TCustomIEAddress.DblClick;
+var
+  Rec: TRect;
+  pt: TPoint;
+begin
+  inherited;
+  GetCursorPos(pt);
+  PostMessage(Handle, CB_GETDROPPEDCONTROLRECT, 0, longint(@rec));
+  if ((pt.x >= Rec.Left) and (pt.x <= Rec.Right)
+    and (pt.y >= Rec.Top) and (pt.y <= Rec.Bottom)) then
+  begin
+    fSelImageIndex := FImageIndex;
+    fImageList.Draw(FCanvas, 4, 3, fSelImageIndex, True);
+    AddToList;
+    if FNavOnDblClk and Assigned(FEmbeddedWB) then
+      FEmbeddedWB.Go(Text);
+  end;
+  PostMessage(EditHandle, EM_SETREADONLY, 0, 0);
+  PostMessage(EditHandle, EM_SETSEL, 0, -1);
+end;
+
+procedure TCustomIEAddress.KeyDown(var Key: Word; Shift: TShiftState);
+var
+  FListIndex: integer;
+  bCancel: Boolean;
+begin
+  inherited;
+  bCancel := False;
+  if (DroppedDown) then
+  begin
+    if (Key = VK_RETURN) then
+    begin
+      if Assigned(FOnUrlSelected) then
+        FOnUrlSelected(Self, Text, bCancel);
+      if not bCancel then
+      begin
+        Key := VK_CLEAR;
+        FListIndex := SendMessage(Handle, CB_GETCURSEL, 0, 0);
+        if FListIndex > 0 then
+          Items.Move(FListIndex, 0);
+        Text := Items[0];
+        PostMessage(Handle, CB_SHOWDROPDOWN, 0, 0);
+        PostMessage(handle, CB_SETCURSEL, 0, 0);
+        PostMessage(EditHandle, EM_SETREADONLY, 0, 0);
+        PostMessage(EditHandle, EM_SETSEL, 0, -1);
+        AddToList;
+        if Assigned(FEmbeddedWB) then
+        begin
+          if FNavOnEnterKey then
+            FEmbeddedWB.Go(Text);
+          if FNavOnSelected then
+            FEmbeddedWB.Go(Text);
+        end;
+        FSelImageIndex := FImageIndex;
+        if Modified then
+          FImageList.Draw(FCanvas, 4, 3, FSelImageIndex, True);
+      end;
+    end
+    else
+      if ((ssAlt in Shift) and ((Key = VK_DOWN) or (Key = VK_UP))) or
+        (Key = VK_ESCAPE) then
+      begin
+        Key := VK_CLEAR;
+        PostMessage(Handle, CB_SHOWDROPDOWN, 0, 0);
+        PostMessage(EditHandle, EM_SETREADONLY, 0, 0);
+        PostMessage(EditHandle, EM_SETSEL, 0, -1);
+      end
+      else
+        if (not (ssAlt in Shift)) and (Key = VK_DOWN) then
+        begin
+          Key := VK_CLEAR;
+          FListIndex := SendMessage(Handle, CB_GETCURSEL, 0, 0);
+          if FListIndex >= 24 then
+            Exit;
+          PostMessage(Handle, CB_SETCURSEL, (FListIndex + 1), 0);
+          PostMessage(EditHandle, EM_SETSEL, -1, 0);
+          FSelImageIndex := FImageIndex;
+          FImageList.Draw(FCanvas, 4, 3, FSelImageIndex, True);
+          if FNavOnSelected and Assigned(FEmbeddedWB) then
+            FEmbeddedWB.Go(Text);
+        end
+        else
+          if (not (ssAlt in Shift)) and (Key = VK_UP) then
+          begin
+            Key := VK_CLEAR;
+            FListIndex := SendMessage(Handle, CB_GETCURSEL, 0, 0);
+            if FListIndex <= 0 then
+              Exit;
+            PostMessage(Handle, CB_SETCURSEL, (FListIndex - 1), 0);
+            PostMessage(EditHandle, EM_SETSEL, -1, 0);
+            FSelImageIndex := FImageIndex;
+            FImageList.Draw(FCanvas, 4, 3, FSelImageIndex, True);
+            if Assigned(FEmbeddedWB) and FNavOnSelected then
+              FEmbeddedWB.Go(Text);
+          end;
+  end
+  else //Not Droped Down
+  begin
+    if (Key = VK_RETURN) then
+    begin
+      if Text <> '' then
+      begin
+        if Assigned(FOnUrlSelected) then
+          FOnUrlSelected(Self, Text, bCancel);
+        if not BCancel then
+        begin
+          if FNavOnEnterKey and Assigned(FEmbeddedWB) then
+            FEmbeddedWB.Go(Text);
+          AddToList;
+        end;
+      end;
+    end
+    else
+      if (Key = VK_DOWN) or ((ssAlt in Shift) and (Key = VK_DOWN)) then
+      begin
+        Key := VK_CLEAR;
+        PostMessage(Handle, CB_GETCURSEL, 0, 0);
+                 // PostMessage(EditHandle, EM_SETREADONLY, 1, 0);
+        PostMessage(EditHandle, EM_SETSEL, -1, 0);
+        PostMessage(Handle, CB_SHOWDROPDOWN, 1, 0);
+        if FNavOnSelected and Assigned(FEmbeddedWB) then
+          FEmbeddedWB.Go(Text);
+      end
+      else
+        if (Key = VK_UP) then
+        begin
+          Key := VK_CLEAR;
+          Exit;
+        end
+  end
+end;
+
+procedure TCustomIEAddress.DragDrop(Source: TObject; X, Y: Integer);
+begin
+  inherited;
+end;
+
+procedure TCustomIEAddress.DragOver(Source: TObject; X, Y: Integer;
+  State: TDragState; var Accept: Boolean);
+begin
+  inherited;
+end;
+
+initialization //Must have for ShGetFileInfo
+  OleInitialize(nil);
+
+finalization
+  OleUninitialize;
+end.
+
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IECache.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IECache.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IECache.pas	(revision 541)
@@ -0,0 +1,761 @@
+//**************************************************************
+//                                                             *
+//                          TIECache                           *                                            //                                                             *
+//                 For Delphi 5, 6, 7, 2005, 2006              *
+//                     Freeware Component                      *
+//                            by                               *
+//                     Per Lindsø Larsen                       *
+//                   per.lindsoe@larsen.dk                     *
+//                                                             *
+//  Contributions:                                             *
+//  Christian Lovis for lib dynamic linking                    *
+//            {christian.lovis@dim.hcuge.ch]                   *
+//  Eran Bodankin (bsalsa) bsalsa@gmail.com                   *
+//         -  D2005 update                                     *
+//                                                             *
+//  Updated versions:                                          *
+//               http://www.bsalsa.com                         *
+//**************************************************************
+
+{*******************************************************************************}
+{LICENSE:
+THIS SOFTWARE IS PROVIDED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND,
+EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE APPLIED
+WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
+YOU ASSUME THE ENTIRE RISK AS TO THE ACCURACY AND THE USE OF THE SOFTWARE
+AND ALL OTHER RISK ARISING OUT OF THE USE OR PERFORMANCE OF THIS SOFTWARE
+AND DOCUMENTATION. BSALSA PRODUCTIONS DOES NOT WARRANT THAT THE SOFTWARE IS ERROR-FREE
+OR WILL OPERATE WITHOUT INTERRUPTION. THE SOFTWARE IS NOT DESIGNED, INTENDED
+OR LICENSED FOR USE IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE CONTROLS,
+INCLUDING WITHOUT LIMITATION, THE DESIGN, CONSTRUCTION, MAINTENANCE OR
+OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS,
+AIR TRAFFIC CONTROL, AND LIFE SUPPORT OR WEAPONS SYSTEMS. BSALSA PRODUCTIONS SPECIFICALLY
+DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR SUCH PURPOSE.
+
+You may use, change or modify the component under 4 conditions:
+1. In your website, add a link to "http://www.bsalsa.com"
+2. In your application, add credits to "Embedded Web Browser"
+3. Mail me  (bsalsa@gmail.com) any code change in the unit
+   for the benefit of the other users.
+4. Please consider donation in our web site!
+{*******************************************************************************}
+
+unit IECache;
+
+interface
+
+{$I EWB.inc}
+
+uses
+  WinInet, Windows, Messages, SysUtils, Classes, IeConst;
+
+type
+  PInternetCacheTimeStamps = ^TInternetCacheTimeStamps;
+  TInternetCacheTimeStamps = record
+    ftExpires: TFileTime;
+    ftLastModified: TFileTime;
+  end;
+  PInternetCacheGroupInfo = ^TInternetCacheGroupInfo;
+  TInternetCacheGroupInfo = record
+    dwGroupSize: DWORD;
+    dwGroupFlags: DWORD;
+    dwGroupType: DWORD;
+    dwDiskUsage: DWORD;
+    dwDiskQuota: DWORD;
+    dwOwnerStorage: array[0..GROUP_OWNER_STORAGE_SIZE - 1] of DWORD;
+    szGroupName: array[0..GROUPNAME_MAX_LENGTH - 1] of AnsiChar;
+  end;
+  TEntryInfo = record
+    SourceUrlName: string;
+    LocalFileName: string;
+    EntryType: DWORD;
+    UseCount: DWORD;
+    HitRate: DWORD;
+    FSize: DWORD;
+    LastModifiedTime: TDateTime;
+    ExpireTime: TDateTime;
+    LastAccessTime: TDateTime;
+    LastSyncTime: TDateTime;
+    HeaderInfo: string;
+    FileExtension: string;
+    ExemptDelta: DWORD;
+  end;
+  TGroupInfo = record
+    DiskUsage: DWORD;
+    DiskQuota: DWORD;
+    OwnerStorage: array[0..GROUP_OWNER_STORAGE_SIZE - 1] of DWORD;
+    GroupName: string;
+  end;
+  TContent = record
+    Buffer: Pointer;
+    BufferLength: Integer;
+  end;
+  TFilterOption = (NORMAL_ENTRY,
+    STABLE_ENTRY,
+    STICKY_ENTRY,
+    COOKIE_ENTRY,
+    URLHISTORY_ENTRY,
+    TRACK_OFFLINE_ENTRY,
+    TRACK_ONLINE_ENTRY,
+    SPARSE_ENTRY,
+    OCX_ENTRY);
+  TFilterOptions = set of TFilterOption;
+  TOnEntryEvent = procedure(Sender: TObject; var Cancel: Boolean) of object;
+  TOnGroupEvent = procedure(Sender: TObject; GroupID: GROUPID; var Cancel: Boolean) of object;
+  TSearchPattern = (spAll, spCookies, spHistory, spUrl);
+
+  TIECache = class(TComponent)
+  private
+    FSearchPattern: TSearchPattern;
+    FOnEntry: TOnEntryEvent;
+    FOnGroup: TOnGroupEvent;
+    GrpHandle: THandle;
+    H: THandle;
+    FCancel: Boolean;
+    FFilterOptions: TFilterOptions;
+    FFilterOptionValue: Cardinal;
+    procedure SetFilterOptions(const Value: TFilterOptions);
+    procedure UpdateFilterOptionValue;
+    procedure GetEntryValues(Info: PInternetCacheEntryInfo);
+    procedure ClearEntryValues;
+  protected { Protected declarations }
+  public
+    GroupInfo: TGroupInfo;
+    EntryInfo: TEntryInfo;
+    Content: TContent;
+    constructor Create(AOwner: TComponent); override;
+    function AddUrlToGroup(GroupID: INT64; URL: string): DWORD;
+    function CloseFindEntry: BOOL;
+    function CopyFileToCache(URL, FileName: string; CacheType: DWORD; Expire: TDateTime): DWORD;
+    //  function CopyFileToCache(UrlName, FileName: Pchar): string;
+    function CreateEntry(URL, FileExtension: string; ExpectedFileSize: DWORD; var FName: string): DWORD;
+    function CreateGroup: INT64;
+    function DeleteEntry(URL: string): DWORD;
+    function DeleteGroup(GroupID: INT64): DWORD;
+    function FindFirstEntry(GroupID: INT64): DWORD;
+    function FindFirstGroup(var GroupID: Int64): DWORD;
+    function FindNextEntry: DWORD;
+    function FindNextGroup(var GroupID: Int64): BOOL;
+    function GetEntryContent(URL: string): DWORD;
+    function GetEntryInfo(URL: string): DWORD;
+    function GetGroupInfo(GroupID: INT64): DWORD;
+    function getLibraryFound: Boolean;
+    function RemoveUrlFromGroup(GroupID: INT64; URL: string): DWORD;
+    function RetrieveGroups: DWORD;
+    function SetEntryInfo(URL: string): DWORD;
+    function SetGroupInfo(GroupID: INT64): DWORD;
+    procedure ClearAllEntries;
+    procedure RetrieveEntries(GroupID: INT64);
+    { Public declarations }
+  published
+    property FilterOptions: TFilterOptions read FFilterOptions write SetFilterOptions;
+    property LibraryFound: Boolean read getLibraryFound;
+    property OnEntry: TOnEntryEvent read FOnEntry write FOnEntry;
+    property OnGroup: TOnGroupEvent read FOnGroup write FOnGroup;
+    property SearchPattern: TSearchpattern read FSearchpattern write FSearchPattern;
+    { Published declarations }
+  end;
+
+implementation
+
+type
+
+  TFindFirstUrlCacheGroup =
+    function(dwFlags, dwFilter: DWORD;
+    lpSearchCondition: Pointer; dwSearchCondition: DWORD;
+    var Group: Int64; lpReserved: Pointer): THandle; stdcall;
+
+  TFindNextUrlCacheGroup =
+    function(hFind: THandle; var GroupID: Int64; lpReserved: Pointer): BOOL; stdcall;
+
+  TSetUrlCacheGroupAttribute =
+    function(gid: Int64; dwFlags, dwAttributes: DWORD; var lpGroupInfo: TInternetCacheGroupInfo;
+    lpReserved: Pointer): BOOL; stdcall;
+
+  TGetUrlCacheGroupAttribute =
+    function(gid: Int64; dwFlags, dwAttributes: DWORD;
+    var GroupInfo: TInternetCacheGroupInfo; var dwGroupInfo: DWORD; lpReserved: Pointer): BOOL; stdcall;
+
+var
+  FindFirstUrlCacheGroup: tFindFirstUrlCacheGroup;
+  FindNextUrlCacheGroup: tFindNextUrlCacheGroup;
+  GetUrlCacheGroupAttribute: tGetUrlCacheGroupAttribute;
+  SetUrlCacheGroupAttribute: tSetUrlCacheGroupAttribute;
+  winInetLibFound: Boolean;
+
+const
+  winetdll = 'wininet.dll';
+
+//====Accessories===============================================================
+
+function InitializeWinInet: Boolean;
+var
+  fPointer: tFarProc;
+  hInst: tHandle;
+begin
+  if winInetLibFound then
+    Result := true
+  else
+  begin
+    Result := False;
+    hInst := loadLibrary(winetdll);
+    if hInst > 0 then
+    try
+      fPointer := getProcAddress(hInst, 'FindFirstUrlCacheGroup');
+      if fPointer <> nil then
+      begin
+        FindFirstUrlCacheGroup := tFindFirstUrlCacheGroup(fPointer);
+        fPointer := getProcAddress(hInst, 'FindNextUrlCacheGroup');
+        if fPointer <> nil then
+        begin
+          FindNextUrlCacheGroup := tFindNextUrlCacheGroup(fPointer);
+          fPointer := getProcAddress(hInst, 'GetUrlCacheGroupAttributeA');
+          if fPointer <> nil then
+          begin
+            GetUrlCacheGroupAttribute := tGetUrlCacheGroupAttribute(fPointer);
+            fPointer := getProcAddress(hInst, 'SetUrlCacheGroupAttributeA');
+            if fPointer <> nil then
+            begin
+              SetUrlCacheGroupAttribute := tSetUrlCacheGroupAttribute(fPointer);
+              fPointer := getProcAddress(hInst, 'FindFirstUrlCacheEntryExA');
+              if fPointer <> nil then
+                Result := true;
+            end; // SetUrlCacheGroupAttribute
+          end; // GetUrlCacheGroupAttribute
+        end; // FindNextUrlCacheGroup
+      end; // FindFirstUrlCacheGroup
+    except
+    end; // loadLib
+    winInetLibFound := Result;
+  end;
+end;
+
+function FileTimeToDateTime(Ft: TFileTime): TDateTime;
+var
+  St: TSystemTime;
+  lft: TFileTime;
+begin
+  Result := 0;
+  try
+    if FileTimeToLocalFiletime(Ft, lft) then
+      if FileTimeToSyStemTime(lft, st) then
+        Result := SystemTimeTODateTime(st);
+  except
+  end;
+end;
+
+function DateTimeToFileTime(Dt: TDateTime): TFileTime;
+var
+  St: TSystemTime;
+  lft: TFileTime;
+begin
+  try
+    DateTimeToSystemTime(Dt, ST);
+    if SystemTimeToFileTime(st, lft) then
+      LocalFileTimeToFileTime(lft, Result);
+  except
+    Result.dwLowDateTime := 0;
+    Result.dwHighDateTime := 0;
+  end;
+end;
+
+//====IE Cache==================================================================
+
+constructor TIECache.Create(AOwner: TComponent);
+begin
+  inherited;
+  Content.Buffer := nil;
+  ClearEntryValues;
+    // Identical to URLCACHE_FIND_DEFAULT_FILTER
+  FFilterOptions := [NORMAL_ENTRY, COOKIE_ENTRY, URLHISTORY_ENTRY,
+    TRACK_OFFLINE_ENTRY, TRACK_ONLINE_ENTRY, STICKY_ENTRY];
+end;
+
+function TIECache.getLibraryFound: Boolean;
+begin
+  Result := InitializeWinInet;
+end;
+
+function TIECache.RemoveUrlFromGroup(GroupID: INT64; URL: string): DWORD;
+begin
+  Result := S_OK;
+  if not InitializeWinInet then
+  begin
+    Result := ERROR_FILE_NOT_FOUND;
+    Exit;
+  end;
+  if not SetUrlCacheEntryGroup(Pchar(URL), INTERNET_CACHE_GROUP_REMOVE, GroupID, nil, 0, nil)
+    then
+    Result := GetLastError;
+end;
+
+function TIECache.AddUrlToGroup(GroupID: INT64; URL: string): DWORD;
+begin
+  Result := S_OK;
+  if not InitializeWinInet then
+  begin
+    Result := ERROR_FILE_NOT_FOUND;
+    Exit;
+  end;
+  if not SetUrlCacheEntryGroup(Pchar(URL), INTERNET_CACHE_GROUP_ADD, GroupID, nil, 0, nil)
+    then
+    Result := GetLastError;
+end;
+
+function TIECache.CopyFileToCache(URL, FileName: string; CacheType: DWORD; Expire: TDateTime): DWORD;
+var
+  FName: string;
+  Ext: string;
+  F: file of Byte;
+  Size: DWORD;
+begin
+  if not InitializeWinInet then
+  begin
+    Result := ERROR_FILE_NOT_FOUND;
+    Exit;
+  end;
+  if not FileExists(FileName) then
+  begin
+    Result := ERROR_FILE_NOT_FOUND;
+    Exit;
+  end;
+  AssignFile(F, FileName);
+  Reset(F);
+  Size := FileSize(F);
+  CloseFile(F);
+  Ext := ExtractFileExt(FileName);
+  Ext := Copy(Ext, 2, Length(ext));
+  Result := CreateEntry(URL, Ext, Size, FName);
+  if Result <> S_OK then
+    Exit;
+  if not windows.copyfile(PChar(FileName), Pchar(FName), False) then
+  begin
+    Result := GetLastError;
+    Exit;
+  end;
+  if not CommitUrlCacheEntry(Pchar(URL), Pchar(Fname), DateTimeToFileTime(Expire), DateTimeToFileTime(now), CacheType, nil, 0, Pchar(Ext), 0)
+    then
+    Result := GetLastError;
+end;
+
+function TIECache.CreateEntry(URL, FileExtension: string; ExpectedFileSize: DWORD; var FName: string): DWORD;
+var
+  PC: array[0..MAX_PATH] of Char;
+begin
+  PC := '';
+  Result := S_OK;
+  if not InitializeWinInet then
+  begin
+    Result := ERROR_FILE_NOT_FOUND;
+    Exit;
+  end;
+  if not CreateUrlCacheEntry(Pchar(URL), ExpectedFileSize, Pchar(FileExtension), PC, 0) then
+    Result := GetLastError
+  else
+    FName := StrPas(PC);
+end;
+
+function TIECache.GetGroupInfo(GroupID: INT64): DWORD;
+var
+  info: TInternetCacheGroupInfo;
+  dw: DWORD;
+begin
+  Result := S_OK;
+  if not InitializeWinInet then
+  begin
+    Result := ERROR_FILE_NOT_FOUND;
+    Exit;
+  end;
+  dw := SizeOf(TInternetCacheGroupInfo);
+  if not GetUrlCacheGroupAttribute(GroupID, 0, CACHEGROUP_ATTRIBUTE_GET_ALL, info, dw, nil)
+    then
+    Result := GetLastError
+  else
+    with GroupInfo do
+    begin
+      DiskUsage := info.dwDiskUsage;
+      DiskQuota := info.dwDiskQuota;
+      Move(info.dwOwnerStorage, OwnerStorage, Sizeof(OwnerStorage));
+      GroupName := string(info.szGroupName);
+    end;
+end;
+
+function TIECache.SetGroupInfo(GroupID: INT64): DWORD;
+var
+  info: TInternetCacheGroupInfo;
+begin
+  Result := S_OK;
+  if not InitializeWinInet then
+  begin
+    Result := ERROR_FILE_NOT_FOUND;
+    Exit;
+  end;
+  info.dwGroupSize := SizeOf(Info);
+  info.dwGroupFlags := CACHEGROUP_FLAG_NONPURGEABLE;
+  info.dwGroupType := CACHEGROUP_TYPE_INVALID;
+  info.dwDiskQuota := GroupInfo.DiskQuota;
+  move(GroupInfo.OwnerStorage, info.dwOwnerStorage, Sizeof(info.dwOwnerStorage));
+  move(GroupInfo.Groupname[1], info.szGroupName[0], length(GroupInfo.Groupname));
+  if not SetUrlCacheGroupAttribute(GroupID, 0, CACHEGROUP_READWRITE_MASK, info, nil) then
+    Result := GetLastError;
+end;
+
+function TIECache.CreateGroup: INT64;
+begin
+  if not InitializeWinInet then
+  begin
+    Result := ERROR_FILE_NOT_FOUND;
+    Exit;
+  end;
+  Result := CreateUrlCacheGroup(0, nil);
+end;
+
+function TIECache.DeleteGroup(GroupID: INT64): DWORD;
+begin
+  Result := S_OK;
+  if not InitializeWinInet then
+  begin
+    Result := ERROR_FILE_NOT_FOUND;
+    Exit;
+  end;
+  if not DeleteUrlCacheGroup(GroupID, CACHEGROUP_FLAG_FLUSHURL_ONDELETE, nil) then
+    Result := GetLastError;
+end;
+
+function TIECache.SetEntryInfo(URL: string): DWORD;
+var
+  Info: TInternetCacheEntryInfo;
+  FC: DWORD;
+begin
+  Result := S_OK;
+  if not InitializeWinInet then
+  begin
+    Result := ERROR_FILE_NOT_FOUND;
+    Exit;
+  end;
+  FC := CACHE_ENTRY_ATTRIBUTE_FC +
+    CACHE_ENTRY_HITRATE_FC +
+    CACHE_ENTRY_MODTIME_FC +
+    CACHE_ENTRY_EXPTIME_FC +
+    CACHE_ENTRY_ACCTIME_FC +
+    CACHE_ENTRY_SYNCTIME_FC +
+    CACHE_ENTRY_EXEMPT_DELTA_FC;
+  with Info do
+  begin
+    CacheEntryType := EntryInfo.EntryType;
+    dwHitRate := EntryInfo.HitRate;
+    LastModifiedTime := DateTimeToFileTime(EntryInfo.LastModifiedTime);
+    ExpireTime := DateTimeToFileTime(EntryInfo.ExpireTime);
+    LastAccessTime := DateTimeToFileTime(EntryInfo.LastAccessTime);
+    LastSyncTime := DateTimeToFileTime(EntryInfo.LastSyncTime);
+    dwReserved := EntryInfo.ExemptDelta;
+  end;
+  if not SetUrlCacheEntryInfo(Pchar(URL), Info, FC) then
+    Result := GetLastError;
+end;
+
+function TIECache.GetEntryInfo(URL: string): DWORD;
+var
+  D: DWORD;
+  T: PInternetCacheEntryInfo;
+begin
+  Result := S_OK;
+  if not InitializeWinInet then
+  begin
+    Result := ERROR_FILE_NOT_FOUND;
+    Exit;
+  end;
+  if (D <= 0) or (not GetUrlCacheEntryInfoEx(Pchar(URL), nil, @D, nil, nil, nil, 0)) then
+  begin
+    // (PChar(SysErrorMessage(GetLastError)));
+    // https objects are not stored in cache
+    Result := GetLastError();
+  end
+  else
+  begin
+    GetMem(T, D);
+    try
+      if GetUrlCacheEntryInfoEx(Pchar(URL), T, @D, nil, nil, nil, 0)
+        then
+        GetEntryValues(t)
+      else
+        Result := GetLastError;
+    finally
+      FreeMem(T, D);
+    end;
+  end;
+end;
+
+function TIECache.GetEntryContent(URL: string): DWORD;
+var
+  HR: THandle;
+  D: Cardinal;
+  T: PInternetCacheEntryInfo;
+begin
+  Result := S_OK;
+  if not InitializeWinInet then
+  begin
+    Result := ERROR_FILE_NOT_FOUND;
+    Exit;
+  end;
+  D := 0;
+  T := nil;
+  RetrieveUrlCacheEntryStream(PChar(URL), T^, D, TRUE, 0);
+  Getmem(T, D);
+  try
+    HR := THandle(RetrieveUrlCacheEntryStream(PChar(URL), T^, D, TRUE, 0));
+    if HR <> 0 then
+    begin
+      Content.BufferLength := T^.dwSizeLow + 1;
+      GetEntryValues(T);
+      Getmem(Content.Buffer, Content.BufferLength);
+      Fillchar(Content.Buffer^, Content.BufferLength, #0);
+      if not ReadUrlCacheEntryStream(Hr, 0, Content.Buffer, T^.DwSizeLow, 0)
+        then
+        Result := GetLastError;
+    end;
+  finally
+    FreeMem(T, D);
+  end;
+  UnLockUrlCacheEntryStream(HR, 0);
+end;
+
+function TIECache.FindNextGroup(var GroupID: Int64): BOOL;
+begin
+  if not InitializeWinInet then
+  begin
+    Result := False;
+    Exit;
+  end;
+  Result := FindNextUrlCacheGroup(GrpHandle, GroupID, nil);
+  GetGroupInfo(GroupID);
+end;
+
+function TIECache.FindFirstGroup(var GroupID: Int64): DWORD;
+begin
+  if not InitializeWinInet then
+  begin
+    Result := ERROR_FILE_NOT_FOUND;
+    Exit;
+  end;
+  GrpHandle := FindFirstUrlCacheGroup(0, 0, nil, 0, GroupID, nil);
+  if GrpHandle <> 0 then
+    Result := S_OK
+  else
+    Result := GetLastError;
+  if Result = S_OK then
+    GetGroupInfo(GroupID);
+end;
+
+function TIECache.RetrieveGroups: DWORD;
+var
+  GroupID: INT64;
+  Res: DWORD;
+  NewGroup, Cancel: Boolean;
+begin
+  Result := S_OK;
+  if not InitializeWinInet then
+  begin
+    Result := ERROR_FILE_NOT_FOUND;
+    Exit;
+  end;
+  Cancel := False;
+  NewGroup := True;
+  Res := FindFirstGroup(GroupID);
+  if Res = S_OK then
+  begin
+    GetGroupInfo(GroupID);
+    if Assigned(FOngroup) then
+      FOnGroup(self, GroupID, FCancel);
+    while not Cancel and NewGroup do
+    begin
+      NewGroup := FindNextGroup(GroupID);
+      GetGroupInfo(GroupID);
+      if Assigned(FOngroup) and NewGroup then
+        FOnGroup(self, GroupID, Cancel);
+    end;
+  end
+  else
+    Result := GetLastError;
+end;
+
+function TIECache.DeleteEntry(URL: string): DWORD;
+begin
+  Result := S_OK;
+  if not InitializeWinInet then Exit;
+  if not DeleteUrlCacheEntry(PChar(URL)) then
+    Result := GetLastError
+  else
+    ClearEntryValues;
+end;
+
+procedure TIECache.ClearAllEntries;
+var
+  HR: DWord;
+begin
+  if not InitializeWinInet then Exit;
+  if FindFirstEntry(0) = S_OK then
+  begin
+    repeat
+      DeleteEntry(EntryInfo.SourceUrlName);
+      HR := FindNextEntry;
+    until HR = ERROR_NO_MORE_ITEMS;
+  end;
+  FindCloseUrlCache(H);
+end;
+
+procedure TIECache.ClearEntryValues;
+begin
+  if not InitializeWinInet then Exit;
+  Content.Buffer := nil;
+  Content.BufferLength := 0;
+  with EntryInfo do
+  begin
+    SourceUrlName := '';
+    LocalFileName := '';
+    EntryType := 0;
+    UseCount := 0;
+    Hitrate := 0;
+    LastModifiedTime := 0;
+    ExpireTime := 0;
+    LastAccessTime := 0;
+    LastSyncTime := 0;
+    FileExtension := '';
+    FSize := 0;
+    HeaderInfo := '';
+    ExemptDelta := 0;
+  end;
+end;
+
+procedure TIECache.GetEntryValues(Info: PInternetCacheEntryInfo);
+begin
+  if not InitializeWinInet then Exit;
+  with entryInfo do
+  begin
+    SourceUrlName := info^.lpszSourceUrlName;
+    LocalFileName := info^.lpszLocalFileName;
+    EntryType := info^.CacheEntryType;
+    UseCount := info^.dwUseCount;
+    Hitrate := info^.dwHitRate;
+    LastModifiedTime := FileTimeToDateTime(info^.LastModifiedTime);
+    ExpireTime := FileTimeToDateTime(info^.ExpireTime);
+    LastAccessTime := FileTimeToDateTime(info^.LastAccessTime);
+    LastSyncTime := FileTimeToDateTime(info^.LastSyncTime);
+    FileExtension := info^.lpszFileExtension;
+    FSize := (info^.dwSizeHigh shl 32) + info^.dwSizeLow;
+    HeaderInfo := StrPas(PChar(info^.lpHeaderInfo));
+    ExemptDelta := info^.dwReserved;
+  end;
+end;
+
+function TIECache.FindFirstEntry(GroupID: INT64): DWORD;
+const
+  Pattern: array[TSearchPattern] of PChar = (nil, 'Cookie:', 'Visited:', '');
+var
+  T: PInternetCacheEntryInfo;
+  D: DWORD;
+begin
+  Result := S_OK;
+  if not InitializeWinInet then
+  begin
+    Result := ERROR_FILE_NOT_FOUND;
+    Exit;
+  end;
+  H := 0;
+  D := 0;
+  FindFirstUrlCacheEntryEx(Pattern[SearchPattern], 0, FFilterOptionValue, GroupID, nil, @D, nil, nil, nil);
+  GetMem(T, D);
+  try
+    H := FindFirstUrlCacheEntryEx(Pattern[SearchPattern], 0, FFilterOptionValue, GroupID, T, @D, nil, nil, nil);
+    if (H = 0) then
+      Result := GetLastError
+    else
+      GetEntryValues(T);
+  finally
+    FreeMem(T, D)
+  end;
+end;
+
+function TIECache.FindNextEntry: DWORD;
+var
+  T: PInternetCacheEntryInfo;
+  D: DWORD;
+begin
+  Result := S_OK;
+  if not InitializeWinInet then
+  begin
+    Result := ERROR_FILE_NOT_FOUND;
+    Exit;
+  end;
+  D := 0;
+  FindNextUrlCacheEntryEx(H, nil, @D, nil, nil, nil);
+  GetMem(T, D);
+  try
+    if not FindNextUrlCacheEntryEx(H, T, @D, nil, nil, nil)
+      then
+      Result := GetLastError
+    else
+      GetEntryValues(T);
+  finally
+    FreeMem(T, D)
+  end;
+end;
+
+procedure TIECache.RetrieveEntries(GroupID: INT64);
+var
+  HR: DWORD;
+begin
+  if not InitializeWinInet then Exit;
+  FCancel := False;
+  HR := FindFirstEntry(GroupID);
+  if (HR = S_OK) then
+  begin
+    if Assigned(FOnEntry) then
+      with EntryInfo do
+        FOnEntry(self, FCancel);
+    while (HR = S_OK) and not FCancel do
+    begin
+      HR := FindNextEntry;
+      if (HR = S_OK) and Assigned(FOnEntry) then
+        with EntryInfo do
+          FOnEntry(self, FCancel);
+    end;
+  end;
+  FindCloseUrlCache(H);
+end;
+
+function TIECache.CloseFindEntry: BOOL;
+begin
+  if not InitializeWinInet then
+  begin
+    Result := False;
+    Exit;
+  end;
+  Result := FindCloseUrlCache(H);
+end;
+
+procedure TIECache.SetFilterOptions(const Value: TFilterOptions);
+begin
+  FFilterOptions := Value;
+  UpdateFilterOptionValue;
+end;
+
+procedure TIECache.UpdateFilterOptionValue;
+const
+  AcardFilterOptionValues: array[TFilterOption] of Cardinal = (
+    $00000001, $00000002, $00000004, $00100000, $00200000,
+    $00000010, $00000020, $00010000, $00020000);
+var
+  i: TFilterOption;
+begin
+  FFilterOptionValue := 0;
+  if (FFilterOptions <> []) then
+    for i := Low(TFilterOption) to High(TFilterOption) do
+      if (i in FFilterOptions) then
+        Inc(FFilterOptionValue, AcardFilterOptionValues[i]);
+end;
+
+initialization
+  wininetLibFound := InitializeWinInet;
+
+end.
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IEDownload.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IEDownload.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IEDownload.pas	(revision 541)
@@ -0,0 +1,3024 @@
+//*************************************************************************
+//                                                                        *
+//                    IEDownload 2009                                     *
+//     IEDownload is a UrlMon wrapper with a build-in Callback            *
+//                                                                        *
+//                     Freeware Component                                 *
+//                       for Delphi by                                    *
+//                      Eran Bodankin                                     *
+//                   and Per Lindsø Larsen                                *
+//                                                                        *
+//                                                                        *
+//  Updated versions:                                                     *
+//               http://www.bsalsa.com                                    *
+//*************************************************************************
+{LICENSE:
+THIS SOFTWARE IS PROVIDED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND,
+EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE APPLIED
+WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
+YOU ASSUME THE ENTIRE RISK AS TO THE ACCURACY AND THE USE OF THE SOFTWARE
+AND ALL OTHER RISK ARISING OUT OF THE USE OR PERFORMANCE OF THIS SOFTWARE
+AND DOCUMENTATION. BSALSA PRODUCTIONS DOES NOT WARRANT THAT THE SOFTWARE IS ERROR-FREE
+OR WILL OPERATE WITHOUT INTERRUPTION. THE SOFTWARE IS NOT DESIGNED, INTENDED
+OR LICENSED FOR USE IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE CONTROLS,
+INCLUDING WITHOUT LIMITATION, THE DESIGN, CONSTRUCTION, MAINTENANCE OR
+OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS,
+AIR TRAFFIC CONTROL, AND LIFE SUPPORT OR WEAPONS SYSTEMS. BSALSA PRODUCTIONS SPECIFICALLY
+DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR SUCH PURPOSE.
+
+You may use, change or modify the component under 4 conditions:
+1. In your website, add a link to "http://www.bsalsa.com"
+2. In your application, add credits to "Embedded Web Browser"
+3. Mail me  (bsalsa@gmail.com) any code change in the unit
+   for the benefit of the other users.
+4. Please, consider donation in our web site!
+{*******************************************************************************}
+//$Id: IEDownload.pas,v 1.6 2009/02/25 11:56:31 bsalsa Exp $
+
+
+unit IEDownload;
+
+{To use the MSHTML, just remove the dot in the line below like {$DEFINE USE_MSHTML}{
+and re-compile the package.}
+{$DEFINE USE_MSHTML}
+
+interface
+
+{$I EWB.inc}
+
+
+uses
+  Dialogs, IEDownloadAcc, Controls, Shellapi, IEConst, ActiveX,
+  Contnrs, ExtCtrls, Windows, WinInet, UrlMon, Classes, SysUtils
+{$IFDEF DELPHI5}, FileCtrl{$ENDIF}{$IFDEF USE_MSHTML}, MSHTML_EWB{$ENDIF};
+
+const
+  WAIT_BSCB = WAIT_OBJECT_0 + 1;
+
+{$IFNDEF UNICODE}
+type
+  RawByteString = AnsiString;
+{$ENDIF UNICODE}
+
+type
+  TProxySettings = class(TPersistent)
+  private
+    FPort: Integer;
+    FServer: string;
+    FAutoLoadProxy: Boolean;
+  public
+    function SetProxy(const FullUserAgent, ProxyServer: string): Boolean;
+  published
+    property AutoLoadProxy: Boolean read FAutoLoadProxy write FAutoLoadProxy
+      default False;
+    property Port: Integer read FPort write FPort default 80;
+    property Server: string read FServer write FServer;
+  end;
+
+  TCustomIEDownload = class;
+
+  TInfoData = class(TList)
+  public
+    infAdditionalHeader: TStrings;
+    infBindF_Value: Cardinal;
+    infBindF2_Value: Cardinal;
+    infBindInfoF_Value: Cardinal;
+    infBindInfoOptions_Value: Cardinal;
+    infBindVerb_Value: Cardinal;
+    infCodePage_Value: Cardinal;
+    infCustomVerb: string;
+    infDescriptor: RawByteString;
+    infDownloadFolder: string;
+    infExtraInfo: string;
+    infFileExt: string;
+    infFileName: string;
+    infFileSize: Cardinal;
+    infHost: string;
+    infIndex: Integer;
+    infInheritHandle: Boolean;
+    infPassword: string;
+    infPostData: string;
+    infPutFileName: string;
+    infRangeBegin: Cardinal;
+    infRangeEnd: Integer;
+    infSender: TCustomIEDownload;
+    infTimeOut: Integer;
+    infUrl: PWideChar;
+    infUserAgent: string;
+    infUserName: string;
+    Sender: TObject;
+  public
+    constructor Create;
+    destructor Destroy; override;
+  end;
+
+  TThreadStatus = (tsRunning, tsSuspended, tsWaiting, tsTerminated);
+  TState = (sBusy, sReady, sStopped);
+
+  TBSCB = class(TThread,
+      IAuthenticate,
+{$IFDEF DELPHI6_UP}
+      IAuthenticateEx,
+      IMonikerProp,
+{$ENDIF}
+      IBindHost,
+      IWindowForBindingUI,
+      IBindStatusCallback,
+      IBindStatusCallbackEx,
+      ICodeInstall,
+      IHttpNegotiate,
+      IHttpNegotiate2,
+      IHttpNegotiate3,
+      IHTTPSecurity,
+{$IFDEF USE_MSHTML}
+      IPropertyNotifySink,
+{$ENDIF}
+      IServiceProvider,
+      IUnknown)
+
+  private
+    Frequency: Int64;
+    TimeStarted: Int64;
+    TimeNow: Int64;
+    FSender: TCustomIEDownload;
+    FBindCtx: IBindCtx;
+    FBSCBTimer: TTimer;
+    FDataSize: Integer;
+    FGlobalData: HGLOBAL;
+    FMoniker: IMoniker;
+    FRedirect: Boolean;
+    fOutStream: IStream;
+    FTimedOut: Boolean;
+    FTotalRead: Cardinal;
+    m_pPrevBSCB: IBindStatusCallback;
+    fsOutputFile: TFileStream;
+
+    function GetSerializedClientCertContext(out ppbCert: Byte; var pcbCert: DWORD): HResult; stdcall;
+{$IFDEF DELPHI6_UP}
+    function AuthenticateEx(out phwnd: HWND; out pszUsername,
+      pszPassword: LPWSTR; var pauthinfo: AUTHENTICATEINFO): HResult; stdcall;
+    {IMonikerProp Interface}
+    function PutProperty(mkp: MONIKERPROPERTY; val: LPCWSTR): HResult;
+      stdcall;
+{$ENDIF}
+
+    {IBindStatusCallbackEx}
+    function GetBindInfoEx(out grfBINDF: DWORD; var pbindinfo: BINDINFO;
+      out grfBINDF2: DWORD; out pdwReserved: DWORD): HResult; stdcall;
+
+
+{$IFDEF USE_MSHTML}
+    {IPropertyNotifySink Interface}
+    function OnChanged(dispId: TDispId): HRESULT; stdcall;
+    function OnRequestEdit(dispId: TDispId): HRESULT; stdcall;
+{$ENDIF}
+
+    {IHttpNegotiate2 Interface}
+    function GetRootSecurityId(var SecurityIdBuffer: TByteArray; var
+      BufferSize: DWord; dwReserved: DWORD): HResult; stdcall;
+
+    {IBindStatusCallback Interface}
+    function GetBindInfo(out grfBINDF: DWORD; var BindInfo: TBindInfo): HRESULT;
+      stdcall;
+    function GetPriority(out nPriority): HRESULT; stdcall;
+    function OnDataAvailable(grfBSCF: DWORD; dwSize: DWORD; FormatEtc:
+      PFormatEtc; stgmed: PStgMedium): HRESULT; stdcall;
+    function OnLowResource(Reserved: DWORD): HRESULT; stdcall;
+    function OnProgress(ulProgress, ulProgressMax, ulStatusCode: ULONG;
+      szStatusText: LPCWSTR): HRESULT; stdcall;
+    function OnObjectAvailable(const IID: TGUID; punk: IUnknown): HRESULT;
+      stdcall;
+    function OnStartBinding(dwReserved: DWORD; pib: IBinding): HRESULT; stdcall;
+    function OnStopBinding(HRESULT: HRESULT; szError: LPCWSTR): HRESULT;
+      stdcall;
+    function OnSecurityProblem(dwProblem: DWORD): HRESULT; stdcall;
+
+    {IHTTPNegotiate methods}
+    function OnResponse(dwResponseCode: DWORD; szResponseHeaders,
+      szRequestHeaders: LPCWSTR;
+      out szAdditionalRequestHeaders: LPWSTR): HRESULT; stdcall;
+    function BeginningTransaction(szURL, szHeaders: LPCWSTR; dwReserved: DWORD;
+      out szAdditionalHeaders: LPWSTR): HRESULT; stdcall;
+
+    {IUnknown Interface}
+    function QueryInterface(const IID: TGUID; out Obj): HRESULT; stdcall;
+    function _AddRef: Integer; stdcall;
+    function _Release: Integer; stdcall;
+
+    {IWindowForBindingUI methods}
+    function GetWindow(const GUIDReason: TGUID; out hwnd): HRESULT; stdcall;
+
+    {IAuthenticate Interface}
+    function Authenticate(var hwnd: HWnd; var szUserName, szPassWord: LPWSTR):
+      HResult; stdcall;
+
+    {ICodeInstall Interface}
+    function OnCodeInstallProblem(ulStatusCode: ULONG; szDestination, szSource:
+      LPCWSTR;
+      dwReserved: DWORD): HResult; stdcall;
+
+    {IBindHost Interface}
+    function CreateMoniker(szName: POLEStr; BC: IBindCtx; out mk: IMoniker;
+      dwReserved: DWORD): HResult; stdcall;
+    function MonikerBindToStorage(Mk: IMoniker; BC: IBindCtx; BSC:
+      IBindStatusCallback;
+      const iid: TGUID; out pvObj{$IFNDEF DELPHI8_UP}: Pointer{$ENDIF}): HResult; stdcall;
+    function MonikerBindToObject(Mk: IMoniker; BC: IBindCtx; BSC:
+      IBindStatusCallback;
+      const iid: TGUID; out pvObj{$IFNDEF DELPHI8_UP}: Pointer{$ENDIF}): HResult; stdcall;
+
+    {IServiceProvider Interface}
+    function QueryService(const rsid, iid: TGUID; out Obj): HRESULT; stdcall;
+
+    function GetBindResult(out clsidProtocol: TCLSID; out dwResult: DWORD;
+      out szResult: POLEStr): HRESULT;
+  private
+    function CheckCancelState: Integer;
+    procedure ClearAll;
+    procedure TimerExpired(Sender: TObject);
+    procedure DoConnect;
+    procedure DoDownloadToFile;
+    procedure DoDownloadToCache;
+    procedure ReceiveData;
+    procedure ReturnData;
+    procedure GetData(aSender: TCustomIEDownload);
+    procedure SetComponents;
+  protected
+    procedure Execute; override;
+    procedure Suspend;
+    procedure Terminate;
+    procedure Resume;
+
+  public
+    Stream: TStream;
+    Binding: IBinding;
+    BscbInfo: TInfoData;
+    ThreadStatus: TThreadStatus;
+    constructor Create(aSender: TCustomIEDownload; const pmk: IMoniker;
+      const pbc: IBindCtx; CreateSuspended: boolean);
+    destructor Destroy; override;
+    function QueryInfoFileName: HRESULT;
+    function DoSaveFileAs: string;
+    function QueryInfo(dwOption: DWORD; var Info: Cardinal): Boolean; overload;
+    function QueryInfo(dwOption: DWORD; var Info: string): Boolean; overload;
+    function QueryInfo(dwOption: DWORD; var Info: TDateTime): Boolean; overload;
+    function IsRunning: Boolean;
+    function GetDisplayName: PWideChar;
+    function GetFileNameFromUrl(Url: string): string;
+    function AbortBinding: Hresult;
+    function MkParseDisplayName(var DisplayName: PWideChar): IMoniker;
+  end;
+
+  TBSCBList = class(TObjectList) {by Jury Gerasimov}
+  private
+    function GetItem(Index: Integer): TBSCB;
+    procedure SetItem(Index: Integer; Value: TBSCB);
+  public
+    SessionList: TStrings;
+    constructor Create;
+    destructor Destroy; override;
+    property Items[Index: Integer]: TBSCB read GetItem write SetItem; default;
+    function byURL(Url: string): TBSCB;
+  end;
+
+  TSecurity = class(TPersistent)
+  private
+    FInheritHandle: Boolean;
+    FDescriptor: RawByteString;
+  published
+    property InheritHandle: boolean read FInheritHandle write FInheritHandle
+      default False;
+    property Descriptor: RawByteString read FDescriptor write FDescriptor;
+  end;
+
+  TRange = class(TPersistent)
+  private
+    FRangeBegin: Integer;
+    FRangeEnd: Integer;
+  published
+    property RangeBegin: Integer read FRangeBegin write FRangeBegin default 0;
+    property RangeEnd: Integer read FRangeEnd write FRangeEnd default 0;
+  end;
+    {http://msdn.microsoft.com/en-us/library/ms775130(VS.85).aspx}
+  TBindF = (Asynchronous, AsyncStorage, NoProgressiveRendering,
+    OfflineOperation, GetNewestVersion, NoWriteCache, NeedFile, PullData,
+    IgnoreSecurityProblem, Resynchronize, AllowHyperlink, No_UI,
+    SilentOperation, Pragma_No_Cache, GetClassObject, Reserved_1,
+    Free_Threaded, DirectReadIgnoreSize, HandleAsFormsSubmit,
+    GetFromCacheIfNetFail, FromUrlmon, FisrtTryCache, PreferDefaultHandler,
+    RestrictedSitesZone);
+  TBindF_Options = set of TBindF;
+  TBindF2 = (DisableBasicAuth, DisableAutoCookie, DisableRedirectUnlessSID,
+    ReadDataOver4GB, Reserved_2, Reserved_11);
+  TBindF2_Options = set of TBindF2;
+  TBindInfoF = (PostData, ExtraInfo);
+  TBindInfoF_Options = set of TBindInfoF;
+  TBindInfoOption = (UseBindInfoOptions, EnableUtf8, DisableUtf8, UseIE_Encoding,
+    BindToObject, SecurityOptOut, IgnoreMimeTextPlain, UseBindStrCredentials,
+    IgnoreHttp2HttpsRedirect, IgnoreSslErrOnce, WpcDownloadBlocked, WpcLoggingEnabled,
+    DisableAutoRedirect, ShDocVw_Reserved, AllowConnectMessages);
+  TBindInfoOptions_Options = set of TBindInfoOption;
+  TBindVerb = (Get, Post, Put, Custom);
+  TCodePageOption = (
+    Ansi, {default to ANSI code page}
+    OEM, {default to OEM  code page}
+    Mac, {default to MAC  code page}
+    ThreadsAnsi, {Current thread's ANSI code page}
+    Symbol, {Symbol code page (42)}
+    UTF7, {Translate using UTF-7}
+    UTF8); {Translate using UTF-8}
+
+  TDownloadTo = (dtNormal, dtDownloadToFile, dtDownloadToCache, dtMoniker);
+  TDownloadMethod = (dmStream, dmFile); {Set download to a file or astream}
+  TFileExistsOption = (feOverWrite, feSkip, feRename); {If file exsits then..}
+
+  TQueryInterfaceEvent = function(const IID: TGUID; out Obj): HRESULT of object;
+  TAuthenticateEvent = procedure(Sender: TBSCB; var tmpHWND: HWnd;
+    var szUserName, szPassWord: WideString; var Rezult: HRESULT) of object;
+{$IFDEF DELPHI6_UP}
+  TAuthenticateExEvent = procedure(Sender: TBSCB; var tmpHWND: HWnd;
+    var szUserName, szPassWord: WideString; pauthinfo: AUTHENTICATEINFO;
+    var Rezult: HRESULT) of object;
+  TOnPutPropertyEvent = function(Sender: TBSCB; mkp: MONIKERPROPERTY; val: LPCWSTR): HResult of object;
+{$ENDIF}
+
+  TOnCodeInstallProblemEvent = function(Sender: TBSCB; ulStatusCode: ULONG;
+    szDestination, szSource: LPCWSTR;
+    dwReserved: DWORD; stResult: string): HRESULT of object;
+  TStateChangeEvent = procedure(const State: TState) of object;
+  TErrorEvent = procedure(const ErrorCode: integer; const
+    stError: string) of object;
+  TOnConnectEvent = procedure(Sender: TBSCB; Res: HRESULT; stMessage: string) of
+    object;
+  TOnGetBindInfoEvent = function(Sender: TBSCB; out grfBINDF: DWORD; var
+    BindInfo: TBindInfo): HRESULT of object;
+  TOnGetBindInfoExEvent = function(Sender: TBSCB; out grfBINDF: DWORD; pbindinfo: BINDINFO;
+    out grfBINDF2: DWORD): HRESULT of object;
+  TRedirect = procedure(Sender: TBSCB; var AbortRedirect: boolean; const
+    FromUrl: string; const DestUrl: string) of object;
+  TBeginningTransactionEvent = function(Sender: TBSCB; szURL, szHeaders:
+    LPCWSTR; dwReserved: DWORD;
+    out szAdditionalHeaders: LPWSTR): HRESULT of object;
+  TOnResponseEvent = function(Sender: TBSCB; dwResponseCode: DWORD;
+    szResponseHeaders, szRequestHeaders: LPCWSTR;
+    out szAdditionalRequestHeaders: LPWSTR): HRESULT of object;
+  TOnSecurityProblemEvent = function(Sender: TBSCB; dwProblem: DWORD; Problem:
+    string): HRESULT of object;
+  TFileExistsEvent = procedure(var Action: TFileExistsOption; const aFileName:
+    WideString; var NewFileName: WideString) of object;
+  TOnProgressEvent = procedure(Sender: TBSCB; ulProgress, ulProgressMax,
+    ulStatusCode, FileSize: ULONG; szStatusText: LPCWSTR; Downloaded,
+    ElapsedTime, Speed, RemainingTime, Status, Percent: string) of object;
+  TOnDataAvailableEvent = procedure(Sender: TBSCB; var Buffer: PByte; var
+    BufLength: Cardinal) of object;
+  TOnDataAvailableInfoEvent = procedure(Sender: TBSCB; grfBSCF: DWORD;
+    Status: string {; FormatEtc: PFormatEtc}) of object;
+  TOnCompleteEvent = procedure(Sender: TCustomIEDownload; aFileNameAndPath, aFileName,
+    aFolderName, aExtension: WideString; const ActiveConnections: Integer) of object;
+  TOnStreamCompleteEvent = procedure(Sender: TBSCB; Stream: TStream; Result:
+    HRESULT) of object;
+  TOnResumeEvent = procedure(Sender: TBSCB; FileName: string; var Action:
+    Cardinal) of object;
+  TGetWindowEvent = function(Sender: TBSCB; const GUIDReason: TGUID; out hwnd:
+    LongWord): HRESULT of object;
+  TOnStartBindingEvent = procedure(Sender: TBSCB; var Cancel: Boolean; pib:
+    IBinding; const FileName: WideString; const FileSize: integer) of object;
+  TOnStopBindingEvent = procedure(Sender: TBSCB; HRESULT: HRESULT;
+    szError: LPCWSTR) of object;
+  TOnGetBindResultsEvent = procedure(var Sender: TBSCB; out clsidProtocol:
+    TCLSID; out dwResult: DWORD; out szResult: POLEStr;
+    const stResult: string) of object;
+  TOnGetClientCertEvent = function(var Sender: TBSCB; out ppbCert: Byte; var pcbCert: DWORD): HResult of object;
+  TTerminateEvent = procedure(const Sender: TBSCB; const ThreadId: Integer;
+    const aFileName: Widestring; var bCancel: Boolean) of object;
+  TOnGetRootSecurityIdEvent = function(var SecurityIdBuffer: TByteArray; var
+    BufferSize: DWord): HRESULT of object;
+  {IServiceProvider Interface}
+  TQueryServiceEvent = procedure(Sender: TObject; const rsid, iid: TGUID; var
+    Obj: IUnknown) of object;
+  TOnBeforeDownloadEvent = procedure(Sender: TInfoData; const Url, FileName,
+    FileExtension, Host, DownloadFolder: string; const FileSize: Integer; var Cancel: Boolean) of object;
+
+  TCustomIEDownload = class(TComponent)
+
+  private
+    FAbout: string;
+    bCancelAll: boolean;
+    bDone: boolean;
+    bRenamed: boolean;
+    BS: TBSCB;
+    FActiveConnections: integer;
+    FAdditionalHeader: TStrings;
+    FBeginningTransaction: TBeginningTransactionEvent;
+    FBindF: TBindF_Options;
+    FBindF_Value: Cardinal;
+    FBindF2: TBindF2_Options;
+    FBindF2_Value: Cardinal;
+    FBindInfoF: TBindInfoF_Options;
+    FBindInfoF_Value: Cardinal;
+    FBindInfoOption_: TBindInfoOptions_Options;
+    FBindInfoOption_Value: Cardinal;
+    FBindVerb: TBindVerb;
+    FBindVerb_Value: Cardinal;
+    FBusy: Boolean;
+    FCancel: Boolean;
+    FCodePageOption: TCodePageOption;
+    FCodePageValue: Cardinal;
+    FCustomVerb: string;
+    FDefaultProtocol: string;
+    FDefaultUrlFileName: string;
+    FDisplayName: PWideChar;
+    FdlCounter: integer;
+    FDownloadedFile: string;
+    FDownloadFolder: string;
+    FDownloadMethod: TDownloadMethod;
+    FDownloadTo: TDownloadTo;
+    FExtraInfo: string;
+    FFileExistsOption: TFileExistsOption;
+    FFileExtension: string;
+    FFileName: string;
+    FFileSize: ULong;
+    FFullUserAgent: string;
+    FGetWindow: TGetWindowEvent;
+    FHWnd: HWND;
+    FMimeType: string;
+    FOnAuthenticate: TAuthenticateEvent;
+{$IFDEF DELPHI6_UP}
+    FOnAuthenticateEx: TAuthenticateExEvent;
+    FOnPutProperty: TOnPutPropertyEvent;
+{$ENDIF}
+    FOnCodeInstallProblem: TOnCodeInstallProblemEvent;
+    FOnComplete: TOnCompleteEvent;
+    FOnConnect: TOnConnectEvent;
+    FOnBeforeDownload: TOnBeforeDownloadEvent;
+    FOnDataAvailable: TOnDataAvailableEvent;
+    FOnDataAvailableInfo: TOnDataAvailableInfoEvent;
+    FOnError: TErrorEvent;
+    FOnFileExists: TFileExistsEvent;
+    FOnGetBindInfo: TOnGetBindInfoEvent;
+    FOnGetBindInfoEx: TOnGetBindInfoExEvent;
+    FOnGetBindResults: TOnGetBindResultsEvent;
+    FOnGetClientCert: TOnGetClientCertEvent;
+    FOnGetRootSecurityId: TOnGetRootSecurityIdEvent;
+    FOnProgress: TOnProgressEvent;
+    FOnQueryInterface: TQueryInterfaceEvent;
+    FOnQueryService: TQueryServiceEvent;
+    FOnRedirect: TRedirect;
+    FOnResponse: TOnResponseEvent;
+    FOnResume: TOnResumeEvent;
+    FOnSecurityProblem: TOnSecurityProblemEvent;
+    FOnStartBinding: TOnStartBindingEvent;
+    FOnStateChange: TStateChangeEvent;
+    FOnStopBinding: TOnStopBindingEvent;
+    FOnStreamComplete: TOnStreamCompleteEvent;
+    FOnTerminate: TTerminateEvent;
+    FOpenDownloadFolder: Boolean;
+    FPassword: string;
+    FPostData: string;
+    FProxySettings: TProxySettings;
+    FPutFileName: string;
+    FRange: TRange;
+    FRefCount: Integer;
+    FSecurity: TSecurity;
+    FServerAddress: string;
+    FServerIP: string;
+    FStartTick: Integer;
+    FState: TState;
+    FTimeOut: Integer;
+    FUrl: string;
+    FUserAgent: string;
+    FUserName: string;
+    FUseSystemDownloadFolder: boolean;
+    FValidateUrl: boolean;
+    hProcess: THandle;
+    hStop: THandle;
+
+  private
+    function GoAction(const actUrl, actFileName, actDownloadFolder: string;
+      pmk: IMoniker; pbc: IBindCtx): boolean;
+    function GoInit(const inUrl: string; const inFileName: string;
+      const inDownloadFolder: string): boolean;
+    function SetDownloadFolder(const aDownloadFolder: string): string;
+    function SetHttpProtocol(const aUrl: string): string;
+    procedure DoUpdate;
+    procedure ExtractDataFromFile(const aFileName: string);
+    procedure PrepareForExit;
+    procedure PrepareForStart;
+    procedure SetAbout(Value: string);
+    procedure SetAdditionalHeader(const Value: TStrings);
+    procedure SetBeforeExit;
+    procedure SetBindF(const Value: TBindF_Options);
+    procedure SetBindF2(const Value: TBindF2_Options);
+    procedure SetBindInfoF(const Value: TBindInfoF_Options);
+    procedure SetBindInfoOption(const Value: TBindInfoOptions_Options);
+    procedure SetBindVerb(const Value: TBindVerb);
+    procedure SetCodePage(const Value: TCodePageOption);
+    procedure SetDefaultProtocol(const Value: string);
+    procedure SetDownloadMethod(const Value: TDownloadMethod);
+    procedure SetFileName(const Value: string);
+    procedure SetUserAgent;
+    procedure Update_BindF_Value;
+    procedure Update_BindF2_Value;
+    procedure Update_BindInfoF_Value;
+    procedure Update_BindInfoOptions_Value;
+
+  public
+    ItemsManager: TBSCBList;
+    constructor Create(AOwner: TComponent); override;
+    destructor Destroy; override;
+    function CheckFileExists(const aFileName: string): boolean;
+    function CodeInstallProblemToStr(const ulStatusCode: Integer): string;
+    function FormatSize(const Byte: Double): string;
+    function FormatTickToTime(const TickCount: Cardinal): string;
+    function IsAsyncMoniker(const pmk: IMoniker): HRESULT;
+    function IsSynchronous(iedInfo: TInfoData): boolean;
+    function IsUrlValid(const isUrl: string): Boolean;
+    function OpenFolder(const aFolderName: string): Boolean;
+    function ResponseCodeToStr(const dwResponse: Integer): string;
+    function SetFileNameFromUrl(const aUrl: string): string;
+    function URLDownloadToCacheFile(const aUrl: string): string;
+    function UrlDownloadToFile(const aUrl: string): HRESULT;
+    function WaitForProcess(var EventName: THandle; var aStartTick,
+      aTimeOut: Integer): Boolean;
+    function WideStringToLPOLESTR(const Source: string): POleStr;
+    procedure BeforeDestruction; override;
+    procedure Cancel(const Item: TBSCB); overload;
+    procedure Cancel; overload;
+    procedure Reset;
+    procedure CancelAll;
+    procedure Download(const pmk: IMoniker; const pbc: IBindCtx); overload;
+    procedure Go(const aUrl: string); overload;
+    procedure Go(const aUrl: string; const aFileName: string); overload;
+    procedure Go(const aUrl: string; const aFileName: string; const
+      aDownloadFolder: string); overload;
+    procedure GoList(const UrlsList: TStrings); overload;
+    procedure GoList(const UrlsList: TStrings; const FileNameList: TStrings);
+      overload;
+    procedure GoList(const UrlsList: TStrings; const FileNameList: TStrings;
+      const DownloadFolderList: TStrings); overload;
+    procedure Loaded; override;
+    procedure Resume;
+    procedure Suspend;
+
+  public
+    property ActiveConnections: integer read FActiveConnections;
+    property Busy: Boolean read FBusy;
+    property DisplayName: PWideChar read FDisplayName;
+    property DownloadedFile: string read FDownloadedFile;
+    property DownloadsCounter: integer read FdlCounter;
+    property FileExtension: string read FFileExtension;
+    property FileSize: ULong read FFileSize;
+    property MimeType: string read FMimeType;
+    property ServerAddress: string read FServerAddress;
+    property ServerIP: string read FServerIP;
+    property State: TState read FState;
+
+  published
+    property About: string read FAbout write SetAbout;
+    property AdditionalHeader: TStrings read FAdditionalHeader write
+      SetAdditionalHeader;
+    property BindF: TBindF_Options read FBindF write
+      SetBindF default [Asynchronous, AsyncStorage, PullData,
+      NoWriteCache, GetNewestVersion];
+    property BindF2: TBindF2_Options read FBindF2 write
+      SetBindF2 default [ReadDataOver4GB];
+    property BindInfoF: TBindInfoF_Options read FBindInfoF write
+      SetBindInfoF default [];
+    property BindVerb: TBindVerb read FBindVerb write
+      SetBindVerb default Get;
+    property BindInfoOptions: TBindInfoOptions_Options read FBindInfoOption_
+      write SetBindInfoOption default [UseBindInfoOptions, AllowConnectMessages];
+    property CodePage: TCodePageOption read FCodePageOption write
+      SetCodePage default Ansi;
+    property CustomVerb: string read FCustomVerb write FCustomVerb;
+    property DefaultProtocol: string read FDefaultProtocol write
+      SetDefaultProtocol;
+    property DefaultUrlFileName: string read FDefaultUrlFileName write
+      FDefaultUrlFileName;
+    property DownloadFolder: string read FDownloadFolder write
+      FDownloadFolder;
+    property DownloadMethod: TDownloadMethod read FDownloadMethod write
+      SetDownloadMethod default dmFile;
+    property ExtraInfo: string read FExtraInfo write FExtraInfo;
+    property FileExistsOption: TFileExistsOption read FFileExistsOption write
+      FFileExistsOption default feOverwrite;
+    property FileName: string read FFileName write SetFileName;
+    property OnAuthenticate: TAuthenticateEvent read FOnAuthenticate
+      write FOnAuthenticate;
+{$IFDEF DELPHI6_UP}
+    property OnAuthenticateEx: TAuthenticateExEvent read FOnAuthenticateEx
+      write FOnAuthenticateEx;
+    property OnPutProperty: TOnPutPropertyEvent read FOnPutProperty write FOnPutProperty;
+{$ENDIF}
+    property OnBeforeDownload: TOnBeforeDownloadEvent read FOnBeforeDownload write FOnBeforeDownload;
+    property OnBeginningTransaction: TBeginningTransactionEvent read
+      FBeginningTransaction write FBeginningTransaction;
+    property OnCodeInstallProblem: TOnCodeInstallProblemEvent read
+      FOnCodeInstallProblem write FOnCodeInstallProblem;
+    property OnDataAvailable: TOnDataAvailableEvent read
+      FOnDataAvailable write FOnDataAvailable;
+    property OnDataAvailableInfo: TOnDataAvailableInfoEvent read
+      FOnDataAvailableInfo write FOnDataAvailableInfo;
+    property OnConnect: TOnConnectEvent read FOnConnect write FOnConnect;
+    property OnComplete: TOnCompleteEvent read FOnComplete write FOnComplete;
+    property OnStreamComplete: TOnStreamCompleteEvent read
+      FOnStreamComplete write FOnStreamComplete;
+    property OnError: TErrorEvent read FOnError write FOnError;
+    property OnGetBindResults: TOnGetBindResultsEvent read
+      FOnGetBindResults write FOnGetBindResults;
+    property OnGetBindInfo: TOnGetBindInfoEvent read
+      FOnGetBindInfo write FOnGetBindInfo;
+    property OnGetBindInfoEx: TOnGetBindInfoExEvent read
+      FOnGetBindInfoEx write FOnGetBindInfoEx;
+    property OnGetSerializedClientCertContext: TOnGetClientCertEvent read FOnGetClientCert
+      write FOnGetClientCert;
+    property OnGetRootSecurityId: TOnGetRootSecurityIdEvent
+      read FOnGetRootSecurityId write FOnGetRootSecurityId;
+    property OnGetWindow: TGetWindowEvent read FGetWindow write
+      FGetWindow;
+    property OnFileExists: TFileExistsEvent read FOnFileExists write
+      FOnFileExists;
+    property OnProgress: TOnProgressEvent read FOnProgress write
+      FOnProgress;
+    property OnQueryInterface: TQueryInterfaceEvent read
+      FOnQueryInterface write FOnQueryInterface;
+    property OnQueryService: TQueryServiceEvent read FOnQueryService write
+      FOnQueryService;
+    property OnRedirect: TRedirect read FOnRedirect write FOnRedirect;
+    property OnResponse: TOnResponseEvent read FOnResponse
+      write FOnResponse;
+    property OnResume: TOnResumeEvent read FOnResume write FOnResume;
+    property OnSecurityProblem: TOnSecurityProblemEvent read FOnSecurityProblem
+      write FOnSecurityProblem;
+    property OnStartBinding: TOnStartBindingEvent read FOnStartBinding write
+      FOnStartBinding;
+    property OnStateChange: TStateChangeEvent read FOnStateChange write
+      FOnStateChange;
+    property OnTerminate: TTerminateEvent read FOnTerminate write FOnTerminate;
+    property OnStopBinding: TOnStopBindingEvent read FOnStopBinding
+      write FOnStopBinding;
+    property OpenDownloadFolder: Boolean read FOpenDownloadFolder write
+      FOpenDownloadFolder default False;
+    property Password: string read FPassword write FPassword;
+    property PostData: string read FPostData write FPostData;
+    property ProxySettings: TProxySettings read FProxySettings write
+      FProxySettings;
+    property PutFileName: string read FPutFileName write FPutFileName;
+    property Range: TRange read FRange write FRange;
+    property Security: TSecurity read FSecurity write FSecurity;
+    property TimeOut: Integer read FTimeOut write FTimeOut default 0;
+    property Url: string read FUrl write FUrl;
+    property UserAgent: string read FUserAgent write FUserAgent;
+    property UserName: string read FUserName write FUserName;
+    property UseSystemDownloadFolder: boolean read FUseSystemDownloadFolder write
+      FUseSystemDownloadFolder default False;
+    property ValidateUrl: boolean read FValidateUrl write FValidateUrl default
+      False;
+  end;
+
+  TIEDownload = class(TCustomIEDownload)
+  published
+  end;
+
+var
+  ThreadStatusDesc: array[TThreadStatus] of string = ('Running', 'Suspended',
+    'Waiting', 'Terminated');
+
+implementation
+
+uses
+  IEDownloadStrings, EwbUrl, IEDownloadTools, Forms
+{$IFDEF DELPHI6_UP}, StrUtils{$ENDIF};
+
+
+{TInfoData---------------------------------------------------------------------}
+
+constructor TInfoData.Create;
+begin
+  inherited Create;
+  InfAdditionalHeader := TStringList.Create;
+end;
+
+destructor TInfoData.Destroy;
+begin {Cleaning out and free our resources}
+  Clear;
+  Remove(Sender);
+  Extract(Self);
+  {Its just to make sure we cleanly remove the IEDownload as an object}
+  Remove(infSender);
+  Extract(Self);
+  if Assigned(infAdditionalHeader) then
+    FreeAndNil(infAdditionalHeader);
+  inherited;
+end;
+{End of TInfoData--------------------------------------------------------------}
+
+{Proxy Settings-----------------------------------------------------------------}
+
+function TProxySettings.SetProxy(const FullUserAgent, ProxyServer: string):
+  Boolean; //mladen
+var
+  intList: INTERNET_PER_CONN_OPTION_List;
+  dwBufSize: DWORD;
+  hInternet: Pointer;
+  intOptions: array[1..3] of INTERNET_PER_CONN_OPTION;
+begin
+  Result := False;
+  dwBufSize := SizeOf(intList);
+  intList.dwSize := SizeOf(intList);
+  intList.pszConnection := nil;
+  intList.dwOptionCount := High(intOptions);
+  // the highest index of the array (in this case 3)
+  intOptions[1].dwOption := INTERNET_PER_CONN_FLAGS;
+  intOptions[1].Value.dwValue := PROXY_TYPE_DIRECT or PROXY_TYPE_PROXY;
+  intOptions[2].dwOption := INTERNET_PER_CONN_PROXY_SERVER;
+  intOptions[2].Value.pszValue := PChar(ProxyServer);
+  intOptions[3].dwOption := INTERNET_PER_CONN_PROXY_BYPASS;
+  intOptions[3].Value.pszValue := '<local>';
+  intList.intOptions := @intOptions;
+  hInternet := InternetOpen(PChar(FullUserAgent), INTERNET_OPEN_TYPE_DIRECT,
+    nil, nil, 0);
+  if hInternet <> nil then
+  try
+    Result := InternetSetOption(hInternet,
+      INTERNET_OPTION_PER_CONNECTION_OPTION,
+      @intList, dwBufSize);
+    Result := Result and InternetSetOption(hInternet, INTERNET_OPTION_REFRESH,
+      nil, 0);
+  finally
+    InternetCloseHandle(hInternet)
+  end;
+end;
+{End of Proxy Settings-----------------------------------------------------------}
+
+{$IFDEF USE_MSHTML}
+
+function TBSCB.OnChanged(dispId: TDispId): HRESULT;
+var
+  DP: TDispParams;
+  vResult: OLEVariant;
+  Doc: IHTMLDocument2;
+begin
+  if (DISPID_READYSTATE = DispId) then
+    if Succeeded((Doc as IHTMLDocument2).Invoke(DISPId_READYSTATE, GUId_null,
+      LOCALE_System_DEFAULT, DISPATCH_PROPERTYGET, DP, @vResult, nil, nil)) then
+      if Integer(vResult) = READYSTATE_COMPLETE then
+        PostThreadMessage(GetCurrentThreadId, WM_USER_STARTWALKING, 0, 0);
+  Result := S_OK;
+end;
+
+function TBSCB.OnRequestEdit(dispId: TDispId): HRESULT;
+begin
+  Result := E_NOTIMPL;
+end;
+{$ENDIF}
+{Callback procedure--------------------------------------------------------------}
+{IAuthenticate Interface
+Provides the URL moniker with information to authenticate the user}
+
+function TBSCB.Authenticate(var hwnd: HWnd; var szUserName, szPassWord: LPWSTR):
+  HResult;
+{Provides the URL moniker with information to authenticate the user.
+S_OK Authentication was successful.
+E_ACCESSDENIED Authentication failed.
+E_INVALIDARG One or more parameters are invalid. }
+var
+  aUser, aPwd: WideString;
+begin
+  Result := S_OK;
+  hwnd := FSender.FHWnd;
+  aUser := EmptyStr;
+  aPwd := EmptyStr;
+  if Assigned(FSender.FOnAuthenticate) then
+    FSender.FOnAuthenticate(Self, hwnd, aUser, aPwd, Result);
+  if aUser <> EmptyStr then
+    szUserName := WidestringToLPOLESTR(aUser)
+  else
+    szUserName := nil;
+  if aPwd <> EmptyStr then
+    szPassWord := WidestringToLPOLESTR(aPwd)
+  else
+    szPassWord := nil;
+end;
+
+{IHttpNegotiate Interface
+Implemented by a client application to provide support for HTTP negotiations}
+
+function TBSCB.BeginningTransaction(szURL, szHeaders: LPCWSTR; dwReserved:
+  DWORD; out szAdditionalHeaders: LPWSTR): HRESULT;
+{IHttpNegotiate::BeginningTransaction Method
+Notifies the client of the URL that is being bound to at the beginning of an HTTP transaction.
+S_OK The HTTP transaction completed successfully and any additional headers specified have been appended.
+E_ABORT The HTTP transaction has been terminated.
+E_INVALIDARG A parameter is invalid.}
+var
+  sr: TSearchRec;
+  Action: Cardinal;
+  tmpNewName: WideString;
+  NewHeaders: string;
+  Size: Longint;
+  x, Len: Integer;
+  ActExists: TFileExistsOption;
+begin
+  ActExists := FSender.FFileExistsOption;
+  tmpNewName := '';
+  dwReserved := 0;
+  if (FSender.FCancel) and (Binding <> nil) then
+  begin
+    Result := E_ABORT;
+    binding.Abort;
+    Exit;
+  end;
+  NewHeaders := FSender.FFullUserAgent + #13 + #10;
+  if (BscbInfo.infFileName <> EmptyStr) then
+  begin
+    if FindFirst(BscbInfo.infFileName, faAnyFile, sr) = 0 then
+    begin
+      Size := sr.Size;
+      FindClose(sr);
+      BscbInfo.infRangeEnd := 0;
+      Action := 0;
+
+      {IBinding still do not support resume (By MS 4.2009)}
+      if Assigned(FSender.FOnResume) then
+      begin
+        FSender.FOnResume(Self, BscbInfo.infFileName, Action);
+        BscbInfo.infRangeBegin := Size;
+      end;
+
+      if Assigned(FSender.FOnFileExists) then
+        FSender.FOnFileExists(ActExists, BscbInfo.infFileName, tmpNewName);
+
+      if tmpNewName = EmptyStr then
+        tmpNewName := TimeToStr(now) + '_' + BscbInfo.infFileName;
+      case ActExists of
+        feOverwrite:
+          begin
+            Binding.Resume;
+            if Assigned(FSender.FOnResume) then
+              FSender.FOnResume(Self, BscbInfo.infFileName, Action);
+            BscbInfo.infRangeBegin := 0
+          end;
+        feSkip:
+          begin
+            Result := E_ABORT;
+            Binding.Abort;
+            Exit;
+          end;
+        feRename: BscbInfo.infFileName := tmpNewName;
+      end
+    end;
+  end
+  else {Download is starting}
+  begin {Set the range to 0 which means start download from scratch}
+    BscbInfo.infRangeBegin := 0;
+    BscbInfo.infRangeEnd := 0;
+  end;
+
+  if ((BscbInfo.infRangeBegin <> 0) or (BscbInfo.infRangeEnd <> 0)) then
+  begin {We set the new headers to send to the server}
+    NewHeaders := NewHeaders + 'Range: bytes=' +
+      IntToStr(BscbInfo.infRangeBegin) + '-';
+    if BscbInfo.infRangeEnd <> 0 then
+      NewHeaders := NewHeaders + IntToStr(BscbInfo.infRangeEnd) + #13#10
+    else
+      NewHeaders := NewHeaders + #13#10;
+  end;
+  if (BscbInfo.infAdditionalHeader.Text <> EmptyStr) then
+    for x := 0 to BscbInfo.infAdditionalHeader.Count - 1 do
+      NewHeaders := NewHeaders + BscbInfo.infAdditionalHeader[x] + #13#10;
+  Len := Length(NewHeaders);
+  szAdditionalHeaders := CoTaskMemAlloc((Len + 1) * SizeOf(WideChar));
+  StringToWideChar(NewHeaders, szAdditionalHeaders, Len + 1);
+  {We will post the event}
+  if Assigned(FSender.FBeginningTransaction) then
+    Result := FSender.FBeginningTransaction(Self, szURL, szHeaders,
+      dwReserved, szAdditionalHeaders)
+  else
+    Result := S_OK;
+  FBSCBTimer.Enabled := True; {Timeout timer}
+  FTimedOut := False;
+  Self._Release;
+end;
+
+function TBSCB.OnResponse(dwResponseCode: DWORD; szResponseHeaders,
+  szRequestHeaders: LPCWSTR; out szAdditionalRequestHeaders: LPWSTR): HRESULT;
+{Enables the client of a bind operation to examine the response headers,
+ optionally terminate the bind operation, and add HTTP headers to a
+ request before resending the request.
+Returns one of the following values.
+S_OK The operation completed successfully.
+E_ABORT Terminate the HTTP transaction.
+E_INVALIDARG The parameter is invalid.}
+var
+  Len: Cardinal;
+  S: string;
+  tmpName: string;
+begin
+  if (FSender.FCancel) and (Binding <> nil) then
+  begin
+    Result := E_ABORT;
+    binding.Abort;
+    Exit;
+  end;
+  Result := S_OK;
+  if (QueryInfo(HTTP_QUERY_CUSTOM, Len) and (Len = 0)) {file size = 0}
+    or (QueryInfo(HTTP_QUERY_CONTENT_LENGTH, Len) and (Len = 0)) {file size = 0}
+    or (dwResponseCode >= 400) then {An Error}
+  begin
+    Result := E_ABORT;
+    if Assigned(FSender.FOnError) then
+      FSender.FOnError(dwResponseCode,
+        ResponseCodeToStr(dwResponseCode));
+  end;
+  begin {Publish the event}
+    if Assigned(FSender.FOnResponse) then
+      Result := FSender.FOnResponse(Self, dwResponseCode,
+        szResponseHeaders, szRequestHeaders, szAdditionalRequestHeaders);
+    if (FSender.FDownloadTo = dtDownloadToFile)
+      or (FSender.FDownloadTo = dtDownloadToCache) then
+    begin
+      Result := S_OK;
+      Exit;
+    end;
+
+    if (BscbInfo.infRangeBegin <> 0) and (BscbInfo.infFileName <> EmptyStr) then
+    begin {Retrieves the types of range requests that are accepted for a resource.}
+      QueryInfo(HTTP_QUERY_ACCEPT_RANGES, S);
+      {'Partial Content'}
+      if (S = 'bytes') or (dwResponseCode = 206) then
+      begin {Create an output file as a stream back from where we finished}
+        tmpName := DoSaveFileAs;
+        if tmpName <> EmptyStr then
+        begin
+          fsOutputFile := TFileStream.Create(tmpName, fmOpenReadWrite);
+          fsOutputFile.Seek(0, soFromEnd);
+        end;
+      end
+      else
+      begin {'Create an output file as a stream from range begin 0'}
+        // not needed
+        tmpName := DoSaveFileAs;
+        if tmpName <> EmptyStr then
+        begin
+          fsOutputFile := TFileStream.Create(tmpName, fmCreate);
+          BscbInfo.infRangeBegin := 0;
+        end;
+      end;
+    end
+    else
+    begin {Here we create the file}
+      if (FSender.FDownloadMethod = dmFile) then
+      begin
+        tmpName := DoSaveFileAs;
+        if tmpName <> EmptyStr then
+        begin
+          fsOutputFile := TFileStream.Create(tmpName, fmCreate);
+          fsOutputFile.Seek(0, soFromBeginning);
+        end;
+      end;
+    end
+  end;
+end;
+
+{IHttpNegotiate2 Interface}
+
+function TBSCB.GetRootSecurityId(var SecurityIdBuffer: TByteArray; var
+  BufferSize: DWord; dwReserved: DWORD): HResult;
+begin {Gets a root security ID.}
+  if Assigned(FSender.FOnGetRootSecurityId) then
+    Result := FSender.FOnGetRootSecurityId(SecurityIdBuffer, BufferSize)
+  else
+    Result := E_NOTIMPL;
+end;
+
+function TBSCB.GetBindInfoEx(out grfBINDF: DWORD; var pbindinfo: BINDINFO;
+  out grfBINDF2: DWORD; out pdwReserved: DWORD): HResult;
+var
+  PutFile: TFileStream;
+  Len: Integer;
+begin
+  pdwReserved := 0;
+  if Assigned(FSender.FOnGetBindInfoEx) then
+    FSender.FOnGetBindInfoEx(Self, grfBINDF, pbindinfo, grfBINDF2);
+  grfBINDF := BscbInfo.infBindF_Value; {Insert our options.}
+  grfBINDF2 := BscbInfo.infBindF2_Value; {Insert our options 2.}
+  with pbindinfo do {Lets play with our options.}
+  begin
+    cbSize := SizeOf(TBindInfo);
+    if FRedirect then
+    begin {Set method to get in case of redirect}
+      dwBindVerb := BINDVERB_GET;
+    end
+    else {Insert the options}
+      dwBindVerb := BscbInfo.infBindVerb_Value;
+    grfBindInfoF := BscbInfo.infBindInfoF_Value;
+    dwCodePage := BscbInfo.infCodePage_Value;
+    {Insert security arguments}
+    with SecurityAttributes do
+    begin
+      nLength := SizeOf(TSecurityAttributes);
+      bInheritHandle := BscbInfo.infInheritHandle;
+      if BscbInfo.infDescriptor <> '' then
+        lpSecurityDescriptor := PAnsiChar(BscbInfo.infDescriptor)
+      else
+        lpSecurityDescriptor := nil;
+    end;
+    {Insert Extra Info}
+    if BscbInfo.infExtraInfo <> EmptyStr then
+    begin
+      Len := Length(BscbInfo.infExtraInfo);
+      szExtraInfo := CoTaskMemAlloc((Len + 1) * SizeOf(WideChar));
+      StringToWideChar(BscbInfo.infExtraInfo, szExtraInfo, Len + 1);
+    end
+    else
+      szExtraInfo := nil;
+    case BscbInfo.infBindVerb_Value of
+      {Now we will set by our BindVerbOption}
+      BINDVERB_PUT: {Perform an HTTP PUT operation. The data to put should be
+        specified in the stgmedData member of the BINDINFO structure.}
+        if BscbInfo.infPutFileName <> EmptyStr then
+        begin
+          PutFile := TFileStream.Create(BscbInfo.infPutFileName,
+            fmOpenRead);
+          try
+            PutFile.Seek(0, 0);
+            FGlobalData := GlobalAlloc(GPTR, PutFile.Size);
+            FDataSize := PutFile.Size;
+            PutFile.ReadBuffer(Pointer(FGlobalData)^, PutFile.Size);
+          finally
+            PutFile.Free;
+          end;
+        end;
+      BINDVERB_POST: {Perform an HTTP POST operation.
+        The data to be posted should be specified in the stgmedData
+        member of the BINDINFO structure.}
+        if BscbInfo.infPostData <> EmptyStr then
+        begin
+          FGlobalData := GlobalAlloc(GPTR, Length(BscbInfo.infPostData)
+            + 1);
+          FDataSize := Length(BscbInfo.infPostData) + 1;
+          Move(BscbInfo.infPostData[1], Pointer(FGlobalData)^,
+            Length(BscbInfo.infPostData));
+        end;
+      BINDVERB_CUSTOM: {Perform a custom operation that is protocol-specific
+        See the szCustomVerb member of the BINDINFO structure.
+        The data to be used in the custom operation should be specified
+        in the stgmedData structure.}
+        if (BscbInfo.infCustomVerb <> EmptyStr) then
+        begin
+          Len := Length(BscbInfo.infCustomVerb);
+          szCustomVerb := CoTaskMemAlloc((Len + 1) * SizeOf(WideChar));
+          StringToWideChar(BscbInfo.infCustomVerb, szCustomVerb, Len + 1);
+        end
+        else {BINDVERB_GET so no need to play arround.}
+          szCustomVerb := nil;
+    end;
+    FillChar(stgmedData, 0, SizeOf(STGMEDIUM));
+    cbStgmedData := FDataSize;
+    with StgmedData do
+    begin
+      if dwBindVerb = BINDVERB_GET then
+        {The stgmedData member of the BINDINFO
+        structure should be set to TYMED_NULL for the GET operation}
+        Tymed := TYMED_NULL
+      else
+        Tymed := TYMED_HGLOBAL;
+      {this is the only medium urlmon supports right now}
+      hGlobal := FGlobalData;
+      IUnknown(unkForRelease) := Self; {Set the IUnknown interface}
+    end;
+  end;
+  Result := S_OK;
+end;
+
+{IBindStatusCallback Interface}
+{Accepts information on an asynchronous bind operation.}
+
+function TBSCB.GetBindInfo(out grfBINDF: DWORD; var BindInfo: TBindInfo):
+  HRESULT;
+{Provides information about how the bind operation is handled when
+ it is called by an asynchronous moniker.
+Returns S_OK if this is successful or E_INVALIDARG if one or more parameters are invalid.}
+var
+  PutFile: TFileStream;
+  Len: Integer;
+begin
+  grfBINDF := BscbInfo.infBindF_Value; {Insert our options.}
+  with BindInfo do {Lets play with our options.}
+  begin
+    cbSize := SizeOf(TBindInfo);
+    if FRedirect then
+    begin {Set method to get in case of redirect}
+      dwBindVerb := BINDVERB_GET;
+    end
+    else {Insert the options}
+      dwBindVerb := BscbInfo.infBindVerb_Value;
+    grfBindInfoF := BscbInfo.infBindInfoF_Value;
+    dwCodePage := BscbInfo.infCodePage_Value;
+    {Insert security arguments}
+    with SecurityAttributes do
+    begin
+      nLength := SizeOf(TSecurityAttributes);
+      bInheritHandle := BscbInfo.infInheritHandle;
+      if BscbInfo.infDescriptor <> '' then
+        lpSecurityDescriptor := PAnsiChar(BscbInfo.infDescriptor)
+      else
+        lpSecurityDescriptor := nil;
+    end;
+    {Insert Extra Info}
+    if BscbInfo.infExtraInfo <> EmptyStr then
+    begin
+      Len := Length(BscbInfo.infExtraInfo);
+      szExtraInfo := CoTaskMemAlloc((Len + 1) * SizeOf(WideChar));
+      StringToWideChar(BscbInfo.infExtraInfo, szExtraInfo, Len + 1);
+    end
+    else
+      szExtraInfo := nil;
+    case BscbInfo.infBindVerb_Value of
+      {Now we will set by our BindVerbOption}
+      BINDVERB_PUT: {Perform an HTTP PUT operation. The data to put should be
+        specified in the stgmedData member of the BINDINFO structure.}
+        if BscbInfo.infPutFileName <> EmptyStr then
+        begin {Create a process to put a file}
+          PutFile := TFileStream.Create(BscbInfo.infPutFileName,
+            fmOpenRead);
+          try
+            PutFile.Seek(0, 0);
+            FGlobalData := GlobalAlloc(GPTR, PutFile.Size);
+            FDataSize := PutFile.Size;
+            PutFile.ReadBuffer(Pointer(FGlobalData)^, PutFile.Size);
+          finally
+            PutFile.Free;
+          end;
+        end;
+
+      BINDVERB_POST: {Perform an HTTP POST operation.
+        The data to be posted should be specified in the stgmedData
+        member of the BINDINFO structure.}
+        if BscbInfo.infPostData <> EmptyStr then
+        begin
+          FGlobalData := GlobalAlloc(GPTR, Length(BscbInfo.infPostData)
+            + 1);
+          FDataSize := Length(BscbInfo.infPostData) + 1;
+          Move(BscbInfo.infPostData[1], Pointer(FGlobalData)^,
+            Length(BscbInfo.infPostData));
+        end;
+      BINDVERB_CUSTOM: {Perform a custom operation that is protocol-specific
+        See the szCustomVerb member of the BINDINFO structure.
+        The data to be used in the custom operation should be specified
+        in the stgmedData structure.}
+        if (BscbInfo.infCustomVerb <> EmptyStr) then
+        begin
+          Len := Length(BscbInfo.infCustomVerb);
+          szCustomVerb := CoTaskMemAlloc((Len + 1) * SizeOf(WideChar));
+          StringToWideChar(BscbInfo.infCustomVerb, szCustomVerb, Len + 1);
+        end
+        else {BINDVERB_GET so no need to play arround.}
+          szCustomVerb := nil;
+    end;
+    FillChar(stgmedData, 0, SizeOf(STGMEDIUM));
+    cbStgmedData := FDataSize;
+    with StgmedData do
+    begin
+      if dwBindVerb = BINDVERB_GET then
+        {The stgmedData member of the BINDINFO
+        structure should be set to TYMED_NULL for the GET operation}
+        Tymed := TYMED_NULL
+      else
+        Tymed := TYMED_HGLOBAL;
+      {this is the only medium urlmon supports right now}
+      hGlobal := FGlobalData;
+      IUnknown(unkForRelease) := Self; {Set the IUnknown interface}
+    end;
+  end;
+  if Assigned(FSender.FOnGetBindInfo) then
+    FSender.FOnGetBindInfo(Self, grfBINDF, BindInfo);
+  Result := S_OK;
+end;
+
+
+function TBSCB.GetPriority(out nPriority): HRESULT;
+{Gets the priority for the bind operation when it is called by an asynchronous moniker.}
+{Returns S_OK if this is successful or E_INVALIDARG if the pnPriority parameter is invalid.}
+begin {if you want to set priority you should implement SetPriority in your application}
+  Result := S_OK;
+  if (FSender.FCancel) and (Binding <> nil) then
+    binding.Abort
+end;
+
+function TBSCB.OnDataAvailable(grfBSCF, dwSize: DWORD; FormatEtc: PFormatEtc;
+  stgmed: PStgMedium): HRESULT;
+{Provides data to the client as it becomes available during
+asynchronous bind operations.OnDataAvailable return E_PENDING
+when they reference data not yet available through their read
+methods, rather than blocking until the data becomes available.
+ This flag applies only to ASYNCHRONOUS operations}
+{Returns S_OK if this is successful or E_INVALIDARG if one or more parameters are invalid.}
+var
+  Data: PByte;
+  BufL, dwRead, dwActuallyRead: Cardinal;
+begin
+  if (FSender.FCancel) and (Binding <> nil) then
+    binding.Abort
+  else
+  begin
+
+    if Assigned(FSender.FOnDataAvailableInfo) then
+      FSender.FOnDataAvailableInfo(Self, grfBSCF,
+        DataAvalibleToStr(grfBSCF) {, FormatEtc});
+
+    if Assigned(FBSCBTimer) then {reset our timer.}
+    begin
+      FBSCBTimer.Enabled := False;
+      FBSCBTimer.Enabled := True;
+    end;
+
+    if (grfBSCF = grfBSCF or BSCF_FIRSTDATANOTIFICATION) then
+    begin
+
+      if (fOutStream = nil) and (stgmed.tymed = TYMED_ISTREAM) then
+        fOutStream := IStream(stgmed.stm);
+      if Assigned(m_pPrevBSCB) and not Assigned(fsOutputFile)
+        and (BscbInfo.infFileName <> '') then
+      try
+        //TODO: check for resume
+        fsOutputFile := TFileStream.Create(DoSaveFileAs, fmCreate);
+        BscbInfo.infRangeBegin := 0;
+      except on EFCreateError do
+        begin
+          Binding.Abort;
+          Result := E_FAIL;
+          Exit;
+          fsOutputFile.Free;
+        end;
+      end;
+    end;
+    dwRead := dwSize - FTotalRead;
+    dwActuallyRead := 0;
+    if (dwRead > 0) then
+      repeat
+        Data := AllocMem(dwRead + 1);
+        fOutStream.Read(Data, dwRead, @dwActuallyRead);
+        BufL := dwActuallyRead;
+        if Assigned(FSender.FOnDataAvailable) then
+        begin
+          FSender.FOnDataAvailable(self, Data, BufL);
+        end;
+        if (BscbInfo.infFileName <> '') and Assigned(fsOutputFile) then
+        begin
+          fsOutputFile.WriteBuffer(Data^, BufL);
+        end
+        else if Assigned(Stream) then
+          Stream.WriteBuffer(Data^, BufL);
+        Inc(FTotalRead, dwActuallyRead);
+        FreeMem(Data);
+      until dwActuallyRead = 0;
+  end;
+  Result := S_OK;
+    {if (grfBSCF = grfBSCF or BSCF_FIRSTDATANOTIFICATION) then
+    begin
+      if (fOutStream = nil) and (stgmed.tymed = TYMED_ISTREAM) then
+        fOutStream := IStream(stgmed.stm);
+      if Assigned(m_pPrevBSCB) and not Assigned(fsOutputFile)
+       //and (BscbInfo.infFileName <> '')
+        then
+       // and (FSender.FDownloadMethod = dmFile) then
+      try
+       fsOutputFile := TFileStream.Create(DoSaveFileAs, fmCreate);
+        BscbInfo.infRangeBegin := 0;
+      except on EFCreateError do
+        begin
+          Binding.Abort;
+          Result := E_INVALIDARG;
+          if Assigned(FSender.FOnError) then
+            FSender.FOnError(GetLastError, SysErrorMessage(GetLastError));
+          fsOutputFile.Free;
+          Exit;
+        end;
+      end;
+    end;
+    dwRead := dwSize - FTotalRead;
+    dwActuallyRead := 0;
+    if (dwRead > 0) then
+      repeat
+        Data := AllocMem(dwRead + 1); //to fix stack overflow
+        fOutStream.Read(Data, dwRead, @dwActuallyRead);
+        BufL := dwActuallyRead;
+        if Assigned(FSender.FOnDataAvailable) then
+          FSender.FOnDataAvailable(Self, Data, Bufl);
+        try
+          Stream.WriteBuffer(Data^, Bufl);
+        except
+          on EWriteError do
+          begin
+            Binding.Abort;
+            Result := E_INVALIDARG;
+            if Assigned(FSender.FOnError) then
+              FSender.FOnError(GetLastError, SysErrorMessage(GetLastError));
+            fsOutputFile.Free;
+            Exit;
+          end;
+        end;
+
+        if (FSender.FDownloadMethod = dmFile) and Assigned(fsOutputFile) then
+        begin
+          try
+            fsOutputFile.WriteBuffer(Data^, bufl);
+          except
+            on EWriteError do
+            begin
+              Binding.Abort;
+              Result := E_INVALIDARG;
+              if Assigned(FSender.FOnError) then
+                FSender.FOnError(GetLastError, SysErrorMessage(GetLastError));
+              fsOutputFile.Free;
+              Exit;
+            end
+          end;
+        end;
+        Inc(FTotalRead, dwActuallyRead);
+        FreeMem(Data);
+      until dwActuallyRead = 0;
+  end;
+  Result := S_OK;}
+end;
+
+function TBSCB.OnLowResource(Reserved: DWORD): HRESULT;
+{Not implemented by MS.}
+begin
+  Result := E_NOTIMPL;
+end;
+
+function TBSCB.OnObjectAvailable(const IID: TGUID; punk: IUnknown): HRESULT;
+{Passes the requested object interface pointer to the client.}
+{Returns S_OK if this is successful or E_INVALIDARG if one or more parameters are invalid.}
+begin
+  Self._AddRef;
+  if (FSender.FCancel) and (Binding <> nil) then
+    binding.Abort;
+  Result := S_OK;
+end;
+
+function TBSCB.OnProgress(ulProgress, ulProgressMax, ulStatusCode: ULONG;
+  szStatusText: LPCWSTR): HRESULT;
+{Indicates the progress and the status of the bind operation.}
+{Returns S_OK if this is successful or E_INVALIDARG if one or more parameters are invalid.}
+{Avalible flags: http://msdn.microsoft.com/en-us/library/ms775133(VS.85).aspx}
+var
+  Percent, Speed, Elapsed, Downloaded, RemainingTime, Status: string;
+  _Speed: Single;
+  bAbort: Boolean;
+  tmpElapsed, iFileSize: integer;
+begin
+  if (FSender.FCancel) and (Binding <> nil) then
+    Binding.Abort
+  else
+  begin
+    tmpElapsed := 0;
+    bAbort := False;
+    Status := ResponseCodeToStr(ulStatusCode);
+    if (ulProgress > ulProgressMax) then
+      ulProgressMax := ulProgress;
+    iFileSize := ulProgressMax;
+    FSender.FFileSize := ulProgressMax;
+    {For a download manager}
+    if Assigned(m_pPrevBSCB) then
+    begin
+      {Weed to do this otherwise a filedownload dlg will be displayed
+      as we are downloading the file.}
+      if (ulStatusCode = BINDSTATUS_CONTENTDISPOSITIONATTACH) then
+      begin
+        Result := S_OK;
+        Exit; {We must exit so no DLG will be displayed}
+      end;
+      m_pPrevBSCB.OnProgress(ulProgress, ulProgressMax, ulStatusCode,
+        szStatusText);
+    end;
+    case ulStatusCode of
+      BINDSTATUS_REDIRECTING: {redirecting}
+        begin
+          FRedirect := True;
+          FSender.FServerAddress := szStatusText;
+          if (Assigned(FSender.FOnRedirect)) and
+            (FSender.FUrl <> szStatusText) then
+            FSender.FOnRedirect(Self, bAbort, FSender.FUrl, szStatusText);
+          if bAbort then {If we do not wish to be redirect}
+          begin
+            FSender.FCancel := True;
+            Result := E_INVALIDARG;
+            Exit;
+          end;
+          {Get the new addreess after redirecing}
+          if (FSender.FDownloadMethod = dmFile) then
+            FSender.SetFileNameFromUrl(szStatusText);
+        end;
+      BINDSTATUS_CONNECTING: FSender.FServerIP := szStatusText;
+      BINDSTATUS_MIMETYPEAVAILABLE: FSender.FMimeType := szStatusText;
+      BINDSTATUS_BEGINDOWNLOADDATA: FSender.FServerAddress := szStatusText;
+      BINDSTATUS_DOWNLOADINGDATA: {We are downloading so here we will calculate download variables}
+        if Assigned(FSender.FOnProgress) then
+        begin
+          if (ulProgress {+ BscbInfo.infRangeBegin} > 0) then
+            Downloaded := FormatSize(ulProgress {+ BscbInfo.infRangeBegin});
+          if (ulProgressMax > 0) and (ulProgress > 0) then
+            Percent := Format('%.1f %%', [ulProgress / ulProgressMax * 100]);
+          QueryPerformanceCounter(TimeNow);
+          if (TimeNow > TimeStarted)
+            {and (Round((TimeNow-TimeStarted)/Frequency) <= tmpElapsed)}then
+          begin
+            tmpElapsed := Round((TimeNow - TimeStarted) / Frequency);
+            Elapsed := SecToStr(tmpElapsed);
+          end;
+          try
+            if (ulProgress > 0) and (tmpElapsed > 0) then
+              _Speed := ulProgress / 1024 / tmpElapsed
+            else
+              _Speed := 0;
+            Speed := Format('%.1f ' + kb_sec, [_Speed]);
+            if (ulProgressMax > 0) and ((_Speed) > 0) and (ulProgressMax >
+              ulProgress) then
+              RemainingTime := SecToStr(Round(ulProgressMax / _speed / 1000)
+                - Round(ulProgress / _speed / 1000))
+            else
+              RemainingTime := TimeToStr(0);
+          except
+            on EZeroDivide do
+              RemainingTime := TimeToStr(0);
+          end;
+        end;
+
+      BINDSTATUS_ENDDOWNLOADDATA: {You are joking right? NO MORE DATA TO DOWNLOAD}
+        begin
+          Downloaded := done;
+          ulProgress := 0;
+          ulProgressMax := 0;
+          Speed := '0/00' + kb_sec;
+          RemainingTime := '00.00.00';
+          Status := done;
+          Percent := '100%';
+        end;
+      {Here you can add more handlers to any BINDSTATUS_ you like}
+    end;
+
+    if Assigned(FSender.FOnProgress) then {Publish the event}
+      FSender.FOnProgress(Self, ulProgress {+ BscbInfo.infRangeBegin},
+        ulProgressMax {+ BscbInfo.infRangeBegin}, ulStatusCode, iFileSize, szStatusText,
+        Downloaded, Elapsed, Speed, RemainingTime, Status, Percent);
+  end;
+  Result := S_OK;
+end;
+
+function TBSCB.GetFileNameFromUrl(Url: string): string;
+var
+  Ut: TUrl;
+begin
+  Ut := TUrl.Create(Url);
+  try
+    Ut.CrackUrl(Url, ICU_ESCAPE);
+    if AnsiPos('.', Ut.ExtraInfo) = 0 then
+      Result := FSender.FDefaultUrlFileName
+    else
+      Result := Ut.ExtraInfo;
+  finally
+    Ut.Free;
+  end;
+end;
+
+function TBSCB.OnStartBinding(dwReserved: DWORD; pib: IBinding): HRESULT;
+{Notifies the client about the callback methods that it is registered to receive.}
+{Returns S_OK if this is successful or
+ E_INVALIDARG if the pib parameter is invalid.
+To abort the binding we should return E_FAIL.}
+var
+  bAbort: Boolean;
+begin
+  //dwReserved:= 0; // A demand by ms that is not needed.}
+  if FSender.FCancel then
+    Result := E_FAIL
+  else
+  begin
+
+    Result := S_OK;
+    bAbort := False;
+    Binding := pib; {A pointer to the IBinding interface}
+    Binding._AddRef; {To be released on StopBinding}
+    {We will try to get the file size using query info}
+    QueryInfo(HTTP_QUERY_CONTENT_LENGTH, BscbInfo.infFileSize);
+    QueryInfoFileName;
+    if Assigned(FSender.FOnBeforeDownload) then
+      FSender.FOnBeforeDownload(BscbInfo, BscbInfo.infUrl, BscbInfo.infFileName,
+        BscbInfo.infFileExt, BscbInfo.infHost, BscbInfo.infDownloadFolder,
+        BscbInfo.infFileSize, bAbort);
+
+    {For the download manager}
+    FSender.FFileName := BscbInfo.infFileName;
+    FSender.FDownloadFolder := BscbInfo.infDownloadFolder;
+    if Assigned(m_pPrevBSCB) then
+      m_pPrevBSCB.OnStopBinding(HTTP_STATUS_OK, nil);
+
+    {Remove file name which is not needed for stream}
+    case FSender.FDownloadMethod of
+      dmStream: BscbInfo.infFileName := EmptyStr;
+      dmFile:
+        begin {Try # 2}
+          if (BscbInfo.infFileName = EmptyStr) and (FSender.FDownloadTo = dtMoniker) then
+            BscbInfo.infFileName := GetFileNameFromUrl(FSender.FUrl)
+          else
+          begin
+            if (BscbInfo.infFileName = EmptyStr) and (not FSender.bRenamed) and
+              (BscbInfo.infFileName <> GetFileNameFromUrl(BscbInfo.infUrl)) then
+              BscbInfo.infFileName := GetFileNameFromUrl(BscbInfo.infUrl);
+          end;
+        end;
+    end;
+    if Assigned(FSender.FOnStartBinding) then
+      FSender.FOnStartBinding(Self, bAbort, Binding, BscbInfo.infFileName, BscbInfo.infFileSize);
+    if bAbort then
+    begin {Note: We are still in busy state until OnStopBinding!!}
+      Result := E_FAIL; {Do not use Binding.Abort! Just send E_FAIL}
+      FSender.FCancel := True;
+    end;
+  end;
+end;
+
+function TBSCB.OnStopBinding(HRESULT: HRESULT; szError: LPCWSTR): HRESULT;
+{This method indicates the end of the bind operation.
+Returns S_OK if this is successful or an error value otherwise.}
+var
+  clsidProtocol: TCLSID;
+  dwResult: DWORD;
+  szResult: POLEStr;
+  HR: System.HRESULT;
+begin //OK
+  if (FSender.FDownloadTo = dtDownloadToFile)
+    or (FSender.FDownloadTo = dtDownloadToCache) then
+  begin
+    Result := S_OK;
+    Exit;
+  end;
+
+  if (Assigned(m_pPrevBSCB) and Assigned(FBindCtx)) then
+    {Stores an IUnknown pointer on the specified object }
+  begin {To be used with a download manager}
+    HR := FBindCtx.RegisterObjectParam('_BSCB_Holder_', m_pPrevBSCB);
+    if Failed(HR) and Assigned(FSender.FOnError) then
+      FSender.FOnError(GetLastError, SysErrorMessage(GetLastError))
+    else if (Assigned(FSender.FOnConnect)) then
+      FSender.FOnConnect(Self, HR, Registering_new_moniker +
+        ResponseCodeToStr(HR));
+    m_pPrevBSCB._Release;
+    m_pPrevBSCB := nil;
+    FBindCtx._Release;
+    FBindCtx := nil;
+    Dec(FSender.FRefCount);
+  end;
+
+  GetBindResult(clsidProtocol, dwResult, szResult);
+  if FTimedOut then
+  begin {If we reached TimeOut them we will post the event}
+    HRESULT := INET_E_CONNECTION_TIMEOUT;
+    if Assigned(FSender.FOnError) then
+      FSender.FOnError(HRESULT, ResponseCodeToStr(HRESULT));
+  end;
+  if Assigned(FSender.FOnStopBinding) then
+    FSender.FOnStopBinding(Self, HRESULT, szError);
+  Result := HRESULT;
+  FSender.FState := sStopped;
+  if Assigned(FSender.FOnStateChange) then
+    FSender.FOnStateChange(FSender.FState);
+
+  if Assigned(FSender.FOnStreamComplete) then
+    FSender.FOnStreamComplete(Self, Stream, HRESULT);
+  FSender.bDone := True;
+  SetEvent(FSender.hStop);
+  Terminate;
+  Dec(FSender.FActiveConnections);
+  if FSender.FActiveConnections = 0 then
+    SetEvent(FSender.hProcess);
+end;
+
+{IServiceProvider Interface}
+
+function TBSCB.QueryService(const rsid, iid: TGUID; out Obj): HRESULT;
+begin
+  Pointer(Obj) := nil;
+  if Assigned(FSender.FOnQueryService) then
+    FSender.FOnQueryService(Self, rsid, iid, IUnknown(obj));
+  if Pointer(Obj) <> nil then
+    Result := S_OK
+  else
+    Result := E_NOINTERFACE;
+end;
+
+{ICodeInstall Interface}
+
+function TBSCB.OnCodeInstallProblem(ulStatusCode: ULONG; szDestination,
+  szSource: LPCWSTR; dwReserved: DWORD): HResult; stdcall;
+{Returns a value based on the status passed in, which indicates
+whether to abort the application installation or file download.
+S_OK Indicates that the installation or download should continue.
+E_ABORT Indicates that the installation or download should abort.}
+begin
+  dwReserved := 0;
+  if Assigned(FSender.FOnCodeInstallProblem) then
+    Result := FSender.FOnCodeInstallProblem(Self, ulStatusCode, szDestination,
+      szSource, dwReserved, ResponseCodeToStr(ulStatusCode))
+  else
+    Result := S_OK;
+end;
+
+{IUnknown Interface}
+
+function TBSCB.QueryInterface(const IID: TGUID; out Obj): HRESULT;
+{S_OK if the interface is supported, E_NOINTERFACE if not.}
+begin
+  Self._AddRef;
+  if Assigned(FSender.OnQueryInterface) then
+    FSender.OnQueryInterface(IID, Obj);
+  if GetInterface(IID, Obj) then
+    Result := 0
+  else
+    Result := E_NOINTERFACE;
+end;
+
+function TBSCB._AddRef: Integer;
+{The IUnknown::AddRef method increments the reference count for
+ an interface on an object.}
+begin
+  Result := InterlockedIncrement(FSender.FRefCount);
+end;
+
+function TBSCB._Release: Integer;
+{Decrements the reference count for the calling interface on a object. }
+begin
+  Result := InterlockedDecrement(FSender.FRefCount);
+  if Result = 0 then
+    Destroy;
+end;
+
+{IWindowForBindingUI Interface}
+
+function TBSCB.GetWindow(const GUIDReason: TGUID; out hwnd): HRESULT;
+{Returns S_OK if the window handle was successfully returned,
+ or E_INVALIDARG if the phwnd parameter is invalid.
+ If you implement this interface, you can return S_FALSE
+ for this method to indicate that no window is available for
+ to display user interface information.}
+begin
+  if Assigned(FSender.FGetWindow) then
+    Result := FSender.FGetWindow(Self, GUIDReason, LongWord(hwnd))
+  else
+    Result := S_OK;
+end;
+
+{IHttpSecurity}
+
+function TBSCB.OnSecurityProblem(dwProblem: DWORD): HResult;
+{RPC_E_RETRY The calling application should continue or retry the download.
+S_FALSE The calling application should open a dialog box to warn the user.
+E_ABORT The calling application should abort the download.}
+begin
+  if Assigned(FSender.FOnSecurityProblem) then
+    Result := FSender.FOnSecurityProblem(Self, dwProblem,
+      ResponseCodeToStr(dwProblem))
+  else
+    Result := S_FALSE;
+end;
+
+function TBSCB.GetSerializedClientCertContext(out ppbCert: Byte; var pcbCert: DWORD): HResult; stdcall;
+begin
+  if Assigned(FSender.FOnGetClientCert) then
+    Result := FSender.FOnGetClientCert(Self, ppbCert, pcbCert)
+  else
+    Result := S_FALSE;
+end;
+{$IFDEF DELPHI6_UP}
+
+function TBSCB.AuthenticateEx(out phwnd: HWND; out pszUsername,
+  pszPassword: LPWSTR; var pauthinfo: AUTHENTICATEINFO): HResult; stdcall;
+var
+  aUser, aPwd: WideString;
+  tmpHWND: HWND;
+begin
+  Result := S_OK;
+  phwnd := FSender.FHWnd;
+  aUser := EmptyStr;
+  aPwd := EmptyStr;
+  if Assigned(FSender.FOnAuthenticateEx) then
+    FSender.FOnAuthenticateEx(Self, tmpHWND, aUser, aPwd,
+      pauthinfo, Result);
+  if aUser <> EmptyStr then
+    pszUserName := WidestringToLPOLESTR(aUser)
+  else
+    pszUserName := nil;
+  if aPwd <> EmptyStr then
+    pszPassWord := WidestringToLPOLESTR(aPwd)
+  else
+    pszPassWord := nil;
+end;
+
+function TBSCB.PutProperty(mkp: MONIKERPROPERTY; val: LPCWSTR): HResult;
+{This interface is implemented by persistent monikers,
+ such as a MIME handler, to get properties about the moniker
+ being handled.}
+begin
+  if Assigned(FSender.FOnPutProperty) then
+    Result := FSender.FOnPutProperty(Self, mkp, val)
+  else
+    Result := E_NOTIMPL;
+end;
+{$ENDIF}
+
+function TBSCB.GetBindResult(out clsidProtocol: TCLSID; out dwResult: DWORD;
+  out szResult: POLEStr): HRESULT;
+{Gets the protocol-specific outcome of a bind operation.}
+var
+  dwReserved: DWORD;
+begin
+  dwReserved := 0;
+  if (Binding <> nil) then
+    Result := Binding.GetBindResult(clsidProtocol, dwResult, szResult,
+      dwReserved)
+  else
+    Result := E_FAIL;
+  if Assigned(FSender.FOnGetBindResults) then
+    FSender.FOnGetBindResults(Self, clsidProtocol, dwResult,
+      szResult, ResponseCodeToStr(dwResult));
+  if (Result <> S_OK) and (Assigned(FSender.FOnError)) then
+    FSender.FOnError(Result, ResponseCodeToStr(Result));
+end;
+
+function TBSCB.CheckCancelState: Integer;
+begin
+  if (FSender.FCancel = True) then
+    Result := E_ABORT
+  else
+    Result := S_OK;
+end;
+
+procedure TBSCB.TimerExpired(Sender: TObject);
+begin
+  FTimedOut := True;
+end;
+
+procedure TBSCB.ClearAll;
+begin {Reset our resources}
+  if Assigned(Binding) then
+    Binding.Abort;
+  FGlobalData := 0;
+  FTotalRead := 0;
+  if m_pPrevBSCB <> nil then
+    m_pPrevBSCB := nil;
+end;
+
+function TBSCB.QueryInfo(dwOption: DWORD; var Info: Cardinal): Boolean;
+var
+  HttpInfo: IWinInetHttpInfo;
+  C: Cardinal;
+  BufferLength: Cardinal;
+  Reserved, dwFlags: Cardinal;
+begin
+  if (Assigned(Binding) and (Binding.QueryInterface(IWinInetHttpInfo, HttpInfo)
+    = S_OK)) then
+  begin
+    Info := 0;
+    Reserved := 0;
+    dwFlags := 0;
+    BufferLength := SizeOf(Cardinal);
+    Result := not Boolean(HttpInfo.QueryInfo(dwOption or HTTP_QUERY_FLAG_NUMBER,
+      @C, BufferLength, dwFlags, Reserved));
+    HttpInfo := nil;
+    if Result then
+      Info := C;
+  end
+  else
+    Result := False;
+end;
+
+function TBSCB.QueryInfo(dwOption: DWORD; var Info: string): Boolean;
+var
+  Buf: array[0..INTERNET_MAX_PATH_LENGTH] of AnsiChar;
+  HttpInfo: IWinInetHttpInfo;
+  BufLength, dwReserved, dwFlags: Cardinal;
+begin
+  if (Assigned(Binding) and (Binding.QueryInterface(IWinInetHttpInfo, HttpInfo)
+    = S_OK)) then
+  begin
+    Info := '';
+    dwReserved := 0;
+    dwFlags := 0;
+    BufLength := INTERNET_MAX_PATH_LENGTH + 1;
+    Result := not Boolean(HttpInfo.QueryInfo(dwOption, @Buf, BufLength, dwFlags,
+      dwReserved));
+    HttpInfo := nil;
+    if Result then
+      Info := string(Buf);
+  end
+  else
+    Result := False;
+end;
+
+function TBSCB.QueryInfo(dwOption: DWORD; var Info: TDateTime): Boolean;
+var
+  HttpInfo: IWinInetHttpInfo;
+  SysTime: TSystemtime;
+  BufferLength: Cardinal;
+  Reserved, dwFlags: Cardinal;
+begin
+  if (Assigned(Binding) and (Binding.QueryInterface(IWinInetHttpInfo, HttpInfo)
+    = S_OK)) then
+  begin
+    Info := 0;
+    Reserved := 0;
+    dwFlags := 0;
+    BufferLength := SizeOf(TSystemTime);
+    Result := not Boolean(HttpInfo.QueryInfo(dwOption or
+      HTTP_QUERY_FLAG_SYSTEMTIME,
+      @SysTime, BufferLength, dwFlags, Reserved));
+    HttpInfo := nil;
+    if Result then
+      Info := SystemTimeToDateTime(SysTime);
+  end
+  else
+    Result := False;
+end;
+
+function TBSCB.DoSaveFileAs: string;
+begin
+  if FSender.FDownloadMethod = dmFile then
+  begin
+    with BscbInfo do
+    begin
+      if (infFileName = EmptyStr) then
+        infFileName := FSender.SetFileNameFromUrl(infUrl);
+      if (infFileName = EmptyStr) then
+        infFileName := FSender.FDefaultUrlFileName;
+    end;
+    with FSender do
+    begin
+      FDownloadedFile := BscbInfo.infDownloadFolder + BscbInfo.infFileName;
+      FFileExtension := ExtractFileExt(FSender.FDownloadedFile);
+      BscbInfo.infFileExt := FFileExtension;
+      FFileName := BscbInfo.infFileName;
+      FDownloadFolder := BscbInfo.infDownloadFolder;
+    end;
+    Result := CharReplace(FSender.FDownloadedFile, '?', '_'); ;
+  end;
+end;
+
+function TBSCB.QueryInfoFileName: HRESULT;
+const
+  CD_FILE_PARAM = 'filename=';
+var
+  i: Integer;
+  st, sTmp: string;
+  res: Boolean;
+begin
+  Result := E_FAIL;
+  sTmp := '';
+  res := QueryInfo(HTTP_QUERY_CONTENT_DISPOSITION, sTmp);
+  if not res then
+    Exit;
+  i := Pos(CD_FILE_PARAM, sTmp);
+  if (i > 0) then
+  begin
+    sTmp := Copy(sTmp, i + Length(CD_FILE_PARAM), Length(sTmp) - i);
+    if (sTmp[1] = '"') then
+      i := Pos('";', sTmp)
+    else
+      i := Pos(';', sTmp);
+    //TODO: what's happen, if the filename contains a quotion mark?
+    if (i > 0) then
+      sTmp := Copy(sTmp, 1, i);
+    if (sTmp[1] = '"') then
+    begin
+      st := (Copy(sTmp, 2, Length(sTmp) - 2));
+      BscbInfo.infFileName := Copy(sTmp, 2, Length(sTmp) - 2);
+    end
+    else
+      BscbInfo.infFileName := sTmp;
+    if (Length(sTmp) > 0) then
+      Result := S_OK;
+  end;
+  FSender.FFileName := BscbInfo.infFileName; {Return Data}
+end;
+
+function TBSCB.IsRunning: Boolean;
+begin
+  if (Succeeded(FMoniker.IsRunning(FBindCtx, FMoniker, nil))) then
+    Result := True
+  else
+    Result := False;
+end;
+
+function TBSCB.GetDisplayName: PWideChar;
+begin {Expensive operation so I'll do it only once.
+  For extra info use MkParseDisplayName }
+  if IsRunning then
+    FMoniker.GetDisplayName(FBindCtx, nil, Result);
+end;
+
+function TBSCB.MkParseDisplayName(var DisplayName: PWideChar): IMoniker;
+var
+  i: cardinal;
+begin
+  UrlMon.MkParseDisplayNameEx(FBindCtx, DisplayName, i, Result);
+end;
+
+function TBSCB.CreateMoniker(szName: POLEStr; BC: IBindCtx; out mk: IMoniker;
+  dwReserved: DWORD): HResult;
+begin
+  szName := StringToOleStr(BscbInfo.infUrl);
+  Result := CreateURLMonikerEx(nil, szName, FMoniker, URL_MK_UNIFORM {URL_MK_LEGACY});
+end;
+
+function TBSCB.MonikerBindToStorage(Mk: IMoniker; BC: IBindCtx; BSC:
+  IBindStatusCallback;
+  const iid: TGUID; out pvObj{$IFNDEF DELPHI8_UP}: Pointer{$ENDIF}): HResult;
+begin
+  Mk := FMoniker;
+  BC := FBindCtx;
+  BSC := Self;
+  Result := Mk.BindToStorage(BC, nil, IStream, fOutStream);
+end;
+
+function TBSCB.MonikerBindToObject(Mk: IMoniker; BC: IBindCtx; BSC:
+  IBindStatusCallback;
+  const iid: TGUID; out pvObj{$IFNDEF DELPHI8_UP}: Pointer{$ENDIF}): HResult;
+begin
+  Mk := FMoniker;
+  BC := FBindCtx;
+  BSC := Self;
+  Result := Mk.BindToObject(BC, nil, IStream, fOutStream);
+end;
+
+function TBSCB.AbortBinding: HRESULT;
+begin
+  Result := E_Fail;
+  if Assigned(Binding) then
+    Result := Binding.Abort;
+end;
+
+destructor TBSCB.Destroy;
+begin {Cleaning out and free our resources}
+  ClearAll;
+  if Assigned(Stream) then
+    FreeAndNil(Stream);
+  if Assigned(FBSCBTimer) then
+    FreeAndNil(FBSCBTimer);
+  if Assigned(fsOutputFile) then
+    FreeAndNil(fsOutputFile);
+  if (FGlobalData <> 0) then
+    GlobalFree(FGlobalData);
+  inherited;
+end;
+
+constructor TBSCB.Create(aSender: TCustomIEDownload; const pmk: IMoniker;
+  const pbc: IBindCtx; CreateSuspended: boolean);
+var
+  tmp: PWideChar;
+begin
+  inherited Create(CreateSuspended);
+  FreeOnTerminate := False;
+  if CreateSuspended then
+    ThreadStatus := tsSuspended
+  else
+    ThreadStatus := tsWaiting;
+  Stream := TMemoryStream.Create; {A stream to contain the download}
+  FSender := aSender;
+  FMoniker := pmk;
+  FBindCtx := pbc;
+  if FSender.FDownloadTo = dtMoniker then
+  begin
+    FSender.FBindF := FSender.FBindF + [GetNewestVersion];
+    FSender.DoUpdate;
+    FMoniker.GetDisplayName(FBindCtx, nil, tmp);
+    FSender.FUrl := tmp;
+    FSender.ItemsManager.SessionList.Add(tmp);
+  end;
+end;
+
+procedure TBSCB.SetComponents;
+begin {Initial all internals before the process}
+  QueryPerformanceFrequency(Frequency);
+  QueryPerformanceCounter(TimeStarted);
+  ClearAll; {Clearing Internals}
+  FBSCBTimer := TTimer.Create(nil); {Creating Timer for a TimeOut option}
+  FBSCBTimer.OnTimer := TimerExpired;
+  FBSCBTimer.Interval := BscbInfo.infTimeOut;
+  FTimedOut := False;
+  LongTimeFormat := Frmt_Time;
+  if not FSender.IsSynchronous(BscbInfo) then {We are on Asynchronous mode}
+  begin
+    FSender.ItemsManager.Add(Self); {Adding asynchronous items}
+    Inc(BscbInfo.infIndex); {Pass the index}
+    Inc(FSender.FdlCounter);
+  end;
+end;
+
+procedure TBSCB.Resume;
+begin
+  inherited;
+  ThreadStatus := tsRunning;
+end;
+
+procedure TBSCB.Suspend;
+begin
+  inherited;
+  ThreadStatus := tsSuspended;
+end;
+
+procedure TBSCB.Terminate;
+var
+  bCanc: Boolean;
+begin
+  if FSender.ActiveConnections = 0 then
+    FSender.FBusy := False;
+  ThreadStatus := tsTerminated;
+  bCanc := False;
+  if Assigned(FSender.FOnTerminate) then
+    FSender.FOnTerminate(Self, ThreadID, BscbInfo.infFileName, bCanc);
+  if bCanc then
+    FSender.CancelAll;
+  inherited;
+end;
+
+procedure TBSCB.Execute;
+begin
+  if Terminated then
+    Exit;
+  try
+    {Dont be in shock, as a tread it sometimes fail so we should succeed now}
+    OleInitialize(nil);
+  except
+  end;
+  ThreadStatus := tsRunning;
+  Synchronize(ReceiveData);
+  Synchronize(SetComponents);
+  case FSender.FDownloadTo of
+    dtNormal:
+      begin
+        Synchronize(DoConnect);
+        Synchronize(ReturnData);
+      end;
+    dtMoniker:
+      begin
+        Synchronize(DoConnect);
+        Synchronize(ReturnData);
+      end;
+    dtDownloadToCache: Synchronize(DoDownloadToCache);
+    dtDownloadToFile: Synchronize(DoDownloadToFile);
+  end;
+  try
+    if (Assigned(BscbInfo)) then
+  finally
+    BscbInfo.Clear;
+    FreeAndNil(BscbInfo);
+  end;
+  OleUninitialize;
+end;
+
+procedure TBSCB.ReceiveData;
+begin
+  BscbInfo := TInfoData.Create;
+  GetData(FSender); {Pass Data to the TObject}
+  FSender := TCustomIEDownload(BscbInfo.Sender);
+end;
+
+procedure TBSCB.ReturnData;
+begin
+  with FSender do
+  begin
+    FDownloadedFile := BscbInfo.infDownloadFolder + BscbInfo.infFileName;
+    FFileExtension := ExtractFileExt(FSender.FDownloadedFile);
+    BscbInfo.infFileExt := FFileExtension;
+    FFileName := BscbInfo.infFileName;
+    FDownloadFolder := BscbInfo.infDownloadFolder;
+  end;
+end;
+
+procedure TBSCB.DoDownloadToCache;
+var
+  Buf: array[0..INTERNET_MAX_PATH_LENGTH] of char;
+begin
+  if Succeeded(UrlMon.URLDownloadToCacheFile(nil, Pchar(BscbInfo.infUrl),
+    Buf, SizeOf(Buf), 0, Self)) then
+    FSender.ExtractDataFromFile(Buf);
+  FSender.ItemsManager.Extract(Self);
+end;
+
+procedure TBSCB.DoDownloadToFile;
+var
+  HR: integer;
+  tmp: string;
+begin
+  tmp:= BscbInfo.infDownloadFolder + BscbInfo.infFileName;
+  HR := UrlMon.URLDownloadToFile(nil, Pchar(BscbInfo.infUrl),
+    PChar(tmp), 0, Self);
+  if Failed(HR) and Assigned(FSender.FOnError) then
+    FSender.FOnError(GetLastError, Err_ToFile + SysErrorMessage(GetLastError))
+  else if (Assigned(FSender.FOnConnect)) then
+    FSender.FOnConnect(Self, HR, DL_ToFile + ResponseCodeToStr(HR));
+  FSender.ExtractDataFromFile(tmp);
+  FSender.ItemsManager.Extract(Self);
+end;
+
+procedure TBSCB.DoConnect;
+var
+  Ut: TUrl;
+  HR: HRESULT;
+  pPrevBSCB, tmpBSC: IBindStatusCallback;
+begin
+  FSender.bDone := False;
+  FSender.hStop := 0;
+  if FSender.FDownloadTo <> dtMoniker then
+  begin
+    HR := CreateURLMonikerEx(nil, BscbInfo.infUrl, FMoniker, URL_MK_UNIFORM {URL_MK_LEGACY});
+    if Failed(HR) and Assigned(FSender.FOnError) then
+    begin
+      FSender.FOnError(GetLastError, Err_URLMEx +
+        ResponseCodeToStr(HR));
+      Exit;
+    end
+    else if (Assigned(FSender.FOnConnect)) then
+      FSender.FOnConnect(Self, HR, CreateURLMEx + ResponseCodeToStr(HR));
+
+    HR := CreateAsyncBindCtx(0, Self, nil, FBindCtx);
+    if Failed(HR) and Assigned(FSender.FOnError) then
+    begin
+      FSender.FOnError(GetLastError, Err_AsyncBindCtx +
+        ResponseCodeToStr(HR));
+      Exit;
+    end
+    else if (Assigned(FSender.FOnConnect)) then
+      FSender.FOnConnect(Self, HR, CreateABindCtx + ResponseCodeToStr(HR));
+  end;
+
+  FSender.FDisplayName := GetDisplayName;
+  begin
+    if FSender.FDisplayName <> EmptyStr then
+    begin
+      BscbInfo.infUrl := FSender.FDisplayName;
+      FSender.FUrl := FSender.FDisplayName;
+    end;
+    Ut := TUrl.Create(BscbInfo.infUrl);
+    try
+      Ut.QueryUrl(BscbInfo.infUrl);
+      BscbInfo.infFileName := Ut.Document;
+      BscbInfo.infHost := Ut.HostName;
+    finally
+      Ut.Free;
+    end;
+  end;
+
+  HR := RegisterBindStatusCallback(FBindCtx, Self, pPrevBSCB, 0);
+  if Failed(HR) and Assigned(pPrevBSCB) then
+  begin
+    HR := FBindCtx.RevokeObjectParam('_BSCB_Holder_');
+    if (Succeeded(HR)) then
+    begin {Attempt register again, should succeed now}
+      HR := RegisterBindStatusCallback(FBindCtx, Self, tmpBSC, 0);
+      if (SUCCEEDED(HR)) then
+      begin //Need to pass a pointer for BindCtx and previous BSCB to our implementation
+        m_pPrevBSCB := pPrevBSCB;
+        Self._AddRef;
+        m_pPrevBSCB._AddRef;
+        FBindCtx._AddRef;
+        if (Assigned(FSender.FOnConnect)) then
+          FSender.FOnConnect(Self, HR, Reg_BSCB + ResponseCodeToStr(HR));
+      end
+      else if Assigned(FSender.FOnError) then
+        FSender.FOnError(GetLastError, Err_RegBSCB
+          + ResponseCodeToStr(HR));
+    end;
+  end
+  else if (Assigned(FSender.FOnConnect)) then
+    FSender.FOnConnect(Self, HR, Reg_BSCB +
+      ResponseCodeToStr(HR));
+  FSender.hStop := CreateEvent(nil, True, False, nil);
+  HR := FMoniker.BindToStorage(FBindCtx, nil, IStream, fOutStream);
+  if Failed(HR) and Assigned(FSender.FOnError) then
+  begin
+    FSender.FOnError(GetLastError, Err_BindToSt +
+      ResponseCodeToStr(HR));
+    Exit;
+  end
+  else if (Assigned(FSender.FOnConnect)) then
+    FSender.FOnConnect(Self, HR, Bind_To_St + ResponseCodeToStr(HR));
+  repeat
+    try
+      if FSender.WaitForProcess(FSender.hStop, FSender.FStartTick,
+        FSender.FTimeOut) then
+    except
+      if Assigned(FSender.FOnError) then
+        FSender.FOnError(E_FAIL, Err_Proc_Ev);
+      raise;
+    end;
+  until (FSender.FCancel) or (FSender.bDone)
+  {and (stream = nil)}{or (BscbInfo.infIndex = 0)};
+  HR := RevokeBindStatusCallback(FBindCtx, pPrevBSCB);
+  if Failed(HR) then
+    HR := RevokeBindStatusCallback(FBindCtx, tmpBSC);
+  if Failed(HR) and Assigned(FSender.FOnError) then
+    FSender.FOnError(HR, Err_Revoke + ResponseCodeToStr(HR))
+  else if (Assigned(FSender.FOnConnect)) then
+    FSender.FOnConnect(Self, HR, Revoke_BSCB + ResponseCodeToStr(S_OK));
+
+  if FSender.FActiveConnections = 0 then
+    FSender.FBusy := False;
+  if not FSender.IsSynchronous(BscbInfo) then {We are on asynchronous mode}
+  begin
+    FSender.ItemsManager.Extract(Self);
+    {Remove the item from our list because we finished}
+    Dec(BscbInfo.infIndex); {Pass the new index}
+  end;
+end;
+
+procedure TBSCB.GetData(aSender: TCustomIEDownload);
+begin {Get data from IEDownload to the iedInfo}
+  with BscbInfo do
+  begin
+    infAdditionalHeader.AddStrings(aSender.FAdditionalHeader);
+    infBindF_Value := aSender.FBindF_Value;
+    infBindF2_Value := aSender.FBindF2_Value;
+    infBindInfoF_Value := aSender.FBindInfoF_Value;
+    infBindVerb_Value := aSender.FBindVerb_Value;
+    infBindInfoOptions_Value := aSender.FBindVerb_Value;
+    infCodePage_Value := aSender.FCodePageValue;
+    infCustomVerb := aSender.FCustomVerb;
+    infDescriptor := aSender.Security.FDescriptor;
+    infDownloadFolder := aSender.FDownloadFolder;
+    infExtraInfo := aSender.FExtraInfo;
+    infFileName := aSender.FFileName;
+    inFFileSize := 0;
+    infInheritHandle := aSender.Security.FInheritHandle;
+    infPassword := aSender.FPassword;
+    infPostData := aSender.FPostData;
+    infPutFileName := aSender.FPutFileName;
+    infRangeBegin := aSender.Range.FRangeBegin;
+    infRangeEnd := aSender.Range.FRangeEnd;
+    infTimeOut := aSender.FTimeOut;
+    infUrl := StringToOleStr(aSender.FUrl);
+    infUserName := aSender.FUserName;
+    Sender := aSender;
+  end;
+end;
+
+{Enf of Callback procedure------------------------------------------------------}
+
+{BSCBList----------------------------------------------------------------------}
+
+function TBSCBList.byURL(Url: string): TBSCB; //by Jury Gerasimov
+var
+  i: integer;
+begin
+  Result := nil;
+  for i := 0 to Count - 1 do
+    if Items[i].BscbInfo.infUrl = Url then
+    begin
+      Result := Items[i];
+      Break;
+    end;
+end;
+
+function TBSCBList.GetItem(Index: Integer): TBSCB;
+begin
+  Result := TBSCB(inherited GetItem(Index));
+end;
+
+procedure TBSCBList.SetItem(Index: Integer; Value: TBSCB);
+begin
+  inherited SetItem(Index, Value);
+end;
+
+constructor TBSCBList.Create;
+begin
+  inherited Create;
+  SessionList := TStringList.Create;
+end;
+
+destructor TBSCBList.Destroy;
+begin
+  FreeAndNil(SessionList);
+  inherited Destroy;
+end;
+
+{End of BSCBList---------------------------------------------------------------}
+
+{IEDownload--------------------------------------------------------------------}
+
+constructor TCustomIEDownload.Create(AOwner: TComponent);
+begin
+  inherited;
+  TimeSeparator := '_'; {For the feRename}
+  FAbout := IED_INFO;
+  hProcess := 0;
+  bDone := False;
+  bCancelAll := False;
+  FAdditionalHeader := TStringlist.Create;
+  FAdditionalHeader.Add('Content-Type: application/x-www-form-urlencoded ');
+  FBindF := [Asynchronous, AsyncStorage, PullData, NoWriteCache,
+    GetNewestVersion];
+  FBindF2 := [ReadDataOver4GB];
+  FBindVerb := Get;
+  FCodePageOption := Ansi;
+  FBindInfoOption_ := [UseBindInfoOptions, AllowConnectMessages];
+  FDefaultProtocol := 'http://';
+  FDefaultUrlFileName := 'index.html';
+  FdlCounter := 0;
+  FActiveConnections := 0;
+  FDownloadMethod := dmFile;
+  FProxySettings := TProxySettings.Create;
+  FProxySettings.FPort := 80;
+  FRange := TRange.Create;
+  FRefCount := 0;
+  FSecurity := TSecurity.Create;
+  FState := sReady;
+  FBindInfoF := [];
+  ItemsManager := TBSCBList.Create;
+  SetUserAgent;
+end;
+
+procedure TCustomIEDownload.Loaded;
+begin
+  inherited Loaded;
+  if FTimeOut = 0 then
+    FTimeOut := MaxInt;
+  if (FProxySettings.FAutoLoadProxy) and (FProxySettings.FServer <> EmptyStr)
+    then
+    FProxySettings.SetProxy(FFullUserAgent, FProxySettings.FServer + ':' +
+      IntToStr(FProxySettings.FPort));
+end;
+
+procedure TCustomIEDownload.Resume;
+begin
+  if BS <> nil then
+    BS.Resume;
+end;
+
+procedure TCustomIEDownload.Suspend;
+begin
+  if BS <> nil then
+    BS.Suspend;
+end;
+
+destructor TCustomIEDownload.Destroy;
+begin
+  FTimeOut := 0;
+  FRange.Free;
+  FSecurity.Free;
+  FProxySettings.Free;
+  ItemsManager.Free;
+  if Assigned(FAdditionalHeader) then
+    FreeAndNil(FAdditionalHeader);
+  inherited;
+end;
+
+procedure TCustomIEDownload.BeforeDestruction;
+begin
+  if FProxySettings.FAutoLoadProxy then
+    FProxySettings.SetProxy(EmptyStr, EmptyStr); {To restore proxy settings}
+  inherited BeforeDestruction;
+end;
+
+procedure TCustomIEDownload.Cancel;
+begin
+  if (not FBusy) or (FState <> sBusy) then Exit;
+  FCancel := True;
+  Application.ProcessMessages;
+end;
+
+procedure TCustomIEDownload.Reset;
+begin
+  if (FState = sBusy) then Exit;
+  FCancel := False;
+  bCancelAll := False;
+  Application.ProcessMessages;
+end;
+
+procedure TCustomIEDownload.CancelAll;
+begin
+  if (not FBusy) or (FState <> sBusy) then Exit;
+  bCancelAll := True;
+  FCancel := True;
+  Application.ProcessMessages;
+end;
+
+procedure TCustomIEDownload.Cancel(const Item: TBSCB);
+begin
+  Item.CheckCancelState;
+  FCancel := True;
+end;
+
+procedure TCustomIEDownload.Update_BindInfoF_Value;
+const
+  Acard_BindInfoF_Values: array[TBindInfoF] of Cardinal = (
+    $00000001, $00000002);
+var
+  i: TBindInfoF;
+begin
+  FBindInfoF_Value := 0;
+  if (FBindInfoF <> []) then
+    for i := Low(TBindInfoF) to High(TBindInfoF) do
+      if (i in FBindInfoF) then
+        Inc(FBindInfoF_Value, Acard_BindInfoF_Values[i]);
+end;
+
+procedure TCustomIEDownload.Update_BindF_Value;
+const
+  Acard_BindF_Values: array[TBindF] of Cardinal = (
+    $00000001, $00000002, $00000004, $00000008, $00000010, $00000020,
+    $00000040, $00000080, $00000100, $00000200, $00000400, $00000800,
+    $00001000, $00002000, $00004000, $00008000, $00010000, $00020000,
+    $00040000, $00080000, $00100000, $00200000, $00400000, $00800000);
+var
+  i: TBindF;
+begin
+  FBindF_Value := 0;
+  if (FBindF <> []) then
+    for i := Low(TBindF) to High(TBindF) do
+      if (i in FBindF) then
+        Inc(FBindF_Value, Acard_BindF_Values[i]);
+end;
+
+procedure TCustomIEDownload.Update_BindInfoOptions_Value;
+const
+  AcardBindInfoOption_Values: array[TBindInfoOption] of Cardinal = (
+    $00010000, $00020000, $00040000, $00080000, $00100000, $00200000,
+    $00400000, $00800000, $01000000, $02000000, $08000000, $10000000,
+    $40000000, $80000000, $20000000);
+var
+  i: TBindInfoOption;
+begin
+  FBindInfoOption_Value := 0;
+  if (FBindInfoOption_ <> []) then
+    for i := Low(TBindInfoOption) to High(TBindInfoOption) do
+      if (i in FBindInfoOption_) then
+        Inc(FBindInfoOption_Value, AcardBindInfoOption_Values[i]);
+end;
+
+
+procedure TCustomIEDownload.Update_BindF2_Value;
+const
+  AcardBindF2_Values: array[TBindF2] of Cardinal = ($00000001,
+    $00000002, $00000004, $00000008, $40000000, $80000000);
+var
+  i: TBindF2;
+begin
+  FBindF2_Value := 0;
+  if (FBindF2 <> []) then
+    for i := Low(TBindF2) to High(TBindF2) do
+      if (i in FBindF2) then
+        Inc(FBindF2_Value, AcardBindF2_Values[i]);
+end;
+
+function TCustomIEDownload.OpenFolder(const aFolderName: string): Boolean;
+var
+  Int: integer;
+begin
+  Result := False;
+  if (FDownloadMethod = dmFile) then
+  begin
+    Int := ShellExecute(Forms.Application.Handle, PChar('explore'),
+      PChar(aFolderName), nil, nil, SW_SHOWNORMAL);
+    Result := (Int > 32);
+    if not Result and Assigned(FOnError) then
+      FOnError(Int, Err_Folder);
+  end;
+end;
+
+procedure TCustomIEDownload.DoUpdate;
+begin
+  Update_BindF_Value;
+  Update_BindF2_Value;
+  Update_BindInfoF_Value;
+  Update_BindInfoOptions_Value;
+end;
+
+function TCustomIEDownload.CodeInstallProblemToStr(const ulStatusCode: Integer):
+  string;
+begin
+  Result := IEDownloadTools.CodeInstallProblemToStr(ulStatusCode);
+end;
+
+function TCustomIEDownload.CheckFileExists(const aFileName: string): boolean;
+begin
+  Result := FileExists(aFileName);
+end;
+
+procedure TCustomIEDownload.Go(const aUrl: string);
+begin
+  GoAction(aUrl, EmptyStr, EmptyStr, nil, nil);
+  if FOpenDownloadFolder then
+    OpenFolder(FDownloadFolder);
+end;
+
+procedure TCustomIEDownload.Go(const aUrl: string; const aFileName: string);
+begin
+  GoAction(aUrl, aFileName, EmptyStr, nil, nil);
+  if FOpenDownloadFolder then
+    OpenFolder(FDownloadFolder);
+end;
+
+procedure TCustomIEDownload.Go(const aUrl: string; const aFileName: string;
+  const aDownloadFolder: string);
+begin
+  GoAction(aUrl, aFileName, aDownloadFolder, nil, nil);
+  if FOpenDownloadFolder then
+    OpenFolder(FDownloadFolder);
+end;
+
+procedure TCustomIEDownload.GoList(const UrlsList: TStrings);
+var
+  Idx: integer;
+begin
+  for Idx := 0 to UrlsList.Count - 1 do
+    if (UrlsList[Idx] <> EmptyStr) and (not bCancelAll) then
+      GoAction(UrlsList[Idx], EmptyStr, EmptyStr, nil, nil);
+  if FOpenDownloadFolder then
+    OpenFolder(FDownloadFolder);
+end;
+
+procedure TCustomIEDownload.GoList(const UrlsList: TStrings; const FileNameList:
+  TStrings);
+var
+  Idx: integer;
+begin
+  for Idx := 0 to UrlsList.Count - 1 do
+    if (UrlsList[Idx] <> EmptyStr) and (not bCancelAll) then
+      GoAction(UrlsList[Idx], FileNameList[Idx], EmptyStr, nil, nil);
+  if FOpenDownloadFolder then
+    OpenFolder(FDownloadFolder);
+end;
+
+procedure TCustomIEDownload.GoList(const UrlsList: TStrings; const FileNameList:
+  TStrings;
+  const DownloadFolderList: TStrings);
+var
+  Idx: integer;
+begin
+  for Idx := 0 to UrlsList.Count - 1 do
+    if (UrlsList[Idx] <> EmptyStr) and (not bCancelAll) then
+      GoAction(UrlsList[Idx], FileNameList[Idx], DownloadFolderList[Idx], nil,
+        nil);
+  if FOpenDownloadFolder then
+    OpenFolder(FDownloadFolder);
+end;
+
+procedure TCustomIEDownload.Download(const pmk: IMoniker; const pbc: IBindCtx);
+begin
+  FDownloadTo := dtMoniker;
+  PrepareForStart;
+  hProcess := CreateEvent(nil, True, False, nil);
+  if (not GoInit('', FFileName, FDownloadFolder)) then
+  begin
+    PrepareForExit;
+    Exit;
+  end;
+  BS := TBSCB.Create(Self, pmk, pbc, True);
+  try
+    BS.Execute;
+    repeat
+      try
+        if WaitForProcess(hProcess, FStartTick, FTimeOut) then
+      except
+        if Assigned(FOnError) then
+          FOnError(E_FAIL, Err_Proc_Ev);
+        raise;
+      end;
+    until (FCancel) or (FActiveConnections = 0);
+  finally
+    FreeAndNil(BS);
+  end;
+  PrepareForExit;
+end;
+
+function TCustomIEDownload.GoAction(const actUrl, actFileName, actDownloadFolder: string;
+  pmk: IMoniker; pbc: IBindCtx): boolean;
+begin
+  Result := False;
+  PrepareForStart;
+  hProcess := CreateEvent(nil, True, False, nil);
+  if (not GoInit(actUrl, actFileName, actDownloadFolder)) then
+  begin
+    PrepareForExit;
+    Exit;
+  end;
+  BS := TBSCB.Create(Self, pmk, pbc, True); {Creating Download Callback}
+  try //Fix Deadlock?
+    BS.Execute;
+    repeat
+      try
+        if WaitForProcess(hProcess, FStartTick, FTimeOut) then
+      except
+        if Assigned(FOnError) then
+          FOnError(E_FAIL, Err_Proc_Ev);
+        raise;
+      end;
+    until (FCancel) or (FActiveConnections = 0);
+  finally
+    FreeAndNil(BS);
+  end;
+  PrepareForExit;
+  Result := True;
+end;
+
+function TCustomIEDownload.URLDownloadToCacheFile(const aUrl: string): string;
+begin
+  Result := EmptyStr;
+  PrepareForStart;
+  if not GoInit(aUrl, '', '') then
+    Exit;
+  FDownloadTo := dtDownloadToCache;
+  BS := TBSCB.Create(Self, nil, nil, True);
+  try
+    BS.Execute;
+    BS.Terminate;
+    Dec(FActiveConnections);
+  finally
+    FreeAndNil(BS);
+  end;
+  SetBeforeExit;
+  PrepareForExit;
+  Result := FDownloadFolder;
+end;
+
+function TCustomIEDownload.UrlDownloadToFile(const aUrl: string): HRESULT;
+begin
+  Result := E_FAIL;
+  PrepareForStart;
+  if not GoInit(aUrl, '', '') then
+    Exit;
+  FDownloadTo := dtDownloadToFile;
+  BS := TBSCB.Create(Self, nil, nil, True);
+  try
+    BS.Execute;
+    BS.Terminate;
+    Dec(FActiveConnections);
+  finally
+    FreeAndNil(BS);
+  end;
+  SetBeforeExit;
+  PrepareForExit;
+  Result := S_OK;
+end;
+
+procedure TCustomIEDownload.SetBeforeExit;
+begin
+  if FOpenDownloadFolder then
+    OpenFolder(FDownloadFolder);
+  if FActiveConnections = 0 then
+    FBusy := False;
+  FState := sStopped;
+  if Assigned(FOnStateChange) then
+    FOnStateChange(FState);
+end;
+
+function TCustomIEDownload.GoInit(const inUrl: string; const inFileName:
+  string; const inDownloadFolder: string): boolean;
+var
+  tmpNewName: WideString;
+  Act: TFileExistsOption;
+begin
+  act := FFileExistsOption;
+  tmpNewName := '';
+  Result := False;
+  if FDownloadTo <> dtMoniker then
+  begin
+    if inUrl = EmptyStr then
+    begin
+      PrepareForExit;
+      Exit;
+    end;
+    FUrl := SetHttpProtocol(inUrl); {We pass the Address we got to the component}
+    if (FValidateUrl) and not (IsUrlValid(FUrl)) then
+    begin
+      PrepareForExit;
+      Exit;
+    end;
+    ItemsManager.SessionList.Add(FUrl);
+    if FDownloadMethod = dmFile then
+    begin
+      FDownloadFolder := SetDownloadFolder(inDownloadFolder);
+      if FDownloadFolder = EmptyStr then Exit;
+      FFileName := inFileName;
+      if (FFileName = EmptyStr) then
+        FFileName := SetFileNameFromUrl(FUrl); {First try}
+      if (CheckFileExists(FDownloadFolder + FFileName)) then
+      begin
+        if Assigned(FOnFileExists) then
+          FOnFileExists(Act, FDownloadFolder + FFileName, tmpNewName);
+        case Act of
+          feSkip:
+            begin
+              PrepareForExit;
+              Exit;
+            end;
+          feRename:
+            begin
+              if tmpNewName = EmptyStr then
+                tmpNewName := TimeToStr(now) + '_' + FFileName;
+              FFileName := tmpNewName;
+              bRenamed := True;
+            end;
+          feOverwrite: FBindF := FBindF + [GetNewestVersion];
+        end;
+      end;
+    end
+    else
+      FBindF := FBindF + [GetNewestVersion];
+  end;
+  DoUpdate;
+  Result := True;
+end;
+
+function TCustomIEDownload.WaitForProcess(var EventName: THandle;
+  var aStartTick, aTimeOut: Integer): Boolean;
+var
+  dwResult: DWORD;
+  Msg: TMsg;
+  EventList: array[0..0] of THandle;
+begin
+  EventList[0] := EventName;
+  dwResult := MsgWaitForMultipleObjects(1, EventList, False, DWORD(ATimeOut),
+    QS_ALLEVENTS);
+
+  case dwResult of
+    WAIT_FAILED: {Waiting failed}
+      begin
+        if Assigned(FOnError) then
+          FOnError(GetLastError, SysErrorMessage(GetLastError));
+      end;
+    WAIT_TIMEOUT: {Waiting Timo out}
+      begin
+        if Assigned(FOnError) then
+          FOnError(GetLastError, SysErrorMessage(GetLastError));
+      end;
+    WAIT_BSCB: {Our state to process messages}
+      begin
+        while PeekMessage(Msg, 0, 0, 0, PM_REMOVE) do
+        begin
+          TranslateMessage(Msg);
+          DispatchMessage(Msg);
+          if (Integer(GetTickCount) - aStartTick > aTimeOut) then
+          begin
+            if Assigned(FOnError) then
+              FOnError(GetLastError, Err_TimeOut);
+          end;
+        end;
+        if (Integer(GetTickCount) - aStartTick > aTimeOut) then
+        begin
+          if Assigned(FOnError) then
+            FOnError(GetLastError, Err_TimeOut);
+        end;
+      end;
+  end;
+  Result := (dwResult = WAIT_OBJECT_0); {We are done waiting}
+end;
+
+function TCustomIEDownload.IsSynchronous(iedInfo: TInfoData): boolean;
+begin {Return True if mode is Synchronous}
+  if iedInfo.infBindF_Value <> (iedInfo.infBindF_Value or
+    BINDF_ASYNCHRONOUS) then
+    Result := True
+  else
+    Result := False;
+end;
+
+function TCustomIEDownload.IsAsyncMoniker(const pmk: IMoniker): HRESULT;
+begin
+  Result := UrlMon.IsAsyncMoniker(pmk);
+end;
+
+function TCustomIEDownload.FormatSize(const Byte: Double): string;
+begin
+  Result := IEDownloadTools.FormatSize(Byte);
+end;
+
+function TCustomIEDownload.FormatTickToTime(const TickCount: Cardinal): string;
+begin
+  Result := IEDownloadTools.FormatTickToTime(TickCount);
+end;
+
+function TCustomIEDownload.IsUrlValid(const isUrl: string): Boolean;
+var
+  U: TUrl;
+begin
+  U := TUrl.Create(isUrl);
+  try
+    Result := U.IsUrlValid(isUrl);
+    if not Result and Assigned(FOnError) then
+      FOnError(GetLastError, SysErrorMessage(GetLastError) + isUrl);
+  finally
+    U.Free;
+  end;
+end;
+
+procedure TCustomIEDownload.PrepareForExit;
+begin
+  if Assigned(FOnComplete) then
+    FOnComplete(Self, FDownloadedFile, FFileName, FDownloadFolder,
+      FFileExtension, ActiveConnections);
+  FState := sReady;
+  if Assigned(FOnStateChange) then
+    FOnStateChange(FState);
+end;
+
+procedure TCustomIEDownload.PrepareForStart;
+begin
+  FBusy := True;
+  bRenamed := False;
+  FCancel := False;
+  FDownloadedFile := EmptyStr;
+  FDownloadFolder := EmptyStr;
+  FFileExtension := EmptyStr;
+  FFileName := EmptyStr;
+  FFileSize := 0;
+  FMimeType := EmptyStr;
+  FServerAddress := EmptyStr;
+  FServerIP := EmptyStr;
+  FUrl := EmptyStr;
+  FState := sBusy;
+  if Assigned(FOnStateChange) then
+    FOnStateChange(FState);
+  FStartTick := GetTickCount;
+  Inc(FRefCount);
+  Inc(FActiveConnections);
+end;
+
+procedure TCustomIEDownload.SetCodePage(const Value: TCodePageOption);
+begin
+  FCodePageOption := Value;
+  case FCodePageOption of
+    Ansi: FCodePageValue := CP_ACP;
+    Mac: FCodePageValue := CP_MACCP;
+    OEM: FCodePageValue := CP_OEMCP;
+    Symbol: FCodePageValue := CP_SYMBOL;
+    ThreadsAnsi: FCodePageValue := CP_THREAD_ACP;
+    UTF7: FCodePageValue := CP_UTF7;
+    UTF8: FCodePageValue := CP_UTF8;
+  end;
+end;
+
+procedure TCustomIEDownload.SetBindVerb(const Value: TBindVerb);
+begin {Contains values that specify an action, such as an HTTP request, to be performed during the binding operation.}
+  FBindVerb := Value;
+  case FBindVerb of
+    Get: FBindVerb_Value := BINDVERB_GET;
+    Put: FBindVerb_Value := BINDVERB_PUT;
+    Post: FBindVerb_Value := BINDVERB_POST;
+    Custom: FBindVerb_Value := BINDVERB_CUSTOM;
+  end;
+end;
+
+procedure TCustomIEDownload.SetFileName(const Value: string);
+begin
+  FFileName := Value;
+end;
+
+function TCustomIEDownload.SetFileNameFromUrl(const aUrl: string): string;
+var
+  Ut: TUrl;
+  sTmp1, sTmp2: string;
+begin
+  if FDownloadMethod = dmFile then
+  begin
+    Ut := TUrl.Create(aUrl);
+    try
+      Ut.CrackUrl(aUrl, ICU_ESCAPE);
+      if AnsiPos('.', Ut.ExtraInfo) <> 0 then
+        sTmp1 := Ut.ExtraInfo;
+      Ut.QueryUrl(aUrl);
+      sTmp2 := Ut.Document;
+    finally
+      Ut.Free;
+    end;
+    if sTmp1 <> EmptyStr then
+    begin
+      Result := sTmp1;
+      Exit;
+    end
+    else
+      Result := sTmp2;
+  end;
+end;
+
+procedure TCustomIEDownload.ExtractDataFromFile(const aFileName: string);
+begin
+  FDownloadedFile := aFileName;
+  FFileName := ExtractFileName(aFileName);
+  FDownloadFolder := ExtractFilePath(aFileName);
+  FFileExtension := ExtractFileExt(aFileName);
+end;
+
+procedure TCustomIEDownload.SetAdditionalHeader(const Value: TStrings);
+begin {Sets additional headers to append to the HTTP request.}
+  FAdditionalHeader.Assign(Value);
+end;
+
+procedure TCustomIEDownload.SetAbout(Value: string);
+begin
+  Exit;
+end;
+
+procedure TCustomIEDownload.SetDefaultProtocol(const Value: string);
+begin
+  FDefaultProtocol := (Value);
+  if FDefaultProtocol = EmptyStr then
+    FDefaultProtocol := 'http://';
+end;
+
+procedure TCustomIEDownload.SetUserAgent;
+begin
+  FFullUserAgent := USER_AGENT_IE6 + '(' + FUserAgent + ')' + #13#10;
+end;
+
+procedure TCustomIEDownload.SetBindInfoF(const Value: TBindInfoF_Options);
+begin
+  FBindInfoF := Value;
+  Update_BindInfoF_Value;
+end;
+
+procedure TCustomIEDownload.SetBindF2(const Value: TBindF2_Options);
+begin
+  FBindF2 := Value;
+  Update_BindF2_Value;
+end;
+
+procedure TCustomIEDownload.SetBindInfoOption(const Value: TBindInfoOptions_Options);
+begin
+  FBindInfoOption_ := Value;
+  Update_BindInfoOptions_Value;
+end;
+
+procedure TCustomIEDownload.SetBindF(const Value: TBindF_Options);
+begin
+  if FFileExistsOption = feOverWrite then
+    FBindF := FBindF + [GetNewestVersion];
+  FBindF := Value;
+  Update_BindF_Value;
+end;
+
+procedure TCustomIEDownload.SetDownloadMethod(const Value: TDownloadMethod);
+begin
+  FDownloadMethod := Value;
+end;
+
+function TCustomIEDownload.SetHttpProtocol(const aUrl: string): string;
+type {Insert http to an address like bsalsa.com }
+  TProtocols = array[1..23] of string;
+const
+  Protocols: TProtocols = (
+    'about', 'cdl', 'dvd', 'file', 'ftp', 'gopher', 'http', 'ipp', 'its',
+    'javascript', 'local', 'mailto', 'mk', 'msdaipp', 'ms-help', 'ms-its',
+    'mso', 'res', 'sysimage', 'tv', 'vbscript', 'via', 'https');
+var
+  i: Integer;
+begin
+  for i := 1 to 23 do
+  begin
+    if (AnsiPos(AnsiUpperCase(Protocols[i]), AnsiUpperCase(aUrl)) <> 0) then
+    begin
+      Result := aUrl;
+      Exit;
+    end;
+  end;
+  Result := 'http://' + aUrl;
+end;
+
+function TCustomIEDownload.SetDownloadFolder(const aDownloadFolder: string):
+  string;
+begin
+  if (FDownloadMethod = dmFile) then
+  begin
+    Result := aDownloadFolder;
+    if (Result = EmptyStr) then
+      Result := ExtractFilePath(Application.ExeName) + DL_DIR;
+    if Result <> EmptyStr then
+    try
+      ForceDirectories(Result);
+    except
+      if Assigned(FOnError) then
+        FOnError(GetLastError, SysErrorMessage(GetLastError) +
+          Err_Creating_Dir);
+    end;
+  end;
+end;
+
+function TCustomIEDownload.ResponseCodeToStr(const dwResponse: Integer): string;
+begin
+  Result := IEDownloadTools.ResponseCodeToStr(dwResponse);
+end;
+
+function TCustomIEDownload.WideStringToLPOLESTR(const Source: string): POleStr;
+begin
+  Result := IEDownloadTools.WidestringToLPOLESTR(Source);
+end;
+
+initialization
+  coInitialize(nil);
+finalization
+  coUninitialize;
+end.
+
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IEDownloadAcc.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IEDownloadAcc.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IEDownloadAcc.pas	(revision 541)
@@ -0,0 +1,182 @@
+//*************************************************************************
+//                                                                        *
+//                    IEDownload_Acc 2009                                 *
+//                       For Delphi                                       *
+//                                                                        *
+//                       Freeware unit                                    *
+//                            by                                          *
+//                     and Eran Bodankin                                  *
+//                     bsalsa@gmail.com                                   *
+//                                                                        *
+//  Updated versions:                                                     *
+//               http://www.bsalsa.com                                    *
+//*************************************************************************
+{LICENSE:
+THIS SOFTWARE IS PROVIDED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND,
+EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE APPLIED
+WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
+YOU ASSUME THE ENTIRE RISK AS TO THE ACCURACY AND THE USE OF THE SOFTWARE
+AND ALL OTHER RISK ARISING OUT OF THE USE OR PERFORMANCE OF THIS SOFTWARE
+AND DOCUMENTATION. BSALSA PRODUCTIONS DOES NOT WARRANT THAT THE SOFTWARE IS ERROR-FREE
+OR WILL OPERATE WITHOUT INTERRUPTION. THE SOFTWARE IS NOT DESIGNED, INTENDED
+OR LICENSED FOR USE IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE CONTROLS,
+INCLUDING WITHOUT LIMITATION, THE DESIGN, CONSTRUCTION, MAINTENANCE OR
+OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS,
+AIR TRAFFIC CONTROL, AND LIFE SUPPORT OR WEAPONS SYSTEMS. BSALSA PRODUCTIONS SPECIFICALLY
+DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR SUCH PURPOSE.
+
+You may use, change or modify the component under 4 conditions:
+1. In your website, add a link to "http://www.bsalsa.com"
+2. In your application, add credits to "Embedded Web Browser"
+3. Mail me  (bsalsa@gmail.com) any code change in the unit
+   for the benefit of the other users.
+4. Please, consider donation in our web site!
+{*******************************************************************************}
+
+unit IEDownloadAcc;
+
+interface
+
+{$I EWB.inc}
+
+uses
+  ActiveX, SysUtils, ShlObj, Windows, UrlMon, IEConst;
+
+{$IFDEF DELPHI6_UP}
+type
+ {Authentiae }
+  _AUTHENTICATEF = (
+    AUTHENTICATEF_PROXY = $00000001,
+    AUTHENTICATEF_BASIC = $00000002,
+    AUTHENTICATEF_HTTP = $00000004);
+  AUTHENTICATEF = _AUTHENTICATEF;
+
+ {PutProperty }
+  _MONIKERPROPERTY = (
+    MIMETYPEPROP = 0,
+    USE_SRC_URL = $00000001,
+    CLASSIDPROP = $00000002,
+    TRUSTEDDOWNLOADPROP = $00000003,
+    POPUPLEVELPROP = $00000004);
+  MONIKERPROPERTY = _MONIKERPROPERTY;
+
+    {CIP_STATUS }
+  _CIP_STATUS = (
+    CIP_DISK_FULL = 0,
+    CIP_ACCESS_DENIED = 1,
+    CIP_NEWER_VERSION_EXISTS = 2,
+    CIP_OLDER_VERSION_EXISTS = 3,
+    CIP_NAME_CONFLICT = 4,
+    CIP_TRUST_VERIFICATION_COMPONENT_MISSING = 5,
+    CIP_EXE_SELF_REGISTERATION_TIMEOUT = 6,
+    CIP_UNSAFE_TO_ABORT = 7,
+    CIP_NEED_REBOOT = 8,
+    CIP_NEED_REBOOT_UI_PERMISSION = 9);
+  CIP_STATUS = _CIP_STATUS;
+
+   {BSCF Enumerated Type}
+  _BSCF = (
+    BSCF_FIRSTDATANOTIFICATION = $00000001,
+    BSCF_INTERMEDIATEDATANOTIFICATION = $00000002,
+    BSCF_LASTDATANOTIFICATION = $00000004,
+    BSCF_DATAFULLYAVAILABLE = $00000008,
+    BSCF_AVAILABLEDATASIZEUNKNOWN = $00000010,
+    BSCF_SKIPDRAINDATAFORFILEURLS = $00000020);
+  BSCF = _BSCF;
+
+
+type
+  pauthinfo = ^TAUTHENTICATEINFO;
+  _tagAUTHENTICATEINFO = record
+    dwFlags: LongInt;
+    dwReserved: LongInt;
+  end;
+  TAUTHENTICATEINFO = _tagAUTHENTICATEINFO;
+  AUTHENTICATEINFO = _tagAUTHENTICATEINFO;
+
+type
+  IAuthenticateEx = interface(IAuthenticate)
+    ['{2AD1EDAF-D83D-48B5-9ADF-03DBE19F53BD}']
+    function AuthenticateEx(out phwnd: HWND; out pszUsername,
+      pszPassword: LPWSTR; var pauthinfo: AUTHENTICATEINFO): HResult; stdcall;
+  end;
+{$ENDIF}
+
+
+type
+  IBindStatusCallbackEx = interface(IBindStatusCallback)
+    ['{AAA74EF9-8EE7-4659-88D9-F8C504DA73CC}']
+    function GetBindInfoEx(out grfBINDF: DWORD; var pbindinfo: BINDINFO;
+      out grfBINDF2: DWORD; out pdwReserved: DWORD): HResult; stdcall;
+  end;
+
+type
+  ICatalogFileInfo = interface(IUnknown)
+    ['{711C7600-6B48-11D1-B403-00AA00B92AF1}']
+    function GetCatalogFile(out ppszCatalogFile: LPSTR): HResult;
+    function GetJavaTrust(out ppJavaTrust: Pointer): HResult;
+  end;
+
+type
+  IHttpNegotiate2 = interface(IHttpNegotiate)
+    ['{4F9F9FCB-E0F4-48EB-B7AB-FA2EA9365CB4}']
+    function GetRootSecurityId(var SecurityIdBuffer: TByteArray; var
+      BufferSize: DWord; dwReserved: DWORD): HResult; stdcall;
+  end;
+
+type
+  IHttpNegotiate3 = interface(IHttpNegotiate2)
+    ['{57b6c80a-34c2-4602-bc26-66a02fc57153}']
+    function GetSerializedClientCertContext(out ppbCert: Byte;
+      var pcbCert: DWORD): HResult; stdcall;
+  end;
+{$IFDEF DELPHI6_UP}
+type
+  IMonikerProp = interface(IUnknown)
+    ['{A5CA5F7F-1847-4D87-9C5B-918509F7511D}']
+    function PutProperty(mkp: MONIKERPROPERTY; val: LPCWSTR): HResult; stdcall;
+  end;
+{$ENDIF}
+
+
+
+type
+  IBindHost = interface(IUnknown)
+    ['{fc4801a1-2ba9-11cf-a229-00aa003d7352}']
+    function CreateMoniker(szName: POLEStr; BC: IBindCtx; out mk: IMoniker;
+      dwReserved: DWORD): HResult; stdcall;
+    function MonikerBindToStorage(Mk: IMoniker; BC: IBindCtx; BSC:
+      IBindStatusCallback; const iid: TGUID; out pvObj{$IFNDEF DELPHI8_UP}: Pointer{$ENDIF}): HResult; stdcall;
+    function MonikerBindToObject(Mk: IMoniker; BC: IBindCtx; BSC:
+      IBindStatusCallback; const iid: TGUID; out pvObj{$IFNDEF DELPHI8_UP}: Pointer{$ENDIF}): HResult; stdcall;
+  end;
+
+type
+  INTERNET_PER_CONN_OPTION = record
+    dwOption: DWORD;
+    Value: record
+      case Integer of
+        1: (dwValue: DWORD);
+        2: (pszValue: PChar); {Unicode/ANSI}
+        3: (ftValue: TFileTime);
+    end;
+  end;
+
+  LPINTERNET_PER_CONN_OPTION = ^INTERNET_PER_CONN_OPTION;
+  INTERNET_PER_CONN_OPTION_List = record
+    dwSize: DWORD;
+    pszConnection: LPTSTR;
+    dwOptionCount: DWORD;
+    dwOptionError: DWORD;
+    intOptions: LPINTERNET_PER_CONN_OPTION;
+  end;
+  LPINTERNET_PER_CONN_OPTION_List = ^INTERNET_PER_CONN_OPTION_List;
+
+
+
+function CreateURLMonikerEx(MkCtx: IMoniker; szURL: LPCWSTR;
+  out mk: IMoniker; dwFlags: DWORD): HRESULT; stdcall; external UrlMonLib;
+
+implementation
+
+end.
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IEDownloadStrings.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IEDownloadStrings.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IEDownloadStrings.pas	(revision 541)
@@ -0,0 +1,91 @@
+//*************************************************************
+//                     IEDownload strings                     *
+//                                                            *
+//                     For Delphi 5 to 2009                   *
+//                         Freeware unit                      *
+//                            by                              *
+//                     Eran Bodankin (bsalsa)                 *
+//                     bsalsa@gmail.com                       *
+//                                                            *
+//     Documentation and updated versions:                    *
+//               http://www.bsalsa.com                        *
+//*************************************************************
+{*******************************************************************************}
+{LICENSE:
+THIS SOFTWARE IS PROVIDED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND,
+EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE APPLIED
+WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
+YOU ASSUME THE ENTIRE RISK AS TO THE ACCURACY AND THE USE OF THE SOFTWARE
+AND ALL OTHER RISK ARISING OUT OF THE USE OR PERFORMANCE OF THIS SOFTWARE
+AND DOCUMENTATION. BSALSA PRODUCTIONS DOES NOT WARRANT THAT THE SOFTWARE IS ERROR-FREE
+OR WILL OPERATE WITHOUT INTERRUPTION. THE SOFTWARE IS NOT DESIGNED, INTENDED
+OR LICENSED FOR USE IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE CONTROLS,
+INCLUDING WITHOUT LIMITATION, THE DESIGN, CONSTRUCTION, MAINTENANCE OR
+OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS,
+AIR TRAFFIC CONTROL, AND LIFE SUPPORT OR WEAPONS SYSTEMS. BSALSA PRODUCTIONS SPECIFICALLY
+DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR SUCH PURPOSE.
+
+You may use, change or modify the component under 3 conditions:
+1. In your website, add a link to "http://www.bsalsa.com"
+2. In your application, add credits to "Embedded Web Browser"
+3. Mail me  (bsalsa@gmail.com) any code change in the unit
+   for the benefit of the other users.
+4. Please, consider donation in our web site!
+{*******************************************************************************}
+
+unit IEDownloadStrings;
+
+interface
+
+resourcestring
+
+  Bind_To_St = 'MonikerBindToStorage: ';
+  Create_BSCB = 'Creating IBindStatusCallback: ';
+  Create_Moniker = 'CreateMoniker: ';
+  CreateABindCtx = 'CreateAsyncBindCtx: ';
+  CreateURLMEx = 'CreateURLMonikerEx: ';
+  DL_DIR = 'Downloads\';
+  done = 'Done.';
+  DL_ToFile = 'UrlDownloadToFile';
+  DL_ToCacheFile = 'UrlDownloadToCacheFile';
+  Err_AsyncBindCtx = 'Error while CreateAsyncBindCtx: ';
+  Err_BindToSt = 'Error while MonikerBindToStorage ';
+  Err_CreateMoniker = 'Error while CreateMoniker ';
+  Err_Creating_Dir = ' while creating download folder';
+  Err_Folder = 'Error while opening folder';
+  Err_Proc_DL = 'ProcessEvents fails to wait until complete downloading';
+  Err_Proc_Ev = 'ProcessEvents fails to wait until complete.';
+  Err_RegBSCB = 'Error while RegisterBindStatusCallback: ';
+  Err_Revoke = 'Error while RevokeBindStatusCallback. ';
+  Err_ToFile = 'Error while UrlDownloadToFile';
+  Err_ToCacheFile = 'Error while UrlDownloadToCacheFile';
+  Err_TimeOut = 'Error: Timeout.';
+  Err_URLMEx = 'Error while CreateURLMonikerEx: ';
+  Frmt_Time = 'mm:ss.zzz';
+  kb_sec = 'kb/sec';
+  Reg_BSCB = 'RegisterBindStatusCallback: ';
+  Registering_new_moniker = 'Registering new moniker: ';
+  Revoke_BSCB = 'RevokeBindStatusCallback: ';
+  Err_Doc_AsAdvise = 'Error while getting ConnectionPoint.Advise: ';
+  Doc_AsAdvise = 'Getting ConnectionPoint.Advise ';
+  Err_Doc_AsPointContainer = 'Error while getting IConnectionPointContainer: ';
+  Doc_AsPointContainer = 'Getting IConnectionPointContainer: ';
+  Err_Doc_AsAmbientPropertyChange = 'Error while getting AmbientPropertyChang: ';
+  Doc_AsAmbientPropertyChange = 'Getting Ambient Property Change: ';
+  Err_Doc_AsSetClientSite = 'Error while getting Set Client Site: ';
+  Doc_AsSetClientSite = 'Getting Set Client Site: ';
+  Err_CoCreateInstance = 'Error while CoCreateInstance: ';
+  Succ_CoCreateInstance = 'Getting CoCreateInstance: ';
+  Err_IpersistMoniker_Load = 'Error while loading as IpersistMoniker: ';
+  Succ_IpersistMoniker_Load = 'Loading as IpersistMoniker ';
+  Err_Load_Str = 'Error while loading from string: ';
+  Succ_Load_Str = 'Loading from string: ';
+  Err_Load_Mon = 'Error while loading from moniker: ';
+  Succ_Load_Mon = 'Loading from moniker: ';
+  P_Wait = 'Please wait... ';
+  General_Error = 'An error occured while ';
+  Doc_Error = 'Bad document or bad address.';
+
+implementation
+
+end.
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IEDownloadTools.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IEDownloadTools.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IEDownloadTools.pas	(revision 541)
@@ -0,0 +1,578 @@
+//*************************************************************************
+//                                                                        *
+//                        IEDownload Tools                                *
+//                       For Delphi                                       *
+//                                                                        *
+//                     Freeware Unit                                      *
+//                            by                                          *
+//  Eran Bodankin -bsalsa(bsalsa@gmail.com)                              *
+//                                                                        *
+//                                                                        *
+//  Updated versions:                                                     *
+//               http://www.bsalsa.com                                    *
+//*************************************************************************
+{LICENSE:
+THIS SOFTWARE IS PROVIDED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND,
+EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE APPLIED
+WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
+YOU ASSUME THE ENTIRE RISK AS TO THE ACCURACY AND THE USE OF THE SOFTWARE
+AND ALL OTHER RISK ARISING OUT OF THE USE OR PERFORMANCE OF THIS SOFTWARE
+AND DOCUMENTATION. BSALSA PRODUCTIONS DOES NOT WARRANT THAT THE SOFTWARE IS ERROR-FREE
+OR WILL OPERATE WITHOUT INTERRUPTION. THE SOFTWARE IS NOT DESIGNED, INTENDED
+OR LICENSED FOR USE IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE CONTROLS,
+INCLUDING WITHOUT LIMITATION, THE DESIGN, CONSTRUCTION, MAINTENANCE OR
+OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS,
+AIR TRAFFIC CONTROL, AND LIFE SUPPORT OR WEAPONS SYSTEMS. BSALSA PRODUCTIONS SPECIFICALLY
+DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR SUCH PURPOSE.
+
+You may use, change or modify the component under 4 conditions:
+1. In your website, add a link to "http://www.bsalsa.com"
+2. In your application, add credits to "Embedded Web Browser"
+3. Mail me  (bsalsa@gmail.com) any code change in the unit
+   for the benefit of the other users.
+4. Please, consider donation in our web site!
+{*******************************************************************************}
+
+unit IEDownloadTools;
+
+interface
+
+uses
+  Windows, IeConst, SysUtils, ActiveX;
+
+function ResponseCodeToStr(dwResponse: Integer): string;
+function FormatSize(Byte: Double): string;
+function FormatTickToTime(TickCount: Cardinal): string;
+function IsValidURL(const URL: Widestring): Boolean;
+function WideStringToLPOLESTR(const Source: Widestring): POleStr;
+function WideStringToWideChar(const inString: WideString): PWideChar;
+function CodeInstallProblemToStr(ulStatusCode: Integer): string;
+function DataAvalibleToStr(Code: Integer): string;
+function SecToStr(const Seconds: LongInt): string;
+procedure FreeWideChar(var inString: PWideChar);
+function StrToCase(StringOf: string; CasesList: array of string): Integer;
+function QueryRemoteFileInfo(const Url: string; dwInfoFlag: Integer): string;
+function GetInfoByMimeType(const ContentType: string): boolean;
+function StrContain(SubString: string; Str: string): boolean;
+function IncludeTrailingPathDelimiter(const S: string): string;
+function CharReplace(const Source: string; OldChar, NewChar: Char): string;
+
+
+implementation
+
+uses
+  WinInet, UrlMon, Registry;
+
+// Some constatants are missing in previous delphi versions.
+// That's why they are declared here.
+const
+{$EXTERNALSYM BINDSTATUS_COOKIE_SENT}
+  BINDSTATUS_COOKIE_SENT = BINDSTATUS_ACCEPTRANGES + 1;
+{$EXTERNALSYM BINDSTATUS_COMPACT_POLICY_RECEIVED}
+  BINDSTATUS_COMPACT_POLICY_RECEIVED = BINDSTATUS_COOKIE_SENT + 1;
+{$EXTERNALSYM BINDSTATUS_COOKIE_SUPPRESSED}
+  BINDSTATUS_COOKIE_SUPPRESSED = BINDSTATUS_COMPACT_POLICY_RECEIVED + 1;
+{$EXTERNALSYM BINDSTATUS_COOKIE_STATE_UNKNOWN}
+  BINDSTATUS_COOKIE_STATE_UNKNOWN = BINDSTATUS_COOKIE_SUPPRESSED + 1;
+{$EXTERNALSYM BINDSTATUS_COOKIE_STATE_ACCEPT}
+  BINDSTATUS_COOKIE_STATE_ACCEPT = BINDSTATUS_COOKIE_STATE_UNKNOWN + 1;
+{$EXTERNALSYM BINDSTATUS_COOKIE_STATE_REJECT}
+  BINDSTATUS_COOKIE_STATE_REJECT = BINDSTATUS_COOKIE_STATE_ACCEPT + 1;
+{$EXTERNALSYM BINDSTATUS_COOKIE_STATE_PROMPT}
+  BINDSTATUS_COOKIE_STATE_PROMPT = BINDSTATUS_COOKIE_STATE_REJECT + 1;
+{$EXTERNALSYM BINDSTATUS_COOKIE_STATE_LEASH}
+  BINDSTATUS_COOKIE_STATE_LEASH = BINDSTATUS_COOKIE_STATE_PROMPT + 1;
+{$EXTERNALSYM BINDSTATUS_COOKIE_STATE_DOWNGRADE}
+  BINDSTATUS_COOKIE_STATE_DOWNGRADE = BINDSTATUS_COOKIE_STATE_LEASH + 1;
+{$EXTERNALSYM BINDSTATUS_POLICY_HREF}
+  BINDSTATUS_POLICY_HREF = BINDSTATUS_COOKIE_STATE_DOWNGRADE + 1;
+{$EXTERNALSYM BINDSTATUS_P3P_HEADER}
+  BINDSTATUS_P3P_HEADER = BINDSTATUS_POLICY_HREF + 1;
+{$EXTERNALSYM BINDSTATUS_SESSION_COOKIE_RECEIVED}
+  BINDSTATUS_SESSION_COOKIE_RECEIVED = BINDSTATUS_P3P_HEADER + 1;
+{$EXTERNALSYM BINDSTATUS_PERSISTENT_COOKIE_RECEIVED}
+  BINDSTATUS_PERSISTENT_COOKIE_RECEIVED = BINDSTATUS_SESSION_COOKIE_RECEIVED +
+    1;
+
+function CodeInstallProblemToStr(ulStatusCode: Integer): string;
+begin
+  case ulStatusCode of
+    CIP_DISK_FULL: Result := 'Destination can accept no more data.';
+    CIP_ACCESS_DENIED: Result := 'Permissions problem.';
+    CIP_NEWER_VERSION_EXISTS: Result :=
+      'Destination contains a newer version than the source.';
+    CIP_OLDER_VERSION_EXISTS: Result :=
+      'Destination contains an older version than the source.';
+    CIP_NAME_CONFLICT: Result :=
+      'Destination does not allow the naming convention used by the source.';
+    CIP_TRUST_VERIFICATION_COMPONENT_MISSING: Result :=
+      'Destination cannot verify the source.';
+    CIP_EXE_SELF_REGISTERATION_TIMEOUT: Result := 'Timeout has occurred. ';
+    CIP_UNSAFE_TO_ABORT: Result :=
+      'Installation or download should not be aborted.';
+    CIP_NEED_REBOOT: Result := 'Destination machine requires rebooting.';
+    CIP_NEED_REBOOT_UI_PERMISSION: Result :=
+      'Destination machine should reboot without user interface (UI).';
+  else
+    Result := ResponseCodeToStr(ulStatusCode)
+  end;
+end;
+
+function DataAvalibleToStr(Code: Integer): string;
+begin
+  case Code of
+    BSCF_FIRSTDATANOTIFICATION: Result :=
+      'Identifed the first call to OnDataAvailable.';
+    BSCF_INTERMEDIATEDATANOTIFICATION: Result :=
+      'Identifed the intermediate call to OnDataAvailable.';
+    BSCF_LASTDATANOTIFICATION: Result :=
+      'Identifed the last call to OnDataAvailable.';
+    BSCF_DATAFULLYAVAILABLE: Result :=
+      'All of the requested data is available.';
+    BSCF_AVAILABLEDATASIZEUNKNOWN: Result :=
+      'Size of the data available is unknown.';
+    //  BSCF_SKIPDRAINDATAFORFILEURLS: Result := 'Bypass cache downloads.';
+  else
+    Result := ResponseCodeToStr(Code)
+  end;
+end;
+
+function ResponseCodeToStr(dwResponse: Integer): string;
+begin
+  case dwResponse of
+    100: Result := 'Continue';
+    101: Result := 'Switching Protocols';
+    200: Result := 'OK';
+    201: Result := 'Created';
+    202: Result := 'Accepted';
+    203: Result := 'Non-Authoritative Information';
+    204: Result := 'No Content';
+    205: Result := 'Reset Content';
+    206: Result := 'Partial Content';
+    300: Result := 'Multiple Choices';
+    301: Result := 'Moved Permanently';
+    302: Result := 'Moved Temporarily';
+    303: Result := 'See Other';
+    304: Result := 'Not Modified';
+    305: Result := 'Use Proxy';
+    400: Result := 'Bad Request';
+    401: Result := 'Unauthorized';
+    402: Result := 'Payment Required';
+    403: Result := 'Forbidden';
+    404: Result := 'Not Found';
+    405: Result := 'Method Not Allowed';
+    406: Result := 'None Acceptable';
+    407: Result := 'Proxy Authentication Required';
+    408: Result := 'Request Timeout';
+    409: Result := 'Conflict';
+    410: Result := 'Gone';
+    411: Result := 'Length Required';
+    412: Result := 'Precondition Failed';
+    413: Result := 'Request Entity Too Large';
+    414: Result := 'Request-URI Too Long';
+    415: Result := 'Unsupported Media Type';
+    416: Result := 'Requested Range Not Satisfiable';
+    417: Result := 'Expectation Failed';
+    500: Result := 'Internal Server Error';
+    501: Result := 'Not Implemented';
+    502: Result := 'Bad Gateway';
+    503: Result := 'Service Unavailable';
+    504: Result := 'Gateway Timeout';
+    505: Result := 'HTTP Version Not Supported';
+    BINDSTATUS_FINDINGRESOURCE: Result := 'Finding resource...';
+    BINDSTATUS_CONNECTING: Result := 'Connecting...';
+    BINDSTATUS_REDIRECTING: Result := 'Server redirecting client...';
+    BINDSTATUS_BEGINDOWNLOADDATA: Result := 'Beginning to download data...';
+    BINDSTATUS_DOWNLOADINGDATA: Result := 'Downloading data...';
+    BINDSTATUS_ENDDOWNLOADDATA: Result := 'Ending data download...';
+    BINDSTATUS_BEGINDOWNLOADCOMPONENTS: Result :=
+      'Beginning to download components...';
+    BINDSTATUS_INSTALLINGCOMPONENTS: Result := 'Installing components...';
+    BINDSTATUS_ENDDOWNLOADCOMPONENTS: Result := 'Ending component download...';
+    BINDSTATUS_USINGCACHEDCOPY: Result := 'Using cached copy...';
+    BINDSTATUS_SENDINGREQUEST: Result := 'Sending request...';
+    BINDSTATUS_CLASSIDAVAILABLE: Result := 'CLSID available...'; //***
+    BINDSTATUS_MIMETYPEAVAILABLE: Result := 'MIME type available...';
+    BINDSTATUS_CACHEFILENAMEAVAILABLE: Result := 'Cache file name available...';
+    BINDSTATUS_BEGINSYNCOPERATION: Result :=
+      'Synchronous operation has started...';
+    BINDSTATUS_ENDSYNCOPERATION: Result := 'Ending synchronous operation...';
+    BINDSTATUS_BEGINUPLOADDATA: Result := 'Beginning to upload data...';
+    BINDSTATUS_UPLOADINGDATA: Result := 'Uploading data...';
+    BINDSTATUS_ENDUPLOADDATA: Result := 'Ending data upload...';
+    BINDSTATUS_PROTOCOLCLASSID: Result :=
+      'Protocol handler CLSID is available...';
+    BINDSTATUS_ENCODING: Result := 'Encoding data...';
+    BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE: Result :=
+      'Verified MIME type is available...';
+    BINDSTATUS_CLASSINSTALLLOCATION: Result :=
+      'Class install location is available...';
+    BINDSTATUS_DECODING: Result := 'Decoding data...';
+    BINDSTATUS_LOADINGMIMEHANDLER: Result :=
+      'Pluggable MIME handler is being loaded...';
+    BINDSTATUS_CONTENTDISPOSITIONATTACH: Result :=
+      'Content-Disposition resource is an attachment...';
+    BINDSTATUS_FILTERREPORTMIMETYPE: Result :=
+      'New MIME type available for resource...';
+    BINDSTATUS_CLSIDCANINSTANTIATE: Result :=
+      'CLSID to return on BindToObject...';
+    BINDSTATUS_IUNKNOWNAVAILABLE: Result :=
+      'IUnknown interface has been released...';
+    BINDSTATUS_DIRECTBIND: Result :=
+      'Connected directly to the pluggable protocol handler...';
+    BINDSTATUS_RAWMIMETYPE: Result := 'Raw MIME type...';
+    BINDSTATUS_PROXYDETECTING: Result := 'Proxy server has been detected...';
+    BINDSTATUS_ACCEPTRANGES: Result := 'Valid types of range requests...';
+    BINDSTATUS_COOKIE_SENT: Result := 'A cookie was sent';
+    BINDSTATUS_COMPACT_POLICY_RECEIVED: Result :=
+      'A Platform for Privacy Preferences was received.';
+    BINDSTATUS_COOKIE_SUPPRESSED: Result :=
+      'A cookie was suppressed from being sent to the web server.';
+    BINDSTATUS_COOKIE_STATE_UNKNOWN: Result :=
+      'A a cookie has been initialized. ';
+    BINDSTATUS_COOKIE_STATE_ACCEPT: Result :=
+      'A cookie sent by the server was accepted.';
+    BINDSTATUS_COOKIE_STATE_REJECT: Result :=
+      'A cookie sent by the server was rejected.';
+    BINDSTATUS_COOKIE_STATE_PROMPT: Result :=
+      'User settings require a prompt before performing a cookie operation.';
+    BINDSTATUS_COOKIE_STATE_LEASH: Result := 'A cookie is a leashed cookie.';
+    BINDSTATUS_COOKIE_STATE_DOWNGRADE: Result :=
+      'A cookie is a downgraded cookie.';
+    BINDSTATUS_POLICY_HREF: Result :=
+      'HTTP headers contain a link to the full privacy policy';
+    BINDSTATUS_P3P_HEADER: Result :=
+      'HTTP response from the server contains the P3P privacy header';
+    BINDSTATUS_SESSION_COOKIE_RECEIVED: Result :=
+      'A session cookie was received.';
+    BINDSTATUS_PERSISTENT_COOKIE_RECEIVED: Result :=
+      'A persistent cookie was received. ';
+    BINDSTATUS_SESSION_COOKIES_ALLOWED: Result :=
+      'The session cookies are allowed.';
+    BINDSTATUS_CACHECONTROL: Result :=
+      'A response from the server was written to memory only.'; //IE7
+    BINDSTATUS_CONTENTDISPOSITIONFILENAME: Result :=
+      'The Content-Disposition header contains a file name.';
+    BINDSTATUS_MIMETEXTPLAINMISMATCH: Result :=
+      'The reported Content-Type of the file does not match the content. ';
+    BINDSTATUS_PUBLISHERAVAILABLE: Result :=
+      'The publisher name is being downloaded and is available.';
+    BINDSTATUS_DISPLAYNAMEAVAILABLE: Result :=
+      'The display name being downloaded and is available.';
+    BINDSTATUS_SSLUX_NAVBLOCKED: Result := 'A problem with the SSL certificate.';
+    BINDSTATUS_SERVER_MIMETYPEAVAILABLE: Result :=
+      'Server''s authoritative MIME type reported'; //IE8  - Attention: This documentation is preliminary and is subject to change
+    BINDSTATUS_SNIFFED_CLASSIDAVAILABLE: Result :=
+      'Class identifier (CLSID) generated from authoritative Content-Type HTTP response header'; //IE8  - Attention: This documentation is preliminary and is subject to change
+    BINDSTATUS_64BIT_PROGRESS: Result :=
+      'Download progress values are above the maximum 32-bit file size limit.'; //IE8  - Attention: This documentation is preliminary and is subject to change
+    // E_PENDING: Result := 'The data necessary to complete this operation is not yet available';
+    E_UNEXPECTED: Result := 'Catastrophic failure';
+    E_FAIL: Result := 'Failed';
+    E_NOINTERFACE: Result := 'No such interface supported';
+    E_NOTIMPL: Result := 'Not implemented';
+    E_ABORT: Result := 'Operation Aborted.';
+    E_ACCESSDENIED: Result := 'Access Denied.';
+    E_INVALIDARG: Result := 'One or more parameters are invalid.';
+    E_OUTOFMEMORY: Result := 'There was insufficient memory ...';
+    ERROR_HTTP_REDIRECT_NEEDS_CONFIRMATION: Result :=
+      'The redirection requires user confirmation.';
+    ERROR_INTERNET_CHG_POST_IS_NON_SECURE: Result :=
+      'The application is posting and attempting to change multiple lines of text on a server that is not secure.';
+    ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED: Result :=
+      'The server is requesting client authentication.';
+    ERROR_INTERNET_CLIENT_AUTH_NOT_SETUP: Result :=
+      'Client authorization is not set up on this computer.';
+    ERROR_INTERNET_FORTEZZA_LOGIN_NEEDED: Result :=
+      'The requested resource requires Fortezza authentication.';
+    ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR: Result :=
+      'The application is moving from a non-SSL to an SSL connection because of a redirect.';
+    ERROR_INTERNET_HTTPS_TO_HTTP_ON_REDIR: Result :=
+      'The application is moving from an SSL to an non-SSL connection because of a redirect.';
+    ERROR_INTERNET_INVALID_CA: Result :=
+      'The function is unfamiliar with the Certificate Authority that generated the server''s certificate.';
+    ERROR_INTERNET_MIXED_SECURITY: Result :=
+      'The content is not entirely secure. Some of the content being viewed may have come from unsecured servers.';
+    ERROR_INTERNET_POST_IS_NON_SECURE: Result :=
+      'The application is posting data to a server that is not secure.';
+    ERROR_INTERNET_SEC_CERT_CN_INVALID: Result :=
+      'SSL certificate common name (host name field) is incorrect???for example, if you entered www.server.com and the common name on the certificate says www.different.com.';
+    ERROR_INTERNET_SEC_CERT_DATE_INVALID: Result :=
+      'SSL certificate date that was received from the server is bad. The certificate is expired.';
+    ERROR_INTERNET_SEC_CERT_REVOKED: Result := 'SSL certificate was revoked.';
+    INET_E_AUTHENTICATION_REQUIRED: Result :=
+      'Authentication is needed to access the object.';
+    INET_E_CANNOT_CONNECT: Result :=
+      'The attempt to connect to the Internet has failed.';
+    INET_E_CANNOT_INSTANTIATE_OBJECT: Result := 'CoCreateInstance failed.';
+    INET_E_CANNOT_LOAD_DATA: Result := 'The object could not be loaded.';
+    INET_E_CANNOT_LOCK_REQUEST: Result :=
+      'The requested resource could not be locked.';
+    INET_E_CANNOT_REPLACE_SFP_FILE: Result :=
+      'Cannot replace a protected System File Protection (SFP) file.';
+    INET_E_CODE_DOWNLOAD_DECLINED: Result :=
+      'Permission to download is declined.';
+    INET_E_CONNECTION_TIMEOUT: Result :=
+      'The Internet connection has timed out.';
+    INET_E_DATA_NOT_AVAILABLE: Result :=
+      'An Internet connection was established, but the data cannot be retrieved.';
+    INET_E_DEFAULT_ACTION: Result := 'Use the default action.';
+    INET_E_DOWNLOAD_FAILURE: Result :=
+      'The download has failed (the connection was interrupted).';
+    INET_E_INVALID_REQUEST: Result := 'The request was invalid.';
+    INET_E_INVALID_URL: Result := 'The URL could not be parsed.';
+    INET_E_NO_SESSION: Result := 'No Internet session was established.';
+    INET_E_NO_VALID_MEDIA: Result :=
+      'The object is not in one of the acceptable MIME types.';
+    INET_E_OBJECT_NOT_FOUND: Result := 'The object was not found.';
+    INET_E_QUERYOPTION_UNKNOWN: Result := 'The requested option is unknown.';
+    INET_E_REDIRECT_TO_DIR: Result :=
+      'The request is being redirected to a directory.';
+    INET_E_REDIRECTING: Result := 'The request is being redirected.';
+    INET_E_RESOURCE_NOT_FOUND: Result := 'The server or proxy was not found.';
+    INET_E_RESULT_DISPATCHED: Result := 'Result is dispatched.';
+    INET_E_SECURITY_PROBLEM: Result := 'A security problem was encountered.';
+    INET_E_TERMINATED_BIND: Result := 'Binding is terminated.';
+    INET_E_UNKNOWN_PROTOCOL: Result :=
+      'The protocol is not known and no pluggable protocols have been entered that match.';
+    //INET_E_USE_DEFAULT_PROTOCOLHANDLER: Result := 'Use the default protocol handler.';
+    INET_E_USE_EXTEND_BINDING: Result :=
+      'Re-issue request with extended Binding.';
+    INET_E_USE_DEFAULT_SETTING: Result := 'Use the default settings.';
+    MK_E_CANTOPENFILE: Result := 'Moniker cannot open file.';
+    MK_E_CONNECTMANUALLY: Result :=
+      'The operation was unable to connect to the storage, possibly because a network device could not be connected to. For more information, see IMoniker::BindToObject.';
+    MK_E_ENUMERATION_FAILED: Result := 'Moniker could not be enumerated';
+    MK_E_EXCEEDEDDEADLINE: Result :=
+      'The operation could not be completed within the time limit specified by the bind context''s BIND_OPTS structure.';
+    MK_E_INTERMEDIATEINTERFACENOTSUPPORTED: Result :=
+      'An intermediate object was found but it did not support an interface required for an operation. For example, an item moniker returns this value if its container does not support the IOleItemContainer interface.';
+    MK_E_INVALIDEXTENSION: Result := 'Bad extension for file.';
+    MK_E_MUSTBOTHERUSER: Result :=
+      'User input required for operation to succeed.';
+    MK_E_NEEDGENERIC: Result := 'Moniker needs to be generic.';
+    MK_E_NOINVERSE: Result := 'Moniker class has no inverse.';
+    MK_E_NOOBJECT: Result := 'No object for moniker.';
+    MK_E_NOPREFIX: Result := 'No common prefix.';
+    MK_E_NOSTORAGE: Result :=
+      'The object identified by the moniker does not have its own storage.';
+    MK_E_NOTBINDABLE: Result := 'Moniker is not bindable.';
+    MK_E_NOTBOUND: Result := 'Moniker is not bound.';
+    MK_E_SYNTAX: Result :=
+      'A moniker could not be created because of invalid URL syntax.';
+    MK_E_UNAVAILABLE: Result := 'Operation unavailable.';
+    S_OK: Result := 'The operation was successful';
+    STG_E_ACCESSDENIED: Result := 'Unable to access the storage object.';
+    MK_S_ASYNCHRONOUS: Result := 'Asynchronous mode.';
+  else
+    Result := 'Unknown Response: ' + IntToStr(dwResponse) + ' ' +
+      SysErrorMessage(dwResponse)
+  end;
+end;
+
+function WideStringToLPOLESTR(const Source: Widestring): POleStr;
+var
+  Len: Integer;
+begin
+  Len := Length(Source) * SizeOf(WideChar);
+  Result := CoTaskMemAlloc(Len + 2);
+  FillChar(Result^, Len + 2, 0);
+  Move(Result^, PWideString(Source)^, Len);
+end;
+
+function SecToStr(const Seconds: LongInt): string;
+var
+  H: Integer;
+  M: Integer;
+  S: Integer;
+begin
+  h := (Seconds div 60) div 60 mod 60;
+  m := (Seconds div 60) mod 60;
+  s := Seconds mod 60;
+  Result := Format('%2.2d:%2.2d:%2.2d', (.H, M, S.));
+end;
+
+function FormatTickToTime(TickCount: Cardinal): string;
+var
+  Hours, Minutes, Seconds, MSecs: Cardinal;
+  S_HUR, S_MIN, S_SEC, S_MSC: string;
+begin
+  S_MSC := '000';
+  S_SEC := '00';
+  S_MIN := '00';
+  S_HUR := '00';
+  try
+    if (TickCount > 0) then
+    begin
+      MSecs := TickCount mod MSecsPerSec;
+      TickCount := TickCount div MSecsPerSec;
+      S_MSC := Format('%.3d', [MSecs]);
+      Seconds := TickCount mod SecsPerMin;
+      TickCount := TickCount div SecsPerMin;
+      S_SEC := Format('%.2d', [Seconds]);
+      Minutes := TickCount mod MinsPerHour;
+      TickCount := TickCount div MinsPerHour;
+      S_MIN := Format('%.2d', [Minutes]);
+      Hours := TickCount mod HoursPerDay;
+      S_HUR := Format('%.2d', [Hours]);
+    end;
+  finally
+    if S_HUR = '00' then
+      Result := S_MIN + 'm :' + S_SEC + 's :' + S_MSC + 'ms';
+    if (S_HUR = '00') and (S_MIN = '00') then
+      Result := S_SEC + 's :' + S_MSC + 'ms';
+    if S_HUR <> '00' then
+      Result := S_HUR + 'h :' + S_MIN + 'm :' + S_SEC + 's :' + S_MSC + 'ms';
+  end;
+end;
+
+
+function StrToCase(StringOf: string; CasesList: array of string): Integer;
+var
+  Idx: integer;
+begin
+  Result := -1;
+  for Idx := 0 to Length(CasesList) - 1 do
+  begin
+    if CompareText(StringOf, CasesList[Idx]) = 0 then
+    begin
+      Result := Idx;
+      Break;
+    end;
+  end;
+end;
+
+function FormatSize(Byte: Double): string;
+begin
+  if (Byte > 0) then
+  begin
+    if (Byte < 1024) then
+      Result := Format('%.2n b', [Byte])
+    else
+      if (Byte > 1024) then
+      begin
+        Byte := (Byte / 1024);
+        if (Byte < 1024) then
+          Result := Format('%.2n Kb', [Byte])
+        else
+        begin
+          Byte := (Byte / 1024);
+          Result := Format('%.2n Mb', [Byte]);
+        end;
+      end;
+  end;
+end;
+
+function IsValidURL(const URL: Widestring): Boolean;
+begin
+  Result := UrlMon.IsValidURL(nil, PWideChar(URL), 0) = S_OK;
+end;
+
+
+function WideStringToWideChar(const inString: WideString): PWideChar;
+begin
+  Result := CoTaskMemAlloc((Length(inString) + 1) * SizeOf(WideChar));
+  Move(inString, Result, (Length(inString) + 1) * SizeOf(WideChar));
+end;
+
+procedure FreeWideChar(var inString: PWideChar);
+begin
+  if Assigned(inString) then
+  begin
+    CoTaskMemFree(inString);
+    inString := nil;
+  end;
+end;
+
+function QueryRemoteFileInfo(const Url: string; dwInfoFlag: Integer): string;
+var
+  hInet: HINTERNET;
+  hConnect: HINTERNET;
+  infoBuffer: array[0..512] of char;
+  dummy: DWORD;
+  bufLen: DWORD;
+  lbResult: LongBool;
+begin
+  hInet := InternetOpen(PChar('TIDownload'),
+    INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY, nil, nil, 0);
+  hConnect := InternetOpenUrl(hInet, PChar(Url), nil, 0, INTERNET_FLAG_NO_UI, 0);
+  if not Assigned(hConnect) then
+  begin
+    Result := '';
+  end
+  else
+  begin
+    dummy := 0;
+    bufLen := Length(infoBuffer);
+    lbResult := HttpQueryInfo(hConnect, dwInfoFlag, @infoBuffer[0], bufLen, dummy);
+    if lbResult then
+      Result := infoBuffer
+    else
+      Result := '';
+    InternetCloseHandle(hConnect);
+  end;
+  InternetCloseHandle(hInet);
+end;
+
+function GetInfoByMimeType(const ContentType: string): boolean;
+var
+  Reg: TRegistry;
+  CLSID: string;
+begin
+  Result := FALSE;
+
+  Reg := TRegistry.Create(KEY_READ);
+  try
+    with Reg do
+    begin
+      RootKey := HKEY_CLASSES_ROOT;
+      if OpenKeyReadOnly('MIME\Database\Content Type\' + ContentType) then
+      begin
+        if ValueExists('CLSID') then
+        begin
+          CLSID := ReadString('CLSID');
+          if CLSID <> '' then
+          begin
+            if OpenKeyReadOnly('\CLSID\' + CLSID) then
+            begin
+              if KeyExists('Control') then
+              begin
+                if KeyExists('EnableFullPage') then
+                begin
+                  Result := TRUE;
+                end;
+              end;
+            end;
+          end;
+        end;
+      end;
+      CloseKey;
+    end;
+  finally
+    Reg.Free;
+  end;
+end;
+
+function StrContain(SubString: string; Str: string): boolean;
+begin
+  Result := AnsiPos(AnsiLowerCase(SubString), AnsiLowerCase(Str)) > 0;
+end;
+
+function IncludeTrailingPathDelimiter(const S: string): string;
+begin
+  Result := S;
+  if not IsPathDelimiter(Result, Length(Result)) then
+    Result := Result + PathDelim;
+end;
+
+function CharReplace(const Source: string; OldChar, NewChar: Char): string;
+var
+  i: Integer;
+begin
+  Result := Source;
+  for i := 1 to Length(Result) do
+    if Result[i] = OldChar then
+      Result[i] := NewChar
+end;
+
+end.
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IEGuid.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IEGuid.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IEGuid.pas	(revision 541)
@@ -0,0 +1,544 @@
+//****************************************************
+//                       IE-Guid                     *
+//                      For Delphi                   *
+//                Freeware Component                 *
+//                   by                              *
+//                                                   *
+//        Per Lindsø Larsen                          *
+//   http://www.euromind.com/iedelphi                *
+//                                                   *
+// Contributor:                                      *
+// Eran Bodankin (bsalsa) - D2005 update and bug fix *
+//  bsalsa@gmail.com                                *
+//                                                   *
+// Documentation and updated versions:               *
+//               http://www.bsalsa.com               *
+//****************************************************
+
+{*******************************************************************************}
+{LICENSE:
+THIS SOFTWARE IS PROVIDED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND,
+EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE APPLIED
+WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
+YOU ASSUME THE ENTIRE RISK AS TO THE ACCURACY AND THE USE OF THE SOFTWARE
+AND ALL OTHER RISK ARISING OUT OF THE USE OR PERFORMANCE OF THIS SOFTWARE
+AND DocUMENTATION. BSALSA PRODUCTIONS DOES NOT WARRANT THAT THE SOFTWARE IS ERROR-FREE
+OR WILL OPERATE WITHOUT INTERRUPTION. THE SOFTWARE IS NOT DESIGNED, INTENDED
+OR LICENSED FOR USE IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE CONTROLS,
+INCLUDING WITHOUT LIMITATION, THE DESIGN, CONSTRUCTION, MAINTENANCE OR
+OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SystemS,
+AIR TRAFFIC CONTROL, AND LIFE SUPPORT OR WEAPONS SystemS. BSALSA PRODUCTIONS SPECIFICALLY
+DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR SUCH PURPOSE.
+
+You may use, change or modify the component under 3 conditions:
+1. In your website, add a Link to "http://www.bsalsa.com"
+2. In your application, add credits to "Embedded Web Browser"
+3. Mail me  (bsalsa@gmail.com) any code change in the unit
+   for the benefit of the other users.
+4. You may consider donation in our web site!
+{*******************************************************************************}
+//$Id: IEGuid.pas,v 1.2 2006/11/15 21:01:42 sergev Exp $
+
+
+unit IEGuid;
+
+interface
+
+uses
+  Mshtml_Ewb, Clipbrd, Comobj, Activex, Windows, Messages, SysUtils, Classes, Controls, Forms, Dialogs;
+
+type
+
+  TIEGuid = class(TObject)
+  private
+    function LoadList(Fname: string): Integer;
+  public
+    Names: TStringlist;
+    Guids: TStringlist;
+    function NameFromGuid(Guid: TGUID): string;
+    function NameFromGuidStr(GuidStr: string): string;
+    function CopyToClipboard(GuidName: string): HResult;
+    function GetInterfaces(Unk: IUnknown; const S: TStrings): HResult;
+    function GetServices(Unk: IUnknown; rsid: string; const S: TStrings): HResult;
+    function GetConnectionPoints(Unk: IUnknown; const S: TStrings; ShowIDispatch: Boolean): HResult;
+    procedure GetPropertyList(const Obj: IDispatch; const S: TStrings);
+    function GetDispatchFromName(const Disp: IDispatch; const PropertyName: WideString): OleVariant;
+    function GetInterfacesEx(Unk: IUnknown;
+      const S: TStrings; ShowIUnknown, ShowIDispatch, ShowIDispatchEx, ShowDispinterfaces: Boolean): HResult;
+    destructor Destroy; override;
+    constructor Create(const fname: string);
+  end;
+
+function CreateIEGuid(HeadersDir, GuidFile: string): Integer;
+function CreateIEList(Guidfile, IEList: string): Integer;
+
+implementation
+
+{ TIEGuid }
+
+function TIEGuid.GetDispatchFromName(const Disp: IDispatch; const PropertyName: WideString): OleVariant;
+var
+  PName: PWideChar;
+  DispID: Integer;
+  ExcepInfo: TExcepInfo;
+  DispParams: TDispParams;
+  Status: HResult;
+begin
+  Result := disp <> nil;
+  if Result then
+  begin
+    PName := PWideChar(PropertyName);
+    if PName <> 'parentDocument' then
+    begin
+      if PropertyName = '' then
+        Result := DISPID_UNKNOWN
+      else
+        Disp.GetIDsOfNames(GUID_NULL, @PName, 1, GetThreadLocale, @DispID);
+      FillChar(DispParams, SizeOf(DispParams), 0);
+      Status := Disp.Invoke(DispID, GUID_NULL, 0, DISPATCH_PROPERTYGET, DispParams,
+        @Result, @ExcepInfo, nil);
+      if Status <> S_OK then
+        DispatchInvokeError(Status, ExcepInfo);
+    end;
+  end;
+end;
+
+procedure TIEGuid.GetPropertyList(const Obj: IDispatch; const S: TStrings);
+var
+  i: Integer;
+  TI: ITypeInfo;
+  TA: PTypeAttr;
+  FD: PFuncDesc;
+  aName: WideString;
+  vt: Integer;
+begin
+  OleCheck(Obj.GetTypeInfo(0, 0, TI));
+  OleCheck(TI.GetTypeAttr(TA));
+  for i := 0 to TA.cFuncs - 1 do
+  begin
+    OleCheck(TI.GetFuncDesc(i, FD));
+    if (FD.invkind = INVOKE_PROPERTYGET) then
+    begin
+      TI.GetDocumentation(FD.memid, @aName, nil, nil, nil);
+      vt := fd.elemdescFunc.tdesc.vt;
+      if (vt = VT_DISPATCH) or (vt = VT_PTR) then
+        S.add(aName);
+    end;
+    TI.ReleaseFuncDesc(FD);
+  end;
+  TI.ReleaseTypeAttr(TA);
+end;
+
+// Create list of .h-files in Headers directory
+
+function GetFileList(const Path: string; var FileList:
+  TStringList): Boolean;
+var
+  SearchRec: TSearchRec;
+  ff: Integer;
+begin
+  GetFileList := False;
+  ff := FindFirst(Path + '\*.*', faAnyFile, SearchRec);
+  if ff = 0 then
+  begin
+    GetFileList := True;
+    if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then
+    begin
+      if (SearchRec.Attr and $10 <> $10)
+        then
+        if Pos('.h', SearchRec.Name) > 0 then
+          FileList.Add(Path + '\' + SearchRec.Name);
+    end;
+    repeat
+      ff := FindNext(SearchRec);
+      if ff = 0 then
+      begin
+        if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then
+        begin
+          if (SearchRec.Attr and $10 <> $10) then
+            FileList.Add(Path + '\' + SearchRec.Name);
+        end;
+      end;
+    until ff <> 0;
+  end;
+end;
+
+function FindStr(S: string; I: Integer; Token: string): string;
+var
+  counter, t, t1, t2: Shortint;
+begin
+  S := Token + S + Token;
+  counter := 1;
+  t := 0;
+  while t < I do
+  begin
+    if Copy(S, counter, 1) = Token then
+      Inc(t);
+    inc(counter);
+  end;
+  t1 := counter;
+  if Copy(S, counter, 1) = token then
+    Result := ''
+  else
+  begin
+    Inc(Counter);
+    while Copy(S, counter, 1) <> Token do
+      Inc(counter);
+    t2 := counter - t1;
+    Result := copy(S, t1, t2);
+  end;
+end;
+
+function ExtractDefineGuid(GuidStr: string): string;
+var
+  o, Temp, s, G: string;
+  X: Integer;
+begin
+  GuidStr := Trim(StringReplace(GuidStr, ' ', '', [rfReplaceAll, rfIgnoreCase]));
+  Guidstr := Stringreplace(GuidStr, Chr($09), '', [rfReplaceAll]);
+  g := Copy(GuidStr, 13, Pos(',', GuidStr) - 13);
+  S := Uppercase(Copy(GuidStr, Pos('0x', GuidStr), 255));
+  S := Trim(StringReplace(S, ');', '', [rfReplaceAll, rfIgnoreCase]));
+  S := StringReplace(S, '0x', '', [rfReplaceAll, rfIgnoreCase]);
+  S := StringReplace(S, 'L', '', [rfReplaceAll, rfIgnoreCase]);
+  X := 1;
+  o := '';
+  repeat
+    Temp := Findstr(S, X, ',');
+    if (Length(Temp) = 1) or (Length(temp) = 3) or (Length(temp) = 7) then
+      o := o + '0' + temp
+    else
+      o := o + temp;
+    Inc(x);
+  until Temp = '';
+  s := o;
+  S := StringReplace(S, ',', '', [rfReplaceAll, rfIgnoreCase]);
+  s := Trim('{' + Copy(s, 1, 8) + '-' + Copy(S, 9, 4) + '-' + Copy(s, 13, 4) + '-' + Copy(s, 17, 4) + '-' + Copy(s, 21, 12) + '}');
+  if (Length(s) <> 38) or (Pos('name', g) > 0) or (Pos('DEFINE_', S) > 0) then
+    Result := ''
+  else
+    Result := g + '=' + S;
+end;
+
+//Extract GUIDS Registry: HKEY_CLASSES_ROOT\Interfaces
+
+procedure GetGuidsFromRegistry(Guids: TStringList);
+var
+  dwIndex: DWORD;
+  cb: Integer;
+  szIID: array[0..80] of char;
+  szvalue: array[0..256] of char;
+  hk: HKEY;
+  Str: string;
+begin
+  cb := SizeOf(szValue);
+  RegOpenKey(HKEY_CLASSES_ROOT, 'Interface', hk);
+  dwIndex := 0;
+  while RegEnumKey(hk, dwindex, szIID, SizeOf(szIID)) = ERROR_SUCCESS
+    do
+  begin
+    szValue := '';
+    RegQueryValue(hk, szIID, szvalue, cb);
+    if (szValue <> '') then
+    begin
+      str := string(szvalue) + '=' + szIID;
+      if Guids.IndexOf(str) = -1 then
+        Guids.Add(str);
+    end;
+    inc(dwIndex);
+  end;
+end;
+
+function CreateIEGuid(HeadersDir, GuidFile: string): Integer;
+var
+  files, lines, Guids: TStringlist;
+  S, n, g: string;
+  X, Fcounter, Lcounter: Integer;
+begin
+  Files := TStringlist.Create;
+  Lines := TStringlist.Create;
+  Guids := TStringlist.Create;
+  Guids.Sorted := True;
+  GetFileList(HeadersDir, Files);
+  for FCounter := 0 to Files.Count - 1 do
+  begin
+    Lines.LoadFromFile(Files[FCounter]);
+    for LCounter := 0 to Lines.Count - 1 do
+    begin
+      if Pos('MIDL_INTERFACE("', Lines[LCounter]) > 0 then
+      //(1) Extract GUIDS from MIDL_INTERFACE("... lines in header files
+      begin
+        g := UpperCase('{' + Copy(Trim(Lines[LCounter]), 17, 36) + '}');
+        n := Copy(Trim(Lines[LCounter + 1]), 1, 255);
+        if n = '' then
+          N := Copy(Trim(Lines[LCounter + 2]), 1, 255);
+        n := Copy(n, 1, Pos(' ', n) - 1);
+        S := n + '=' + g;
+        if (Guids.IndexOf(S) < 0) and (n <> '') then
+          Guids.Add(S);
+      end
+      else
+        if Pos('DEFINE_GUID(', Trim(Lines[LCounter])) = 1 then
+        begin
+          //(2) Extract GUIDS from DEFINE_GUID("... lines in header files
+          n := Lines[LCounter];
+          x := LCounter;
+          while (pos(');', n) = 0) and (x < lines.count) do
+          begin
+            Inc(x);
+            n := n + Lines[x];
+          end;
+          S := ExtractDefineGuid(n);
+          if s <> '' then
+            if Guids.IndexOf(s) < 0 then
+              Guids.Add(s);
+        end
+        else
+          if (pos('__declspec(uuid("', Lines[LCounter]) > 0) and (Pos(';', Lines[LCounter]) > 0) then
+          begin
+            // (3) Extract GUIDS from __declspec(uuid("... lines in header files
+            g := Copy(Lines[LCOunter], Pos('declspec(uuid("', Lines[LCounter]) + 15, 255);
+            n := '{' + Copy(G, 1, Pos('"', G) - 1) + '}';
+            g := Copy(g, Pos(' ', g), 255);
+            g := Trim(StringReplace(g, ';', '', [rfReplaceAll]));
+            S := g + '=' + Uppercase(n);
+            if Guids.IndexOf(S) < 0 then
+              Guids.Add(S);
+          end;
+    end;
+  end;
+  Files.Free;
+  Lines.Free;
+  GetGuidsFromRegistry(Guids);
+  Result := Guids.Count;
+  Guids.SaveToFile(GuidFile);
+  Guids.Free;
+end;
+
+function CreateIEList(GuidFile, Ielist: string): Integer;
+var
+  S: string;
+  i: Integer;
+  Temp: TStringlist;
+  Guids: TStringlist;
+begin
+  Temp := TStringlist.Create;
+  Guids := TStringlist.Create;
+  Guids.LoadFromFile(GuidFile);
+  for I := 0 to Guids.Count - 1 do
+  begin
+    s := Uppercase(Guids[i]);
+
+    if (pos('DISP', S) = 1) or (pos('HTML', S) = 1) or (pos('SID_', S) = 1) or
+      (pos('DWEB', S) = 1) or (pos('CGID', S) = 1) or ((pos('I', S) = 1) and (pos('IID_', S) = 0))
+      then
+      Temp.Add(Guids[i])
+    else
+      if (pos('IID_I', S) = 1) and (Guids.IndexOf(Copy(S, 5, 255)) = -1) then
+        Temp.add(copy(guids[i], 5, 255));
+
+  end;
+  if Temp.IndexOf('CGID_MSHTML={DE4BA900-59CA-11CF-9592-444553540000}') = -1 then
+    Temp.Add('CGID_MSHTML={DE4BA900-59CA-11CF-9592-444553540000}');
+
+  Temp.SaveToFile(IEList);
+  Result := Temp.Count;
+  Temp.Free;
+  Guids.Free;
+end;
+
+function TIEGuid.LoadList(Fname: string): Integer;
+var
+  X: Integer;
+  Temp: TStringlist;
+begin
+  Guids.Clear;
+  Names.Clear;
+  Temp := TStringlist.Create;
+  try
+    Temp.LoadFromFile(FName);
+    for x := 0 to Temp.Count - 1 do
+    begin
+      Guids.Add(Copy(Temp[x], Pos('=', Temp[x]) + 1, 255));
+      Names.Add(Copy(Temp[x], 1, Pos('=', Temp[x]) - 1));
+    end;
+    Result := Guids.Count;
+  finally
+    Temp.Free;
+  end;
+end;
+
+destructor TIEGuid.Destroy;
+begin
+  if Names <> nil then
+    Names.Free;
+  if Guids <> nil then
+    Guids.Free;
+  inherited;
+end;
+
+constructor TIEGuid.Create(const fname: string);
+begin
+  inherited Create;
+  if FileExists(fname) then
+  begin
+    Names := TStringlist.Create;
+    Guids := TStringlist.Create;
+    loadlist(Fname);
+  end;
+end;
+
+function TIEGuid.NameFromGuidStr(GuidStr: string): string;
+var
+  i: Integer;
+begin
+  i := Guids.IndexOf(GuidStr);
+  if i > -1 then
+    Result := Names[i]
+  else
+    Result := GuidStr;
+end;
+
+function TIEGuid.CopyToClipboard(GuidName: string): HResult;
+var
+ //  s: string;
+  x: Integer;
+begin
+  x := Names.IndexOf(guidname);
+  if x > -1 then
+  begin
+    ClipBoard.SetTextBuf(Pchar(Names[x] + ' : TGUID = ''' + Guids[x] + ''';'));
+    Result := S_OK;
+  end
+  else
+    Result := S_FALSE;
+end;
+
+function TIEGuid.NameFromGuid(Guid: TGUID): string;
+var
+  s: string;
+  i: Integer;
+begin
+  s := GuidToString(Guid);
+  i := Guids.IndexOf(s);
+  if i > -1 then
+    Result := Names[i]
+  else
+    Result := S;
+end;
+
+function TIEGuid.GetServices(Unk: IUnknown; rsid: string; const S: TStrings): HResult;
+var
+  Isp: IServiceprovider;
+  x: Integer;
+  i: IUnknown;
+  G, N: string;
+begin
+  Result := S_FALSE;
+  x := Names.IndexOf(rsid);
+  if ((rsid <> '') and (x = -1)) or not Assigned(unk) then
+    Exit;
+  if x > -1 then
+  begin
+    G := Guids[x];
+    n := Names[x];
+  end;
+  if Succeeded(Unk.QueryInterface(IServiceprovider, isp))
+    then
+    for x := 0 to Guids.Count - 1 do
+    begin
+      if rsid = '' then
+      begin
+        G := Guids[x];
+        N := Names[x];
+      end;
+      try
+        if isp.QueryService(StringtoGuid(G), StringtoGuid(Guids[x]), i) = S_OK
+          then
+          S.Add(Names[x]);
+      except
+        ShowMessage('Invalid GUID: ' + Names[x]);
+      end;
+      Result := S_OK;
+    end;
+end;
+
+function TIEGuid.GetInterfaces(Unk: IUnknown;
+  const S: TStrings): HResult;
+var
+  i: IUnknown;
+  x: Integer;
+begin
+  Result := S_OK;
+  if not Assigned(unk) then
+  begin
+    Result := S_FALSE;
+    Exit;
+  end
+  else
+    for x := 0 to Guids.count - 1 do
+    try
+      if Succeeded(unk.QueryInterface(StringToGuid(Guids[x]), i)) then
+        S.Add(Names[x]);
+    except
+      ShowMessage('Invalid GUID: ' + Names[x]);
+    end;
+end;
+
+function TIEGuid.GetInterfacesEx(Unk: IUnknown;
+  const S: TStrings; ShowIUnknown, ShowIDispatch, ShowIDispatchEx, ShowDispinterfaces: Boolean): HResult;
+var
+  I: IUnknown;
+ //  Show: Boolean;
+  x: Integer;
+begin
+  Result := S_OK;
+  if not Assigned(unk) then
+  begin
+    Result := S_FALSE;
+    Exit;
+  end
+  else
+    for x := 0 to Guids.count - 1 do
+    try
+      if Succeeded(unk.QueryInterface(StringToGuid(Guids[x]), i)) then
+        if ((not ShowIdispatch and (UpperCase(Names[x]) = 'IDISPATCH')) or
+          (not ShowIdispatchEx and (UpperCase(Names[x]) = 'IDISPATCHEX')) or
+          (not ShowIUnknown and (UpperCase(Names[x]) = 'IUNKNOWN'))) or
+          (not ShowDispInterfaces and (Pos('DISP', UpperCase(Names[x])) = 1)) then
+        else
+          S.Add(Names[x]);
+    except
+      ShowMessage('Invalid GUID for: ' + Names[x]);
+    end;
+end;
+
+function TIEGuid.GetConnectionPoints(Unk: IUnknown; const S: TStrings; ShowIDispatch: Boolean): HResult;
+var
+  IID: TGuid;
+  CPC: IConnectionPointContainer;
+  iecp: IEnumConnectionPoints;
+  cp: IConnectionPoint;
+  Fetched: Integer;
+begin
+  Result := S_FALSE;
+  if Assigned(unk) then
+  begin
+    if Succeeded(Unk.QueryInterface(IConnectionPointContainer, CPC)) then
+    begin
+      CPC.EnumConnectionPoints(iecp);
+      iecp.Next(1, cp, @Fetched);
+      repeat
+        cp.GetConnectionInterface(iid);
+        if (Uppercase(NameFromGuid(IID)) = 'IDISPATCH') and not ShowIdispatch
+        then else
+          S.Add(NameFromGuid(IID));
+        iecp.Next(1, cp, @Fetched);
+      until fetched = 0;
+      Result := S_OK
+    end;
+  end;
+end;
+
+end.
+
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IEMultiDownload.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IEMultiDownload.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IEMultiDownload.pas	(revision 541)
@@ -0,0 +1,635 @@
+//****************************************************
+//                  IEMultiDownload                  *
+//                For Delphi 5 - 2009                *
+//                Freeware Component                 *
+//                       by                          *
+//                                                   *
+//              Eran Bodankin (bsalsa)               *
+//                 bsalsa@gmail.com                  *
+//                                                   *
+// Documentation and updated versions:               *
+//               http://www.bsalsa.com               *
+//****************************************************
+
+{*******************************************************************************}
+{LICENSE:
+THIS SOFTWARE IS PROVIDED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND,
+EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE APPLIED
+WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
+YOU ASSUME THE ENTIRE RISK AS TO THE ACCURACY AND THE USE OF THE SOFTWARE
+AND ALL OTHER RISK ARISING OUT OF THE USE OR PERFORMANCE OF THIS SOFTWARE
+AND DOCUMENTATION. BSALSA PRODUCTIONS DOES NOT WARRANT THAT THE SOFTWARE IS ERROR-FREE
+OR WILL OPERATE WITHOUT INTERRUPTION. THE SOFTWARE IS NOT DESIGNED, INTENDED
+OR LICENSED FOR USE IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE CONTROLS,
+INCLUDING WITHOUT LIMITATION, THE DESIGN, CONSTRUCTION, MAINTENANCE OR
+OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SystemS,
+AIR TRAFFIC CONTROL, AND LIFE SUPPORT OR WEAPONS SystemS. VSOFT SPECIFICALLY
+DISCLAIMS ANY EXPRES OR IMPLIED WARRANTY OF FITNESS FOR SUCH PURPOSE.
+
+You may use, change or modify the component under 4 conditions:
+1. In your website, add a Link to "http://www.bsalsa.com"
+2. In your application, add credits to "Embedded Web Browser"
+3. Mail me  (bsalsa@gmail.com) any code change in the unit
+   for the benefit of the other users.
+4. Please consider donation in our web site!
+{*******************************************************************************}
+
+unit IEMultiDownload;
+
+{$I EWB.inc}
+
+interface
+
+uses
+  WinInet, MSHTML_EWB, Windows, SysUtils, Classes, Forms, ExtCtrls,
+  IEDownload, IEParser, EwbUrl;
+
+type
+  TIEMultiDownload = class;
+
+  TMultiState = (msBusy, msReady, msStopped);
+  TMultiDownloadOptions = (doAll, doImages, doPages, doVideo, doMusic);
+
+  TDownloadItem = class(TCollectionItem)
+  private
+    FFileName: WideString;
+    FPassword: WideString;
+    FPath: WideString;
+    FPort: integer;
+    FProtocol: WideString;
+    FRef: WideString;
+    FRoot: WideString;
+    FUser: WideString;
+    procedure Set_Ref(const Value: WideString);
+    procedure SetFileName(const Value: WideString);
+    procedure SetPassword(const Value: WideString);
+    procedure SetPath(const Value: WideString);
+    procedure SetPort(const Value: integer);
+    procedure SetProtocol(const Value: WideString);
+    procedure SetRoot(const Value: WideString);
+    procedure SetUser(const Value: WideString);
+  public
+    procedure Assign(Source: TPersistent); override;
+  published
+    property FileName: WideString read FFileName write SetFileName;
+    property Ref: WideString read FRef write Set_Ref;
+    property Password: WideString read FPassword write SetPassword;
+    property Path: WideString read FPath write SetPath;
+    property Port: integer read FPort write SetPort;
+    property Protocol: WideString read FProtocol write SetProtocol;
+    property Root: WideString read FRoot write SetRoot;
+    property User: WideString read FUser write SetUser;
+  end;
+
+  TDownloadList = class(TCollection)
+  private
+    FIEMD: TIEMultiDownload;
+    function GetItem(Index: Integer): TDownloadItem;
+    procedure SetItem(Index: Integer; Value: TDownloadItem);
+  protected
+    function GetOwner: TPersistent; override;
+  public
+    constructor Create(IEMD: TIEMultiDownload);
+    function Add: TDownloadItem;
+    function Insert(Index: Integer): TDownloadItem;
+    function IsListed(const aRef: WideString): Boolean;
+    procedure DeleteItem(Index: Integer);
+    procedure ClearItems;
+  public
+    property Items[index: Integer]: TDownloadItem read GetItem write SetItem; default;
+  end;
+
+  TOnMultiBeforeDownloadEvent = procedure(Sender: TObject; const hRef: WideString; const Item: TDownloadItem; var Cancel: boolean) of object;
+  TOnMultiCompleteEvent = procedure(Sender: TObject; const DownloadedList: TStrings) of object;
+  TOnMultiGetDocInfoEvent = procedure(Sender: TObject; const Text: string) of object;
+  TOnMultiGetImageEvent = procedure(Sender: TObject; const ImgName: string; var Cancel: Boolean) of object;
+  TOnMultiGetLinkEvent = procedure(Sender: TObject; const hRef, Host, HostName, PathName, Port, Protocol, MimeType, NameProp: string; var Cancel: Boolean) of object;
+  TOnMultiGetQueryInfoEvent = procedure(const MimeType, Encoding, Disposition: string) of object;
+  TOnMultiItemAddedEvent = procedure(Sender: TObject; const hRef, hProtocol, hRoot, hPath, hFileName, hUser, hPassword: WideString; const hPort: integer) of object;
+  TOnMultiParseCompleteEvent = procedure(Sender: TObject; Doc: IhtmlDocument2; All: IHtmlElementCollection) of object;
+  TOnMultiParseDocumentEvent = procedure(Sender: TObject; const Res: HRESULT; stMessage: string) of object;
+  TOnMultiParseErrorEvent = procedure(Sender: TObject; const ErrorCode: integer; const Url, stError: string) of object;
+  TOnMultiParseProgressEvent = procedure(Sender: TObject; const ulProgress, ulProgressMax: integer) of object;
+  TOnMultiStateChangeEvent = procedure(Sender: TObject; const State: TMultiState) of object;
+  TOnMultiStartParsingEvent = procedure(Sender: TObject; const aUrl: WideString) of object;
+
+  TIEMultiDownload = class(TCustomIEDownload)
+  private
+    FAbout: string;
+    FBaseFolder: WideString;
+    FBaseUrl: WideString;
+    FAbort: Boolean;
+    FDownloadLevel: integer;
+    FFromBaseSiteOnly: Boolean;
+    FGetCompleteBaseSite: Boolean;
+    FItems: TDownloadList;
+    FMultiDownloadOptions: TMultiDownloadOptions;
+    FMultiState: TMultiState;
+    FMaxItems: integer;
+    FOnMultiBeforeDownload: TOnMultiBeforeDownloadEvent;
+    FOnMultiComplete: TOnMultiCompleteEvent;
+    FOnMultiGetDocInfo: TOnMultiGetDocInfoEvent;
+    FOnMultiGetImage: TOnMultiGetImageEvent;
+    FOnMultiGetLink: TOnMultiGetLinkEvent;
+    FOnMultiGetQueryInfo: TOnMultiGetQueryInfoEvent;
+    FOnMultiItemAdded: TOnMultiItemAddedEvent;
+    FOnMultiParseComplete: TOnMultiParseCompleteEvent;
+    FOnMultiParseDocument: TOnMultiParseDocumentEvent;
+    FOnMultiParseError: TOnMultiParseErrorEvent;
+    FOnMultiParseProgress: TOnMultiParseProgressEvent;
+    FOnMultiStateChange: TOnMultiStateChangeEvent;
+    FOnMultiStartParsing: TOnMultiStartParsingEvent;
+    FOpenFolder: boolean;
+    FProgress, FProgressMax: integer;
+    FTimer: TTimer;
+    FRoorUrl: string;
+    HtmlParser: TIEParser;
+    slDownloadedList: TStringList;
+    UrlParser: TUrl;
+    procedure DoOnExit;
+    procedure DownloadList(const aItems: TDownloadList);
+    procedure MultiAnchor(Sender: TObject; hRef, Target, Rel, Rev, Urn, Methods, Name, Host, HostName, PathName, Port, Protocol, Search, Hash, AccessKey, ProtocolLong, MimeType, NameProp: string; Element: TElementInfo);
+    procedure MultiGetDocInfo(Sender: TObject; const Text: string);
+    procedure MultiGetQueryInfo(const MimeType, Encoding, Disposition: string);
+    procedure MultiImage(Sender: TObject; Source: string; ImgElement: IHTMLImgElement; Element: TElementInfo);
+    procedure MultiParseComplete(Sender: TObject; Doc: IhtmlDocument2; All: IHtmlElementCollection);
+    procedure MultiParseDocument(Sender: TObject; const Res: HRESULT; stMessage: string);
+    procedure MultiParseError(Sender: TObject; const ErrorCode: integer; const Url, stError: string);
+    procedure MultiStartParsing(Sender: TObject; const aUrl: WideString);
+    procedure SetAbout(Value: string);
+    procedure SetItems(Value: TDownloadList);
+    procedure SetMaxItems(Value: Integer);
+    procedure MultiTimer(Sender: TObject);
+  protected
+  public
+    constructor Create(AOwner: TComponent); override;
+    destructor Destroy; override;
+    function AddItem(const aRef: string): TDownloadItem;
+    procedure GoMulti(BaseUrl: WideString);
+    procedure SetDownloadOptions(const Value: TMultiDownloadOptions);
+    procedure Stop;
+
+  public
+    property DownloadedList: TStringList read slDownloadedList;
+    property MultiState: TMultiState read FMultiState;
+  published
+    property About: string read FAbout write SetAbout;
+    property BaseUrl: WideString read FBaseUrl write FBaseUrl;
+    property DownloadLevel: integer read FDownloadLevel write FDownloadLevel default 1;
+    property DownloadOptions: TMultiDownloadOptions read FMultiDownloadOptions write SetDownloadOptions default doAll;
+    property FromBaseSiteOnly: boolean read FFromBaseSiteOnly write FFromBaseSiteOnly default True;
+    property GetCompleteBaseSite: boolean read FGetCompleteBaseSite write FGetCompleteBaseSite default False;
+    property Items: TDownloadList read FItems write SetItems;
+    property MaxItems: integer read FMaxItems write SetMaxItems default 100;
+    property OnMultiBeforeDownload: TOnMultiBeforeDownloadEvent read FOnMultiBeforeDownload write FOnMultiBeforeDownload;
+    property OnMultiComplete: TOnMultiCompleteEvent read FOnMultiComplete write FOnMultiComplete;
+    property OnMultiGetDocInfo: TOnMultiGetDocInfoEvent read FOnMultiGetDocInfo write FOnMultiGetDocInfo;
+    property OnMultiGetImage: TOnMultiGetImageEvent read FOnMultiGetImage write FOnMultiGetImage;
+    property OnMultiGetLink: TOnMultiGetLinkEvent read FOnMultiGetLink write FOnMultiGetLink;
+    property OnMultiGetQueryInfo: TOnMultiGetQueryInfoEvent read FOnMultiGetQueryInfo write FOnMultiGetQueryInfo;
+    property OnMultiItemAdded: TOnMultiItemAddedEvent read FOnMultiItemAdded write FOnMultiItemAdded;
+    property OnMultiParseComplete: TOnMultiParseCompleteEvent read FOnMultiParseComplete write FOnMultiParseComplete;
+    property OnMultiParseDocument: TOnMultiParseDocumentEvent read FOnMultiParseDocument write FOnMultiParseDocument;
+    property OnMultiParseError: TOnMultiParseErrorEvent read FOnMultiParseError write FOnMultiParseError;
+    property OnMultiParseProgress: TOnMultiParseProgressEvent read FOnMultiParseProgress write FOnMultiParseProgress;
+    property OnMultiStateChange: TOnMultiStateChangeEvent read FOnMultiStateChange write FOnMultiStateChange;
+    property OnMultiStartParsing: TOnMultiStartParsingEvent read FOnMultiStartParsing write FOnMultiStartParsing;
+  end;
+
+implementation
+
+uses
+  IEDownloadTools;
+
+procedure TDownloadItem.Assign(Source: TPersistent);
+var
+  Item: TDownloadItem;
+begin
+  if (Source is TDownloadItem) then
+  begin
+    Item := (Source as TDownloadItem);
+    FRef := Item.Ref;
+    FProtocol := Item.Protocol;
+    FRoot := Item.Root;
+    FPort := Item.Port;
+    FFileName := Item.FileName;
+    FUser := Item.User;
+    FPassword := Item.Password;
+    FPath := Item.Path;
+  end
+  else
+  begin
+    inherited Assign(Source);
+  end;
+end;
+
+procedure TDownloadItem.SetFileName(const Value: WideString);
+begin
+  if FFileName <> Value then
+    FFileName := Value;
+end;
+
+procedure TDownloadItem.SetPath(const Value: WideString);
+begin
+  if FPath <> Value then
+    FPath := Value;
+end;
+
+procedure TDownloadItem.SetRoot(const Value: WideString);
+begin
+  if FRoot <> Value then
+    FRoot := Value;
+end;
+
+procedure TDownloadItem.SetPort(const Value: integer);
+begin
+  if FPort <> Value then
+    FPort := Value;
+end;
+
+procedure TDownloadItem.SetUser(const Value: WideString);
+begin
+  if FUser <> Value then
+    FUser := Value;
+end;
+
+procedure TDownloadItem.SetPassword(const Value: WideString);
+begin
+  if FPassword <> Value then
+    FPassword := Value;
+end;
+
+procedure TDownloadItem.Set_Ref(const Value: WideString);
+begin
+  if FRef <> Value then
+    FRef := Value;
+end;
+
+procedure TDownloadItem.SetProtocol(const Value: WideString);
+begin
+  if FProtocol <> Value then
+    FProtocol := Value;
+end;
+
+//-------------------------------------------------------------------------------
+
+procedure TDownloadList.DeleteItem(Index: Integer);
+begin
+  Delete(Index);
+end;
+
+procedure TDownloadList.ClearItems;
+begin
+  Clear;
+end;
+
+function TDownloadList.GetItem(Index: Integer): TDownloadItem;
+begin
+  Result := TDownloadItem(inherited GetItem(Index));
+end;
+
+procedure TDownloadList.SetItem(Index: Integer; Value: TDownloadItem);
+begin
+  inherited SetItem(Index, Value);
+end;
+
+function TDownloadList.Add: TDownloadItem;
+begin
+  Result := TDownloadItem(inherited Add);
+end;
+
+function TDownloadList.Insert(Index: Integer): TDownloadItem;
+begin
+  Result := Add;
+  Result.Index := Index;
+end;
+
+function TDownloadList.IsListed(const aRef: WideString): Boolean;
+var
+  I: Integer;
+begin
+  Result := True;
+  for I := 0 to Count - 1 do
+    if CompareText(LowerCase(Items[I].FRef), LowerCase(aRef)) = 0 then
+      Exit;
+  Result := False;
+end;
+
+constructor TDownloadList.Create(IEMD: TIEMultiDownload);
+begin
+  inherited Create(TDownloadItem);
+  FIEMD := IEMD;
+end;
+
+function TDownloadList.GetOwner: TPersistent;
+begin
+  Result := FIEMD;
+end;
+
+//-------------------------------------------------------------------------------
+
+function TIEMultiDownload.AddItem(const aRef: string): TDownloadItem;
+var
+  UP: TUrl;
+begin
+  Result := nil;
+  if (not FItems.isListed(aRef)) and (FItems.Count <> FMaxItems) and
+    (IEDownloadTools.IsValidURL(aRef)) then
+  begin
+    slDownloadedList.Add(aRef);
+    UP := TUrl.Create(aRef);
+    UP.Clear;
+    UP.QueryUrl(aRef);
+    with FItems.Add do
+    begin
+      FRef := aRef;
+      FProtocol := UP.Protocol;
+      FRoot := UP.HostName;
+      FPort := UP.Port;
+      FFileName := UP.Document;
+      FUser := UP.UserName;
+      FPassword := UP.Password;
+      FPath := CharReplace(UP.UrlPath, '/', '\');
+      ;
+      if (FPath = Trim('/')) or (FPath = Trim('\')) then
+        FPath := EmptyStr;
+      if Assigned(FOnMultiItemAdded) then
+        FOnMultiItemAdded(Self, FRef, FProtocol, FRoot, FPath, FFileName,
+          FUser, FPassword, FPort);
+    end;
+    UP.Free;
+  end;
+end;
+
+procedure TIEMultiDownload.DownloadList(const aItems: TDownloadList);
+var
+  bCancel: Boolean;
+  I: integer;
+  FDLFolder: WideString;
+begin
+  if (not FAbort) then
+    for I := 0 to aItems.Count - 1 do
+    begin
+      if FAbort then
+        Exit;
+      with aItems.Items[I] do
+      begin
+        bCancel := False;
+        if Assigned(FOnMultiBeforeDownload) then
+          FOnMultiBeforeDownload(Self, aItems.Items[I].FRef, aItems.Items[I], bCancel);
+        if not bCancel then
+        begin
+          FDLFolder := FBaseFolder + aItems.Items[I].FRoot +
+            IncludeTrailingPathDelimiter(aItems.Items[I].FPath);
+          if (aItems.Items[I].FRef <> EmptyStr) then
+            Go(aItems.Items[I].FRef, aItems.Items[I].FFileName, FDLFolder);
+          FDLFolder := EmptyStr;
+        end;
+      end;
+    end;
+end;
+
+procedure TIEMultiDownload.GoMulti(BaseUrl: WideString);
+var
+  I: integer;
+begin
+  Reset;
+  FAbort := False;
+  FProgress := 0;
+  FProgressMax := 100;
+  FMultiState := msBusy;
+  if Assigned(FOnMultiStateChange) then
+    FOnMultiStateChange(Self, FMultiState);
+  if OpenDownloadFolder = True then
+  begin
+    FOpenFolder := True;
+    OpenDownloadFolder := False;
+  end;
+  if DownloadFolder = EmptyStr then
+    DownloadFolder := IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName) + 'Downloads');
+  FBaseFolder := DownloadFolder;
+  for I := 0 to FItems.Count - 1 do
+  begin
+    if (FItems[i].FRef <> EmptyStr) then
+      DownloadList(FItems);
+  end;
+  if (BaseUrl <> EmptyStr) then
+  begin
+    UrlParser := TUrl.Create(BaseUrl);
+    UrlParser.CrackUrl(BaseUrl, ICU_ESCAPE);
+    FRoorUrl := UrlParser.HostName;
+    with HtmlParser do
+    begin
+      FTimer := TTimer.Create(nil);
+      FTimer.Enabled := True;
+      FTimer.Interval := 500;
+      FTimer.OnTimer := MultiTimer;
+      OnAnchor := MultiAnchor;
+      OnImage := MultiImage;
+      OnParseDocument := MultiParseDocument;
+      OnParseComplete := MultiParseComplete;
+      OnParseError := MultiParseError;
+      OnDocInfo := MultiGetDocInfo;
+      OnQueryInfo := MultiGetQueryInfo;
+      OnStartParsing := MultiStartParsing;
+      Parse(BaseUrl);
+      if (not FGetCompleteBaseSite) then
+      begin
+        if Assigned(FTimer) then
+          FreeAndNil(FTimer);
+        DownloadList(FItems);
+      end
+      else
+      begin
+        if (not FAbort) then
+          for I := 0 to slDownloadedList.Count - 1 do
+          begin
+            Parse(slDownloadedList[I]);
+            if Assigned(FTimer) then
+              FreeAndNil(FTimer);
+          end;
+        DownloadList(FItems);
+      end;
+    end;
+    if UrlParser <> nil then
+      FreeAndNil(UrlParser);
+  end;
+  DoOnExit;
+end;
+
+procedure TIEMultiDownload.MultiTimer(Sender: TObject);
+begin
+  FProgress := FProgress + 10;
+  if FProgress = FProgressMax then
+    FProgress := 1;
+  if Assigned(FOnMultiParseProgress) then
+    FOnMultiParseProgress(Self, FProgress, FProgressMax);
+end;
+
+procedure TIEMultiDownload.DoOnExit;
+begin
+  if FOpenFolder then
+    OpenFolder(FBaseFolder);
+  if Assigned(FOnMultiComplete) then
+    FOnMultiComplete(Self, slDownloadedList);
+  slDownloadedList.Clear;
+  Items.Clear;
+  FMultiState := msStopped;
+  if Assigned(FOnMultiStateChange) then
+    FOnMultiStateChange(Self, FMultiState);
+end;
+
+procedure TIEMultiDownload.Stop;
+
+begin
+  if FMultiState <> msBusy then
+    Exit;
+  FAbort := True;
+  HtmlParser.Stop;
+  CancelAll;
+  while State <> sBusy do
+    Forms.Application.ProcessMessages;
+  DoOnExit;
+end;
+
+constructor TIEMultiDownload.Create(AOwner: Tcomponent);
+begin
+  inherited Create(AOwner);
+  FAbout := 'TIEMultiDownload from: http://www.bsalsa.com';
+  FDownloadLevel := 1;
+  FFromBaseSiteOnly := True;
+  FItems := TDownloadList.Create(Self);
+  FMaxItems := 100;
+  FMultiDownloadOptions := doAll;
+  slDownloadedList := TStringList.Create;
+  with slDownloadedList do
+  begin
+{$IFDEF DELPHI6UP}
+    CaseSensitive := False;
+{$ENDIF}
+    Sorted := True;
+    Duplicates := dupIgnore;
+  end;
+  FMultiState := msReady;
+  HtmlParser := TIEParser.Create(nil);
+end;
+
+destructor TIEMultiDownload.Destroy;
+begin
+  slDownloadedList.Free;
+  if HtmlParser <> nil then
+    FreeAndNil(HtmlParser);
+  FItems.Free;
+  inherited Destroy;
+end;
+
+procedure TIEMultiDownload.SetAbout(Value: string);
+begin
+  Exit;
+end;
+
+procedure TIEMultiDownload.SetDownloadOptions(const Value: TMultiDownloadOptions);
+begin
+  FMultiDownloadOptions := Value;
+end;
+
+procedure TIEMultiDownload.SetItems(Value: TDownloadList);
+begin
+  FItems.Assign(Value);
+end;
+
+procedure TIEMultiDownload.SetMaxItems(Value: Integer);
+begin
+{$IFDEF DELPHI10_UP}
+  if (Value <> FItems.Capacity) then
+    FItems.Capacity := Value;
+{$ENDIF}
+end;
+
+procedure TIEMultiDownload.MultiAnchor(Sender: TObject; hRef, Target, Rel, Rev, Urn,
+  Methods, Name, Host, HostName, PathName, Port, Protocol, Search, Hash,
+  AccessKey, ProtocolLong, MimeType, NameProp: string; Element: TElementInfo);
+var
+  bCancel: Boolean;
+begin
+  if FMultiDownloadOptions = doImages then
+    Exit;
+  bCancel := False;
+  if (hRef <> EmptyStr) and (not StrContain('mailto', hRef)) then
+  begin
+    if FFromBaseSiteOnly and (not StrContain(FRoorUrl, hRef)) then
+      Exit;
+    if Assigned(FOnMultiGetLink) then
+      FOnMultiGetLink(Self, hRef, Host, HostName, PathName, Port, Protocol,
+        MimeType, NameProp, bCancel);
+    if (not bCancel) and (not FAbort) and ((FMultiDownloadOptions = doAll) and (not FAbort)
+      or (FMultiDownloadOptions = doPages)) then
+    begin
+      AddItem(LowerCase(hRef));
+    end;
+  end;
+end;
+
+procedure TIEMultiDownload.MultiImage(Sender: TObject; Source: string; ImgElement: IHTMLImgElement; Element: TElementInfo);
+var
+  bCancel: Boolean;
+begin
+  if FMultiDownloadOptions = doPages then
+    Exit;
+  bCancel := False;
+  if Source <> EmptyStr then
+  begin
+    if Assigned(FOnMultiGetImage) then
+      FOnMultiGetImage(Self, Source, bCancel);
+    if (not bCancel) and (not FAbort) and ((FMultiDownloadOptions = doAll) or
+      (FMultiDownloadOptions = doImages)) then
+    begin
+      AddItem(LowerCase(Source));
+    end;
+  end;
+end;
+
+procedure TIEMultiDownload.MultiGetDocInfo(Sender: TObject; const Text: string);
+begin
+  if Assigned(FOnMultiGetDocInfo) and not (FAbort) then
+    FOnMultiGetDocInfo(Self, Text);
+end;
+
+procedure TIEMultiDownload.MultiParseError(Sender: TObject; const ErrorCode: integer; const
+  Url, stError: string);
+begin
+  if Assigned(FOnMultiParseError) then
+    FOnMultiParseError(Self, ErrorCode, Url, stError);
+end;
+
+procedure TIEMultiDownload.MultiStartParsing(Sender: TObject; const aUrl: WideString);
+begin
+  if Assigned(FOnMultiStartParsing) then
+    FOnMultiStartParsing(Self, aUrl);
+end;
+
+procedure TIEMultiDownload.MultiGetQueryInfo(const MimeType, Encoding, Disposition: string);
+begin
+  if Assigned(FOnMultiGetQueryInfo) and not (FAbort) then
+    FOnMultiGetQueryInfo(MimeType, Encoding, Disposition);
+end;
+
+procedure TIEMultiDownload.MultiParseDocument(Sender: TObject; const
+  Res: HRESULT; stMessage: string);
+begin
+  if (Assigned(FOnMultiParseDocument)) and not (FAbort) then
+    FOnMultiParseDocument(Self, Res, stMessage);
+end;
+
+procedure TIEMultiDownload.MultiParseComplete(Sender: TObject;
+  Doc: IhtmlDocument2; All: IHtmlElementCollection);
+begin
+  if Assigned(FOnMultiParseComplete) then
+    FOnMultiParseComplete(Self, Doc, All);
+
+  if Assigned(FOnMultiParseProgress) then
+    FOnMultiParseProgress(Self, 0, 0);
+end;
+
+end.
+
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IEParser.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IEParser.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IEParser.pas	(revision 541)
@@ -0,0 +1,945 @@
+//****************************************************
+//                     TIEParser                     *
+//                For Delphi 5 - 2009                *
+//                Freeware Component                 *
+//                       by                          *
+//                                                   *
+//                Per Lindsø Larsen &                *
+//              Eran Bodankin (bsalsa)               *
+//                 bsalsa@gmail.com                  *
+//                                                   *
+// Documentation and updated versions:               *
+//               http://www.bsalsa.com               *
+//****************************************************
+
+{*******************************************************************************}
+{LICENSE:
+THIS SOFTWARE IS PROVIDED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND,
+EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE APPLIED
+WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
+YOU ASSUME THE ENTIRE RISK AS TO THE ACCURACY AND THE USE OF THE SOFTWARE
+AND ALL OTHER RISK ARISING OUT OF THE USE OR PERFORMANCE OF THIS SOFTWARE
+AND DocUMENTATION. BSALSA PRODUCTIONS DOES NOT WARRANT THAT THE SOFTWARE IS ERROR-FREE
+OR WILL OPERATE WITHOUT INTERRUPTION. THE SOFTWARE IS NOT DESIGNED, INTENDED
+OR LICENSED FOR USE IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE CONTROLS,
+INCLUDING WITHOUT LIMITATION, THE DESIGN, CONSTRUCTION, MAINTENANCE OR
+OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SystemS,
+AIR TRAFFIC CONTROL, AND LIFE SUPPORT OR WEAPONS SystemS. BSALSA PRODUCTIONS SPECIFICALLY
+DISCLAIMS ANY EXPRES OR IMPLIED WARRANTY OF FITNESS FOR SUCH PURPOSE.
+
+You may use, change or modify the component under 4 conditions:
+1. In your website, add a Link to "http://www.bsalsa.com"
+2. In your application, add credits to "Embedded Web Browser"
+3. Mail me  (bsalsa@gmail.com) any code change in the unit
+   for the benefit of the other users.
+4. Please consider donation in our web site!
+{*******************************************************************************}
+//$Id: IEParser.pas,v 1.3 2009/04/05 05:55:31 bsalsa Exp $
+
+unit IEParser;
+
+{$I EWB.inc}
+
+interface
+
+uses
+  Dialogs, ShlObj, ComObj, Windows, Mshtml_Ewb, ActiveX, Classes;
+
+type
+  TProxySettings = class(TPersistent)
+  private
+    FPort: Integer;
+    FServer: string;
+    FAutoLoadProxy: Boolean;
+  public
+    function SetProxy(const FullUserAgent, ProxyServer: string): Boolean;
+  published
+    property AutoLoadProxy: Boolean read FAutoLoadProxy write FAutoLoadProxy
+      default False;
+    property Port: Integer read FPort write FPort default 80;
+    property Server: string read FServer write FServer;
+  end;
+
+type
+  TElementInfo = record
+    ClassName: string;
+    Id: string;
+    InnerHTML: string;
+    InnerText: string;
+    Lang: string;
+    Language: string;
+    OffsetHeight: Integer;
+    OffsetLeft: Integer;
+    OffsetTop: Integer;
+    OffsetWIdth: Integer;
+    OuterHTML: string;
+    OuterText: string;
+    RecordNumber: OleVariant;
+    SourceIndex: Integer;
+    TagName: string;
+    Title: string;
+  end;
+
+  TDownloadControlOption = (
+    DownloadImages, DownloadVideos, DownloadBGSounds, DontExecuteScripts,
+    DontExecuteJava, DontExecuteActiveX, DontDownloadActiveX,
+    DownloadButDontDisplay, DontDownloadFrame, CheckPageResynchronize,
+    DownloadAndIgnoreCache, DontDownloadBehaviors, SuppressedMetaCharset,
+    DisableUrlIfEncodingUTF8, EnableUrlIfEncodingUTF8,
+    ForceOfflineMode, DontPerformClientPull, DownloadInSilentMode, WorkOffline);
+  TDownloadControlOptions = set of TDownloadControlOption;
+
+  TParserState = (psBusy, psReady, psStopped); {A state for Busy status}
+
+  TOnParseErrorEvent = procedure(Sender: TObject; const ErrorCode: integer; const
+    Url, stError: string) of object;
+  TOnParseDocumentEvent = procedure(Sender: TObject; const Res: HRESULT; stMessage: string) of object;
+  TOnStatusTextEvent = procedure(Sender: TObject; const Text: string) of object;
+  TOnDocInfoEvent = procedure(Sender: TObject; const Text: string) of object;
+  TOnParseCompleteEvent = procedure(Sender: TObject; Doc: IhtmlDocument2; All: IHtmlElementCollection) of object;
+  TOnBREvent = procedure(Sender: TObject; Clear: string; Element: TElementInfo) of object;
+  TOnHREvent = procedure(Sender: TObject; Align: string; Color, Width, Size:
+    OleVariant; NoShade: Boolean; Element: TElementInfo) of object;
+  TOnDIVEvent = procedure(Sender: TObject; Align: string; NoWrap: Boolean;
+    Element: TElementInfo) of object;
+  TOnScriptEvent = procedure(Sender: Tobject; Source: string; ScriptElement: IHTMLScriptElement; Element: TElementInfo) of object;
+  TOnFormEvent = procedure(Sender: TObject; Action, Dir, Encoding, Method, Target, Name: string;
+    Element: TElementInfo) of object;
+  TOnMarqueeEvent = procedure(Sender: TObject; bgColor, Width, Height: OleVariant;
+    Direction, Behavior: string; ScrollAmount, ScrollDelay, Loop, vSpace, hSpace:
+    Integer; Element: TElementInfo) of object;
+  TOnFontEvent = procedure(Sender: TObject; Color, Size: OleVariant; Face: string;
+    Element: TElementInfo) of object;
+  TOnBaseFontEvent = procedure(Sender: TObject; Color: OleVariant; Face: string;
+    Size: Integer; Element: TElementInfo) of object;
+  TOnBaseEvent = procedure(Sender: TObject; hRef, Target: string; Element: TElementInfo) of object;
+  TOnMetaEvent = procedure(Sender: TObject; HttpEquiv, Content, Name, URL, Charset:
+    string; Element: TElementInfo) of object;
+  TOnBodyEvent = procedure(Sender: TObject; Background, bgProperties: string; LeftMargin,
+    TopMargin, RightMargin, BottomMargin, bgColor, Text, Link, vLink, aLink: OleVariant;
+    NoWrap: Boolean; Element: TElementInfo) of object;
+{  TOnImageEvent = procedure(Sender: TObject; Source, LowSrc, Vrml, DynSrc, Alt, Align,
+    UseMap: string; IsMap: Boolean; Border, Loop: OleVariant; vSpace, hSpace, Width,
+    Height: Integer; Element: TElementInfo) of object; }
+
+  TOnImageEvent = procedure(Sender: TObject; Source: string; ImgElement: IHTMLImgElement; Element: TElementInfo) of object;
+
+  TOnAnchorEvent = procedure(Sender: TObject; hRef, Target, Rel, Rev, Urn, Methods, Name,
+    Host, HostName, PathName, Port, Protocol, Search, Hash, AccessKey, ProtocolLong,
+    MimeType, NameProp: string; Element: TElementInfo) of object;
+  TOnCommentEvent = procedure(sender: TObject; Text: string; Element: TElementInfo) of object;
+  TOnElementEvent = procedure(Sender: TObject; ElementInfo: TElementInfo) of object;
+  TNoFramesEvent = procedure(Sender: TObject; ELement: TElementInfo) of object;
+  TOnFrameEvent = procedure(Sender: TObject; Source, Name: OleVariant; Element:
+    TElementInfo) of object;
+  TOnFrameSetEvent = procedure(Sender: TObject; Rows, Cols, FrameBorder, Name:
+    WIdeString; Border, BorderColor, FrameSpacing: OleVariant; Element:
+    TelementInfo) of object;
+  TStateChangeEvent = procedure(Sender: TObject; const State: TParserState) of object;
+  TOnStartParsingEvent = procedure(Sender: TObject; const aUrl: WideString) of object;
+  TOnQueryInfoEvent = procedure(const MimeType, Encoding, Disposition: string) of object;
+
+  TIEParser = class(
+      TComponent,
+      IUnknown,
+      IDispatch,
+      IPropertyNotifySink,
+      IOleClientSite)
+
+  private
+    BoolWorking: Boolean;
+    Element: TElementInfo;
+    FAbout: string;
+    FAnchor: TOnAnchorEvent;
+    FBase: TOnBaseEvent;
+    FBaseFont: TOnBaseFontEvent;
+    FBody: TOnBodyEvent;
+    FBr: TOnBREvent;
+    FBusy: Boolean;
+    FComment: TOnCommentEvent;
+    FDiv: TOnDIVEvent;
+    FOnParseComplete: TOnParseCompleteEvent;
+    FDownloadControlOptions: TDownloadControlOptions;
+    FDownloadOnly: Boolean;
+    FElement: TOnElementEvent;
+    FFont: TOnFontEvent;
+    FForm: TOnFormEvent;
+    FHr: TOnHREvent;
+    FHtml: WIdeString;
+    FImage: TOnImageEvent;
+    FMarquee: TOnMarqueeEvent;
+    FMimeType: string;
+    FDisposition: string;
+    FEncoding: string;
+    FMeta: TOnMetaEvent;
+    FOnBusy: TNotifyEvent;
+    FOnDocInfo: TOnDocInfoEvent;
+    FOnFrame: TOnFrameEvent;
+    FOnFrameset: TOnFrameSetEvent;
+    FOnNoFrame: TNoFramesEvent;
+    FOnQueryInfo: TOnQueryInfoEvent;
+    FOnParseDocument: TOnParseDocumentEvent;
+    FOnParseError: TOnParseErrorEvent;
+    FOnStateChange: TStateChangeEvent;
+    FOnStartParsing: TOnStartParsingEvent;
+    FOnStatusText: TOnStatusTextEvent;
+    FParseNoFrames: Boolean;
+    FProxySettings: TProxySettings;
+    FScript: TOnScriptEvent;
+    FParserState: TParserState;
+    FUrl: string;
+    LoadingFromString: Boolean;
+    NoFramesFound: Boolean;
+    StartTick: Int64;
+  private
+    function UpdateDownloadControlValues: LongInt;
+  protected
+    function ProcessDoc(const aUrl: WideString): IHTMLDocument2;
+    function GetContainer(out container: IOleContainer): HRESULT; stdcall;
+    function GetMoniker(dwAssign: Longint; dwWhichMoniker: Longint; out mk: IMoniker): HRESULT; stdcall;
+    function Invoke(DispId: Integer; const IId: TGUId; LocaleId: Integer; Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HRESULT; stdcall;
+    function LoadFromString: HRESULT;
+    function LoadUrlFromMoniker(const aUrl: WideString): HRESULT;
+    function OnChanged(dispId: TDispId): HRESULT; stdcall;
+    function OnRequestEdit(dispId: TDispId): HRESULT; stdcall;
+    function OnShowWindow(fShow: BOOL): HRESULT; stdcall;
+    function RequestNewObjectLayout: HRESULT; stdcall;
+    function SaveObject: HRESULT; stdcall;
+    function ShowObject: HRESULT; stdcall;
+    procedure Finalize;
+    procedure GetPageProperties;
+    procedure Initialize;
+    procedure SetAbout(const Value: string);
+    procedure DoQueryInfo(const aUrl: string);
+  public
+    All: IHtmlElementCollection;
+    Doc: IHTMLDocument2;
+    constructor Create(Owner: Tcomponent); override;
+    destructor Destroy; override;
+    procedure BeforeDestruction; override;
+    procedure Parse(const aUrl: WideString);
+    procedure Stop;
+    procedure Loaded; override;
+  public
+    property Busy: Boolean read FBusy;
+    property ParserState: TParserState read FParserState;
+    property MimeType: string read FMimeType;
+    property Disposition: string read FDisposition;
+    property Encoding: string read FEncoding;
+  published
+    property About: string read FAbout write SetAbout;
+    property DownloadOnly: Boolean read FDownloadOnly write FDownloadOnly default false;
+    property DownloadOptions: TDownloadControlOptions read FDownloadControlOptions
+      write FDownloadControlOptions default [DownloadImages, DownloadBGSounds,
+      DownloadVideos, DownloadButDontDisplay, DontExecuteScripts,
+      DontExecuteJava, DontExecuteActiveX, DontDownloadActiveX];
+    property Html: WIdeString read FHtml write FHtml;
+    property OnAnchor: TOnAnchorEvent read FAnchor write FAnchor;
+    property OnBase: TOnBaseEvent read FBase write FBase;
+    property OnBaseFont: TOnBaseFontEvent read FBaseFont write FBaseFont;
+    property OnBody: TOnBodyEvent read FBody write FBody;
+    property OnBR: TOnBREvent read FBr write FBr;
+    property OnBusyStateChange: TNotifyEvent read FOnBusy write FOnBusy;
+    property OnComment: TOnCommentEvent read FComment write FComment;
+    property OnDiv: TOnDIVEvent read FDiv write FDiv;
+    property OnDocInfo: TOnDocInfoEvent read FOnDocInfo write FOnDocInfo;
+    property OnParseComplete: TOnParseCompleteEvent read FOnParseComplete write FOnParseComplete;
+    property OnElement: TOnElementEvent read FElement write FElement;
+    property OnFont: TOnFontEvent read FFont write FFont;
+    property OnForm: TOnFormEvent read FForm write FForm;
+    property OnFrame: TOnFrameEvent read FOnFrame write FOnFrame;
+    property OnFrameSet: TOnFrameSetEvent read FOnFrameset write FOnFrameset;
+    property OnQueryInfo: TOnQueryInfoEvent read FOnQueryInfo write
+      FOnQueryInfo;
+    property OnHR: TOnHREvent read FHr write FHr;
+    property OnImage: TOnImageEvent read FImage write FImage;
+    property OnMarquee: TOnMarqueeEvent read FMarquee write FMarquee;
+    property OnMeta: TOnMetaEvent read FMeta write FMeta;
+    property OnNoFrame: TNoFramesEvent read FOnNoFrame write FOnNoFrame;
+    property OnParseDocument: TOnParseDocumentEvent read FOnParseDocument write FOnParseDocument;
+    property OnParseError: TOnParseErrorEvent read FOnParseError write FOnParseError;
+    property OnScript: TOnScriptEvent read FScript write FScript;
+    property OnStateChange: TStateChangeEvent read FOnStateChange write
+      FOnStateChange;
+    property OnStartParsing: TOnStartParsingEvent read FOnStartParsing write FOnStartParsing;
+    property OnStatusText: TOnStatusTextEvent read FOnStatusText write FOnStatusText;
+    property ParseNoFrames: Boolean read FParseNoFrames write FParseNoFrames default False;
+    property ProxySettings: TProxySettings read FProxySettings write FProxySettings;
+    property URL: string read FUrl write FUrl;
+  end;
+
+
+implementation
+
+uses
+  IEConst, IEDownloadStrings, IEDownloadTools, SysUtils, IeDownloadAcc, UrlMon, WinInet;
+
+
+function TIEParser.GetContainer(out container: IOleContainer): HRESULT;
+begin
+  Result := E_NOTIMPL;
+end;
+
+function TIEParser.GetMoniker(dwAssign: Longint; dwWhichMoniker: Longint; out mk:
+  IMoniker): HRESULT;
+begin
+  Result := E_NOTIMPL;
+end;
+
+function TIEParser.Invoke(DispId: Integer; const IId: TGUId; LocaleId: Integer;
+  Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HRESULT;
+var
+  I: Integer;
+begin
+  if DispId = DISPID_AMBIENT_DLCONTROL then
+  begin
+    i := UpdateDownloadControlValues;
+    PVariant(VarResult)^ := I;
+    Result := S_OK;
+  end
+  else
+    Result := DISP_E_MEMBERNOTFOUND;
+end;
+
+function TIEParser.LoadFromString: HRESULT;
+var
+  V: OleVariant;
+  vDocument: OleVariant;
+  vMimeType: OleVariant;
+  vHtml: OleVariant;
+begin
+  if FHtml = '' then
+  begin
+    if Assigned(FOnParseError) then
+      FOnParseError(Self, E_FAIL, FUrl, Err_Load_Str + ResponseCodeToStr(E_FAIL));
+    Result := E_FAIL;
+  end else
+  try
+    if (Assigned(FOnParseDocument)) then
+      FOnParseDocument(Self, S_OK, Succ_Load_Str + ResponseCodeToStr(S_OK));
+
+    //Stop any actions - this is important!
+    // FWeb.Stop;   no dealing with the Document directly
+    // Grab the Document
+    V := Doc;
+    vDocument := V.script.Document;
+    vMimeType := 'text/Html';
+    vHtml := FHtml;
+    vDocument.Open(vMimeType);
+    vDocument.Clear;
+    vDocument.Write(vHtml);
+    vDocument.Close;
+    Result := S_OK;
+  except
+    Result := E_FAIL;
+  end;
+end;
+
+function TIEParser.OnChanged(dispId: TDispId): HRESULT;
+var
+  DP: TDispParams;
+  vResult: OLEVariant;
+begin
+  Result := S_OK;
+  if Doc = nil then Exit;
+  if (DISPId_READYSTATE = DispId) then
+    if SUCCEEDED((Doc as IHtmlDocument2).Invoke(DISPId_READYSTATE, GUId_null,
+      LOCALE_System_DEFAULT, DISPATCH_PROPERTYGET, DP, @vResult, nil, nil)) then
+      if Integer(vResult) = READYSTATE_COMPLETE then
+        PostThreadMessage(GetCurrentThreadId(), WM_USER_STARTWALKING, 0, 0);
+end;
+
+function TIEParser.OnRequestEdit(dispId: TDispId): HRESULT;
+begin
+  Result := E_NOTIMPL;
+end;
+
+function TIEParser.OnShowWindow(fShow: BOOL): HRESULT;
+begin
+  Result := E_NOTIMPL;
+end;
+
+function TIEParser.RequestNewObjectLayout: HRESULT;
+begin
+  Result := E_NOTIMPL;
+end;
+
+function TIEParser.SaveObject: HRESULT;
+begin
+  Result := E_NOTIMPL;
+end;
+
+function TIEParser.ShowObject: HRESULT;
+begin
+  Result := E_NOTIMPL;
+end;
+
+function TIEParser.UpdateDownloadControlValues: LongInt;
+const
+  AcardDownloadControlValues: array[TDownloadControlOption] of Cardinal =
+  ($00000010, $00000020, $00000040, $00000080,
+    $00000100, $00000200, $00000400, $00000800,
+    $00001000, $00002000, $00004000, $00008000,
+    $00010000, $00020000, $00040000, $10000000,
+    $20000000, $40000000, $80000000);
+var
+  i: TDownloadControlOption;
+  j: Longint;
+begin
+  j := 0;
+  if (FDownloadControlOptions <> []) then
+    for i := Low(TDownloadControlOption) to High(TDownloadControlOption) do
+      if (i in FDownloadControlOptions) then
+        Inc(j, AcardDownloadControlValues[i]);
+  Result := j;
+end;
+
+constructor TIEParser.Create(Owner: Tcomponent);
+begin
+  inherited Create(Owner);
+  FAbout := 'TIEParser from: http://www.bsalsa.com';
+  DownloadOptions := [DownloadImages, DownloadBGSounds,
+    DownloadVideos, DownloadButDontDisplay, DontExecuteScripts,
+    DontExecuteJava, DontExecuteActiveX, DontDownloadActiveX];
+  FProxySettings := TProxySettings.Create;
+  FProxySettings.FPort := 80;
+  FParserState := psReady;
+end;
+
+procedure TIEParser.BeforeDestruction;
+begin
+  if FProxySettings.FAutoLoadProxy then
+    FProxySettings.SetProxy(EmptyStr, EmptyStr); {To restore proxy settings}
+  inherited BeforeDestruction;
+end;
+
+destructor TIEParser.Destroy;
+begin
+  if Assigned(Doc) then
+    Doc := nil;
+  if Assigned(All) then
+    All := nil;
+  FProxySettings.Free;
+  inherited Destroy;
+end;
+
+procedure TIEParser.Loaded;
+begin
+  inherited Loaded;
+  FBusy := False;
+  FParserState := psReady;
+  if (FProxySettings.FAutoLoadProxy) and (FProxySettings.FServer <> EmptyStr)
+    then
+    FProxySettings.SetProxy(USER_AGENT_IE6, FProxySettings.FServer + ':' +
+      IntToStr(FProxySettings.FPort));
+end;
+
+procedure TIEParser.SetAbout(const Value: string);
+begin
+  Exit;
+end;
+
+procedure TIEParser.GetPageProperties;
+begin
+  if (Doc <> nil) and (Assigned(Doc)) and (Doc.readyState = 'complete') then
+  begin
+    if (Assigned(FOnDocInfo)) then
+    begin
+      try
+        FOnDocInfo(Self, 'Title: ' + Doc.title);
+        FOnDocInfo(Self, 'Design Mode: ' + Doc.designMode);
+        FOnDocInfo(Self, 'State: ' + Doc.readyState);
+        FOnDocInfo(Self, 'Referrer: ' + Doc.Referrer);
+        FOnDocInfo(Self, 'Location: ' + Doc.location.href);
+        FOnDocInfo(Self, 'Last Modified: ' + Doc.lastModified);
+        FOnDocInfo(Self, 'URL: ' + Doc.url);
+        if FHTML <> '' then
+          FOnDocInfo(Self, 'Domain: ' + Doc.domain);
+        FOnDocInfo(Self, 'Cookie: ' + Doc.cookie);
+        FOnDocInfo(Self, 'Charset: ' + Doc.charset);
+        FOnDocInfo(Self, 'Default Charset: ' + Doc.defaultCharset);
+        FOnDocInfo(Self, 'File Updated Date: ' + Doc.fileUpdatedDate);
+        FOnDocInfo(Self, 'Security: ' + Doc.security);
+        FOnDocInfo(Self, 'Protocol: ' + Doc.protocol);
+        FOnDocInfo(Self, 'Name Property: ' + Doc.nameProp);
+        FOnDocInfo(Self, 'Path Name: ' + Doc.location.pathname);
+        FOnDocInfo(Self, 'Port: ' + Doc.location.port);
+        FOnDocInfo(Self, 'Protocol: ' + Doc.location.protocol);
+        FOnDocInfo(Self, 'Host: ' + Doc.location.host);
+        FOnDocInfo(Self, 'Hash: ' + Doc.location.hash);
+        FOnDocInfo(Self, 'Search: ' + Doc.location.search);
+        FOnDocInfo(Self, 'Language: ' + Doc.body.language);
+        FOnDocInfo(Self, 'Lang: ' + Doc.body.lang);
+        {I Disabled the following because it my cause AV on some sites}
+        //FOnDocInfo(Self,'MimeType: ' + Doc.MimeType);
+        //FOnDocInfo(Self,'File Size: '+ Doc.fileSize);
+        //FOnDocInfo(Self,'File Created Date: '+ Doc.fileCreatedDate);
+        //FOnDocInfo(Self,'File Modified Date: '+ Doc.fileModifiedDate);
+      except
+      end;
+    end;
+  end;
+end;
+
+function TIEParser.LoadUrlFromMoniker(const aUrl: WideString): HRESULT;
+var
+  FMoniker: IMoniker;
+  FBindCtx: IBindCTX;
+  HR: HRESULT;
+begin
+  HR := CreateURLMonikerEx(nil, PWideChar(aUrl), FMoniker, URL_MK_UNIFORM {URL_MK_LEGACY});
+  if Failed(HR) and Assigned(FOnParseError) then
+    FOnParseError(Self, GetLastError, FUrl, Err_URLMEx +
+      ResponseCodeToStr(HR))
+  else if (Assigned(FOnParseDocument)) then
+    FOnParseDocument(Self, HR, CreateURLMEx + ResponseCodeToStr(HR));
+
+  HR := CreateBindCtx(0, FBindCtx);
+  if Failed(HR) and Assigned(FOnParseError) then
+    FOnParseError(Self, GetLastError, FUrl, Err_AsyncBindCtx +
+      ResponseCodeToStr(HR))
+  else if (Assigned(FOnParseDocument)) then
+    FOnParseDocument(Self, HR, CreateABindCtx + ResponseCodeToStr(HR));
+
+  HR := (Doc as IpersistMoniker).Load(LongBool(0), FMoniker, FBindCtx, STGM_READ);
+  if Failed(HR) and Assigned(FOnParseError) then
+    FOnParseError(Self, GetLastError, FUrl, Err_IpersistMoniker_Load
+      + ResponseCodeToStr(HR))
+  else if (Assigned(FOnParseDocument)) then
+    FOnParseDocument(Self, HR, Succ_IpersistMoniker_Load + ResponseCodeToStr(HR));
+  Result := HR;
+end;
+
+function TIEParser.ProcessDoc(const aUrl: WideString): IHTMLDocument2;
+var
+  C: Integer;
+  ConnectionPoint: IConnectionPoint;
+  HR: HRESULT;
+begin
+  LoadingFromString := False;
+  if Assigned(FOnStartParsing) then
+      FOnStartParsing(Self, aUrl);
+  HR := CoCreateInstance(CLASS_HtmlDocument, nil, CLSCTX_INPROC_SERVER,
+    IHtmlDocument2, Doc);
+  if Failed(HR) and Assigned(FOnParseError) then
+    FOnParseError(Self, GetLastError, FUrl, Err_CoCreateInstance + ResponseCodeToStr(HR))
+  else if (Assigned(FOnParseDocument)) then
+    FOnParseDocument(Self, HR, Succ_CoCreateInstance + ResponseCodeToStr(HR));
+
+  HR := (Doc as IOleObject).SetClientSite(Self as IOleClientsite);
+  if Failed(HR) and Assigned(FOnParseError) then
+    FOnParseError(Self, GetLastError, FUrl, Err_Doc_AsSetClientSite + ResponseCodeToStr(HR))
+  else if (Assigned(FOnParseDocument)) then
+    FOnParseDocument(Self, HR, Doc_AsSetClientSite + ResponseCodeToStr(HR));
+
+  HR := (Doc as IOleControl).OnAmbientPropertyChange(DISPId_AMBIENT_DLCONTROL);
+  if Failed(HR) and Assigned(FOnParseError) then
+    FOnParseError(Self, GetLastError, FUrl, Err_Doc_AsAmbientPropertyChange + ResponseCodeToStr(HR))
+  else if (Assigned(FOnParseDocument)) then
+    FOnParseDocument(Self, HR, Doc_AsAmbientPropertyChange + ResponseCodeToStr(HR));
+
+  HR := (Doc as IConnectionPointContainer).FindConnectionPoint(IpropertyNotifySink, ConnectionPoint);
+  if Failed(HR) and Assigned(FOnParseError) then
+    FOnParseError(Self, GetLastError, FUrl, Err_Doc_AsPointContainer + ResponseCodeToStr(HR))
+  else if (Assigned(FOnParseDocument)) then
+    FOnParseDocument(Self, HR, Doc_AsPointContainer + ResponseCodeToStr(HR));
+
+  HR := (ConnectionPoint.Advise(Self as IPropertyNotifySink, C));
+  if Failed(HR) and Assigned(FOnParseError) then
+    FOnParseError(Self, GetLastError, FUrl, Err_Doc_AsAdvise + ResponseCodeToStr(HR))
+  else if (Assigned(FOnParseDocument)) then
+    FOnParseDocument(Self, HR, Doc_AsAdvise + ResponseCodeToStr(HR));
+  DoQueryInfo(FUrl);
+  Result := Doc;
+end;
+
+procedure TIEParser.DoQueryInfo(const aUrl: string);
+var
+  hInet: HINTERNET;
+  hConnect: HINTERNET;
+  infoBuffer: array[0..1024] of Char;
+  dwReserved: DWORD;
+  bufLen: DWORD;
+  lbResult: LongBool;
+begin
+  hInet := InternetOpen('TDownload',
+    INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY, nil, nil, 0);
+  if hInet <> nil then
+  begin
+    try
+      hConnect := InternetOpenUrl(hInet, PChar(Url), nil, 0, INTERNET_FLAG_NO_UI, 0);
+      if Assigned(hConnect) then
+      begin
+        try
+          dwReserved := 0;
+          bufLen := Length(infoBuffer);
+
+          lbResult := HttpQueryInfo(hConnect, HTTP_QUERY_CONTENT_TYPE, @infoBuffer[0], bufLen, dwReserved);
+          if lbResult then
+            FMimeType := infoBuffer
+          else
+            FMimeType := EmptyStr;
+
+          lbResult := HttpQueryInfo(hConnect, HTTP_QUERY_CONTENT_ENCODING, @infoBuffer, bufLen, dwReserved);
+          if lbResult then
+            FEncoding := Encoding
+          else
+            FEncoding := EmptyStr;
+
+          lbResult := HttpQueryInfo(hConnect, HTTP_QUERY_CONTENT_DISPOSITION, @infoBuffer, bufLen, dwReserved);
+          if lbResult then
+            FDisposition := Disposition
+          else
+            FDisposition := EmptyStr;
+
+          if Assigned(FOnQueryInfo) then
+            FOnQueryInfo(FMimeType, FEncoding, FDisposition);
+        finally
+          InternetCloseHandle(hConnect);
+        end;
+      end;
+    finally
+      InternetCloseHandle(hInet);
+    end;
+  end;
+end;
+
+procedure TIEParser.Initialize;
+begin
+  Doc := nil;
+  All := nil;
+  FBusy := True;
+  FParserState := psBusy;
+  if Assigned(FOnStateChange) then
+    FOnStateChange(Self, FParserState);
+  BoolWorking := True;
+  StartTick := GetTickCount;
+  FUrl := Url;
+  LoadingFromString := False;
+  NoFramesFound := False;
+  CoInitialize(nil);
+end;
+
+procedure TIEParser.Stop;
+begin
+  if Assigned(Doc) then
+    Doc := nil;
+  if Assigned(All) then
+    All := nil;
+  FreeAndNil(Element);
+  FUrl := EmptyStr;
+  FBusy := False;
+  Finalize;
+end;
+
+procedure TIEParser.Parse(const aUrl: WideString);
+ function ContainsAboutBlank(const s: string): Boolean;
+  begin
+    Result := Pos('about:blank', LowerCase(s)) > 0;
+  end;
+
+var
+  E: IHtmlElement;
+  X: Integer;
+  Msg: TMsg;
+  v, u: OleVariant;
+  ParseTime, NoFramesContent, Us: string;
+  HR: HRESULT;
+begin
+  Initialize;
+  FUrl := aUrl;
+  ProcessDoc(aUrl);
+  NoFramesContent := '';
+  if FUrl <> '' then
+  begin
+    HR := S_OK;
+    if IEDownloadTools.IsValidURL(FUrl) then
+      HR := LoadUrlFromMoniker(FUrl);
+    if Failed(HR) and Assigned(FOnParseError) then
+      FOnParseError(Self, GetLastError, FUrl, Err_Load_Mon + ResponseCodeToStr(HR))
+    else if (Assigned(FOnParseDocument)) then
+      FOnParseDocument(Self, HR, Succ_Load_Mon + ResponseCodeToStr(HR));
+  end
+  else
+    HR := LoadFromString;
+
+  if (Doc = nil) then
+  begin
+    if Failed(HR) and Assigned(FOnParseError) then
+      FOnParseError(Self, GetLastError, FUrl, Err_Load_Str + ResponseCodeToStr(HR));
+    Exit;
+  end
+
+  else
+  begin
+    while (BoolWorking and GetMessage(Msg, 0, 0, 0)) do
+    begin
+      if ((Msg.Message = WM_USER_STARTWALKING) and (Msg.hWnd = 0)) then
+      begin
+        BoolWorking := False;
+        All := Doc.Get_all;
+        if (All <> nil) and (All.length <= 4) then
+        begin
+          if Assigned(FOnParseError) then
+            FOnParseError(Self, E_FAIL, FUrl, Doc_Error + ResponseCodeToStr(E_FAIL));
+          Exit;
+        end;
+        if (All <> nil) and not FDownloadOnly then
+          for x := 0 to All.length - 1 do
+          begin
+            E := All.item(x, 0) as IHTMLElement;
+            with Element do
+            begin
+              ClassName := E.className;
+              Id := E.id;
+              TagName := E.tagName;
+              Title := E.title;
+              Language := E.language;
+              SourceIndex := E.sourceIndex;
+              RecordNumber := E.recordNumber;
+              Lang := E.lang;
+              OffsetLeft := E.offsetLeft;
+              OffsetTop := E.offsetTop;
+              OffsetWidth := E.offsetWidth;
+              OffsetHeight := E.offsetHeight;
+              InnerHtml := E.innerHtml;
+              InnerText := E.innerText;
+              OuterHtml := E.outerHtml;
+              OuterText := E.outerText;
+            end;
+            if Assigned(FElement) then
+              FElement(Self, Element);
+
+            case StrToCase(E.TagName, ['FRAMESET', 'FRAME', 'NOFRAMES', 'A', '!',
+              'COMMENT', 'IMG', 'BODY', 'BASE', 'BASEFONT', 'FONT', 'META', 'MARQUEE',
+                'FORM', 'SCRIPT', 'DIV', 'HR', 'BR']) of
+              0: // FRAMESET
+                begin
+                  if Assigned(FOnFrameSet) then
+                    with All.item(x, 0) as IHTMLFrameSetElement do
+                      FOnFrameSet(Self, Rows, Cols, FrameBorder, Name,
+                        Border, BorderColor, FrameSpacing, Element);
+                end;
+              1: // FRAME
+                begin
+                  if Assigned(FOnFrame) then
+                  begin
+                    v := E.GetAttribute('Name', 0);
+                    u := E.GetAttribute('Src', 0); // JohnS ('Source' -> 'Src')
+                    Us := u;
+                    if LoadingFromString and ContainsAboutBlank(Us) then
+                      Delete(Us, 1, 11);
+                    FOnFrame(Self, Us, v, Element);
+                  end;
+                end;
+              2: // NOFRAMES
+                begin
+                  NoFramesContent := E.InnerHtml;
+                  if Assigned(FOnNoFrame) then
+                    FOnNoFrame(Self, Element);
+                end;
+              3: // A
+                begin
+                  if Assigned(FAnchor) then
+                    with All.item(x, 0) as IHTMLAnchorElement do
+                    begin
+                      Us := hRef;
+                      if LoadingFromString and ContainsAboutBlank(Us) then
+                        Delete(Us, 1, 11);
+                      FAnchor(Self, Us, target, rel, rev, Urn, Methods,
+                        name, host, hostname, pathname, port, protocol,
+                        Search, Hash, AccessKey,
+                        ProtocolLong, MimeType, NameProp, Element);
+                    end;
+                end;
+              4 or 5: // !, COMMENT
+                begin
+                  if Assigned(FComment) then
+                    with All.item(x, 0) as IHTMLCommentElement do
+                      FComment(Self, Text, Element)
+                  else
+                    if (E.TagName = 'IMG') and Assigned(FImage) then
+                      with All.item(x, 0) as IHtmlImgElement do
+                      begin
+                        Us := Src;
+                        if LoadingFromString and ContainsAboutBlank(Us) then
+                          Delete(Us, 1, 11);
+                        FImage(Self, Us, All.item(x, 0) as IHTMLImgElement, Element);
+                      end;
+                end;
+
+              6: // IMG
+                begin
+                  if Assigned(FImage) then
+                     with All.item(x, 0) as IHTMLImgElement do
+                    begin
+                      Us := Src;
+                      if LoadingFromString and ContainsAboutBlank(Us) then
+                        Delete(Us, 1, 11);
+                      FImage(Self, Us, All.item(x, 0) as IHTMLImgElement, Element);
+                    end;
+                end;
+              7: // BODY
+                begin
+                  if Assigned(FBody) then
+                    with All.item(x, 0) as IHTMLBodyElement do
+                      FBody(Self, Background, bgProperties,
+                        LeftMargin, TopMargin, RightMargin, BottomMargin, bgColor, Text, Link,
+                        vLink, aLink, NoWrap, Element);
+                end;
+              8: // BASE
+                begin
+                  if Assigned(FBase) then
+                    with All.item(x, 0) as IHTMLBaseElement do
+                    begin
+                      Us := hRef;
+                      if LoadingFromString and ContainsAboutBlank(Us) then
+                        Delete(Us, 1, 11);
+                      FBase(Self, Us, Target, Element);
+                    end;
+                end;
+              9: // BASEFONT
+                begin
+                  if Assigned(FBaseFont) then
+                    with All.item(x, 0) as IHTMLBaseFontElement do
+                      FBaseFont(Self, color, face, size, Element);
+                end;
+              10: // FONT
+                begin
+                  if Assigned(FFont) then
+                    with All.item(x, 0) as IHTMLFontElement do
+                      FFont(Self, color, size, face, Element);
+                end;
+              11: // META
+                begin
+                  if Assigned(FMeta) then
+                    with All.item(x, 0) as IHTMLMetaElement do
+                      FMeta(Self, httpEquiv, content, name, url,
+                        charset, Element);
+                end;
+              12: // MARQUEE
+                begin
+                  if Assigned(FMarquee) then
+                    with All.item(x, 0) as IHTMLMarqueeElement do
+                      FMarquee(Self, bgColor, Width, Height, Direction, Behavior,
+                        ScrollAmount, ScrollDelay, Loop, vSpace, hSpace, Element);
+                end;
+              13: // FORM
+                begin
+                  if Assigned(FForm) then
+                    with All.item(x, 0) as IHTMLFormElement do
+                      FForm(Self, Action, Dir, Encoding, Method,
+                        Target, Name, Element);
+                end;
+              14: // SCRIPT
+                begin
+                  if Assigned(FScript) then
+                    with All.item(x, 0) as IHTMLScriptElement do
+                    begin
+                      Us := Src;
+                      if LoadingFromString and ContainsAboutBlank(Us) then
+                        Delete(Us, 1, 11);
+                      FScript(Self, Us, All.item(x, 0) as IHTMLScriptElement, Element);
+                    end;
+
+                end;
+              15: // DIV - containers
+                begin
+                  if Assigned(FDiv) then
+                    with All.item(x, 0) as IHTMLDivElement do
+                      FDiv(Self, Align, NoWrap, Element);
+                end;
+              16: // HR - horizontal rule
+                begin
+                  if Assigned(FHr) then
+                    with All.item(x, 0) as IHTMLHRElement do
+                      FHr(Self, Align, Color, Width, Size, NoShade, Element);
+                end;
+              17: // BR - line break
+                begin
+                  if Assigned(FBr) then
+                    with All.item(x, 0) as IHTMLBRElement do
+                      FBr(Self, Clear, Element);
+
+                end;
+            end;
+          end;
+        GetPageProperties;
+      end
+      else
+        DispatchMessage(Msg);
+    end;
+  end;
+  FUrl := '';
+  if (NoFramesFound) and (ParseNoFrames) then
+  begin
+    FHtml := NoFramesContent;
+    Parse(Url);
+  end;
+  if Assigned(FOnParseComplete) then
+    FOnParseComplete(Self, Doc, All);
+  ParseTime := FormatTickToTime(GetTickCount - StartTick);
+  if (Assigned(FOnParseDocument)) then
+    FOnParseDocument(Self, S_OK, Done + ' Process Time: ' + ParseTime);
+  Finalize;
+end;
+
+procedure TIEParser.Finalize;
+begin
+  FHtml := '';
+  FBusy := False;
+  FParserState := psStopped;
+  CoUninitialize;
+  if Assigned(FOnStateChange) then
+    FOnStateChange(Self, FParserState);
+end;
+
+function TProxySettings.SetProxy(const FullUserAgent, ProxyServer: string):
+  Boolean;
+var
+  intList: INTERNET_PER_CONN_OPTION_List;
+  dwBufSize: DWORD;
+  hInternet: Pointer;
+  intOptions: array[1..3] of INTERNET_PER_CONN_OPTION;
+begin
+  Result := False;
+  dwBufSize := SizeOf(intList);
+  intList.dwSize := SizeOf(intList);
+  intList.pszConnection := nil;
+  intList.dwOptionCount := High(intOptions);
+  // the highest index of the array (in this case 3)
+  intOptions[1].dwOption := INTERNET_PER_CONN_FLAGS;
+  intOptions[1].Value.dwValue := PROXY_TYPE_DIRECT or PROXY_TYPE_PROXY;
+  intOptions[2].dwOption := INTERNET_PER_CONN_PROXY_SERVER;
+  intOptions[2].Value.pszValue := PChar(ProxyServer);
+  intOptions[3].dwOption := INTERNET_PER_CONN_PROXY_BYPASS;
+  intOptions[3].Value.pszValue := '<local>';
+  intList.intOptions := @intOptions;
+  hInternet := InternetOpen(PChar(FullUserAgent), INTERNET_OPEN_TYPE_DIRECT,
+    nil, nil, 0);
+  if hInternet <> nil then
+  try
+    Result := InternetSetOption(hInternet,
+      INTERNET_OPTION_PER_CONNECTION_OPTION,
+      @intList, dwBufSize);
+    Result := Result and InternetSetOption(hInternet, INTERNET_OPTION_REFRESH,
+      nil, 0);
+  finally
+    InternetCloseHandle(hInternet)
+  end;
+end;
+{End of Proxy Settings-----------------------------------------------------------}
+
+
+initialization
+  OleInitialize(nil);
+
+finalization
+  try
+    OleUninitialize;
+  except
+  end;
+
+end.
+
+
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IETravelLog.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IETravelLog.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IETravelLog.pas	(revision 541)
@@ -0,0 +1,289 @@
+//***********************************************************
+//                          IETravelLog                     *
+//                                                          *
+//                     Freeware Component                   *
+//                            by                            *
+//                     Per Lindsø Larsen                    *
+//                Updated by Eran Bodankin - bsalsa         *
+//                     bsalsa@gmail.com                    *
+//                                                          *
+//        Documentation and updated versions:               *
+//                                                          *
+//               http://www.bsalsa.com                      *
+//***********************************************************
+{*******************************************************************************}
+{LICENSE:
+THIS SOFTWARE IS PROVIDED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND,
+EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE APPLIED
+WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
+YOU ASSUME THE ENTIRE RISK AS TO THE ACCURACY AND THE USE OF THE SOFTWARE
+AND ALL OTHER RISK ARISING OUT OF THE USE OR PERFORMANCE OF THIS SOFTWARE
+AND DOCUMENTATION. BSALSA PRODUCTIONS DOES NOT WARRANT THAT THE SOFTWARE IS ERROR-FREE
+OR WILL OPERATE WITHOUT INTERRUPTION. THE SOFTWARE IS NOT DESIGNED, INTENDED
+OR LICENSED FOR USE IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE CONTROLS,
+INCLUDING WITHOUT LIMITATION, THE DESIGN, CONSTRUCTION, MAINTENANCE OR
+OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS,
+AIR TRAFFIC CONTROL, AND LIFE SUPPORT OR WEAPONS SYSTEMS. BSALSA PRODUCTIONS SPECIFICALLY
+DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR SUCH PURPOSE.
+
+You may use, change or modify the component under 4 conditions:
+1. In your website, add a link to "http://www.bsalsa.com"
+2. In your application, add credits to "Embedded Web Browser"
+3. Mail me  (bsalsa@gmail.com) any code change in the unit
+   for the benefit of the other users.
+4. Please consider donation in our web site!
+{*******************************************************************************}
+//$Id: IETravelLog.pas,v 1.3 2006/12/18 14:13:07 bsalsa Exp $
+
+unit IETravelLog;
+
+interface
+
+{$I EWB.inc}
+
+uses
+  Activex, Windows, Classes, EmbeddedWB, IEConst, EwbAcc;
+
+type
+  TOnEntryEvent = procedure(Title, Url: WideString; var Cancel: Boolean) of object;
+  TOnGetCountEvent = procedure(Flags: Cardinal; out Entries: Cardinal) of object;
+  TOnRemoveEntryEvent = procedure(Name: WideString; var Cancel: Boolean) of object;
+  TOnTravelToEvent = procedure(OffSet: Integer; var Cancel: Boolean) of object;
+
+  TIETravelLog = class(TComponent)
+  private
+    { Private declarations }
+    FAbout: string;
+    FEmbeddedWB: TEmbeddedWB;
+    FEnabled: Boolean;
+    fOnEntry: TOnEntryEvent;
+    FOnGetCount: TOnGetCountEvent;
+    FOnRemoveEntry: TOnRemoveEntryEvent;
+    FOnTravelTo: TOnTravelToEvent;
+    procedure SetAbout(const Value: string);
+  protected
+    { Protected declarations }
+    Entry: ITravelLogEntry;
+    Enum: IEnumTravelLogEntry;
+    Stg: ITravelLogStg;
+    procedure _Enumerate(Flags: Cardinal);
+  public
+    { Public declarations }
+    constructor Create(AOwner: TComponent); override;
+    function Connect: Boolean;
+    function CreateEntry(const OffSet: Integer; const Url, Title: WideString): HRESULT;
+    function GetCount(Flags: DWORD; out Entries: DWORD): HRESULT;
+    function GetRelativeEntry(OffSet: Integer; out Title, Url: WideString): HRESULT;
+    function RemoveEntry(OffSet: Integer): HRESULT;
+    function RemoveEntryByTitle(const Title: WideString): HRESULT;
+    function RemoveEntryByUrl(const Url: WideString): HRESULT;
+    function TravelTo(OffSet: Integer): HRESULT;
+    procedure ClearSession;
+    procedure Enumerate;
+    procedure EnumerateBack;
+    procedure EnumerateForward;
+  published
+    { Published declarations }
+    property About: string read FAbout write SetAbout;
+    property EmbeddedWB: TEmbeddedWB read FEmbeddedWB write FEmbeddedWB;
+    property OnEntry: TOnEntryEvent read fOnEntry write fOnEntry;
+    property OnGetCount: TOnGetCountEvent read FOnGetCount write FOnGetCount;
+    property OnRemoveEntry: TOnRemoveEntryEvent read FOnRemoveEntry write FOnRemoveEntry;
+    property OnTravelTo: TOnTravelToEvent read FOnTravelTo write FOnTravelTo;
+    property Enabled: boolean read FEnabled write FEnabled default True;
+  end;
+
+implementation
+
+{ TIETravelLog }
+
+constructor TIETravelLog.Create(AOwner: TComponent);
+
+begin
+  inherited Create(AOwner);
+  FAbout := 'TIETravelLog. ' + WEB_SITE;
+  FEnabled := True;
+end;
+
+procedure TIETravelLog.SetAbout(const Value: string);
+begin
+  Exit;
+end;
+
+function TIETravelLog.TravelTo(OffSet: Integer): HRESULT;
+var
+  Cancel: Boolean;
+begin
+  Cancel := False;
+  Result := S_False;
+  if FEnabled and Assigned(EmbeddedWB) and Assigned(EmbeddedWB.Document) and
+    (Stg.GetRelativeEntry(OffSet, Entry) = S_OK) then
+  begin
+    if Assigned(FOnTravelTo) then
+      FOnTravelTo(OffSet, Cancel);
+  end;
+  if not Cancel then
+    Result := Stg.TravelTo(Entry);
+end;
+
+procedure TIETravelLog._Enumerate(Flags: Cardinal);
+var
+  Cancel: Boolean;
+  Fetched: Cardinal;
+  Url, Title: PWideChar;
+begin
+  if FEnabled and Assigned(EmbeddedWB) and Assigned(EmbeddedWB.Document) then
+  begin
+    Cancel := False;
+    Stg.EnumEntries(Flags, Enum);
+    if Enum <> nil then
+      while (Enum.next(1, Entry, Fetched) = S_OK) and not Cancel do
+      begin
+        if Assigned(fOnEntry) and Succeeded(Entry.GetTitle(Title)) and Succeeded(Entry.GetUrl(Url)) then
+          fOnEntry(Title, Url, Cancel);
+      end;
+  end;
+end;
+
+procedure TIETravelLog.EnumerateBack;
+begin
+  if FEnabled and Assigned(EmbeddedWB) and Assigned(EmbeddedWB.Document) then
+    _Enumerate(TLEF_RELATIVE_BACK);
+end;
+
+procedure TIETravelLog.EnumerateForward;
+begin
+  if FEnabled and Assigned(EmbeddedWB) and Assigned(EmbeddedWB.Document) then
+    _Enumerate(TLEF_RELATIVE_FORE);
+end;
+
+function TIETravelLog.Connect: Boolean;
+var
+  ISP: IServiceProvider;
+begin
+  Result := False;
+  if FEnabled and Assigned(EmbeddedWB) and Assigned(EmbeddedWB.Document) then
+  begin
+    if Succeeded(EmbeddedWB.Application.QueryInterface(IServiceprovider, ISP)) and
+      Succeeded(ISP.QueryService(SID_STravelLogCursor, IID_ITravelLogStg, Stg)) then
+      Result := True;
+  end;
+end;
+
+function TIETravelLog.GetRelativeEntry(OffSet: Integer; out Title, Url: WideString): HRESULT;
+var
+  WUrl, WTitle: PWideChar;
+begin
+  Result := S_False;
+  if FEnabled and Assigned(EmbeddedWB) and Assigned(EmbeddedWB.Document) then
+    Result := Stg.GetRelativeEntry(OffSet, Entry);
+  if Result = S_OK then
+  begin
+    if Succeeded(Entry.GetTitle(WTitle)) then
+      Title := WTitle;
+    if Succeeded(Entry.GetUrl(WUrl)) then
+      Url := WUrl;
+  end;
+end;
+
+function TIETravelLog.GetCount(Flags: DWORD; out Entries: DWORD): HRESULT;
+begin
+  Result := S_False;
+  if FEnabled and Assigned(EmbeddedWB) and Assigned(EmbeddedWB.Document) then
+  begin
+    Result := Stg.GetCount(Flags, Entries);
+    if Assigned(FOnGetCount) then
+      FOnGetCount(Flags, Entries);
+  end;
+end;
+
+function TIETravelLog.CreateEntry(const OffSet: Integer; const Url, Title: WideString): HRESULT;
+var
+  Dummy: ITravelLogEntry;
+begin
+  Result := S_False;
+  if FEnabled and Assigned(EmbeddedWB) and Assigned(EmbeddedWB.Document) and
+    (Stg.GetRelativeEntry(OffSet, Entry) = S_OK)
+    then
+    Result := Stg.CreateEntry(StringToOleStr(Url), StringToOleStr(Title), Entry, TRUE, Dummy)
+end;
+
+procedure TIETravelLog.Enumerate;
+begin
+  if FEnabled and Assigned(EmbeddedWB) and Assigned(EmbeddedWB.Document) then
+    _Enumerate(TLEF_ABSOLUTE);
+end;
+
+function TIETravelLog.RemoveEntry(OffSet: Integer): HRESULT;
+var
+  Title, Url: WideString;
+  Cancel: Boolean;
+begin
+  Cancel := False;
+  Result := S_False;
+  if FEnabled and Assigned(EmbeddedWB) and Assigned(EmbeddedWB.Document) and
+    (GetRelativeEntry(OffSet, Title, Url) = S_OK) then
+  begin
+    if Assigned(FOnRemoveEntry) then
+      FOnRemoveEntry(Title, Cancel);
+    if not Cancel then
+      Result := RemoveEntryByUrl(Url);
+  end;
+end;
+
+function TIETravelLog.RemoveEntryByTitle(const Title: WideString): HRESULT;
+var
+  Fetched: Cardinal;
+  pTitle: PWideChar;
+  Cancel: Boolean;
+begin
+  Cancel := False;
+  Result := S_False;
+  if FEnabled and Assigned(EmbeddedWB) and Assigned(EmbeddedWB.Document) and
+    (Stg.EnumEntries(TLEF_ABSOLUTE, Enum) = S_OK) then
+    while (Enum.next(1, Entry, Fetched) = S_OK) do
+    begin
+      if Succeeded(Entry.GetTitle(pTitle)) and (Title = pTitle) then
+      begin
+        if Assigned(FOnRemoveEntry) then
+          FOnRemoveEntry(Title, Cancel);
+        if not Cancel then
+          Result := Stg.RemoveEntry(Entry);
+      end;
+    end;
+end;
+
+function TIETravelLog.RemoveEntryByUrl(const Url: WideString): HRESULT;
+var
+  Fetched: Cardinal;
+  pUrl: PWideChar;
+  Cancel: Boolean;
+begin
+  Cancel := False;
+  Result := S_False;
+  if FEnabled and Assigned(EmbeddedWB) and Assigned(EmbeddedWB.Document) and
+    (Stg.EnumEntries(TLEF_ABSOLUTE, Enum) = S_OK)
+    then
+    while (Enum.next(1, Entry, Fetched) = S_OK) do
+    begin
+      if Succeeded(Entry.GetUrl(pUrl)) and (Url = pUrl) then
+      begin
+        if Assigned(FOnRemoveEntry) then
+          FOnRemoveEntry(Url, Cancel);
+        if not Cancel then
+          Result := Stg.RemoveEntry(Entry);
+      end;
+    end;
+end;
+
+procedure TIETravelLog.ClearSession;
+var
+  Fetched: Cardinal;
+begin
+  if FEnabled and Assigned(EmbeddedWB) and Assigned(EmbeddedWB.Document) and
+    (Stg.EnumEntries(TLEF_ABSOLUTE, Enum) = S_OK) then
+    while (Enum.Next(1, Entry, Fetched) = S_OK) do
+      Stg.RemoveEntry(Entry);
+end;
+
+end.
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IeConst.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IeConst.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IeConst.pas	(revision 541)
@@ -0,0 +1,745 @@
+(******************************************************************************
+*                                   IEConst                                   *
+* Constants for IE hosting etc...                                             *
+******************************************************************************)
+unit Ieconst;
+
+interface
+
+uses
+   ActiveX, OleCtrls, Windows, Messages, SysUtils, Classes;
+
+
+const
+  SID_SHTMLEditHost: TGUID = '{3050F6A0-98B5-11CF-BB82-00AA00BDCE0B}';
+  //(D1: $3050F6A0; D2: $98B5; D3: $11CF; D4: ($BB, $82, $00, $AA, $00, $BD, $CE, $0B));
+
+  IID_IDocHostUIHandler: TGUID = '{bd3f23c0-d43e-11cf-893b-00aa00bdce1a}';
+  GUID_TriEditCommandGroup: TGUID = '{2582F1C0-084E-11d1-9A0E-006097C9B344}';
+  CMDSETID_Forms3: TGUID = '{DE4BA900-59CA-11CF-9592-444553540000}';
+  CGID_MSHTML: TGUID = '{DE4BA900-59CA-11CF-9592-444553540000}';
+  CGID_DocHostCommandHandler: TGUID = (D1: $F38BC242; D2: $B950; D3: $11D1; D4: ($89, $18, $00, $C0, $4F, $C2, $C8, $36));
+
+
+
+  CLSID_WebBrowser: TGUID = '{ED016940-BD5B-11cf-BA4E-00C04FD70816}';
+
+  SID_SHTMLEditServices: TGUID = (D1: $3050f7f9; D2: $98b5; D3: $11cf; D4: ($bb, $82, $00, $AA, $00, $bd, $ce, $0b));
+
+  //* Object interface: IBrowserHost, ver. 0.0,
+  // GUID={0x5FD6158A,0x71F6,0x4F20,{0xB8,0xA9,0x6E,0xAF,0x5D,0x03,0x2D,0x15}} */
+
+  MSOCMDF_SUPPORTED = OLECMDF_SUPPORTED;
+  MSOCMDF_ENABLED = OLECMDF_ENABLED;
+
+  MSOCMDEXECOPT_PROMPTUSER = OLECMDEXECOPT_PROMPTUSER;
+  MSOCMDEXECOPT_DONTPROMPTUSER = OLECMDEXECOPT_DONTPROMPTUSER;
+
+
+//thise constants / enums isent contained in IE 5.5 SHDocVw_TLB ???
+type
+  RefreshConstants = TOleEnum;
+const
+  REFRESH_NORMAL = 0;
+  REFRESH_IFEXPIRED = 1;
+  REFRESH_CONTINUE = 2;
+  REFRESH_COMPLETELY = 3;
+
+type
+  BrowserNavConstants = TOleEnum;
+const
+  navOpenInNewWindow = $00000001;
+  navNoHistory       = $00000002;
+  navNoReadFromCache = $00000004;
+  navNoWriteToCache  = $00000008;
+  navAllowAutosearch = $00000010;
+  navBrowserBar      = $00000020;
+//----- END ----------
+
+const
+  CONTEXT_MENU_DEFAULT = 0;
+  CONTEXT_MENU_IMAGE = 1;
+  CONTEXT_MENU_CONTROL = 2;
+  CONTEXT_MENU_TABLE = 3;
+  CONTEXT_MENU_TEXTSELECT = 4;
+  CONTEXT_MENU_ANCHOR = 5;
+  CONTEXT_MENU_UNKNOWN = 6;
+  CONTEXT_MENU_IMGDYNSRC = 7;
+  CONTEXT_MENU_IMGART = 8;
+  CONTEXT_MENU_DEBUG = 9;
+
+
+  DOCHOSTUITYPE_BROWSE= 0;
+  DOCHOSTUITYPE_AUTHOR= 1;
+
+  DOCHOSTUIDBLCLK_DEFAULT= 0;
+  DOCHOSTUIDBLCLK_SHOWPROPERTIES= 1;
+  DOCHOSTUIDBLCLK_SHOWCODE= 2;
+
+  DOCHOSTUIFLAG_DIALOG                      = 1;
+  DOCHOSTUIFLAG_DISABLE_HELP_MENU           = 2;
+  DOCHOSTUIFLAG_NO3DBORDER                  = 4;
+  DOCHOSTUIFLAG_SCROLL_NO                   = 8;
+  DOCHOSTUIFLAG_DISABLE_SCRIPT_INACTIVE     = 16;
+  DOCHOSTUIFLAG_OPENNEWWIN                  = 32;
+  DOCHOSTUIFLAG_DISABLE_OFFSCREEN           = 64;
+  DOCHOSTUIFLAG_FLAT_SCROLLBAR              = 128;
+  DOCHOSTUIFLAG_DIV_BLOCKDEFAULT            = 256;
+  DOCHOSTUIFLAG_ACTIVATE_CLIENTHIT_ONLY     = 512;
+  DOCHOSTUIFLAG_OVERRIDEBEHAVIORFACTORY     = $00000400;
+  DOCHOSTUIFLAG_CODEPAGELINKEDFONTS         = $00000800;
+  DOCHOSTUIFLAG_URL_ENCODING_DISABLE_UTF8   = $00001000;
+  DOCHOSTUIFLAG_URL_ENCODING_ENABLE_UTF8    = $00002000;
+  DOCHOSTUIFLAG_ENABLE_FORMS_AUTOCOMPLETE   = $00004000;
+  DOCHOSTUIFLAG_ENABLE_INPLACE_NAVIGATION   = $00010000;
+  DOCHOSTUIFLAG_IME_ENABLE_RECONVERSION     = $00020000;
+  DOCHOSTUIFLAG_THEME                       = $00040000;
+  DOCHOSTUIFLAG_NOTHEME                     = $00080000;
+  DOCHOSTUIFLAG_NOPICS                      = $00100000;
+  DOCHOSTUIFLAG_NO3DOUTERBORDER             = $00200000;
+
+  //old style DECM....
+  DECMD_BOLD              = $00001388;   //5000
+  DECMD_COPY              = $0000138A;
+  DECMD_CUT               = $0000138B;
+  DECMD_DELETE            = $0000138C;
+  DECMD_DELETECELLS       = $0000138D;
+  DECMD_DELETECOLS        = $0000138E;
+  DECMD_DELETEROWS        = $0000138F;
+  DECMD_FINDTEXT          = $00001390;
+  DECMD_FONT              = $00001391;
+  DECMD_GETBACKCOLOR      = $00001392;
+  DECMD_GETBLOCKFMT       = $00001393;
+  DECMD_GETBLOCKFMTNAMES  = $00001394;
+  DECMD_GETFONTNAME       = $00001395;
+  DECMD_GETFONTSIZE       = $00001396;
+  DECMD_GETFORECOLOR      = $00001397;
+  DECMD_HYPERLINK         = $00001398;
+  DECMD_IMAGE             = $00001399;
+  DECMD_INDENT            = $0000139A;
+  DECMD_INSERTCELL        = $0000139B;
+  DECMD_INSERTCOL         = $0000139C;
+  DECMD_INSERTROW         = $0000139D;
+  DECMD_INSERTTABLE       = $0000139E;
+  DECMD_ITALIC            = $0000139F;
+  DECMD_JUSTIFYCENTER     = $000013A0;
+  DECMD_JUSTIFYLEFT       = $000013A1;
+  DECMD_JUSTIFYRIGHT      = $000013A2;
+  DECMD_LOCK_ELEMENT      = $000013A3;
+  DECMD_MAKE_ABSOLUTE     = $000013A4;
+  DECMD_MERGECELLS        = $000013A5;
+  DECMD_ORDERLIST         = $000013A6;
+  DECMD_OUTDENT           = $000013A7;
+  DECMD_PASTE             = $000013A8;
+  DECMD_REDO              = $000013A9;
+  DECMD_REMOVEFORMAT      = $000013AA;
+  DECMD_SELECTALL         = $000013AB;
+  DECMD_SEND_BACKWARD     = $000013AC;
+  DECMD_BRING_FORWARD     = $000013AD;
+  DECMD_SEND_BELOW_TEXT   = $000013AE;
+  DECMD_BRING_ABOVE_TEXT  = $000013AF;
+  DECMD_SEND_TO_BACK      = $000013B0;
+  DECMD_BRING_TO_FRONT    = $000013B1;
+  DECMD_SETBACKCOLOR      = $000013B2;
+  DECMD_SETBLOCKFMT       = $000013B3;
+  DECMD_SETFONTNAME       = $000013B4;
+  DECMD_SETFONTSIZE       = $000013B5;
+  DECMD_SETFORECOLOR      = $000013B6;
+  DECMD_SPLITCELL         = $000013B7;
+  DECMD_UNDERLINE         = $000013B8;
+  DECMD_UNDO              = $000013B9;
+  DECMD_UNLINK            = $000013BA;
+  DECMD_UNORDERLIST       = $000013BB;
+  DECMD_PROPERTIES        = $000013BC;    //5052
+  IDM_NUDGE_ELEMENT       = $000013BD;
+  IDM_LOCK_ELEMENT        = $000013BE;
+  IDM_CONSTRAIN           = $000013BF;
+  KS_TEST                 = $000013C0;
+
+  //end old style DECM....
+
+  IDM_UNKNOWN               =  0;
+  IDM_ALIGNBOTTOM           =  1;
+  IDM_ALIGNHORIZONTALCENTERS=  2;
+  IDM_ALIGNLEFT             =  3;
+  IDM_ALIGNRIGHT            =  4;
+  IDM_ALIGNTOGRID           =  5;
+  IDM_ALIGNTOP              =  6;
+  IDM_ALIGNVERTICALCENTERS  =  7;
+  IDM_ARRANGEBOTTOM         =  8;
+  IDM_ARRANGERIGHT          =  9;
+  IDM_BRINGFORWARD           = 10;
+  IDM_BRINGTOFRONT           = 11;
+  IDM_CENTERHORIZONTALLY     = 12;
+  IDM_CENTERVERTICALLY       = 13;
+  IDM_CODE                   = 14;
+  IDM_DELETE                 = 17;
+  IDM_FONTNAME               = 18;
+  IDM_FONTSIZE               = 19;
+  IDM_GROUP                  = 20;
+  IDM_HORIZSPACECONCATENATE  = 21;
+  IDM_HORIZSPACEDECREASE     = 22;
+  IDM_HORIZSPACEINCREASE     = 23;
+  IDM_HORIZSPACEMAKEEQUAL    = 24;
+  IDM_INSERTOBJECT           = 25;
+  IDM_MULTILEVELREDO         = 30;
+  IDM_SENDBACKWARD           = 32;
+  IDM_SENDTOBACK             = 33;
+  IDM_SHOWTABLE              = 34;
+  IDM_SIZETOCONTROL          = 35;
+  IDM_SIZETOCONTROLHEIGHT    = 36;
+  IDM_SIZETOCONTROLWIDTH     = 37;
+  IDM_SIZETOFIT              = 38;
+  IDM_SIZETOGRID             = 39;
+  IDM_SNAPTOGRID             = 40;
+  IDM_TABORDER               = 41;
+  IDM_TOOLBOX                = 42;
+  IDM_MULTILEVELUNDO         = 44;
+  IDM_UNGROUP                = 45;
+  IDM_VERTSPACECONCATENATE   = 46;
+  IDM_VERTSPACEDECREASE      = 47;
+  IDM_VERTSPACEINCREASE      = 48;
+  IDM_VERTSPACEMAKEEQUAL     = 49;
+  IDM_JUSTIFYFULL            = 50;
+  IDM_BACKCOLOR              = 51;
+  IDM_BOLD                   = 52;
+  IDM_BORDERCOLOR            = 53;
+  IDM_FLAT                   = 54;
+  IDM_FORECOLOR              = 55;
+  IDM_ITALIC                 = 56;
+  IDM_JUSTIFYCENTER          = 57;
+  IDM_JUSTIFYGENERAL         = 58;
+  IDM_JUSTIFYLEFT            = 59;
+  IDM_JUSTIFYRIGHT           = 60;
+  IDM_RAISED                 = 61;
+  IDM_SUNKEN                 = 62;
+  IDM_UNDERLINE              = 63;
+  IDM_CHISELED               = 64;
+  IDM_ETCHED                 = 65;
+  IDM_SHADOWED               = 66;
+  IDM_FIND                   = 67;
+  IDM_SHOWGRID               = 69;
+  IDM_OBJECTVERBLIST0        = 72;
+  IDM_OBJECTVERBLIST1        = 73;
+  IDM_OBJECTVERBLIST2        = 74;
+  IDM_OBJECTVERBLIST3        = 75;
+  IDM_OBJECTVERBLIST4        = 76;
+  IDM_OBJECTVERBLIST5        = 77;
+  IDM_OBJECTVERBLIST6        = 78;
+  IDM_OBJECTVERBLIST7        = 79;
+  IDM_OBJECTVERBLIST8        = 80;
+  IDM_OBJECTVERBLIST9        = 81;
+  IDM_OBJECTVERBLISTLAST     = IDM_OBJECTVERBLIST9;
+  IDM_CONVERTOBJECT          = 82;
+  IDM_CUSTOMCONTROL          = 83;
+  IDM_CUSTOMIZEITEM          = 84;
+  IDM_RENAME                 = 85;
+  IDM_IMPORT                 = 86;
+  IDM_NEWPAGE                = 87;
+  IDM_MOVE                   = 88;
+  IDM_CANCEL                 = 89;
+  IDM_FONT                   = 90;
+  IDM_STRIKETHROUGH          = 91;
+  IDM_DELETEWORD             = 92;
+  IDM_EXECPRINT              = 93;
+  IDM_JUSTIFYNONE            = 94;
+  IDM_TRISTATEBOLD           = 95;
+  IDM_TRISTATEITALIC         = 96;
+  IDM_TRISTATEUNDERLINE      = 97;
+
+  IDM_FOLLOW_ANCHOR         =  2008;
+
+  IDM_INSINPUTIMAGE         =  2114;
+  IDM_INSINPUTBUTTON        =  2115;
+  IDM_INSINPUTRESET         =  2116;
+  IDM_INSINPUTSUBMIT        =  2117;
+  IDM_INSINPUTUPLOAD        =  2118;
+  IDM_INSFIELDSET           =  2119;
+
+  IDM_PASTEINSERT           =  2120;
+  IDM_REPLACE               =  2121;
+  IDM_EDITSOURCE            =  2122;
+  IDM_BOOKMARK              =  2123;
+  IDM_HYPERLINK             =  2124;
+  IDM_UNLINK                =  2125;
+  IDM_BROWSEMODE            =  2126;
+  IDM_EDITMODE              =  2127;
+  IDM_UNBOOKMARK            =  2128;
+
+  IDM_TOOLBARS              =  2130;
+  IDM_STATUSBAR             =  2131;
+  IDM_FORMATMARK            =  2132;
+  IDM_TEXTONLY              =  2133;
+  IDM_OPTIONS               =  2135;
+  IDM_FOLLOWLINKC           =  2136;
+  IDM_FOLLOWLINKN           =  2137;
+  IDM_VIEWSOURCE            =  2139;
+  IDM_ZOOMPOPUP             =  2140;
+
+  // IDM_BASELINEFONT1, IDM_BASELINEFONT2, IDM_BASELINEFONT3, IDM_BASELINEFONT4,
+  // and IDM_BASELINEFONT5 should be consecutive integers;
+  //
+  IDM_BASELINEFONT1         =  2141;
+  IDM_BASELINEFONT2         =  2142;
+  IDM_BASELINEFONT3         =  2143;
+  IDM_BASELINEFONT4         =  2144;
+  IDM_BASELINEFONT5         =  2145;
+
+  IDM_HORIZONTALLINE        =  2150;
+  IDM_LINEBREAKNORMAL       =  2151;
+  IDM_LINEBREAKLEFT         =  2152;
+  IDM_LINEBREAKRIGHT        =  2153;
+  IDM_LINEBREAKBOTH         =  2154;
+  IDM_NONBREAK              =  2155;
+  IDM_SPECIALCHAR           =  2156;
+  IDM_HTMLSOURCE            =  2157;
+  IDM_IFRAME                =  2158;
+  IDM_HTMLCONTAIN           =  2159;
+  IDM_TEXTBOX               =  2161;
+  IDM_TEXTAREA              =  2162;
+  IDM_CHECKBOX              =  2163;
+  IDM_RADIOBUTTON           =  2164;
+  IDM_DROPDOWNBOX           =  2165;
+  IDM_LISTBOX               =  2166;
+  IDM_BUTTON                =  2167;
+  IDM_IMAGE                 =  2168;
+  IDM_OBJECT                =  2169;
+  IDM_1D                    =  2170;
+  IDM_IMAGEMAP              =  2171;
+  IDM_FILE                  =  2172;
+  IDM_COMMENT               =  2173;
+  IDM_SCRIPT                =  2174;
+  IDM_JAVAAPPLET            =  2175;
+  IDM_PLUGIN                =  2176;
+  IDM_PAGEBREAK             =  2177;
+  IDM_HTMLAREA              =  2178;
+
+  IDM_PARAGRAPH             =  2180;
+  IDM_FORM                  =  2181;
+  IDM_MARQUEE               =  2182;
+  IDM_LIST                  =  2183;
+  IDM_ORDERLIST             =  2184;
+  IDM_UNORDERLIST           =  2185;
+  IDM_INDENT                =  2186;
+  IDM_OUTDENT               =  2187;
+  IDM_PREFORMATTED          =  2188;
+  IDM_ADDRESS               =  2189;
+  IDM_BLINK                 =  2190;
+  IDM_DIV                   =  2191;
+
+  IDM_TABLEINSERT           =  2200;
+  IDM_RCINSERT              =  2201;
+  IDM_CELLINSERT            =  2202;
+  IDM_CAPTIONINSERT         =  2203;
+  IDM_CELLMERGE             =  2204;
+  IDM_CELLSPLIT             =  2205;
+  IDM_CELLSELECT            =  2206;
+  IDM_ROWSELECT             =  2207;
+  IDM_COLUMNSELECT          =  2208;
+  IDM_TABLESELECT           =  2209;
+  IDM_TABLEPROPERTIES       =  2210;
+  IDM_CELLPROPERTIES        =  2211;
+  IDM_ROWINSERT             =  2212;
+  IDM_COLUMNINSERT          =  2213;
+
+  IDM_HELP_CONTENT          =  2220;
+  IDM_HELP_ABOUT            =  2221;
+  IDM_HELP_README           =  2222;
+
+  IDM_REMOVEFORMAT          =  2230;
+  IDM_PAGEINFO              =  2231;
+  IDM_TELETYPE              =  2232;
+  IDM_GETBLOCKFMTS          =  2233;
+  IDM_BLOCKFMT              =  2234;
+  IDM_SHOWHIDE_CODE         =  2235;
+  IDM_TABLE                 =  2236;
+
+  IDM_COPYFORMAT            =  2237;
+  IDM_PASTEFORMAT           =  2238;
+  IDM_GOTO                  =  2239;
+
+  IDM_CHANGEFONT            =  2240;
+  IDM_CHANGEFONTSIZE        =  2241;
+  IDM_INCFONTSIZE           =  2242;
+  IDM_DECFONTSIZE           =  2243;
+  IDM_INCFONTSIZE1PT        =  2244;
+  IDM_DECFONTSIZE1PT        =  2245;
+  IDM_CHANGECASE            =  2246;
+  IDM_SUBSCRIPT             =  2247;
+  IDM_SUPERSCRIPT           =  2248;
+  IDM_SHOWSPECIALCHAR       =  2249;
+
+  IDM_CENTERALIGNPARA       =  2250;
+  IDM_LEFTALIGNPARA         =  2251;
+  IDM_RIGHTALIGNPARA        =  2252;
+  IDM_REMOVEPARAFORMAT      =  2253;
+  IDM_APPLYNORMAL           =  2254;
+  IDM_APPLYHEADING1         =  2255;
+  IDM_APPLYHEADING2         =  2256;
+  IDM_APPLYHEADING3         =  2257;
+
+  IDM_DOCPROPERTIES         =  2260;
+  IDM_ADDFAVORITES          =  2261;
+  IDM_COPYSHORTCUT          =  2262;
+  IDM_SAVEBACKGROUND        =  2263;
+  IDM_SETWALLPAPER          =  2264;
+  IDM_COPYBACKGROUND        =  2265;
+  IDM_CREATESHORTCUT        =  2266;
+  IDM_PAGE                  =  2267;
+  IDM_SAVETARGET            =  2268;
+  IDM_SHOWPICTURE           =  2269;
+  IDM_SAVEPICTURE           =  2270;
+  IDM_DYNSRCPLAY            =  2271;
+  IDM_DYNSRCSTOP            =  2272;
+  IDM_PRINTTARGET           =  2273;
+  IDM_IMGARTPLAY            =  2274;
+  IDM_IMGARTSTOP            =  2275;
+  IDM_IMGARTREWIND          =  2276;
+  IDM_PRINTQUERYJOBSPENDING =  2277;
+  IDM_SETDESKTOPITEM        =  2278;
+
+  IDM_CONTEXTMENU           =  2280;
+  IDM_GOBACKWARD            =  2282;
+  IDM_GOFORWARD             =  2283;
+  IDM_PRESTOP               =  2284;
+
+  IDM_CREATELINK            =  2290;
+  IDM_COPYCONTENT           =  2291;
+
+  IDM_LANGUAGE              =  2292;
+
+  IDM_GETPRINTTEMPLATE      =  2295;
+  IDM_TEMPLATE_PAGESETUP    =  2298;
+
+  IDM_REFRESH               =  2300;
+  IDM_STOPDOWNLOAD          =  2301;
+
+  IDM_ENABLE_INTERACTION    =  2302;
+
+  IDM_LAUNCHDEBUGGER        =  2310;
+  IDM_BREAKATNEXT           =  2311;
+
+  IDM_INSINPUTHIDDEN        =  2312;
+  IDM_INSINPUTPASSWORD      =  2313;
+
+  IDM_OVERWRITE             =  2314;
+
+  IDM_PARSECOMPLETE         =  2315;
+
+  IDM_HTMLEDITMODE          =  2316;
+
+  IDM_REGISTRYREFRESH       =  2317;
+  IDM_COMPOSESETTINGS       =  2318;
+
+  IDM_SHOWALLTAGS           =  2320;
+  IDM_SHOWALIGNEDSITETAGS   =  2321;
+  IDM_SHOWSCRIPTTAGS        =  2322;
+  IDM_SHOWSTYLETAGS         =  2323;
+  IDM_SHOWCOMMENTTAGS       =  2324;
+  IDM_SHOWAREATAGS          =  2325;
+  IDM_SHOWUNKNOWNTAGS       =  2326;
+  IDM_SHOWMISCTAGS          =  2327;
+  IDM_SHOWZEROBORDERATDESIGNTIME       =  2328;
+
+  IDM_AUTODETECT            =  2329;
+
+  IDM_SCRIPTDEBUGGER        =  2330;
+
+  IDM_GETBYTESDOWNLOADED    =  2331;
+
+  IDM_NOACTIVATENORMALOLECONTROLS      =  2332;
+  IDM_NOACTIVATEDESIGNTIMECONTROLS     =  2333;
+  IDM_NOACTIVATEJAVAAPPLETS            =  2334;
+
+  IDM_NOFIXUPURLSONPASTE    =  2335;
+  IDM_EMPTYGLYPHTABLE        = 2336;
+  IDM_ADDTOGLYPHTABLE        = 2337;
+  IDM_REMOVEFROMGLYPHTABLE   = 2338;
+  IDM_REPLACEGLYPHCONTENTS   = 2339;
+
+  IDM_SHOWWBRTAGS           =  2340;
+
+  IDM_PERSISTSTREAMSYNC     =  2341;
+  IDM_SETDIRTY              =  2342;
+  IDM_RUNURLSCRIPT          =  2343;
+
+  IDM_ZOOMRATIO             =  2344;
+  IDM_GETZOOMNUMERATOR      =  2345;
+  IDM_GETZOOMDENOMINATOR    =  2346;
+
+
+  IDM_MIMECSET__FIRST__     =  3609;
+  IDM_MIMECSET__LAST__      =  3640;
+
+  // COMMANDS FOR COMPLEX TEXT
+  IDM_DIRLTR                =  2350;
+  IDM_DIRRTL                =  2351;
+  IDM_BLOCKDIRLTR           =  2352;
+  IDM_BLOCKDIRRTL           =  2353;
+  IDM_INLINEDIRLTR          =  2354;
+  IDM_INLINEDIRRTL          =  2355;
+
+  // SHDOCVW
+  IDM_ISTRUSTEDDLG          =  2356;
+
+  // MSHTMLED
+  IDM_INSERTSPAN            =  2357;
+  IDM_LOCALIZEEDITOR        =  2358;
+
+  // XML MIMEVIEWER
+  IDM_SAVEPRETRANSFORMSOURCE = 2370;
+  IDM_VIEWPRETRANSFORMSOURCE = 2371;
+
+  // Scrollbar context menu
+  IDM_SCROLL_HERE            = 2380;
+  IDM_SCROLL_TOP             = 2381;
+  IDM_SCROLL_BOTTOM          = 2382;
+  IDM_SCROLL_PAGEUP          = 2383;
+  IDM_SCROLL_PAGEDOWN        = 2384;
+  IDM_SCROLL_UP       = 2385;
+  IDM_SCROLL_DOWN     = 2386;
+  IDM_SCROLL_LEFTEDGE = 2387;
+  IDM_SCROLL_RIGHTEDGE = 2388;
+  IDM_SCROLL_PAGELEFT  = 2389;
+  IDM_SCROLL_PAGERIGHT = 2390;
+  IDM_SCROLL_LEFT     =  2391;
+  IDM_SCROLL_RIGHT    =  2392;
+
+  // IE 6 Form Editing Commands
+  IDM_MULTIPLESELECTION = 2393;
+  IDM_2D_POSITION       = 2394;
+  IDM_2D_ELEMENT        = 2395;
+  IDM_1D_ELEMENT        = 2396;
+  IDM_ABSOLUTE_POSITION = 2397;
+  IDM_LIVERESIZE        = 2398;
+  IDM_ATOMICSELECTION	  = 2399;
+
+  // Auto URL detection mode
+  IDM_AUTOURLDETECT_MODE = 2400;
+
+  // Legacy IE50 compatible paste
+  IDM_IE50_PASTE         = 2401;
+
+  // ie50 paste mode
+  IDM_IE50_PASTE_MODE    = 2402;
+
+  // Printing support
+  DM_GETIPRINT          = 2403;
+
+  // for disabling selection handles
+  IDM_DISABLE_EDITFOCUS_UI       = 2404;
+
+  // for visibility/display in design
+  IDM_RESPECTVISIBILITY_INDESIGN = 2405;
+
+  // set css mode
+  IDM_CSSEDITING_LEVEL           = 2406;
+
+  // New outdent
+  IDM_UI_OUTDENT              = 2407;
+
+  // Printing Status
+  IDM_UPDATEPAGESTATUS        = 2408;
+
+  // IME Reconversion
+  IDM_IME_ENABLE_RECONVERSION = 2409;
+
+  IDM_OVERRIDE_CURSOR         = 2420;
+
+  IDM_MENUEXT_FIRST__     =  3700;
+  IDM_MENUEXT_LAST__      =  3732;
+  IDM_MENUEXT_COUNT       =  3733;
+
+  ID_EDITMODE             = 32801;
+
+  // Commands mapped from the standard set.  We should
+  // consider deleting them from public header files.
+
+  IDM_OPEN                  =  2000;
+  IDM_NEW                   =  2001;
+  IDM_SAVE                  =  70;
+  IDM_SAVEAS                =  71;
+  IDM_SAVECOPYAS            =  2002;
+  IDM_PRINTPREVIEW          =  2003;
+  IDM_SHOWPRINT             =  2010;
+  IDM_SHOWPAGESETUP         =  2011;
+  IDM_PRINT                 =  27;
+  IDM_PAGESETUP             =  2004;
+  IDM_SPELL                 =  2005;
+  IDM_PASTESPECIAL          =  2006;
+  IDM_CLEARSELECTION        =  2007;
+  IDM_PROPERTIES            =  28;
+  IDM_REDO                  =  29;
+  IDM_UNDO                  =  43;
+  IDM_SELECTALL             =  31;
+  IDM_ZOOMPERCENT           =  50;
+  IDM_GETZOOM               =  68;
+  IDM_STOP                  =  2138;
+  IDM_COPY                  =  15;
+  IDM_CUT                   =  16;
+  IDM_PASTE                 =  26;
+
+
+  // Defines for IDM_ZOOMPERCENT
+  CMD_ZOOM_PAGEWIDTH = -1;
+  CMD_ZOOM_ONEPAGE   = -2;
+  CMD_ZOOM_TWOPAGES  = -3;
+  CMD_ZOOM_SELECTION = -4;
+  CMD_ZOOM_FIT       = -5;
+
+  // IDMs for CGID_EditStateCommands group
+  IDM_CONTEXT        = 1;
+  IDM_HWND           = 2;
+
+  // Shdocvw Execs on CGID_DocHostCommandHandler
+  IDM_NEW_TOPLEVELWINDOW   = 7050;
+
+  //
+  // Commands exposed for VID, had to be moved from privcid.h
+  //
+
+  // Undo hack command for VID to force preservation of the undo stack across
+  // arbitrary operations. Arye.
+  IDM_PRESERVEUNDOALWAYS          = 6049;
+  // Another hack for VID to persist default values
+  IDM_PERSISTDEFAULTVALUES        = 7100;
+  // And yet another hack for VID to not aggressively overwrite some meta tags.
+  IDM_PROTECTMETATAGS             = 7101;
+
+  //--------------------------------
+
+  IDM_TRIED_IS_1D_ELEMENT       = 0;   //[out,VT_BOOL]
+  IDM_TRIED_IS_2D_ELEMENT       = 1;   //[out,VT_BOOL]
+  IDM_TRIED_NUDGE_ELEMENT       = 2;   //[in,VT_BYREF VARIANT.byref=LPPOINT]
+  IDM_TRIED_SET_ALIGNMENT       = 3;   //[in,VT_BYREF VARIANT.byref=LPPOINT]
+  IDM_TRIED_MAKE_ABSOLUTE       = 4;
+  IDM_TRIED_LOCK_ELEMENT        = 5;
+  IDM_TRIED_SEND_TO_BACK        = 6;
+  IDM_TRIED_SEND_TO_FRONT       = 7;
+  IDM_TRIED_SEND_BACKWARD       = 8;
+  IDM_TRIED_SEND_FORWARD        = 9;
+  IDM_TRIED_SEND_BEHIND_1D     = 10; 
+  IDM_TRIED_SEND_FRONT_1D      = 11;
+  IDM_TRIED_CONSTRAIN          = 12;   //[in,VT_BOOL]
+  IDM_TRIED_SET_2D_DROP_MODE   = 13;   //[in,VT_BOOL]
+  IDM_TRIED_INSERTROW          = 14;
+  IDM_TRIED_INSERTCOL          = 15;
+  IDM_TRIED_DELETEROWS         = 16;
+  IDM_TRIED_DELETECOLS         = 17;
+  IDM_TRIED_MERGECELLS         = 18;
+  IDM_TRIED_SPLITCELL          = 19;
+  IDM_TRIED_INSERTCELL         = 20;
+  IDM_TRIED_DELETECELLS        = 21;
+  IDM_TRIED_INSERTTABLE        = 22;   //[in, VT_ARRAY]
+  IDM_TRIED_ACTIVATEACTIVEXCONTROLS = 23;
+  IDM_TRIED_ACTIVATEAPPLETS    = 24;
+  IDM_TRIED_ACTIVATEDTCS       = 25;
+  IDM_TRIED_BACKCOLOR          = 26;
+  IDM_TRIED_BLOCKFMT           = 27;
+  IDM_TRIED_BOLD               = 28;
+  IDM_TRIED_BROWSEMODE         = 29;
+  IDM_TRIED_COPY               = 30;
+  IDM_TRIED_CUT                = 31;
+  IDM_TRIED_DELETE             = 32;
+  IDM_TRIED_EDITMODE           = 33;
+  IDM_TRIED_FIND               = 34;
+  IDM_TRIED_FONT               = 35;
+  IDM_TRIED_FONTNAME           = 36;
+  IDM_TRIED_FONTSIZE           = 37;
+  IDM_TRIED_FORECOLOR          = 38;
+  IDM_TRIED_GETBLOCKFMTS       = 39;
+  IDM_TRIED_HYPERLINK          = 40;
+  IDM_TRIED_IMAGE              = 41;
+  IDM_TRIED_INDENT             = 42;
+  IDM_TRIED_ITALIC             = 43;
+  IDM_TRIED_JUSTIFYCENTER      = 44;
+  IDM_TRIED_JUSTIFYLEFT        = 45;
+  IDM_TRIED_JUSTIFYRIGHT       = 46;
+  IDM_TRIED_ORDERLIST          = 47;
+  IDM_TRIED_OUTDENT            = 48;
+  IDM_TRIED_PASTE              = 50;
+  IDM_TRIED_PRINT              = 51;
+  IDM_TRIED_REDO               = 52;
+  IDM_TRIED_REMOVEFORMAT       = 53;
+  IDM_TRIED_SELECTALL          = 54;
+  IDM_TRIED_SHOWBORDERS        = 55;
+  IDM_TRIED_SHOWDETAILS        = 56;
+  IDM_TRIED_UNDERLINE          = 57;
+  IDM_TRIED_UNDO               = 58;
+  IDM_TRIED_UNLINK             = 59;
+  IDM_TRIED_UNORDERLIST        = 60;
+  IDM_TRIED_DOVERB             = 61;
+
+//WARNING WARNING WARNING!!! Don't forget to modify IDM_TRIED_LAST_CID
+//when you add new Command IDs
+
+  IDM_TRIED_LAST_CID           = IDM_TRIED_DOVERB;
+
+
+type
+  PDOCHOSTUIINFO = ^TDOCHOSTUIINFO;
+  TDOCHOSTUIINFO = record
+    cbSize: ULONG;
+    dwFlags: Cardinal;
+    dwDoubleClick: Cardinal;
+  end;
+type
+  IDocHostUIHandler = interface(IUnknown)
+    ['{bd3f23c0-d43e-11cf-893b-00aa00bdce1a}']
+    function ShowContextMenu( const dwID: Cardinal; const ppt: PPOINT;
+      const pcmdtReserved: IUnknown; const pdispReserved: IDispatch ): HRESULT; stdcall;
+    function GetHostInfo( var pInfo: TDOCHOSTUIINFO ): HRESULT; stdcall;
+    function ShowUI( const dwID: Cardinal; const pActiveObject: IOleInPlaceActiveObject;
+      const pCommandTarget: IOleCommandTarget; const pFrame: IOleInPlaceFrame;
+      const pDoc: IOleInPlaceUIWindow ): HRESULT; stdcall;
+    function HideUI: HRESULT; stdcall;
+    function UpdateUI: HRESULT; stdcall;
+    function EnableModeless( const fEnable: BOOL ): HRESULT; stdcall;
+    function OnDocWindowActivate( const fActivate: BOOL ): HRESULT; stdcall;
+    function OnFrameWindowActivate( const fActivate: BOOL ): HRESULT; stdcall;
+    function ResizeBorder( const prcBorder: PRECT;
+      const pUIWindow: IOleInPlaceUIWindow;
+      const fRameWindow: BOOL ): HRESULT; stdcall;
+    function TranslateAccelerator( const lpMsg: PMSG; const pguidCmdGroup: PGUID;
+      const nCmdID: Cardinal): HRESULT; stdcall;
+    function GetOptionKeyPath( var pchKey: POLESTR; const dw: Cardinal ): HRESULT; stdcall;
+    function GetDropTarget( const pDropTarget: IDropTarget;
+      out ppDropTarget: IDropTarget ): HRESULT; stdcall;
+    function GetExternal( out ppDispatch: IDispatch ): HRESULT; stdcall;
+    function TranslateUrl( const dwTranslate: Cardinal; const pchURLIn: POLESTR;
+      var ppchURLOut: POLESTR ): HRESULT; stdcall;
+    function FilterDataObject( const pDO: IDataObject;
+      out ppDORet: IDataObject ): HRESULT; stdcall;
+  end; // IDocHostUIHandler
+
+  ICustomDoc = interface(IUnknown)
+   ['{3050f3f0-98b5-11cf-bb82-00aa00bdce0b}']
+
+   function SetUIHandler (const pUIHandler : IDocHostUIHandler) : HRESULT; stdcall;
+
+  end; // ICustomDoc 
+
+  IDocHostShowUI = interface(IUnknown)
+     ['{c4d244b0-d43e-11cf-893b-00aa00bdce1a}']
+
+     function ShowMessage(hwnd : THandle; 
+                          lpstrText : POLESTR;
+                          lpstrCaption : POLESTR;
+                          dwType : longint;
+                          lpstrHelpFile : POLESTR;
+                          dwHelpContext : longint;
+                          var plResult : LRESULT) : HRESULT; stdcall;
+                           
+      function ShowHelp(hwnd : THandle;
+                        pszHelpFile : POLESTR;
+                        uCommand : integer;
+                        dwData : longint;
+                        ptMouse : TPoint;
+                        var pDispachObjectHit : IDispatch) : HRESULT; stdcall;
+  
+  end; // IDocHostShowUI
+
+
+implementation
+
+end.
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IeConst.~pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IeConst.~pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/IeConst.~pas	(revision 541)
@@ -0,0 +1,1402 @@
+(*******************************
+ * IECONST 1.01 (Jan 7, 2001)  *
+ *******************************)
+
+unit IeConst;
+
+interface
+
+uses ShlObj, Activex, Windows;
+
+
+const
+
+
+  STATURL_QUERYFLAG_ISCACHED = $00010000;
+  STATURL_QUERYFLAG_NOURL = $00020000;
+  STATURL_QUERYFLAG_NOTITLE = $00040000;
+  STATURL_QUERYFLAG_TOPLEVEL = $00080000;
+
+  STATURLFLAG_ISCACHED = $00000001;
+  STATURLFLAG_ISTOPLEVEL = $00000002;
+
+
+  IID_IEnumStatUrl: TGUID = (D1: $3C374A42; D2: $BAE4; D3: $11CF; D4: ($BF, $7D, $00, $AA, $00, $69, $46, $EE));
+  IID_IUrlHistoryStg: TGUID = (D1: $3C374A41; D2: $BAE4; D3: $11CF; D4: ($BF, $7D, $00, $AA, $00, $69, $46, $EE));
+  IID_IUrlHistoryStg2: TGUID = (D1: $AFA0DC11; D2: $C313; D3: $831A; D4: ($83, $1A, $00, $C0, $4F, $D5, $AE, $38));
+  IID_IUrlHistoryNotify: TGUID = (D1: $BC40BEC1; D2: $C493; D3: $11D0; D4: ($83, $1B, $00, $C0, $4F, $D5, $AE, $38));
+
+  SID_IEnumStatUrl = '{3C374A42-BAE4-11CF-BF7D-00AA006946EE}';
+  SID_IUrlHistoryStg = '{3C374A41-BAE4-11CF-BF7D-00AA006946EE}';
+  SID_IUrlHistoryStg2 = '{AFA0DC11-C313-11d0-831A-00C04FD5AE38}';
+  SID_IURLHistoryNotify = '{BC40BEC1-C493-11d0-831B-00C04FD5AE38}';
+  CLSID_CUrlHistory: TGUID = '{3C374A40-BAE4-11CF-BF7D-00AA006946EE}';
+
+
+  IID_IDocHostUIHandler: TGUID = '{bd3f23c0-d43e-11cf-893b-00aa00bdce1a}';
+  IID_IDocHostUIHandler2: TGUID = '{3050f6d0-98b5-11cf-bb82-00aa00bdce0b}';
+  IID_IDocHostShowUI: TGUID = '{c4d244b0-d43e-11cf-893b-00aa00bdce1a}';
+  GUID_TriEditCommandGroup: TGUID = '{2582F1C0-084E-11d1-9A0E-006097C9B344}';
+  CMDSETID_Forms3: TGUID = '{DE4BA900-59CA-11CF-9592-444553540000}';
+
+ IID_IQueryInfo: TGUID = (D1: $00021500; D2: $0000; D3: $0000; D4: ($C0, $00, $00, $00, $00, $00, $00, $46));
+
+  MSOCMDF_SUPPORTED = OLECMDF_SUPPORTED;
+  MSOCMDF_ENABLED = OLECMDF_ENABLED;
+
+  MSOCMDEXECOPT_PROMPTUSER = OLECMDEXECOPT_PROMPTUSER;
+  MSOCMDEXECOPT_DONTPROMPTUSER = OLECMDEXECOPT_DONTPROMPTUSER;
+
+  InchToMetric = 25.4;
+
+  NO_COMMAND = 0;
+  VIEW_COMMAND = 1;
+  EXPLORE_COMMAND = 2;
+  FIND_COMMAND = 3;
+
+  ISDigit = ['0'..'9', '-', '+'];
+
+  CONTEXT_MENU_DEFAULT = 0;
+  CONTEXT_MENU_IMAGE = 1;
+  CONTEXT_MENU_CONTROL = 2;
+  CONTEXT_MENU_TABLE = 3;
+// in browse mode
+  CONTEXT_MENU_TEXTSELECT = 4;
+  CONTEXT_MENU_ANCHOR = 5;
+  CONTEXT_MENU_UNKNOWN = 6;
+// These 2 are mapped to IMAGE for the public")
+  CONTEXT_MENU_IMGDYNSRC = 7;
+  CONTEXT_MENU_IMGART = 8;
+  CONTEXT_MENU_DEBUG = 9;
+  CONTEXT_MENU_VSCROLL = 10;
+  CONTEXT_MENU_HSCROLL = 11;
+
+  DISPID_AMBIENT_DLCONTROL = (-5512);
+  DISPID_AMBIENT_USERAGENT = (-5513);
+
+  HTMLID_FIND = 1;
+  HTMLID_VIEWSOURCE = 2;
+  HTMLID_OPTIONS = 3;
+
+  DOCHOSTUITYPE_BROWSE = 0;
+  DOCHOSTUITYPE_AUTHOR = 1;
+
+  DOCHOSTUIDBLCLK_DEFAULT = 0;
+  DOCHOSTUIDBLCLK_SHOWPROPERTIES = 1;
+  DOCHOSTUIDBLCLK_SHOWCODE = 2;
+
+  DOCHOSTUIFLAG_DIALOG = $0001;
+  DOCHOSTUIFLAG_DISABLE_HELP_MENU = $0002;
+  DOCHOSTUIFLAG_NO3DBORDER = $0004;
+  DOCHOSTUIFLAG_SCROLL_NO = $0008;
+  DOCHOSTUIFLAG_DISABLE_SCRIPT_INACTIVE = $0010;
+  DOCHOSTUIFLAG_OPENNEWWIN = $0020;
+  DOCHOSTUIFLAG_DISABLE_OFFSCREEN = $0040;
+  DOCHOSTUIFLAG_FLAT_SCROLLBAR = $0080;
+  DOCHOSTUIFLAG_DIV_BLOCKDEFAULT = $0100;
+  DOCHOSTUIFLAG_ACTIVATE_CLIENTHIT_ONLY = $0200;
+  DOCHOSTUIFLAG_OVERRIDEBEHAVIORFACTORY = $0400;
+  DOCHOSTUIFLAG_CODEPAGELINKEDFONTS = $0800;
+  DOCHOSTUIFLAG_URL_ENCODING_DISABLE_UTF8 = $1000;
+  DOCHOSTUIFLAG_URL_ENCODING_ENABLE_UTF8 = $2000;
+  DOCHOSTUIFLAG_ENABLE_FORMS_AUTOCOMPLETE = $4000;
+  DOCHOSTUIFLAG_ENABLE_INPLACE_NAVIGATION = $10000;
+  DOCHOSTUIFLAG_IME_ENABLE_RECONVERSION = $20000;
+
+  IDM_UNKNOWN = 0;
+  IDM_ALIGNBOTTOM = 1;
+  IDM_ALIGNHORIZONTALCENTERS = 2;
+  IDM_ALIGNLEFT = 3;
+  IDM_ALIGNRIGHT = 4;
+  IDM_ALIGNTOGRID = 5;
+  IDM_ALIGNTOP = 6;
+  IDM_ALIGNVERTICALCENTERS = 7;
+  IDM_ARRANGEBOTTOM = 8;
+  IDM_ARRANGERIGHT = 9;
+  IDM_BRINGFORWARD = 10;
+  IDM_BRINGTOFRONT = 11;
+  IDM_CENTERHORIZONTALLY = 12;
+  IDM_CENTERVERTICALLY = 13;
+  IDM_CODE = 14;
+  IDM_DELETE = 17;
+  IDM_FONTNAME = 18;
+  IDM_FONTSIZE = 19;
+  IDM_GROUP = 20;
+  IDM_HORIZSPACECONCATENATE = 21;
+  IDM_HORIZSPACEDECREASE = 22;
+  IDM_HORIZSPACEINCREASE = 23;
+  IDM_HORIZSPACEMAKEEQUAL = 24;
+  IDM_INSERTOBJECT = 25;
+  IDM_MULTILEVELREDO = 30;
+  IDM_SENDBACKWARD = 32;
+  IDM_SENDTOBACK = 33;
+  IDM_SHOWTABLE = 34;
+  IDM_SIZETOCONTROL = 35;
+  IDM_SIZETOCONTROLHEIGHT = 36;
+  IDM_SIZETOCONTROLWIDTH = 37;
+  IDM_SIZETOFIT = 38;
+  IDM_SIZETOGRID = 39;
+  IDM_SNAPTOGRID = 40;
+  IDM_TABORDER = 41;
+  IDM_TOOLBOX = 42;
+  IDM_MULTILEVELUNDO = 44;
+  IDM_UNGROUP = 45;
+  IDM_VERTSPACECONCATENATE = 46;
+  IDM_VERTSPACEDECREASE = 47;
+  IDM_VERTSPACEINCREASE = 48;
+  IDM_VERTSPACEMAKEEQUAL = 49;
+  IDM_JUSTIFYFULL = 50;
+  IDM_BACKCOLOR = 51;
+  IDM_BOLD = 52;
+  IDM_BORDERCOLOR = 53;
+  IDM_FLAT = 54;
+  IDM_FORECOLOR = 55;
+  IDM_ITALIC = 56;
+  IDM_JUSTIFYCENTER = 57;
+  IDM_JUSTIFYGENERAL = 58;
+  IDM_JUSTIFYLEFT = 59;
+  IDM_JUSTIFYRIGHT = 60;
+  IDM_RAISED = 61;
+  IDM_SUNKEN = 62;
+  IDM_UNDERLINE = 63;
+  IDM_CHISELED = 64;
+  IDM_ETCHED = 65;
+  IDM_SHADOWED = 66;
+  IDM_FIND = 67;
+  IDM_SHOWGRID = 69;
+  IDM_OBJECTVERBLIST0 = 72;
+  IDM_OBJECTVERBLIST1 = 73;
+  IDM_OBJECTVERBLIST2 = 74;
+  IDM_OBJECTVERBLIST3 = 75;
+  IDM_OBJECTVERBLIST4 = 76;
+  IDM_OBJECTVERBLIST5 = 77;
+  IDM_OBJECTVERBLIST6 = 78;
+  IDM_OBJECTVERBLIST7 = 79;
+  IDM_OBJECTVERBLIST8 = 80;
+  IDM_OBJECTVERBLIST9 = 81;
+  IDM_CONVERTOBJECT = 82;
+  IDM_CUSTOMCONTROL = 83;
+  IDM_CUSTOMIZEITEM = 84;
+  IDM_RENAME = 85;
+  IDM_IMPORT = 86;
+  IDM_NEWPAGE = 87;
+  IDM_MOVE = 88;
+  IDM_CANCEL = 89;
+  IDM_FONT = 90;
+  IDM_STRIKETHROUGH = 91;
+  IDM_DELETEWORD = 92;
+
+  IDM_FOLLOW_ANCHOR = 2008;
+
+  IDM_INSINPUTIMAGE = 2114;
+  IDM_INSINPUTBUTTON = 2115;
+  IDM_INSINPUTRESET = 2116;
+  IDM_INSINPUTSUBMIT = 2117;
+  IDM_INSINPUTUPLOAD = 2118;
+  IDM_INSFIELDSET = 2119;
+
+  IDM_PASTEINSERT = 2120;
+  IDM_REPLACE = 2121;
+  IDM_EDITSOURCE = 2122;
+  IDM_BOOKMARK = 2123;
+  IDM_HYPERLINK = 2124;
+  IDM_UNLINK = 2125;
+  IDM_BROWSEMODE = 2126;
+  IDM_EDITMODE = 2127;
+  IDM_UNBOOKMARK = 2128;
+
+  IDM_TOOLBARS = 2130;
+  IDM_STATUSBAR = 2131;
+  IDM_FORMATMARK = 2132;
+  IDM_TEXTONLY = 2133;
+  IDM_OPTIONS = 2135;
+  IDM_FOLLOWLINKC = 2136;
+  IDM_FOLLOWLINKN = 2137;
+  IDM_VIEWSOURCE = 2139;
+  IDM_ZOOMPOPUP = 2140;
+
+  // IDM_BASELINEFONT1, IDM_BASELINEFONT2, IDM_BASELINEFONT3, IDM_BASELINEFONT4,
+  // and IDM_BASELINEFONT5 should be consecutive integers;
+  //
+  IDM_BASELINEFONT1 = 2141;
+  IDM_BASELINEFONT2 = 2142;
+  IDM_BASELINEFONT3 = 2143;
+  IDM_BASELINEFONT4 = 2144;
+  IDM_BASELINEFONT5 = 2145;
+
+  IDM_HORIZONTALLINE = 2150;
+  IDM_LINEBREAKNORMAL = 2151;
+  IDM_LINEBREAKLEFT = 2152;
+  IDM_LINEBREAKRIGHT = 2153;
+  IDM_LINEBREAKBOTH = 2154;
+  IDM_NONBREAK = 2155;
+  IDM_SPECIALCHAR = 2156;
+  IDM_HTMLSOURCE = 2157;
+  IDM_IFRAME = 2158;
+  IDM_HTMLCONTAIN = 2159;
+  IDM_TEXTBOX = 2161;
+  IDM_TEXTAREA = 2162;
+  IDM_CHECKBOX = 2163;
+  IDM_RADIOBUTTON = 2164;
+  IDM_DROPDOWNBOX = 2165;
+  IDM_LISTBOX = 2166;
+  IDM_BUTTON = 2167;
+  IDM_IMAGE = 2168;
+  IDM_OBJECT = 2169;
+  IDM_1D = 2170;
+  IDM_IMAGEMAP = 2171;
+  IDM_FILE = 2172;
+  IDM_COMMENT = 2173;
+  IDM_SCRIPT = 2174;
+  IDM_JAVAAPPLET = 2175;
+  IDM_PLUGIN = 2176;
+  IDM_PAGEBREAK = 2177;
+
+  IDM_PARAGRAPH = 2180;
+  IDM_FORM = 2181;
+  IDM_MARQUEE = 2182;
+  IDM_LIST = 2183;
+  IDM_ORDERLIST = 2184;
+  IDM_UNORDERLIST = 2185;
+  IDM_INDENT = 2186;
+  IDM_OUTDENT = 2187;
+  IDM_PREFORMATTED = 2188;
+  IDM_ADDRESS = 2189;
+  IDM_BLINK = 2190;
+  IDM_DIV = 2191;
+
+  IDM_TABLEINSERT = 2200;
+  IDM_RCINSERT = 2201;
+  IDM_CELLINSERT = 2202;
+  IDM_CAPTIONINSERT = 2203;
+  IDM_CELLMERGE = 2204;
+  IDM_CELLSPLIT = 2205;
+  IDM_CELLSELECT = 2206;
+  IDM_ROWSELECT = 2207;
+  IDM_COLUMNSELECT = 2208;
+  IDM_TABLESELECT = 2209;
+  IDM_TABLEPROPERTIES = 2210;
+  IDM_CELLPROPERTIES = 2211;
+  IDM_ROWINSERT = 2212;
+  IDM_COLUMNINSERT = 2213;
+
+  IDM_HELP_CONTENT = 2220;
+  IDM_HELP_ABOUT = 2221;
+  IDM_HELP_README = 2222;
+
+  IDM_REMOVEFORMAT = 2230;
+  IDM_PAGEINFO = 2231;
+  IDM_TELETYPE = 2232;
+  IDM_GETBLOCKFMTS = 2233;
+  IDM_BLOCKFMT = 2234;
+  IDM_SHOWHIDE_CODE = 2235;
+  IDM_TABLE = 2236;
+
+  IDM_COPYFORMAT = 2237;
+  IDM_PASTEFORMAT = 2238;
+  IDM_GOTO = 2239;
+
+  IDM_CHANGEFONT = 2240;
+  IDM_CHANGEFONTSIZE = 2241;
+  IDM_INCFONTSIZE = 2242;
+  IDM_DECFONTSIZE = 2243;
+  IDM_INCFONTSIZE1PT = 2244;
+  IDM_DECFONTSIZE1PT = 2245;
+  IDM_CHANGECASE = 2246;
+  IDM_SUBSCRIPT = 2247;
+  IDM_SUPERSCRIPT = 2248;
+  IDM_SHOWSPECIALCHAR = 2249;
+
+  IDM_CENTERALIGNPARA = 2250;
+  IDM_LEFTALIGNPARA = 2251;
+  IDM_RIGHTALIGNPARA = 2252;
+  IDM_REMOVEPARAFORMAT = 2253;
+  IDM_APPLYNORMAL = 2254;
+  IDM_APPLYHEADING1 = 2255;
+  IDM_APPLYHEADING2 = 2256;
+  IDM_APPLYHEADING3 = 2257;
+
+  IDM_DOCPROPERTIES = 2260;
+  IDM_ADDFAVORITES = 2261;
+  IDM_COPYSHORTCUT = 2262;
+  IDM_SAVEBACKGROUND = 2263;
+  IDM_SETWALLPAPER = 2264;
+  IDM_COPYBACKGROUND = 2265;
+  IDM_CREATESHORTCUT = 2266;
+  IDM_PAGE = 2267;
+  IDM_SAVETARGET = 2268;
+  IDM_SHOWPICTURE = 2269;
+  IDM_SAVEPICTURE = 2270;
+  IDM_DYNSRCPLAY = 2271;
+  IDM_DYNSRCSTOP = 2272;
+  IDM_PRINTTARGET = 2273;
+  IDM_IMGARTPLAY = 2274;
+  IDM_IMGARTSTOP = 2275;
+  IDM_IMGARTREWIND = 2276;
+  IDM_PRINTQUERYJOBSPENDING = 2277;
+
+  IDM_CONTEXTMENU = 2280;
+  IDM_GOBACKWARD = 2282;
+  IDM_GOFORWARD = 2283;
+  IDM_PRESTOP = 2284;
+
+  IDM_CREATELINK = 2290;
+  IDM_COPYCONTENT = 2291;
+
+  IDM_LANGUAGE = 2292;
+
+  IDM_REFRESH = 2300;
+  IDM_STOPDOWNLOAD = 2301;
+
+  IDM_ENABLE_INTERACTION = 2302;
+
+  IDM_LAUNCHDEBUGGER = 2310;
+  IDM_BREAKATNEXT = 2311;
+
+  IDM_INSINPUTHIDDEN = 2312;
+  IDM_INSINPUTPASSWORD = 2313;
+
+  IDM_OVERWRITE = 2314;
+
+  IDM_PARSECOMPLETE = 2315;
+
+  IDM_HTMLEDITMODE = 2316;
+
+  IDM_REGISTRYREFRESH = 2317;
+  IDM_COMPOSESETTINGS = 2318;
+
+  IDM_SHOWALLTAGS = 2320;
+  IDM_SHOWALIGNEDSITETAGS = 2321;
+  IDM_SHOWSCRIPTTAGS = 2322;
+  IDM_SHOWSTYLETAGS = 2323;
+  IDM_SHOWCOMMENTTAGS = 2324;
+  IDM_SHOWAREATAGS = 2325;
+  IDM_SHOWUNKNOWNTAGS = 2326;
+  IDM_SHOWMISCTAGS = 2327;
+  IDM_SHOWZEROBORDERATDESIGNTIME = 2328;
+
+  IDM_AUTODETECT = 2329;
+
+  IDM_SCRIPTDEBUGGER = 2330;
+
+  IDM_GETBYTESDOWNLOADED = 2331;
+
+  IDM_NOACTIVATENORMALOLECONTROLS = 2332;
+  IDM_NOACTIVATEDESIGNTIMECONTROLS = 2333;
+  IDM_NOACTIVATEJAVAAPPLETS = 2334;
+
+  IDM_SHOWWBRTAGS = 2340;
+
+  IDM_PERSISTSTREAMSYNC = 2341;
+  IDM_SETDIRTY = 2342;
+
+
+  IDM_MIMECSET__FIRST__ = 3609;
+  IDM_MIMECSET__LAST__ = 3640;
+
+  IDM_MENUEXT_FIRST__ = 3700;
+  IDM_MENUEXT_LAST__ = 3732;
+  IDM_MENUEXT_COUNT = 3733;
+
+  ID_EDITMODE = 32801;
+
+  IDM_OPEN = 2000;
+  IDM_NEW = 2001;
+  IDM_SAVE = 70;
+  IDM_SAVEAS = 71;
+  IDM_SAVECOPYAS = 2002;
+  IDM_PRINTPREVIEW = 2003;
+  IDM_PRINT = 27;
+  IDM_PAGESETUP = 2004;
+  IDM_SPELL = 2005;
+  IDM_PASTESPECIAL = 2006;
+  IDM_CLEARSELECTION = 2007;
+  IDM_PROPERTIES = 28;
+  IDM_REDO = 29;
+  IDM_UNDO = 43;
+  IDM_SELECTALL = 31;
+  IDM_ZOOMPERCENT = 50;
+  IDM_GETZOOM = 68;
+  IDM_STOP = 2138;
+  IDM_COPY = 15;
+  IDM_CUT = 16;
+  IDM_PASTE = 26;
+
+  IDM_TRIED_IS_1D_ELEMENT = 0; //[out,VT_BOOL]
+  IDM_TRIED_IS_2D_ELEMENT = 1; //[out,VT_BOOL]
+  IDM_TRIED_NUDGE_ELEMENT = 2; //[in,VT_BYREF VARIANT.byref=LPPOINT]
+  IDM_TRIED_SET_ALIGNMENT = 3; //[in,VT_BYREF VARIANT.byref=LPPOINT]
+  IDM_TRIED_MAKE_ABSOLUTE = 4;
+  IDM_TRIED_LOCK_ELEMENT = 5;
+  IDM_TRIED_SEND_TO_BACK = 6;
+  IDM_TRIED_SEND_TO_FRONT = 7;
+  IDM_TRIED_SEND_BACKWARD = 8;
+  IDM_TRIED_SEND_FORWARD = 9;
+  IDM_TRIED_SEND_BEHIND_1D = 10;
+  IDM_TRIED_SEND_FRONT_1D = 11;
+  IDM_TRIED_CONSTRAIN = 12; //[in,VT_BOOL]
+  IDM_TRIED_SET_2D_DROP_MODE = 13; //[in,VT_BOOL]
+  IDM_TRIED_INSERTROW = 14;
+  IDM_TRIED_INSERTCOL = 15;
+  IDM_TRIED_DELETEROWS = 16;
+  IDM_TRIED_DELETECOLS = 17;
+  IDM_TRIED_MERGECELLS = 18;
+  IDM_TRIED_SPLITCELL = 19;
+  IDM_TRIED_INSERTCELL = 20;
+  IDM_TRIED_DELETECELLS = 21;
+  IDM_TRIED_INSERTTABLE = 22; //[in, VT_ARRAY]
+
+//WARNING WARNING WARNING!!! Don't forget to modify IDM_TRIED_LAST_CID
+//when you add new Command IDs
+
+  IDM_TRIED_LAST_CID = IDM_TRIED_INSERTTABLE;
+
+
+
+
+  CLSID_WebBrowser: TGUID = '{ED016940-BD5B-11cf-BA4E-00C04FD70816}';
+
+type
+
+  STATURL = record
+    cbSize: DWORD;
+    pwcsUrl: DWORD;
+    pwcsTitle: DWORD;
+    ftLastVisited: FILETIME;
+    ftLastUpdated: FILETIME;
+    ftExpires: FILETIME;
+    dwFlags: DWORD;
+  end;
+
+
+  IEnumSTATURL = interface(IUnknown)
+    ['{3C374A42-BAE4-11CF-BF7D-00AA006946EE}']
+    function Next(celt: Integer; out elt; pceltFetched: PLongint): HRESULT; stdcall;
+    function Skip(celt: Longint): HRESULT; stdcall;
+    function Reset: HResult; stdcall;
+    function Clone(out ppenum: IEnumSTATURL): HResult; stdcall;
+    function SetFilter(poszFilter: PWideChar; dwFlags: DWORD): HResult; stdcall;
+  end;
+
+  IUrlHistoryStg = interface(IUnknown)
+    ['{3C374A41-BAE4-11CF-BF7D-00AA006946EE}']
+    function AddUrl(pocsUrl: PWideChar; pocsTitle: PWideChar; dwFlags: Integer): HResult; stdcall;
+    function DeleteUrl(pocsUrl: PWideChar; dwFlags: Integer): HResult; stdcall;
+    function QueryUrl(pocsUrl: PWideChar; dwFlags: Integer; var lpSTATURL: STATURL): HResult; stdcall;
+    function BindToObject(pocsUrl: PWideChar; var riid: TIID; out ppvOut: Pointer): HResult; stdcall;
+    function EnumUrls(out ppenum: IEnumSTATURL): HResult; stdcall;
+  end;
+
+  IUrlHistoryStg2 = interface(IUrlHistoryStg)
+    ['{AFA0DC11-C313-11D0-831A-00C04FD5AE38}']
+    function AddUrlAndNotify(pocsUrl: PWideChar; pocsTitle: PWideChar; dwFlags: Integer;
+      fWriteHistory: Integer; var poctNotify: Pointer;
+      const punkISFolder: IUnknown): HResult; stdcall;
+    function ClearHistory: HResult; stdcall;
+  end;
+
+  IUrlHistoryNotify = interface(IOleCommandTarget)
+    ['{BC40BEC1-C493-11d0-831B-00C04FD5AE38}']
+  end;
+
+
+
+
+
+
+
+  PDOCHOSTUIINFO = ^TDOCHOSTUIINFO;
+  TDOCHOSTUIINFO = record
+    cbSize: ULONG;
+    dwFlags: DWORD;
+    dwDoubleClick: DWORD;
+    chHostCss: POLESTR;
+    chHostNS: POLESTR;
+  end;
+
+
+  IDocHostShowUI = interface(IUnknown)
+    ['{c4d244b0-d43e-11cf-893b-00aa00bdce1a}']
+    function ShowMessage(hwnd: THandle; lpstrText: POLESTR; lpstrCaption: POLESTR;
+      dwType: longint; lpstrHelpFile: POLESTR; dwHelpContext: longint;
+      var plResult: LRESULT): HRESULT; stdcall;
+    function ShowHelp(hwnd: THandle; pszHelpFile: POLESTR; uCommand: integer;
+      dwData: longint; ptMouse: TPoint;
+      var pDispatchObjectHit: IDispatch): HRESULT; stdcall;
+  end; // IDocHostShowUI
+
+
+  IDocHostUIHandler = interface(IUnknown)
+    ['{bd3f23c0-d43e-11cf-893b-00aa00bdce1a}']
+    function ShowContextMenu(const dwID: DWORD; const ppt: PPOINT;
+     const pcmdtReserved: IUnknown; const pdispReserved: IDispatch): HRESULT; stdcall;
+    function GetHostInfo(var pInfo: TDOCHOSTUIINFO): HRESULT; stdcall;
+    function ShowUI(const dwID: DWORD; const pActiveObject: IOleInPlaceActiveObject;
+      const pCommandTarget: IOleCommandTarget; const pFrame: IOleInPlaceFrame;
+      const pDoc: IOleInPlaceUIWindow): HRESULT; stdcall;
+    function HideUI: HRESULT; stdcall;
+    function UpdateUI: HRESULT; stdcall;
+    function EnableModeless(const fEnable: BOOL): HRESULT; stdcall;
+    function OnDocWindowActivate(const fActivate: BOOL): HRESULT; stdcall;
+    function OnFrameWindowActivate(const fActivate: BOOL): HRESULT; stdcall;
+    function ResizeBorder(const prcBorder: PRECT;
+      const pUIWindow: IOleInPlaceUIWindow;
+      const fRameWindow: BOOL): HRESULT; stdcall;
+    function TranslateAccelerator(const lpMsg: PMSG; const pguidCmdGroup: PGUID;
+      const nCmdID: DWORD): HRESULT; stdcall;
+    function GetOptionKeyPath(var pchKey: POLESTR; const dw: DWORD): HRESULT; stdcall;
+    function GetDropTarget(const pDropTarget: IDropTarget;
+      out ppDropTarget: IDropTarget): HRESULT; stdcall;
+    function GetExternal(out ppDispatch: IDispatch): HRESULT; stdcall;
+    function TranslateUrl(const dwTranslate: DWORD; const pchURLIn: POLESTR;
+      var ppchURLOut: POLESTR): HRESULT; stdcall;
+    function FilterDataObject(const pDO: IDataObject;
+      out ppDORet: IDataObject): HRESULT; stdcall;
+  end; // IDocHostUIHandler
+
+
+
+
+  IDocHostUIHandler2 = interface(IUnknown)
+    ['{3050f6d0-98b5-11cf-bb82-00aa00bdce0b}']
+    function GetOverrideKeyPath(pchKey: POLESTR; dw: DWORD): HRESULT; stdcall;
+  end;
+
+const
+ IID_IUniformResourceLocatorA: TGUID = (
+    D1:$FBF23B80; D2:$E3F0; D3:$101B; D4:($84,$88,$00,$AA,$00,$3E,$56,$F8));
+
+ IID_IUniformResourceLocatorW: TGUID = (
+    D1:$CABB0DA0; D2:$DA57; D3:$11CF; D4:($99,$74,$00,$20,$AF,$D7,$97,$62));
+
+
+{$IFDEF UNICODE}
+ IID_IUniformResourceLocator: TGUID = (
+    D1:$CABB0DA0; D2:$DA57; D3:$11CF; D4:($99,$74,$00,$20,$AF,$D7,$97,$62));
+{$ELSE}
+ IID_IUniformResourceLocator : TGUID = (
+    D1:$FBF23B80; D2:$E3F0; D3:$101B; D4:($84,$88,$00,$AA,$00,$3E,$56,$F8));
+{$ENDIF}
+
+
+const
+CLSID_InternetShortCut : TGUID = (
+    d1:$FBF23B40; D2:$E3F0; D3:$101B; D4:($84,$88,$00,$AA,$00,$3E,$56,$F8));
+
+ SID_IUniformResourceLocatorA  = '{FBF23B80-E3F0-101B-8488-00AA003E56F8}';
+ SID_IUniformResourceLocatorW  = '{CABB0DA0-DA57-11CF-9974-0020AFD79762}';
+{$IFDEF UNICODE}
+ SID_IUniformResourceLocator  = SID_IUniformResourceLocatorW;
+{$ELSE}
+ SID_IUniformResourceLocator  = SID_IUniformResourceLocatorA;
+{$ENDIF}
+
+
+
+   IURL_SETURL_FL_GUESS_PROTOCOL        = $0001;     // Guess protocol if missing
+   IURL_SETURL_FL_USE_DEFAULT_PROTOCOL  = $0002;     // Use default protocol if missing
+
+   IURL_INVOKECOMMAND_FL_ALLOW_UI                  = $0001;
+   IURL_INVOKECOMMAND_FL_USE_DEFAULT_VERB          = $0002;    // Ignore pcszVerb
+   IURL_INVOKECOMMAND_FL_DDEWAIT                   = $0004;    // pass DDEWAIT to ShellExec
+
+   TRANSLATEURL_FL_GUESS_PROTOCOL         = $0001;     // Guess protocol if missing
+   TRANSLATEURL_FL_USE_DEFAULT_PROTOCOL   = $0002;     // Use default protocol if missing
+
+   URLASSOCDLG_FL_USE_DEFAULT_NAME        = $0001;
+   URLASSOCDLG_FL_REGISTER_ASSOC          = $0002;
+
+   MIMEASSOCDLG_FL_REGISTER_ASSOC         = $0001;
+
+type
+
+PUrlInvokeCommandInfoA = ^TUrlInvokeCommandInfoA;
+
+TUrlInvokeCommandInfoA = record
+   dwcbSize : DWORD;          // Size of structure
+   dwFlags : DWORD;           // Bit field of IURL_INVOKECOMMAND_FLAGS
+   hwndParent : HWND;        // Parent window.  Valid only if IURL_INVOKECOMMAND_FL_ALLOW_UI is set.
+   pcszVerb : LPCSTR;          // Verb to invoke.  Ignored if IURL_INVOKECOMMAND_FL_USE_DEFAULT_VERB is set.
+end;
+
+
+
+PUrlInvokeCommandInfoW = ^TUrlInvokeCommandInfoW;
+TUrlInvokeCommandInfoW = record
+   dwcbSize : DWORD;          // Size of structure
+   dwFlags : DWORD;           // Bit field of IURL_INVOKECOMMAND_FLAGS
+   hwndParent : HWND;        // Parent window.  Valid only if IURL_INVOKECOMMAND_FL_ALLOW_UI is set.
+   pcszVerb : LPCWSTR;          // Verb to invoke.  Ignored if IURL_INVOKECOMMAND_FL_USE_DEFAULT_VERB is set.
+end;
+
+{$IFDEF UNICODE}
+PURLInvokeCommandInfo = ^TUrlInvokeCommandInfoW;
+TUrlInvokeCommandInfo = TUrlInvokeCOmmandInfoW;
+{$ELSE}
+PURLInvokeCommandInfo = ^TUrlInvokeCommandInfoA;
+TUrlInvokeCommandInfo = TUrlInvokeCOmmandInfoA;
+{$ENDIF}
+
+
+
+
+  IUniformResourceLocatorA = interface(IUnknown)
+    [SID_IUniformResourceLocatorA]
+   function SetURL(pcszURL : LpcStr; dwInFlags: DWORD): HRESULT; stdcall;
+   function GetURL(ppszURL : LpStr): HRESULT; stdcall;
+   function InvokeCommand(purlici : PURLINVOKECOMMANDINFOA): HRESULT; stdcall;
+
+  end;
+
+
+
+  IUniformResourceLocatorW = interface(IUnknown)
+     [SID_IUniformResourceLocatorW]
+   function SetURL(pcszURL : LpcWStr; dwInFlags: DWORD): HRESULT; stdcall;
+   function GetURL(ppszURL : LpWStr): HRESULT; stdcall;
+   function InvokeCommand(purlici : PURLINVOKECOMMANDINFOW): HRESULT; stdcall;
+  end;
+
+
+{$IFDEF UNICODE}
+  IUniformResourceLocator = IUniformResourceLocatorW;
+{$ELSE}
+  IUniformResourceLocator = IUniformResourceLocatorA;
+{$ENDIF}
+
+function TranslateURLA(pcszURL : LPCSTR;
+              dwInFlags : DWORD;
+              ppszTranslatedURL : LPSTR) : HRESULT; stdcall;
+
+
+function TranslateURLW(pcszURL : LPCWSTR;
+              dwInFlags : DWORD;
+              ppszTranslatedURL : LPWSTR) : HRESULT; stdcall;
+
+{$IFDEF UNICODE}
+function TranslateURL(pcszURL : LPCWSTR;
+              dwInFlags : DWORD;
+              ppszTranslatedURL : LPWSTR) : HRESULT; stdcall;
+{$ELSE}
+function TranslateURL(pcszURL : LPCSTR;
+              dwInFlags : DWORD;
+              ppszTranslatedURL : LPSTR) : HRESULT; stdcall;
+{$ENDIF}
+
+
+function URLAssociationDialogA(hwndParent : HWND;
+                      dwInFlags : DWORD;
+                      pcszFile : LPCSTR;
+                      pcszURL : LPCSTR;
+                      pszAppBuf : LPSTR;
+                      ucAppBufLen : UINT) : HRESULT; stdcall;
+
+function URLAssociationDialogW(hwndParent : HWND;
+                      dwInFlags : DWORD;
+                      pcszFile : LPCWSTR;
+                      pcszURL : LPCWSTR;
+                      pszAppBuf : LPWSTR;
+                      ucAppBufLen : UINT) : HRESULT;  stdcall;
+
+{$IFDEF UNICODE}
+function URLAssociationDialog(hwndParent : HWND;
+                      dwInFlags : DWORD;
+                      pcszFile : LPCWSTR;
+                      pcszURL : LPCWSTR;
+                      pszAppBuf : LPWSTR;
+                      ucAppBufLen : UINT) : HRESULT;  stdcall;
+{$ELSE}
+function URLAssociationDialog(hwndParent : HWND;
+                      dwInFlags : DWORD;
+                      pcszFile : LPCSTR;
+                      pcszURL : LPCSTR;
+                      pszAppBuf : LPSTR;
+                      ucAppBufLen : UINT) : HRESULT; stdcall;
+{$ENDIF}
+
+
+
+function MIMEAssociationDialogA(hwndParent : HWND;
+                                dwInFlags : DWORD;
+                                pcszFile : LPCSTR;
+                                pcszMIMEContentType : LPCSTR;
+                                pszAppBuf : LPSTR;
+                                ucAppBufLen : UINT) : HRESULT; stdcall;
+
+
+function MIMEAssociationDialogW(hwndParent : HWND;
+                                dwInFlags : DWORD;
+                                pcszFile : LPCWSTR;
+                                pcszMIMEContentType : LPCWSTR;
+                                pszAppBuf : LPWSTR;
+                                ucAppBufLen : UINT) : HRESULT; stdcall;
+
+{$IFDEF UNICODE}
+function MIMEAssociationDialog(hwndParent : HWND;
+                                dwInFlags : DWORD;
+                                pcszFile : LPCWSTR;
+                                pcszMIMEContentType : LPCWSTR;
+                                pszAppBuf : LPWSTR;
+                                ucAppBufLen : UINT) : HRESULT; stdcall;
+{$ELSE}
+function MIMEAssociationDialog(hwndParent : HWND;
+                                dwInFlags : DWORD;
+                                pcszFile : LPCSTR;
+                                pcszMIMEContentType : LPCSTR;
+                                pszAppBuf : LPSTR;
+                                ucAppBufLen : UINT) : HRESULT; stdcall;
+{$ENDIF}
+
+function InetIsOffline(dwFlags: DWORD): BOOL; stdcall;
+
+
+{$IFDEF VER120}
+
+const
+  IID_IInternetSession: TGUID = '{79eac9e7-baf9-11ce-8c82-00aa004ba90b}';
+  IID_IInternetSecurityMgrSite: TGUID = '{79eac9ed-baf9-11ce-8c82-00aa004ba90b}';
+  IID_IInternetSecurityManager: TGUID = '{79eac9ee-baf9-11ce-8c82-00aa004ba90b}';
+  IID_IInternetHostSecurityManager: TGUID = '{3af280b6-cb3f-11d0-891e-00c04fb6bfc4}';
+  SID_IInternetSecurityManager: TGUID = '{79eac9ee-baf9-11ce-8c82-00aa004ba90b}';
+  SID_IInternetHostSecurityManager: TGUID = '{3af280b6-cb3f-11d0-891e-00c04fb6bfc4}';
+  IID_IInternetZoneManager: TGUID = '{79eac9ef-baf9-11ce-8c82-00aa004ba90b}';
+
+
+type
+  TUrlZoneReg = ULONG;
+
+  PBindInfo = ^TBindInfo;
+  _tagBINDINFO = packed record
+    cbSize: ULONG;
+    szExtraInfo: LPWSTR;
+    stgmedData: TStgMedium;
+    grfBindInfoF: DWORD;
+    dwBindVerb: DWORD;
+    szCustomVerb: LPWSTR;
+    cbstgmedData: DWORD;
+    dwOptions: DWORD;
+    dwOptionsFlags: DWORD;
+    dwCodePage: DWORD;
+    securityAttributes: TSecurityAttributes;
+    iid: TGUID;
+    pUnk: IUnknown;
+    dwReserved: DWORD;
+  end;
+  TBindInfo = _tagBINDINFO;
+  BINDINFO = _tagBINDINFO;
+
+
+{$NODEFINE POLEStrArray}
+  POLEStrArray = ^TOLESTRArray;
+{$NODEFINE TOLEStrArray}
+  TOLEStrArray = array[0..MaxLongint div SizeOf(POLEStr) - 1] of POLEStr;
+
+{$EXTERNALSYM IInternetBindInfo}
+  IInternetBindInfo = interface
+    ['{79eac9e1-baf9-11ce-8c82-00aa004ba90b}']
+    function GetBindInfo(out grfBINDF: DWORD; var bindinfo: TBindInfo): HResult; stdcall;
+    function GetBindString(ulStringType: ULONG; wzStr: POLEStrArray; cEl: ULONG;
+      var cElFetched: ULONG): HResult; stdcall;
+  end;
+
+  PProtocolData = ^TProtocolData;
+{$EXTERNALSYM _tagPROTOCOLDATA}
+  _tagPROTOCOLDATA = packed record
+    grfFlags: DWORD;
+    dwState: DWORD;
+    pData: Pointer;
+    cbData: ULONG;
+  end;
+  TProtocolData = _tagPROTOCOLDATA;
+{$EXTERNALSYM _tagPROTOCOLDATA}
+  PROTOCOLDATA = _tagPROTOCOLDATA;
+
+{$EXTERNALSYM IInternetProtocolSink}
+  IInternetProtocolSink = interface; // forward
+
+{$EXTERNALSYM IInternetProtocolRoot}
+  IInternetProtocolRoot = interface
+    ['{79eac9e3-baf9-11ce-8c82-00aa004ba90b}']
+    function Start(szUrl: LPCWSTR; OIProtSink: IInternetProtocolSink;
+      OIBindInfo: IInternetBindInfo; grfPI, dwReserved: DWORD): HResult; stdcall;
+    function Continue(const ProtocolData: TProtocolData): HResult; stdcall;
+    function Abort(hrReason: HResult; dwOptions: DWORD): HResult; stdcall;
+    function Terminate(dwOptions: DWORD): HResult; stdcall;
+    function Suspend: HResult; stdcall;
+    function Resume: HResult; stdcall;
+  end;
+
+{$EXTERNALSYM IInternetProtocol}
+  IInternetProtocol = interface(IInternetProtocolRoot)
+    ['{79eac9e4-baf9-11ce-8c82-00aa004ba90b}']
+    function Read(pv: Pointer; cb: ULONG; out cbRead: ULONG): HResult; stdcall;
+    function Seek(dlibMove: LARGE_INTEGER; dwOrigin: DWORD; out libNewPosition: ULARGE_INTEGER): HResult; stdcall;
+    function LockRequest(dwOptions: DWORD): HResult; stdcall;
+    function UnlockRequest: HResult; stdcall;
+  end;
+
+{$EXTERNALSYM IInternetProtocolSink}
+  IInternetProtocolSink = interface
+    ['{79eac9e5-baf9-11ce-8c82-00aa004ba90b}']
+    function Switch(const ProtocolData: TProtocolData): HResult; stdcall;
+    function ReportProgress(ulStatusCode: ULONG; szStatusText: LPCWSTR): HResult; stdcall;
+    function ReportData(grfBSCF: DWORD; ulProgress, ulProgressMax: ULONG): HResult; stdcall;
+    function ReportResult(hrResult: HResult; dwError: DWORD; szResult: LPCWSTR): HResult; stdcall;
+  end;
+
+{$NODEFINE TLPCWSTRArray}
+  TLPCWSTRArray = array[0..MaxLongInt div SizeOf(LPCWSTR) - 1] of LPCWSTR;
+{$NODEFINE PLPCWSTRArray}
+  PLPCWSTRArray = ^TLPCWSTRArray;
+
+{$EXTERNALSYM IInternetSession}
+  IInternetSession = interface
+    ['{79eac9e7-baf9-11ce-8c82-00aa004ba90b}']
+    function RegisterNameSpace(CF: IClassFactory; const clsid: TCLSID; pwzProtocol: LPCWSTR;
+      cPatterns: ULONG; const pwzPatterns: PLPCWSTRArray; dwReserved: DWORD): HResult; stdcall;
+    function UnregisterNameSpace(CF: IClassFactory; pszProtocol: LPCWSTR): HResult; stdcall;
+    function RegisterMimeFilter(CF: IClassFactory; const rclsid: TCLSID;
+      pwzType: LPCWSTR): HResult; stdcall;
+    function UnregisterMimeFilter(CF: IClassFactory; pwzType: LPCWSTR): HResult; stdcall;
+    function CreateBinding(BC: IBindCtx; szUrl: LPCWSTR; UnkOuter: IUnknown; out Unk: IUnknown;
+      out OINetProt: IInternetProtocol; dwOption: DWORD): HResult; stdcall;
+    function SetSessionOption(dwOption: DWORD; pBuffer: Pointer; dwBufferLength: DWORD;
+      dwReserved: DWORD): HResult; stdcall;
+    function GetSessionOption(dwOption: DWORD; pBuffer: Pointer; var dwBufferLength: DWORD;
+      dwReserved: DWORD): HResult; stdcall;
+  end; // IInternetSession
+
+{$EXTERNALSYM CoInternetGetSession}
+function CoInternetGetSession(dwSessionMode: DWORD; var pIInternetSession: IInternetSession;
+  dwReserved: DWORD): HResult; stdcall;
+
+
+
+type
+{$EXTERNALSYM IInternetSecurityMgrSite}
+  IInternetSecurityMgrSite = interface
+    ['{79eac9ed-baf9-11ce-8c82-00aa004ba90b}']
+    function GetWindow(out hwnd: HWnd): HResult; stdcall;
+    function EnableModeless(fEnable: BOOL): HResult; stdcall;
+  end;
+
+const
+{$EXTERNALSYM MAX_SIZE_SECURITY_ID}
+  MAX_SIZE_SECURITY_ID = 512; // bytes;
+
+  // MapUrlToZone returns the zone index given a URL
+{$EXTERNALSYM PUAF_DEFAULT}
+  PUAF_DEFAULT = $00000000;
+{$EXTERNALSYM PUAF_NOUI}
+  PUAF_NOUI = $00000001;
+{$EXTERNALSYM PUAF_ISFILE}
+  PUAF_ISFILE = $00000002;
+{$EXTERNALSYM PUAF_WARN_IF_DENIED}
+  PUAF_WARN_IF_DENIED = $00000004;
+{$EXTERNALSYM PUAF_FORCEUI_FOREGROUND}
+  PUAF_FORCEUI_FOREGROUND = $00000008;
+{$EXTERNALSYM PUAF_CHECK_TIFS}
+  PUAF_CHECK_TIFS = $00000010;
+
+// This is the wrapper function that most clients will use.
+// It figures out the current Policy for the passed in Action,
+// and puts up UI if the current Policy indicates that the user
+// should be queried. It returns back the Policy which the caller
+// will use to determine if the action should be allowed
+// This is the wrapper function to conveniently read a custom policy.
+
+// SetZoneMapping
+//    lpszPattern: string denoting a URL pattern
+//        Examples of valid patterns:
+//            *://*.msn.com
+//            http://*.sony.co.jp
+//            *://et.msn.com
+//            ftp://157.54.23.41/
+//            https://localsvr
+//            file:\localsvr\share
+//            *://157.54.100-200.*
+//        Examples of invalid patterns:
+//            http://*.lcs.mit.edu
+//            ftp://*
+//    dwFlags: SZM_FLAGS values
+
+{$EXTERNALSYM SZM_CREATE}
+  SZM_CREATE = $00000000;
+{$EXTERNALSYM SZM_DELETE}
+  SZM_DELETE = $00000001;
+
+type
+{$EXTERNALSYM IInternetSecurityManager}
+  IInternetSecurityManager = interface
+    ['{79eac9ee-baf9-11ce-8c82-00aa004ba90b}']
+    function SetSecuritySite(Site: IInternetSecurityMgrSite): HResult; stdcall;
+    function GetSecuritySite(out Site: IInternetSecurityMgrSite): HResult; stdcall;
+    function MapUrlToZone(pwszUrl: LPCWSTR; out dwZone: DWORD;
+      dwFlags: DWORD): HResult; stdcall;
+    function GetSecurityId(pwszUrl: LPCWSTR; pbSecurityId: Pointer;
+      var cbSecurityId: DWORD; dwReserved: DWORD): HResult; stdcall;
+    function ProcessUrlAction(pwszUrl: LPCWSTR; dwAction: DWORD;
+      pPolicy: Pointer; cbPolicy: DWORD; pContext: Pointer; cbContext: DWORD;
+      dwFlags, dwReserved: DWORD): HResult; stdcall;
+    function QueryCustomPolicy(pwszUrl: LPCWSTR; const guidKey: TGUID;
+      out pPolicy: Pointer; out cbPolicy: DWORD; pContext: Pointer; cbContext: DWORD;
+      dwReserved: DWORD): HResult; stdcall;
+    function SetZoneMapping(dwZone: DWORD; lpszPattern: LPCWSTR;
+      dwFlags: DWORD): HResult; stdcall;
+    function GetZoneMappings(dwZone: DWORD; out enumString: IEnumString;
+      dwFlags: DWORD): HResult; stdcall;
+  end;
+
+{$EXTERNALSYM IInternetHostSecurityManager}
+  IInternetHostSecurityManager = interface
+    ['{3af280b6-cb3f-11d0-891e-00c04fb6bfc4}']
+    function GetSecurityId(pbSecurityId: Pointer; var cbSecurityId: DWORD;
+      dwReserved: DWORD): HResult; stdcall;
+    function ProcessUrlAction(dwAction: DWORD; pPolicy: Pointer; cbPolicy: DWORD;
+      pContext: Pointer; cbContext, dwFlags, dwReserved: DWORD): HResult; stdcall;
+    function QueryCustomPolicy(const guidKey: TGUID; out pPolicy: Pointer; out cbPolicy: DWORD;
+      pContext: Pointer; cbContext, dwReserved: DWORD): HResult; stdcall;
+  end;
+
+const
+{$EXTERNALSYM URLACTION_MIN}
+  URLACTION_MIN = $00001000;
+
+{$EXTERNALSYM URLACTION_DOWNLOAD_MIN}
+  URLACTION_DOWNLOAD_MIN = $00001000;
+{$EXTERNALSYM URLACTION_DOWNLOAD_SIGNED_ACTIVEX}
+  URLACTION_DOWNLOAD_SIGNED_ACTIVEX = $00001001;
+{$EXTERNALSYM URLACTION_DOWNLOAD_UNSIGNED_ACTIVEX}
+  URLACTION_DOWNLOAD_UNSIGNED_ACTIVEX = $00001004;
+{$EXTERNALSYM URLACTION_DOWNLOAD_CURR_MAX}
+  URLACTION_DOWNLOAD_CURR_MAX = $00001004;
+{$EXTERNALSYM URLACTION_DOWNLOAD_MAX}
+  URLACTION_DOWNLOAD_MAX = $000011FF;
+
+{$EXTERNALSYM URLACTION_ACTIVEX_MIN}
+  URLACTION_ACTIVEX_MIN = $00001200;
+{$EXTERNALSYM URLACTION_ACTIVEX_RUN}
+  URLACTION_ACTIVEX_RUN = $00001200;
+{$EXTERNALSYM URLACTION_ACTIVEX_OVERRIDE_OBJECT_SAFETY}
+  URLACTION_ACTIVEX_OVERRIDE_OBJECT_SAFETY = $00001201; // aggregate next four
+{$EXTERNALSYM URLACTION_ACTIVEX_OVERRIDE_DATA_SAFETY}
+  URLACTION_ACTIVEX_OVERRIDE_DATA_SAFETY = $00001202; //
+{$EXTERNALSYM URLACTION_ACTIVEX_OVERRIDE_SCRIPT_SAFETY}
+  URLACTION_ACTIVEX_OVERRIDE_SCRIPT_SAFETY = $00001203; //
+{$EXTERNALSYM URLACTION_SCRIPT_OVERRIDE_SAFETY}
+  URLACTION_SCRIPT_OVERRIDE_SAFETY = $00001401; //
+{$EXTERNALSYM URLACTION_ACTIVEX_CONFIRM_NOOBJECTSAFETY}
+  URLACTION_ACTIVEX_CONFIRM_NOOBJECTSAFETY = $00001204; //
+{$EXTERNALSYM URLACTION_ACTIVEX_TREATASUNTRUSTED}
+  URLACTION_ACTIVEX_TREATASUNTRUSTED = $00001205;
+{$EXTERNALSYM URLACTION_ACTIVEX_CURR_MAX}
+  URLACTION_ACTIVEX_CURR_MAX = $00001205;
+{$EXTERNALSYM URLACTION_ACTIVEX_MAX}
+  URLACTION_ACTIVEX_MAX = $000013FF;
+
+{$EXTERNALSYM URLACTION_SCRIPT_MIN}
+  URLACTION_SCRIPT_MIN = $00001400;
+{$EXTERNALSYM URLACTION_SCRIPT_RUN}
+  URLACTION_SCRIPT_RUN = $00001400;
+{$EXTERNALSYM URLACTION_SCRIPT_JAVA_USE}
+  URLACTION_SCRIPT_JAVA_USE = $00001402;
+{$EXTERNALSYM URLACTION_SCRIPT_SAFE_ACTIVEX}
+  URLACTION_SCRIPT_SAFE_ACTIVEX = $00001405;
+{$EXTERNALSYM URLACTION_SCRIPT_CURR_MAX}
+  URLACTION_SCRIPT_CURR_MAX = $00001405;
+{$EXTERNALSYM URLACTION_SCRIPT_MAX}
+  URLACTION_SCRIPT_MAX = $000015FF;
+
+{$EXTERNALSYM URLACTION_HTML_MIN}
+  URLACTION_HTML_MIN = $00001600;
+{$EXTERNALSYM URLACTION_HTML_SUBMIT_FORMS}
+  URLACTION_HTML_SUBMIT_FORMS = $00001601; // aggregate next two
+{$EXTERNALSYM URLACTION_HTML_SUBMIT_FORMS_FROM}
+  URLACTION_HTML_SUBMIT_FORMS_FROM = $00001602; //
+{$EXTERNALSYM URLACTION_HTML_SUBMIT_FORMS_TO}
+  URLACTION_HTML_SUBMIT_FORMS_TO = $00001603; //
+{$EXTERNALSYM URLACTION_HTML_FONT_DOWNLOAD}
+  URLACTION_HTML_FONT_DOWNLOAD = $00001604;
+{$EXTERNALSYM URLACTION_HTML_JAVA_RUN}
+  URLACTION_HTML_JAVA_RUN = $00001605; // derive from Java custom policy;
+{$EXTERNALSYM URLACTION_HTML_CURR_MAX}
+  URLACTION_HTML_CURR_MAX = $00001605;
+{$EXTERNALSYM URLACTION_HTML_MAX}
+  URLACTION_HTML_MAX = $000017FF;
+
+{$EXTERNALSYM URLACTION_SHELL_MIN}
+  URLACTION_SHELL_MIN = $00001800;
+{$EXTERNALSYM URLACTION_SHELL_INSTALL_DTITEMS}
+  URLACTION_SHELL_INSTALL_DTITEMS = $00001800;
+{$EXTERNALSYM URLACTION_SHELL_MOVE_OR_COPY}
+  URLACTION_SHELL_MOVE_OR_COPY = $00001802;
+{$EXTERNALSYM URLACTION_SHELL_FILE_DOWNLOAD}
+  URLACTION_SHELL_FILE_DOWNLOAD = $00001803;
+{$EXTERNALSYM URLACTION_SHELL_VERB}
+  URLACTION_SHELL_VERB = $00001804;
+{$EXTERNALSYM URLACTION_SHELL_WEBVIEW_VERB}
+  URLACTION_SHELL_WEBVIEW_VERB = $00001805;
+{$EXTERNALSYM URLACTION_SHELL_CURR_MAX}
+  URLACTION_SHELL_CURR_MAX = $00001805;
+{$EXTERNALSYM URLACTION_SHELL_MAX}
+  URLACTION_SHELL_MAX = $000019FF;
+
+{$EXTERNALSYM URLACTION_NETWORK_MIN}
+  URLACTION_NETWORK_MIN = $00001A00;
+
+{$EXTERNALSYM URLACTION_CREDENTIALS_USE}
+  URLACTION_CREDENTIALS_USE = $00001A00;
+{$EXTERNALSYM URLPOLICY_CREDENTIALS_SILENT_LOGON_OK}
+  URLPOLICY_CREDENTIALS_SILENT_LOGON_OK = $00000000;
+{$EXTERNALSYM URLPOLICY_CREDENTIALS_MUST_PROMPT_USER}
+  URLPOLICY_CREDENTIALS_MUST_PROMPT_USER = $00010000;
+{$EXTERNALSYM URLPOLICY_CREDENTIALS_CONDITIONAL_PROMPT}
+  URLPOLICY_CREDENTIALS_CONDITIONAL_PROMPT = $00020000;
+{$EXTERNALSYM URLPOLICY_CREDENTIALS_ANONYMOUS_ONLY}
+  URLPOLICY_CREDENTIALS_ANONYMOUS_ONLY = $00030000;
+
+{$EXTERNALSYM URLACTION_AUTHENTICATE_CLIENT}
+  URLACTION_AUTHENTICATE_CLIENT = $00001A01;
+{$EXTERNALSYM URLPOLICY_AUTHENTICATE_CLEARTEXT_OK}
+  URLPOLICY_AUTHENTICATE_CLEARTEXT_OK = $00000000;
+{$EXTERNALSYM URLPOLICY_AUTHENTICATE_CHALLENGE_RESPONSE}
+  URLPOLICY_AUTHENTICATE_CHALLENGE_RESPONSE = $00010000;
+{$EXTERNALSYM URLPOLICY_AUTHENTICATE_MUTUAL_ONLY}
+  URLPOLICY_AUTHENTICATE_MUTUAL_ONLY = $00030000;
+
+{$EXTERNALSYM URLACTION_NETWORK_CURR_MAX}
+  URLACTION_NETWORK_CURR_MAX = $00001A01;
+{$EXTERNALSYM URLACTION_NETWORK_MAX}
+  URLACTION_NETWORK_MAX = $00001BFF;
+
+{$EXTERNALSYM URLACTION_JAVA_MIN}
+  URLACTION_JAVA_MIN = $00001C00;
+{$EXTERNALSYM URLACTION_JAVA_PERMISSIONS}
+  URLACTION_JAVA_PERMISSIONS = $00001C00;
+{$EXTERNALSYM URLPOLICY_JAVA_PROHIBIT}
+  URLPOLICY_JAVA_PROHIBIT = $00000000;
+{$EXTERNALSYM URLPOLICY_JAVA_HIGH}
+  URLPOLICY_JAVA_HIGH = $00010000;
+{$EXTERNALSYM URLPOLICY_JAVA_MEDIUM}
+  URLPOLICY_JAVA_MEDIUM = $00020000;
+{$EXTERNALSYM URLPOLICY_JAVA_LOW}
+  URLPOLICY_JAVA_LOW = $00030000;
+{$EXTERNALSYM URLPOLICY_JAVA_CUSTOM}
+  URLPOLICY_JAVA_CUSTOM = $00800000;
+{$EXTERNALSYM URLACTION_JAVA_CURR_MAX}
+  URLACTION_JAVA_CURR_MAX = $00001C00;
+{$EXTERNALSYM URLACTION_JAVA_MAX}
+  URLACTION_JAVA_MAX = $00001CFF;
+
+// The following Infodelivery actions should have no default policies
+// in the registry.  They assume that no default policy means fall
+// back to the global restriction.  If an admin sets a policy per
+// zone, then it overrides the global restriction.
+
+{$EXTERNALSYM URLACTION_INFODELIVERY_MIN}
+  URLACTION_INFODELIVERY_MIN = $00001D00;
+{$EXTERNALSYM URLACTION_INFODELIVERY_NO_ADDING_CHANNELS}
+  URLACTION_INFODELIVERY_NO_ADDING_CHANNELS = $00001D00;
+{$EXTERNALSYM URLACTION_INFODELIVERY_NO_EDITING_CHANNELS}
+  URLACTION_INFODELIVERY_NO_EDITING_CHANNELS = $00001D01;
+{$EXTERNALSYM URLACTION_INFODELIVERY_NO_REMOVING_CHANNELS}
+  URLACTION_INFODELIVERY_NO_REMOVING_CHANNELS = $00001D02;
+{$EXTERNALSYM URLACTION_INFODELIVERY_NO_ADDING_SUBSCRIPTIONS}
+  URLACTION_INFODELIVERY_NO_ADDING_SUBSCRIPTIONS = $00001D03;
+{$EXTERNALSYM URLACTION_INFODELIVERY_NO_EDITING_SUBSCRIPTIONS}
+  URLACTION_INFODELIVERY_NO_EDITING_SUBSCRIPTIONS = $00001D04;
+{$EXTERNALSYM URLACTION_INFODELIVERY_NO_REMOVING_SUBSCRIPTIONS}
+  URLACTION_INFODELIVERY_NO_REMOVING_SUBSCRIPTIONS = $00001D05;
+{$EXTERNALSYM URLACTION_INFODELIVERY_NO_CHANNEL_LOGGING}
+  URLACTION_INFODELIVERY_NO_CHANNEL_LOGGING = $00001D06;
+{$EXTERNALSYM URLACTION_INFODELIVERY_CURR_MAX}
+  URLACTION_INFODELIVERY_CURR_MAX = $00001D06;
+{$EXTERNALSYM URLACTION_INFODELIVERY_MAX}
+  URLACTION_INFODELIVERY_MAX = $00001DFF;
+{$EXTERNALSYM URLACTION_CHANNEL_SOFTDIST_MIN}
+  URLACTION_CHANNEL_SOFTDIST_MIN = $00001E00;
+{$EXTERNALSYM URLACTION_CHANNEL_SOFTDIST_PERMISSIONS}
+  URLACTION_CHANNEL_SOFTDIST_PERMISSIONS = $00001E05;
+{$EXTERNALSYM URLPOLICY_CHANNEL_SOFTDIST_PROHIBIT}
+  URLPOLICY_CHANNEL_SOFTDIST_PROHIBIT = $00010000;
+{$EXTERNALSYM URLPOLICY_CHANNEL_SOFTDIST_PRECACHE}
+  URLPOLICY_CHANNEL_SOFTDIST_PRECACHE = $00020000;
+{$EXTERNALSYM URLPOLICY_CHANNEL_SOFTDIST_AUTOINSTALL}
+  URLPOLICY_CHANNEL_SOFTDIST_AUTOINSTALL = $00030000;
+{$EXTERNALSYM URLACTION_CHANNEL_SOFTDIST_MAX}
+  URLACTION_CHANNEL_SOFTDIST_MAX = $00001EFF;
+
+// For each action specified above the system maintains
+// a set of policies for the action.
+// The only policies supported currently are permissions (i.e. is something allowed)
+// and logging status.
+// IMPORTANT: If you are defining your own policies don't overload the meaning of the
+// loword of the policy. You can use the hiword to store any policy bits which are only
+// meaningful to your action.
+// For an example of how to do this look at the URLPOLICY_JAVA above
+
+// Permissions
+{$EXTERNALSYM URLPOLICY_ALLOW}
+  URLPOLICY_ALLOW = $00;
+{$EXTERNALSYM URLPOLICY_QUERY}
+  URLPOLICY_QUERY = $01;
+{$EXTERNALSYM URLPOLICY_DISALLOW}
+  URLPOLICY_DISALLOW = $03;
+
+// Notifications are not done when user already queried.
+{$EXTERNALSYM URLPOLICY_NOTIFY_ON_ALLOW}
+  URLPOLICY_NOTIFY_ON_ALLOW = $10;
+{$EXTERNALSYM URLPOLICY_NOTIFY_ON_DISALLOW}
+  URLPOLICY_NOTIFY_ON_DISALLOW = $20;
+
+// Logging is done regardless of whether user was queried.
+{$EXTERNALSYM URLPOLICY_LOG_ON_ALLOW}
+  URLPOLICY_LOG_ON_ALLOW = $40;
+{$EXTERNALSYM URLPOLICY_LOG_ON_DISALLOW}
+  URLPOLICY_LOG_ON_DISALLOW = $80;
+
+{$EXTERNALSYM URLPOLICY_MASK_PERMISSIONS}
+  URLPOLICY_MASK_PERMISSIONS = $0F;
+
+
+// The ordinal #'s that define the predefined zones internet explorer knows about.
+// When we support user-defined zones their zone numbers should be between
+// URLZONE_USER_MIN and URLZONE_USER_MAX
+
+const
+{$EXTERNALSYM URLZONE_PREDEFINED_MIN}
+  URLZONE_PREDEFINED_MIN = 0;
+{$EXTERNALSYM URLZONE_LOCAL_MACHINE}
+  URLZONE_LOCAL_MACHINE = 0;
+{$EXTERNALSYM URLZONE_INTRANET}
+  URLZONE_INTRANET = URLZONE_LOCAL_MACHINE + 1;
+{$EXTERNALSYM URLZONE_TRUSTED}
+  URLZONE_TRUSTED = URLZONE_INTRANET + 1;
+{$EXTERNALSYM URLZONE_INTERNET}
+  URLZONE_INTERNET = URLZONE_TRUSTED + 1;
+{$EXTERNALSYM URLZONE_UNTRUSTED}
+  URLZONE_UNTRUSTED = URLZONE_INTERNET + 1;
+{$EXTERNALSYM URLZONE_PREDEFINED_MAX}
+  URLZONE_PREDEFINED_MAX = 999;
+{$EXTERNALSYM URLZONE_USER_MIN}
+  URLZONE_USER_MIN = 1000;
+{$EXTERNALSYM URLZONE_USER_MAX}
+  URLZONE_USER_MAX = 10000;
+
+{$EXTERNALSYM URLTEMPLATE_CUSTOM}
+  URLTEMPLATE_CUSTOM = $00000000;
+{$EXTERNALSYM URLTEMPLATE_PREDEFINED_MIN}
+  URLTEMPLATE_PREDEFINED_MIN = $00010000;
+{$EXTERNALSYM URLTEMPLATE_LOW}
+  URLTEMPLATE_LOW = $00010000;
+{$EXTERNALSYM URLTEMPLATE_MEDIUM}
+  URLTEMPLATE_MEDIUM = $00011000;
+{$EXTERNALSYM URLTEMPLATE_HIGH}
+  URLTEMPLATE_HIGH = $00012000;
+{$EXTERNALSYM URLTEMPLATE_PREDEFINED_MAX}
+  URLTEMPLATE_PREDEFINED_MAX = $00020000;
+
+{$EXTERNALSYM MAX_ZONE_PATH}
+  MAX_ZONE_PATH = 260;
+{$EXTERNALSYM MAX_ZONE_DESCRIPTION}
+  MAX_ZONE_DESCRIPTION = 200;
+
+{$EXTERNALSYM ZAFLAGS_CUSTOM_EDIT}
+  ZAFLAGS_CUSTOM_EDIT = $00000001;
+{$EXTERNALSYM ZAFLAGS_ADD_SITES}
+  ZAFLAGS_ADD_SITES = $00000002;
+{$EXTERNALSYM ZAFLAGS_REQUIRE_VERIFICATION}
+  ZAFLAGS_REQUIRE_VERIFICATION = $00000004;
+{$EXTERNALSYM ZAFLAGS_INCLUDE_PROXY_OVERRIDE}
+  ZAFLAGS_INCLUDE_PROXY_OVERRIDE = $00000008;
+{$EXTERNALSYM ZAFLAGS_INCLUDE_INTRANET_SITES}
+  ZAFLAGS_INCLUDE_INTRANET_SITES = $00000010;
+{$EXTERNALSYM ZAFLAGS_NO_UI}
+  ZAFLAGS_NO_UI = $00000020;
+{$EXTERNALSYM ZAFLAGS_SUPPORTS_VERIFICATION}
+  ZAFLAGS_SUPPORTS_VERIFICATION = $00000040;
+{$EXTERNALSYM ZAFLAGS_UNC_AS_INTRANET}
+  ZAFLAGS_UNC_AS_INTRANET = $00000080;
+
+type
+  PZoneAttributes = ^TZoneAttributes;
+{$EXTERNALSYM _ZONEATTRIBUTES}
+  _ZONEATTRIBUTES = packed record
+    cbSize: ULONG;
+    szDisplayName: array[0..260 - 1] of WideChar;
+    szDescription: array[0..200 - 1] of WideChar;
+    szIconPath: array[0..260 - 1] of WideChar;
+    dwTemplateMinLevel: DWORD;
+    dwTemplateRecommended: DWORD;
+    dwTemplateCurrentLevel: DWORD;
+    dwFlags: DWORD;
+  end;
+  TZoneAttributes = _ZONEATTRIBUTES;
+{$EXTERNALSYM ZONEATTRIBUTES}
+  ZONEATTRIBUTES = _ZONEATTRIBUTES;
+
+// Gets the zone attributes (information in registry other than actual security
+// policies associated with the zone).  Zone attributes are fixed as:
+// Sets the zone attributes (information in registry other than actual security
+// policies associated with the zone).  Zone attributes as above.
+// Returns S_OK or ??? if failed to write the zone attributes.
+{  Registry Flags
+
+    When reading, default behavior is:
+        If HKLM allows override and HKCU value exists
+            Then use HKCU value
+            Else use HKLM value
+    When writing, default behavior is same as HKCU
+        If HKLM allows override
+           Then Write to HKCU
+           Else Fail
+}
+
+const
+{$EXTERNALSYM URLZONEREG_DEFAULT}
+  URLZONEREG_DEFAULT = 0;
+{$EXTERNALSYM URLZONEREG_HKLM}
+  URLZONEREG_HKLM = URLZONEREG_DEFAULT + 1;
+{$EXTERNALSYM URLZONEREG_HKCU}
+  URLZONEREG_HKCU = URLZONEREG_HKLM + 1;
+
+// Gets a named custom policy associated with a zone;
+// e.g. the Java VM settings can be defined with a unique key such as 'Java'.
+// Custom policy support is intended to allow extensibility from the predefined
+// set of policies that IE4 has built in.
+//
+// pwszKey is the string name designating the custom policy.  Components are
+//   responsible for having unique names.
+// ppPolicy is the callee allocated buffer for the policy byte blob; caller is
+//   responsible for freeing this buffer eventually.
+// pcbPolicy is the size of the byte blob returned.
+// dwRegFlags determines how registry is accessed (see above).
+// Returns S_OK if key is found and buffer allocated; ??? if key is not found (no buffer alloced).
+// Sets a named custom policy associated with a zone;
+// e.g. the Java VM settings can be defined with a unique key such as 'Java'.
+// Custom policy support is intended to allow extensibility from the predefined
+// set of policies that IE4 has built in.
+//
+// pwszKey is the string name designating the custom policy.  Components are
+//   responsible for having unique names.
+// ppPolicy is the caller allocated buffer for the policy byte blob.
+// pcbPolicy is the size of the byte blob to be set.
+// dwRegFlags determines if HTCU or HKLM is set.
+// Returns S_OK or ??? if failed to write the zone custom policy.
+// Gets action policy associated with a zone, the builtin, fixed-length policies info.
+
+// dwAction is the action code for the action as defined above.
+// pPolicy is the caller allocated buffer for the policy data.
+// cbPolicy is the size of the caller allocated buffer.
+// dwRegFlags determines how registry is accessed (see above).
+// Returns S_OK if action is valid; ??? if action is not valid.
+
+type
+{$EXTERNALSYM IInternetZoneManager}
+  IInternetZoneManager = interface
+    ['{79eac9ef-baf9-11ce-8c82-00aa004ba90b}']
+
+    // Gets the zone attributes (information in registry other than actual security
+    // policies associated with the zone).  Zone attributes are fixed as:
+    function GetZoneAttributes(dwZone: DWORD;
+      var ZoneAttributes: TZoneAttributes): HResult; stdcall;
+
+    // Sets the zone attributes (information in registry other than actual security
+    // policies associated with the zone).  Zone attributes as above.
+    // Returns S_OK or ??? if failed to write the zone attributes.
+    function SetZoneAttributes(dwZone: DWORD;
+      const ZoneAttributes: TZoneAttributes): HResult; stdcall;
+    function GetZoneCustomPolicy(dwZone: DWORD; const guidKey: TGUID; out pPolicy: Pointer;
+      out cbPolicy: DWORD; urlZoneReg: TUrlZoneReg): HResult; stdcall;
+    function SetZoneCustomPolicy(dwZone: DWORD; const guidKey: TGUID; pPolicy: Pointer;
+      cbPolicy: DWORD; urlZoneReg: TUrlZoneReg): HResult; stdcall;
+    function GetZoneActionPolicy(dwZone, dwAction: DWORD; pPolicy: Pointer;
+      cbPolicy: DWORD; urlZoneReg: TUrlZoneReg): HResult; stdcall;
+    function SetZoneActionPolicy(dwZone, dwAction: DWORD; pPolicy: Pointer;
+      cbPolicy: DWORD; urlZoneReg: TUrlZoneReg): HResult; stdcall;
+    function PromptAction(dwAction: DWORD; hwndParent: HWnd; pwszUrl, pwszText: LPCWSTR;
+      dwPromptFlags: DWORD): HResult; stdcall;
+    function LogAction(dwAction: DWORD; pwszUrl, pwszText: LPCWSTR;
+      dwLogFlags: DWORD): HResult; stdcall;
+    function CreateZoneEnumerator(out dwEnum, dwCount: DWORD;
+      dwFlags: DWORD): HResult; stdcall;
+    function GetZoneAt(dwEnum, dwIndex: DWORD; out dwZone: DWORD): HResult; stdcall;
+    function DestroyZoneEnumerator(dwEnum: DWORD): HResult; stdcall;
+    function CopyTemplatePoliciesToZone(dwTemplate, dwZone, dwReserved: DWORD): HResult; stdcall;
+  end;
+
+// Creates the security manager object. The first argument is the Service provider
+// to allow for delegation
+{$EXTERNALSYM CoInternetCreateSecurityManager}
+function CoInternetCreateSecurityManager(SP: IServiceProvider; var SM: IInternetSecurityManager;
+  dwReserved: DWORD): HResult; stdcall;
+{$EXTERNALSYM CoInternetCreateZoneManager}
+function CoInternetCreateZoneManager(SP: IServiceProvider; var ZM: IInternetZoneManager;
+  dwReserved: DWORD): HResult; stdcall;
+
+
+
+{$ENDIF}
+
+function SHLockShared(Handle: THandle; DWord: DWORD): Pointer; stdcall;
+function SHUnlockShared(Pnt: Pointer): BOOL; stdcall;
+function SHFreeShared(Handle: THandle; DWord: DWORD): Pointer; stdcall;
+function Free(Pidl: PItemIDList): BOOL; stdcall;
+function HtmlHelp(hwndCaller: HWND; pszFile: PChar; uCommand: Integer;
+  dwData: DWORD): HWND; stdcall;
+
+
+implementation
+
+const
+urldll = 'url.dll';
+
+function InetIsOffline; external urldll name 'InetIsOffline';
+
+function MIMEAssociationDialogW; external urldll name 'MIMEAssociationDialogW';
+function MIMEAssociationDialogA; external urldll name 'MIMEAssociationDialogA';
+{$IFDEF UNICODE}
+function MIMEAssociationDialog; external urldll name 'MIMEAssociationDialogW';
+{$ELSE}
+function MIMEAssociationDialog; external urldll name 'MIMEAssociationDialogA';
+{$ENDIF}
+
+function URLAssociationDialogW; external urldll name 'URLAssociationDialogW';
+function URLAssociationDialogA; external urldll name 'URLAssociationDialogA';
+{$IFDEF UNICODE}
+function URLAssociationDialog; external urldll name 'URLAssociationDialogW';
+{$ELSE}
+function URLAssociationDialog; external urldll name 'URLAssociationDialogA';
+{$ENDIF}
+
+function TranslateURLA; external urldll name 'TranslateURLA';
+function TranslateURLW; external urldll name 'TranslateURLW';
+{$IFDEF UNICODE}
+function TranslateURL; external urldll name 'TranslateURLW';
+{$ELSE}
+function TranslateURL; external urldll name 'TranslateURLA';
+{$ENDIF}
+
+
+
+{$IFDEF VER120}
+const
+  UrlMonLib = 'URLMON.DLL';
+function CoInternetGetSession; external UrlMonLib name 'CoInternetGetSession';
+function CoInternetCreateSecurityManager; external UrlMonLib name 'CoInternetCreateSecurityManager';
+function CoInternetCreateZoneManager; external UrlMonLib name 'CoInternetCreateZoneManager';
+{$ENDIF}
+
+function HtmlHelp(hwndCaller: HWND; pszFile: PChar; uCommand: Integer;
+  dwData: DWORD): HWND; stdcall; external 'hhctrl.ocx' name 'HtmlHelpA';
+
+
+function SHLockShared; external 'shell32.dll' index 521;
+function SHUnlockShared; external 'shell32.dll' index 522;
+function SHFreeShared; external 'shell32.dll' index 523;
+function Free; external 'comctl32.dll' index 73;
+
+
+end.
+
+
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/MSHTMLEvents.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/MSHTMLEvents.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/MSHTMLEvents.pas	(revision 541)
@@ -0,0 +1,42161 @@
+{ *****************************************************************************
+  WARNING: This component file was generated using the EventSinkImp utility.
+           The contents of this file will be overwritten everytime EventSinkImp
+           is asked to regenerate this sink component.
+
+  NOTE:    When using this component at the same time with the XXX_TLB.pas in
+           your Delphi projects, make sure you always put the XXX_TLB unit name
+           AFTER this component unit name in the USES clause of the interface
+           section of your unit; otherwise you may get interface conflict
+           errors from the Delphi compiler.
+
+           EventSinkImp is written by Binh Ly (bly@techvanguards.com)
+  *****************************************************************************
+  //Sink Classes//
+  TMSHTMLHTMLElementEvents
+  TMSHTMLHTMLElementEvents2
+  TMSHTMLHTMLLinkElementEvents
+  TMSHTMLHTMLLinkElementEvents2
+  TMSHTMLHTMLFormElementEvents
+  TMSHTMLHTMLFormElementEvents2
+  TMSHTMLHTMLImgEvents
+  TMSHTMLHTMLImgEvents2
+  TMSHTMLHTMLTextContainerEvents
+  TMSHTMLHTMLTextContainerEvents2
+  TMSHTMLHTMLAnchorEvents
+  TMSHTMLHTMLAnchorEvents2
+  TMSHTMLHTMLLabelEvents
+  TMSHTMLHTMLLabelEvents2
+  TMSHTMLHTMLSelectElementEvents
+  TMSHTMLHTMLSelectElementEvents2
+  TMSHTMLHTMLInputTextElementEvents
+  TMSHTMLHTMLInputTextElementEvents2
+  TMSHTMLHTMLOptionButtonElementEvents
+  TMSHTMLHTMLButtonElementEvents
+  TMSHTMLHTMLButtonElementEvents2
+  TMSHTMLHTMLMarqueeElementEvents
+  TMSHTMLHTMLMarqueeElementEvents2
+  TMSHTMLHTMLWindowEvents
+  TMSHTMLHTMLWindowEvents2
+  TMSHTMLHTMLDocumentEvents
+  TMSHTMLHTMLDocumentEvents2
+  TMSHTMLDWebBridgeEvents
+  TMSHTMLHTMLControlElementEvents
+  TMSHTMLHTMLControlElementEvents2
+  TMSHTMLHTMLMapEvents
+  TMSHTMLHTMLMapEvents2
+  TMSHTMLHTMLAreaEvents
+  TMSHTMLHTMLAreaEvents2
+  TMSHTMLHTMLTableEvents
+  TMSHTMLHTMLTableEvents2
+  TMSHTMLHTMLScriptEvents
+  TMSHTMLHTMLScriptEvents2
+  TMSHTMLHTMLObjectElementEvents
+  TMSHTMLHTMLObjectElementEvents2
+  TMSHTMLHTMLFrameSiteEvents
+  TMSHTMLHTMLFrameSiteEvents2
+  TMSHTMLHTMLStyleElementEvents
+  TMSHTMLHTMLStyleElementEvents2
+  TMSHTMLHTMLNamespaceEvents
+  TMSHTMLHTMLInputFileElementEvents
+  TMSHTMLHTMLInputImageEvents
+}
+
+{$IFDEF VER100}
+{$DEFINE D3}
+{$ENDIF}
+
+{$IFDEF CONDITIONALEXPRESSIONS}
+{$WARN SYMBOL_PLATFORM OFF}
+{$ENDIF}
+
+//SinkUnitName//
+unit MSHTMLEvents;
+
+interface
+
+uses
+  Windows, ActiveX, Classes, ComObj, OleCtrls
+  //SinkUses//
+  , StdVCL
+  , MSHTML_EWB
+  ;
+
+type
+  { backward compatibility types }
+{$IFDEF D3}
+  OLE_COLOR = TOleColor;
+{$ENDIF}
+
+  TMSHTMLEventsBaseSink = class(TComponent, IUnknown, IDispatch)
+  protected
+    { IUnknown }
+    function QueryInterface(const IID: TGUID; out Obj): HResult; {$IFNDEF D3} override; {$ENDIF} stdcall;
+    function _AddRef: Integer; stdcall;
+    function _Release: Integer; stdcall;
+
+    { IDispatch }
+    function GetIDsOfNames(const IID: TGUID; Names: Pointer;
+      NameCount, LocaleID: Integer; DispIDs: Pointer): HResult; virtual; stdcall;
+    function GetTypeInfo(Index, LocaleID: Integer; out TypeInfo): HResult; virtual; stdcall;
+    function GetTypeInfoCount(out Count: Integer): HResult; virtual; stdcall;
+    function Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HResult; virtual; stdcall;
+  protected
+    FCookie: integer;
+    FCP: IConnectionPoint;
+    FSinkIID: TGUID;
+    FSource: IUnknown;
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; virtual; abstract;
+  public
+    destructor Destroy; override;
+    procedure Connect(const ASource: IUnknown);
+    procedure Disconnect;
+    property SinkIID: TGUID read FSinkIID write FSinkIID;
+    property Source: IUnknown read FSource;
+  end;
+
+  //SinkImportsForwards//
+
+  //SinkImports//
+
+  //SinkIntfStart//
+
+  //SinkEventsForwards//
+  THTMLElementEventsonhelpEvent = function(Sender: TObject): WordBool of object;
+  THTMLElementEventsonclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLElementEventsondblclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLElementEventsonkeypressEvent = function(Sender: TObject): WordBool of object;
+  THTMLElementEventsonkeydownEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsonkeyupEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsonmouseoutEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsonmouseoverEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsonmousemoveEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsonmousedownEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsonmouseupEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsonselectstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLElementEventsonfilterchangeEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsondragstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLElementEventsonbeforeupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLElementEventsonafterupdateEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsonerrorupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLElementEventsonrowexitEvent = function(Sender: TObject): WordBool of object;
+  THTMLElementEventsonrowenterEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsondatasetchangedEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsondataavailableEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsondatasetcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsonlosecaptureEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsonpropertychangeEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsonscrollEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsonfocusEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsonblurEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsonresizeEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsondragEvent = function(Sender: TObject): WordBool of object;
+  THTMLElementEventsondragendEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsondragenterEvent = function(Sender: TObject): WordBool of object;
+  THTMLElementEventsondragoverEvent = function(Sender: TObject): WordBool of object;
+  THTMLElementEventsondragleaveEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsondropEvent = function(Sender: TObject): WordBool of object;
+  THTMLElementEventsonbeforecutEvent = function(Sender: TObject): WordBool of object;
+  THTMLElementEventsoncutEvent = function(Sender: TObject): WordBool of object;
+  THTMLElementEventsonbeforecopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLElementEventsoncopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLElementEventsonbeforepasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLElementEventsonpasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLElementEventsoncontextmenuEvent = function(Sender: TObject): WordBool of object;
+  THTMLElementEventsonrowsdeleteEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsonrowsinsertedEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsoncellchangeEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsonreadystatechangeEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsonbeforeeditfocusEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsonlayoutcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsonpageEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsonbeforedeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLElementEventsonbeforeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLElementEventsonmoveEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsoncontrolselectEvent = function(Sender: TObject): WordBool of object;
+  THTMLElementEventsonmovestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLElementEventsonmoveendEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsonresizestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLElementEventsonresizeendEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsonmouseenterEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsonmouseleaveEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsonmousewheelEvent = function(Sender: TObject): WordBool of object;
+  THTMLElementEventsonactivateEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsondeactivateEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsonfocusinEvent = procedure(Sender: TObject) of object;
+  THTMLElementEventsonfocusoutEvent = procedure(Sender: TObject) of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLElementEvents = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp: WordBool; safecall;
+    function Doonclick: WordBool; safecall;
+    function Doondblclick: WordBool; safecall;
+    function Doonkeypress: WordBool; safecall;
+    procedure Doonkeydown; safecall;
+    procedure Doonkeyup; safecall;
+    procedure Doonmouseout; safecall;
+    procedure Doonmouseover; safecall;
+    procedure Doonmousemove; safecall;
+    procedure Doonmousedown; safecall;
+    procedure Doonmouseup; safecall;
+    function Doonselectstart: WordBool; safecall;
+    procedure Doonfilterchange; safecall;
+    function Doondragstart: WordBool; safecall;
+    function Doonbeforeupdate: WordBool; safecall;
+    procedure Doonafterupdate; safecall;
+    function Doonerrorupdate: WordBool; safecall;
+    function Doonrowexit: WordBool; safecall;
+    procedure Doonrowenter; safecall;
+    procedure Doondatasetchanged; safecall;
+    procedure Doondataavailable; safecall;
+    procedure Doondatasetcomplete; safecall;
+    procedure Doonlosecapture; safecall;
+    procedure Doonpropertychange; safecall;
+    procedure Doonscroll; safecall;
+    procedure Doonfocus; safecall;
+    procedure Doonblur; safecall;
+    procedure Doonresize; safecall;
+    function Doondrag: WordBool; safecall;
+    procedure Doondragend; safecall;
+    function Doondragenter: WordBool; safecall;
+    function Doondragover: WordBool; safecall;
+    procedure Doondragleave; safecall;
+    function Doondrop: WordBool; safecall;
+    function Doonbeforecut: WordBool; safecall;
+    function Dooncut: WordBool; safecall;
+    function Doonbeforecopy: WordBool; safecall;
+    function Dooncopy: WordBool; safecall;
+    function Doonbeforepaste: WordBool; safecall;
+    function Doonpaste: WordBool; safecall;
+    function Dooncontextmenu: WordBool; safecall;
+    procedure Doonrowsdelete; safecall;
+    procedure Doonrowsinserted; safecall;
+    procedure Dooncellchange; safecall;
+    procedure Doonreadystatechange; safecall;
+    procedure Doonbeforeeditfocus; safecall;
+    procedure Doonlayoutcomplete; safecall;
+    procedure Doonpage; safecall;
+    function Doonbeforedeactivate: WordBool; safecall;
+    function Doonbeforeactivate: WordBool; safecall;
+    procedure Doonmove; safecall;
+    function Dooncontrolselect: WordBool; safecall;
+    function Doonmovestart: WordBool; safecall;
+    procedure Doonmoveend; safecall;
+    function Doonresizestart: WordBool; safecall;
+    procedure Doonresizeend; safecall;
+    procedure Doonmouseenter; safecall;
+    procedure Doonmouseleave; safecall;
+    function Doonmousewheel: WordBool; safecall;
+    procedure Doonactivate; safecall;
+    procedure Doondeactivate; safecall;
+    procedure Doonfocusin; safecall;
+    procedure Doonfocusout; safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLElementEventsonhelpEvent;
+    Fonclick: THTMLElementEventsonclickEvent;
+    Fondblclick: THTMLElementEventsondblclickEvent;
+    Fonkeypress: THTMLElementEventsonkeypressEvent;
+    Fonkeydown: THTMLElementEventsonkeydownEvent;
+    Fonkeyup: THTMLElementEventsonkeyupEvent;
+    Fonmouseout: THTMLElementEventsonmouseoutEvent;
+    Fonmouseover: THTMLElementEventsonmouseoverEvent;
+    Fonmousemove: THTMLElementEventsonmousemoveEvent;
+    Fonmousedown: THTMLElementEventsonmousedownEvent;
+    Fonmouseup: THTMLElementEventsonmouseupEvent;
+    Fonselectstart: THTMLElementEventsonselectstartEvent;
+    Fonfilterchange: THTMLElementEventsonfilterchangeEvent;
+    Fondragstart: THTMLElementEventsondragstartEvent;
+    Fonbeforeupdate: THTMLElementEventsonbeforeupdateEvent;
+    Fonafterupdate: THTMLElementEventsonafterupdateEvent;
+    Fonerrorupdate: THTMLElementEventsonerrorupdateEvent;
+    Fonrowexit: THTMLElementEventsonrowexitEvent;
+    Fonrowenter: THTMLElementEventsonrowenterEvent;
+    Fondatasetchanged: THTMLElementEventsondatasetchangedEvent;
+    Fondataavailable: THTMLElementEventsondataavailableEvent;
+    Fondatasetcomplete: THTMLElementEventsondatasetcompleteEvent;
+    Fonlosecapture: THTMLElementEventsonlosecaptureEvent;
+    Fonpropertychange: THTMLElementEventsonpropertychangeEvent;
+    Fonscroll: THTMLElementEventsonscrollEvent;
+    Fonfocus: THTMLElementEventsonfocusEvent;
+    Fonblur: THTMLElementEventsonblurEvent;
+    Fonresize: THTMLElementEventsonresizeEvent;
+    Fondrag: THTMLElementEventsondragEvent;
+    Fondragend: THTMLElementEventsondragendEvent;
+    Fondragenter: THTMLElementEventsondragenterEvent;
+    Fondragover: THTMLElementEventsondragoverEvent;
+    Fondragleave: THTMLElementEventsondragleaveEvent;
+    Fondrop: THTMLElementEventsondropEvent;
+    Fonbeforecut: THTMLElementEventsonbeforecutEvent;
+    Foncut: THTMLElementEventsoncutEvent;
+    Fonbeforecopy: THTMLElementEventsonbeforecopyEvent;
+    Foncopy: THTMLElementEventsoncopyEvent;
+    Fonbeforepaste: THTMLElementEventsonbeforepasteEvent;
+    Fonpaste: THTMLElementEventsonpasteEvent;
+    Foncontextmenu: THTMLElementEventsoncontextmenuEvent;
+    Fonrowsdelete: THTMLElementEventsonrowsdeleteEvent;
+    Fonrowsinserted: THTMLElementEventsonrowsinsertedEvent;
+    Foncellchange: THTMLElementEventsoncellchangeEvent;
+    Fonreadystatechange: THTMLElementEventsonreadystatechangeEvent;
+    Fonbeforeeditfocus: THTMLElementEventsonbeforeeditfocusEvent;
+    Fonlayoutcomplete: THTMLElementEventsonlayoutcompleteEvent;
+    Fonpage: THTMLElementEventsonpageEvent;
+    Fonbeforedeactivate: THTMLElementEventsonbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLElementEventsonbeforeactivateEvent;
+    Fonmove: THTMLElementEventsonmoveEvent;
+    Foncontrolselect: THTMLElementEventsoncontrolselectEvent;
+    Fonmovestart: THTMLElementEventsonmovestartEvent;
+    Fonmoveend: THTMLElementEventsonmoveendEvent;
+    Fonresizestart: THTMLElementEventsonresizestartEvent;
+    Fonresizeend: THTMLElementEventsonresizeendEvent;
+    Fonmouseenter: THTMLElementEventsonmouseenterEvent;
+    Fonmouseleave: THTMLElementEventsonmouseleaveEvent;
+    Fonmousewheel: THTMLElementEventsonmousewheelEvent;
+    Fonactivate: THTMLElementEventsonactivateEvent;
+    Fondeactivate: THTMLElementEventsondeactivateEvent;
+    Fonfocusin: THTMLElementEventsonfocusinEvent;
+    Fonfocusout: THTMLElementEventsonfocusoutEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLElementEventsonhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLElementEventsonclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLElementEventsondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLElementEventsonkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLElementEventsonkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLElementEventsonkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLElementEventsonmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLElementEventsonmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLElementEventsonmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLElementEventsonmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLElementEventsonmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLElementEventsonselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLElementEventsonfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLElementEventsondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLElementEventsonbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLElementEventsonafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLElementEventsonerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLElementEventsonrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLElementEventsonrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLElementEventsondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLElementEventsondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLElementEventsondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLElementEventsonlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLElementEventsonpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLElementEventsonscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLElementEventsonfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLElementEventsonblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLElementEventsonresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLElementEventsondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLElementEventsondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLElementEventsondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLElementEventsondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLElementEventsondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLElementEventsondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLElementEventsonbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLElementEventsoncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLElementEventsonbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLElementEventsoncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLElementEventsonbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLElementEventsonpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLElementEventsoncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLElementEventsonrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLElementEventsonrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLElementEventsoncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLElementEventsonreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onbeforeeditfocus: THTMLElementEventsonbeforeeditfocusEvent read Fonbeforeeditfocus write Fonbeforeeditfocus;
+    property onlayoutcomplete: THTMLElementEventsonlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLElementEventsonpageEvent read Fonpage write Fonpage;
+    property onbeforedeactivate: THTMLElementEventsonbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLElementEventsonbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onmove: THTMLElementEventsonmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLElementEventsoncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLElementEventsonmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLElementEventsonmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLElementEventsonresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLElementEventsonresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmouseenter: THTMLElementEventsonmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLElementEventsonmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onmousewheel: THTMLElementEventsonmousewheelEvent read Fonmousewheel write Fonmousewheel;
+    property onactivate: THTMLElementEventsonactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLElementEventsondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onfocusin: THTMLElementEventsonfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLElementEventsonfocusoutEvent read Fonfocusout write Fonfocusout;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLElementEvents2onhelpEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLElementEvents2onclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLElementEvents2ondblclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLElementEvents2onkeypressEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLElementEvents2onkeydownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2onkeyupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2onmouseoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2onmouseoverEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2onmousemoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2onmousedownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2onmouseupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2onselectstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLElementEvents2onfilterchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2ondragstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLElementEvents2onbeforeupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLElementEvents2onafterupdateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2onerrorupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLElementEvents2onrowexitEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLElementEvents2onrowenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2ondatasetchangedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2ondataavailableEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2ondatasetcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2onlosecaptureEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2onpropertychangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2onscrollEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2onfocusEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2onblurEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2onresizeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2ondragEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLElementEvents2ondragendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2ondragenterEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLElementEvents2ondragoverEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLElementEvents2ondragleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2ondropEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLElementEvents2onbeforecutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLElementEvents2oncutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLElementEvents2onbeforecopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLElementEvents2oncopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLElementEvents2onbeforepasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLElementEvents2onpasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLElementEvents2oncontextmenuEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLElementEvents2onrowsdeleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2onrowsinsertedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2oncellchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2onreadystatechangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2onlayoutcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2onpageEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2onmouseenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2onmouseleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2onactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2ondeactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2onbeforedeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLElementEvents2onbeforeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLElementEvents2onfocusinEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2onfocusoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2onmoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2oncontrolselectEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLElementEvents2onmovestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLElementEvents2onmoveendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2onresizestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLElementEvents2onresizeendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLElementEvents2onmousewheelEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLElementEvents2 = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondblclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonkeydown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonkeyup(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseover(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousemove(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousedown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseup(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfilterchange(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonafterupdate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetchanged(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondataavailable(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlosecapture(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpropertychange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonscroll(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocus(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonblur(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonresize(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrag(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragenter(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondragover(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragleave(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrop(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonpaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowsdelete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonrowsinserted(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Dooncellchange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonreadystatechange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlayoutcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpage(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseleave(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonactivate(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondeactivate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfocusin(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocusout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmove(const pEvtObj: IHTMLEventObj); safecall;
+    function Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonmoveend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonresizeend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLElementEvents2onhelpEvent;
+    Fonclick: THTMLElementEvents2onclickEvent;
+    Fondblclick: THTMLElementEvents2ondblclickEvent;
+    Fonkeypress: THTMLElementEvents2onkeypressEvent;
+    Fonkeydown: THTMLElementEvents2onkeydownEvent;
+    Fonkeyup: THTMLElementEvents2onkeyupEvent;
+    Fonmouseout: THTMLElementEvents2onmouseoutEvent;
+    Fonmouseover: THTMLElementEvents2onmouseoverEvent;
+    Fonmousemove: THTMLElementEvents2onmousemoveEvent;
+    Fonmousedown: THTMLElementEvents2onmousedownEvent;
+    Fonmouseup: THTMLElementEvents2onmouseupEvent;
+    Fonselectstart: THTMLElementEvents2onselectstartEvent;
+    Fonfilterchange: THTMLElementEvents2onfilterchangeEvent;
+    Fondragstart: THTMLElementEvents2ondragstartEvent;
+    Fonbeforeupdate: THTMLElementEvents2onbeforeupdateEvent;
+    Fonafterupdate: THTMLElementEvents2onafterupdateEvent;
+    Fonerrorupdate: THTMLElementEvents2onerrorupdateEvent;
+    Fonrowexit: THTMLElementEvents2onrowexitEvent;
+    Fonrowenter: THTMLElementEvents2onrowenterEvent;
+    Fondatasetchanged: THTMLElementEvents2ondatasetchangedEvent;
+    Fondataavailable: THTMLElementEvents2ondataavailableEvent;
+    Fondatasetcomplete: THTMLElementEvents2ondatasetcompleteEvent;
+    Fonlosecapture: THTMLElementEvents2onlosecaptureEvent;
+    Fonpropertychange: THTMLElementEvents2onpropertychangeEvent;
+    Fonscroll: THTMLElementEvents2onscrollEvent;
+    Fonfocus: THTMLElementEvents2onfocusEvent;
+    Fonblur: THTMLElementEvents2onblurEvent;
+    Fonresize: THTMLElementEvents2onresizeEvent;
+    Fondrag: THTMLElementEvents2ondragEvent;
+    Fondragend: THTMLElementEvents2ondragendEvent;
+    Fondragenter: THTMLElementEvents2ondragenterEvent;
+    Fondragover: THTMLElementEvents2ondragoverEvent;
+    Fondragleave: THTMLElementEvents2ondragleaveEvent;
+    Fondrop: THTMLElementEvents2ondropEvent;
+    Fonbeforecut: THTMLElementEvents2onbeforecutEvent;
+    Foncut: THTMLElementEvents2oncutEvent;
+    Fonbeforecopy: THTMLElementEvents2onbeforecopyEvent;
+    Foncopy: THTMLElementEvents2oncopyEvent;
+    Fonbeforepaste: THTMLElementEvents2onbeforepasteEvent;
+    Fonpaste: THTMLElementEvents2onpasteEvent;
+    Foncontextmenu: THTMLElementEvents2oncontextmenuEvent;
+    Fonrowsdelete: THTMLElementEvents2onrowsdeleteEvent;
+    Fonrowsinserted: THTMLElementEvents2onrowsinsertedEvent;
+    Foncellchange: THTMLElementEvents2oncellchangeEvent;
+    Fonreadystatechange: THTMLElementEvents2onreadystatechangeEvent;
+    Fonlayoutcomplete: THTMLElementEvents2onlayoutcompleteEvent;
+    Fonpage: THTMLElementEvents2onpageEvent;
+    Fonmouseenter: THTMLElementEvents2onmouseenterEvent;
+    Fonmouseleave: THTMLElementEvents2onmouseleaveEvent;
+    Fonactivate: THTMLElementEvents2onactivateEvent;
+    Fondeactivate: THTMLElementEvents2ondeactivateEvent;
+    Fonbeforedeactivate: THTMLElementEvents2onbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLElementEvents2onbeforeactivateEvent;
+    Fonfocusin: THTMLElementEvents2onfocusinEvent;
+    Fonfocusout: THTMLElementEvents2onfocusoutEvent;
+    Fonmove: THTMLElementEvents2onmoveEvent;
+    Foncontrolselect: THTMLElementEvents2oncontrolselectEvent;
+    Fonmovestart: THTMLElementEvents2onmovestartEvent;
+    Fonmoveend: THTMLElementEvents2onmoveendEvent;
+    Fonresizestart: THTMLElementEvents2onresizestartEvent;
+    Fonresizeend: THTMLElementEvents2onresizeendEvent;
+    Fonmousewheel: THTMLElementEvents2onmousewheelEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLElementEvents2onhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLElementEvents2onclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLElementEvents2ondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLElementEvents2onkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLElementEvents2onkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLElementEvents2onkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLElementEvents2onmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLElementEvents2onmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLElementEvents2onmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLElementEvents2onmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLElementEvents2onmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLElementEvents2onselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLElementEvents2onfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLElementEvents2ondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLElementEvents2onbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLElementEvents2onafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLElementEvents2onerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLElementEvents2onrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLElementEvents2onrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLElementEvents2ondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLElementEvents2ondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLElementEvents2ondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLElementEvents2onlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLElementEvents2onpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLElementEvents2onscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLElementEvents2onfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLElementEvents2onblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLElementEvents2onresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLElementEvents2ondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLElementEvents2ondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLElementEvents2ondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLElementEvents2ondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLElementEvents2ondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLElementEvents2ondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLElementEvents2onbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLElementEvents2oncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLElementEvents2onbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLElementEvents2oncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLElementEvents2onbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLElementEvents2onpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLElementEvents2oncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLElementEvents2onrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLElementEvents2onrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLElementEvents2oncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLElementEvents2onreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onlayoutcomplete: THTMLElementEvents2onlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLElementEvents2onpageEvent read Fonpage write Fonpage;
+    property onmouseenter: THTMLElementEvents2onmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLElementEvents2onmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onactivate: THTMLElementEvents2onactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLElementEvents2ondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onbeforedeactivate: THTMLElementEvents2onbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLElementEvents2onbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onfocusin: THTMLElementEvents2onfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLElementEvents2onfocusoutEvent read Fonfocusout write Fonfocusout;
+    property onmove: THTMLElementEvents2onmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLElementEvents2oncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLElementEvents2onmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLElementEvents2onmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLElementEvents2onresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLElementEvents2onresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmousewheel: THTMLElementEvents2onmousewheelEvent read Fonmousewheel write Fonmousewheel;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLLinkElementEventsonhelpEvent = function(Sender: TObject): WordBool of object;
+  THTMLLinkElementEventsonclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLLinkElementEventsondblclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLLinkElementEventsonkeypressEvent = function(Sender: TObject): WordBool of object;
+  THTMLLinkElementEventsonkeydownEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsonkeyupEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsonmouseoutEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsonmouseoverEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsonmousemoveEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsonmousedownEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsonmouseupEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsonselectstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLLinkElementEventsonfilterchangeEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsondragstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLLinkElementEventsonbeforeupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLLinkElementEventsonafterupdateEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsonerrorupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLLinkElementEventsonrowexitEvent = function(Sender: TObject): WordBool of object;
+  THTMLLinkElementEventsonrowenterEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsondatasetchangedEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsondataavailableEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsondatasetcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsonlosecaptureEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsonpropertychangeEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsonscrollEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsonfocusEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsonblurEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsonresizeEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsondragEvent = function(Sender: TObject): WordBool of object;
+  THTMLLinkElementEventsondragendEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsondragenterEvent = function(Sender: TObject): WordBool of object;
+  THTMLLinkElementEventsondragoverEvent = function(Sender: TObject): WordBool of object;
+  THTMLLinkElementEventsondragleaveEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsondropEvent = function(Sender: TObject): WordBool of object;
+  THTMLLinkElementEventsonbeforecutEvent = function(Sender: TObject): WordBool of object;
+  THTMLLinkElementEventsoncutEvent = function(Sender: TObject): WordBool of object;
+  THTMLLinkElementEventsonbeforecopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLLinkElementEventsoncopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLLinkElementEventsonbeforepasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLLinkElementEventsonpasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLLinkElementEventsoncontextmenuEvent = function(Sender: TObject): WordBool of object;
+  THTMLLinkElementEventsonrowsdeleteEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsonrowsinsertedEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsoncellchangeEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsonreadystatechangeEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsonbeforeeditfocusEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsonlayoutcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsonpageEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsonbeforedeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLLinkElementEventsonbeforeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLLinkElementEventsonmoveEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsoncontrolselectEvent = function(Sender: TObject): WordBool of object;
+  THTMLLinkElementEventsonmovestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLLinkElementEventsonmoveendEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsonresizestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLLinkElementEventsonresizeendEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsonmouseenterEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsonmouseleaveEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsonmousewheelEvent = function(Sender: TObject): WordBool of object;
+  THTMLLinkElementEventsonactivateEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsondeactivateEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsonfocusinEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsonfocusoutEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsonloadEvent = procedure(Sender: TObject) of object;
+  THTMLLinkElementEventsonerrorEvent = procedure(Sender: TObject) of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLLinkElementEvents = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp: WordBool; safecall;
+    function Doonclick: WordBool; safecall;
+    function Doondblclick: WordBool; safecall;
+    function Doonkeypress: WordBool; safecall;
+    procedure Doonkeydown; safecall;
+    procedure Doonkeyup; safecall;
+    procedure Doonmouseout; safecall;
+    procedure Doonmouseover; safecall;
+    procedure Doonmousemove; safecall;
+    procedure Doonmousedown; safecall;
+    procedure Doonmouseup; safecall;
+    function Doonselectstart: WordBool; safecall;
+    procedure Doonfilterchange; safecall;
+    function Doondragstart: WordBool; safecall;
+    function Doonbeforeupdate: WordBool; safecall;
+    procedure Doonafterupdate; safecall;
+    function Doonerrorupdate: WordBool; safecall;
+    function Doonrowexit: WordBool; safecall;
+    procedure Doonrowenter; safecall;
+    procedure Doondatasetchanged; safecall;
+    procedure Doondataavailable; safecall;
+    procedure Doondatasetcomplete; safecall;
+    procedure Doonlosecapture; safecall;
+    procedure Doonpropertychange; safecall;
+    procedure Doonscroll; safecall;
+    procedure Doonfocus; safecall;
+    procedure Doonblur; safecall;
+    procedure Doonresize; safecall;
+    function Doondrag: WordBool; safecall;
+    procedure Doondragend; safecall;
+    function Doondragenter: WordBool; safecall;
+    function Doondragover: WordBool; safecall;
+    procedure Doondragleave; safecall;
+    function Doondrop: WordBool; safecall;
+    function Doonbeforecut: WordBool; safecall;
+    function Dooncut: WordBool; safecall;
+    function Doonbeforecopy: WordBool; safecall;
+    function Dooncopy: WordBool; safecall;
+    function Doonbeforepaste: WordBool; safecall;
+    function Doonpaste: WordBool; safecall;
+    function Dooncontextmenu: WordBool; safecall;
+    procedure Doonrowsdelete; safecall;
+    procedure Doonrowsinserted; safecall;
+    procedure Dooncellchange; safecall;
+    procedure Doonreadystatechange; safecall;
+    procedure Doonbeforeeditfocus; safecall;
+    procedure Doonlayoutcomplete; safecall;
+    procedure Doonpage; safecall;
+    function Doonbeforedeactivate: WordBool; safecall;
+    function Doonbeforeactivate: WordBool; safecall;
+    procedure Doonmove; safecall;
+    function Dooncontrolselect: WordBool; safecall;
+    function Doonmovestart: WordBool; safecall;
+    procedure Doonmoveend; safecall;
+    function Doonresizestart: WordBool; safecall;
+    procedure Doonresizeend; safecall;
+    procedure Doonmouseenter; safecall;
+    procedure Doonmouseleave; safecall;
+    function Doonmousewheel: WordBool; safecall;
+    procedure Doonactivate; safecall;
+    procedure Doondeactivate; safecall;
+    procedure Doonfocusin; safecall;
+    procedure Doonfocusout; safecall;
+    procedure Doonload; safecall;
+    procedure Doonerror; safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLLinkElementEventsonhelpEvent;
+    Fonclick: THTMLLinkElementEventsonclickEvent;
+    Fondblclick: THTMLLinkElementEventsondblclickEvent;
+    Fonkeypress: THTMLLinkElementEventsonkeypressEvent;
+    Fonkeydown: THTMLLinkElementEventsonkeydownEvent;
+    Fonkeyup: THTMLLinkElementEventsonkeyupEvent;
+    Fonmouseout: THTMLLinkElementEventsonmouseoutEvent;
+    Fonmouseover: THTMLLinkElementEventsonmouseoverEvent;
+    Fonmousemove: THTMLLinkElementEventsonmousemoveEvent;
+    Fonmousedown: THTMLLinkElementEventsonmousedownEvent;
+    Fonmouseup: THTMLLinkElementEventsonmouseupEvent;
+    Fonselectstart: THTMLLinkElementEventsonselectstartEvent;
+    Fonfilterchange: THTMLLinkElementEventsonfilterchangeEvent;
+    Fondragstart: THTMLLinkElementEventsondragstartEvent;
+    Fonbeforeupdate: THTMLLinkElementEventsonbeforeupdateEvent;
+    Fonafterupdate: THTMLLinkElementEventsonafterupdateEvent;
+    Fonerrorupdate: THTMLLinkElementEventsonerrorupdateEvent;
+    Fonrowexit: THTMLLinkElementEventsonrowexitEvent;
+    Fonrowenter: THTMLLinkElementEventsonrowenterEvent;
+    Fondatasetchanged: THTMLLinkElementEventsondatasetchangedEvent;
+    Fondataavailable: THTMLLinkElementEventsondataavailableEvent;
+    Fondatasetcomplete: THTMLLinkElementEventsondatasetcompleteEvent;
+    Fonlosecapture: THTMLLinkElementEventsonlosecaptureEvent;
+    Fonpropertychange: THTMLLinkElementEventsonpropertychangeEvent;
+    Fonscroll: THTMLLinkElementEventsonscrollEvent;
+    Fonfocus: THTMLLinkElementEventsonfocusEvent;
+    Fonblur: THTMLLinkElementEventsonblurEvent;
+    Fonresize: THTMLLinkElementEventsonresizeEvent;
+    Fondrag: THTMLLinkElementEventsondragEvent;
+    Fondragend: THTMLLinkElementEventsondragendEvent;
+    Fondragenter: THTMLLinkElementEventsondragenterEvent;
+    Fondragover: THTMLLinkElementEventsondragoverEvent;
+    Fondragleave: THTMLLinkElementEventsondragleaveEvent;
+    Fondrop: THTMLLinkElementEventsondropEvent;
+    Fonbeforecut: THTMLLinkElementEventsonbeforecutEvent;
+    Foncut: THTMLLinkElementEventsoncutEvent;
+    Fonbeforecopy: THTMLLinkElementEventsonbeforecopyEvent;
+    Foncopy: THTMLLinkElementEventsoncopyEvent;
+    Fonbeforepaste: THTMLLinkElementEventsonbeforepasteEvent;
+    Fonpaste: THTMLLinkElementEventsonpasteEvent;
+    Foncontextmenu: THTMLLinkElementEventsoncontextmenuEvent;
+    Fonrowsdelete: THTMLLinkElementEventsonrowsdeleteEvent;
+    Fonrowsinserted: THTMLLinkElementEventsonrowsinsertedEvent;
+    Foncellchange: THTMLLinkElementEventsoncellchangeEvent;
+    Fonreadystatechange: THTMLLinkElementEventsonreadystatechangeEvent;
+    Fonbeforeeditfocus: THTMLLinkElementEventsonbeforeeditfocusEvent;
+    Fonlayoutcomplete: THTMLLinkElementEventsonlayoutcompleteEvent;
+    Fonpage: THTMLLinkElementEventsonpageEvent;
+    Fonbeforedeactivate: THTMLLinkElementEventsonbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLLinkElementEventsonbeforeactivateEvent;
+    Fonmove: THTMLLinkElementEventsonmoveEvent;
+    Foncontrolselect: THTMLLinkElementEventsoncontrolselectEvent;
+    Fonmovestart: THTMLLinkElementEventsonmovestartEvent;
+    Fonmoveend: THTMLLinkElementEventsonmoveendEvent;
+    Fonresizestart: THTMLLinkElementEventsonresizestartEvent;
+    Fonresizeend: THTMLLinkElementEventsonresizeendEvent;
+    Fonmouseenter: THTMLLinkElementEventsonmouseenterEvent;
+    Fonmouseleave: THTMLLinkElementEventsonmouseleaveEvent;
+    Fonmousewheel: THTMLLinkElementEventsonmousewheelEvent;
+    Fonactivate: THTMLLinkElementEventsonactivateEvent;
+    Fondeactivate: THTMLLinkElementEventsondeactivateEvent;
+    Fonfocusin: THTMLLinkElementEventsonfocusinEvent;
+    Fonfocusout: THTMLLinkElementEventsonfocusoutEvent;
+    Fonload: THTMLLinkElementEventsonloadEvent;
+    Fonerror: THTMLLinkElementEventsonerrorEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLLinkElementEventsonhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLLinkElementEventsonclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLLinkElementEventsondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLLinkElementEventsonkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLLinkElementEventsonkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLLinkElementEventsonkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLLinkElementEventsonmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLLinkElementEventsonmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLLinkElementEventsonmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLLinkElementEventsonmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLLinkElementEventsonmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLLinkElementEventsonselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLLinkElementEventsonfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLLinkElementEventsondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLLinkElementEventsonbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLLinkElementEventsonafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLLinkElementEventsonerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLLinkElementEventsonrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLLinkElementEventsonrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLLinkElementEventsondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLLinkElementEventsondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLLinkElementEventsondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLLinkElementEventsonlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLLinkElementEventsonpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLLinkElementEventsonscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLLinkElementEventsonfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLLinkElementEventsonblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLLinkElementEventsonresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLLinkElementEventsondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLLinkElementEventsondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLLinkElementEventsondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLLinkElementEventsondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLLinkElementEventsondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLLinkElementEventsondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLLinkElementEventsonbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLLinkElementEventsoncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLLinkElementEventsonbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLLinkElementEventsoncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLLinkElementEventsonbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLLinkElementEventsonpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLLinkElementEventsoncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLLinkElementEventsonrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLLinkElementEventsonrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLLinkElementEventsoncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLLinkElementEventsonreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onbeforeeditfocus: THTMLLinkElementEventsonbeforeeditfocusEvent read Fonbeforeeditfocus write Fonbeforeeditfocus;
+    property onlayoutcomplete: THTMLLinkElementEventsonlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLLinkElementEventsonpageEvent read Fonpage write Fonpage;
+    property onbeforedeactivate: THTMLLinkElementEventsonbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLLinkElementEventsonbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onmove: THTMLLinkElementEventsonmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLLinkElementEventsoncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLLinkElementEventsonmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLLinkElementEventsonmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLLinkElementEventsonresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLLinkElementEventsonresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmouseenter: THTMLLinkElementEventsonmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLLinkElementEventsonmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onmousewheel: THTMLLinkElementEventsonmousewheelEvent read Fonmousewheel write Fonmousewheel;
+    property onactivate: THTMLLinkElementEventsonactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLLinkElementEventsondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onfocusin: THTMLLinkElementEventsonfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLLinkElementEventsonfocusoutEvent read Fonfocusout write Fonfocusout;
+    property onload: THTMLLinkElementEventsonloadEvent read Fonload write Fonload;
+    property onerror: THTMLLinkElementEventsonerrorEvent read Fonerror write Fonerror;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLLinkElementEvents2onhelpEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLinkElementEvents2onclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLinkElementEvents2ondblclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLinkElementEvents2onkeypressEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLinkElementEvents2onkeydownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2onkeyupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2onmouseoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2onmouseoverEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2onmousemoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2onmousedownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2onmouseupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2onselectstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLinkElementEvents2onfilterchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2ondragstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLinkElementEvents2onbeforeupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLinkElementEvents2onafterupdateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2onerrorupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLinkElementEvents2onrowexitEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLinkElementEvents2onrowenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2ondatasetchangedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2ondataavailableEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2ondatasetcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2onlosecaptureEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2onpropertychangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2onscrollEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2onfocusEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2onblurEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2onresizeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2ondragEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLinkElementEvents2ondragendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2ondragenterEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLinkElementEvents2ondragoverEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLinkElementEvents2ondragleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2ondropEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLinkElementEvents2onbeforecutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLinkElementEvents2oncutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLinkElementEvents2onbeforecopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLinkElementEvents2oncopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLinkElementEvents2onbeforepasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLinkElementEvents2onpasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLinkElementEvents2oncontextmenuEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLinkElementEvents2onrowsdeleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2onrowsinsertedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2oncellchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2onreadystatechangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2onlayoutcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2onpageEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2onmouseenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2onmouseleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2onactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2ondeactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2onbeforedeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLinkElementEvents2onbeforeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLinkElementEvents2onfocusinEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2onfocusoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2onmoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2oncontrolselectEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLinkElementEvents2onmovestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLinkElementEvents2onmoveendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2onresizestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLinkElementEvents2onresizeendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2onmousewheelEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLinkElementEvents2onloadEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLinkElementEvents2onerrorEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLLinkElementEvents2 = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondblclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonkeydown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonkeyup(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseover(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousemove(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousedown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseup(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfilterchange(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonafterupdate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetchanged(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondataavailable(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlosecapture(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpropertychange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonscroll(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocus(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonblur(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonresize(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrag(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragenter(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondragover(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragleave(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrop(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonpaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowsdelete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonrowsinserted(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Dooncellchange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonreadystatechange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlayoutcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpage(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseleave(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonactivate(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondeactivate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfocusin(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocusout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmove(const pEvtObj: IHTMLEventObj); safecall;
+    function Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonmoveend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonresizeend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonload(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonerror(const pEvtObj: IHTMLEventObj); safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLLinkElementEvents2onhelpEvent;
+    Fonclick: THTMLLinkElementEvents2onclickEvent;
+    Fondblclick: THTMLLinkElementEvents2ondblclickEvent;
+    Fonkeypress: THTMLLinkElementEvents2onkeypressEvent;
+    Fonkeydown: THTMLLinkElementEvents2onkeydownEvent;
+    Fonkeyup: THTMLLinkElementEvents2onkeyupEvent;
+    Fonmouseout: THTMLLinkElementEvents2onmouseoutEvent;
+    Fonmouseover: THTMLLinkElementEvents2onmouseoverEvent;
+    Fonmousemove: THTMLLinkElementEvents2onmousemoveEvent;
+    Fonmousedown: THTMLLinkElementEvents2onmousedownEvent;
+    Fonmouseup: THTMLLinkElementEvents2onmouseupEvent;
+    Fonselectstart: THTMLLinkElementEvents2onselectstartEvent;
+    Fonfilterchange: THTMLLinkElementEvents2onfilterchangeEvent;
+    Fondragstart: THTMLLinkElementEvents2ondragstartEvent;
+    Fonbeforeupdate: THTMLLinkElementEvents2onbeforeupdateEvent;
+    Fonafterupdate: THTMLLinkElementEvents2onafterupdateEvent;
+    Fonerrorupdate: THTMLLinkElementEvents2onerrorupdateEvent;
+    Fonrowexit: THTMLLinkElementEvents2onrowexitEvent;
+    Fonrowenter: THTMLLinkElementEvents2onrowenterEvent;
+    Fondatasetchanged: THTMLLinkElementEvents2ondatasetchangedEvent;
+    Fondataavailable: THTMLLinkElementEvents2ondataavailableEvent;
+    Fondatasetcomplete: THTMLLinkElementEvents2ondatasetcompleteEvent;
+    Fonlosecapture: THTMLLinkElementEvents2onlosecaptureEvent;
+    Fonpropertychange: THTMLLinkElementEvents2onpropertychangeEvent;
+    Fonscroll: THTMLLinkElementEvents2onscrollEvent;
+    Fonfocus: THTMLLinkElementEvents2onfocusEvent;
+    Fonblur: THTMLLinkElementEvents2onblurEvent;
+    Fonresize: THTMLLinkElementEvents2onresizeEvent;
+    Fondrag: THTMLLinkElementEvents2ondragEvent;
+    Fondragend: THTMLLinkElementEvents2ondragendEvent;
+    Fondragenter: THTMLLinkElementEvents2ondragenterEvent;
+    Fondragover: THTMLLinkElementEvents2ondragoverEvent;
+    Fondragleave: THTMLLinkElementEvents2ondragleaveEvent;
+    Fondrop: THTMLLinkElementEvents2ondropEvent;
+    Fonbeforecut: THTMLLinkElementEvents2onbeforecutEvent;
+    Foncut: THTMLLinkElementEvents2oncutEvent;
+    Fonbeforecopy: THTMLLinkElementEvents2onbeforecopyEvent;
+    Foncopy: THTMLLinkElementEvents2oncopyEvent;
+    Fonbeforepaste: THTMLLinkElementEvents2onbeforepasteEvent;
+    Fonpaste: THTMLLinkElementEvents2onpasteEvent;
+    Foncontextmenu: THTMLLinkElementEvents2oncontextmenuEvent;
+    Fonrowsdelete: THTMLLinkElementEvents2onrowsdeleteEvent;
+    Fonrowsinserted: THTMLLinkElementEvents2onrowsinsertedEvent;
+    Foncellchange: THTMLLinkElementEvents2oncellchangeEvent;
+    Fonreadystatechange: THTMLLinkElementEvents2onreadystatechangeEvent;
+    Fonlayoutcomplete: THTMLLinkElementEvents2onlayoutcompleteEvent;
+    Fonpage: THTMLLinkElementEvents2onpageEvent;
+    Fonmouseenter: THTMLLinkElementEvents2onmouseenterEvent;
+    Fonmouseleave: THTMLLinkElementEvents2onmouseleaveEvent;
+    Fonactivate: THTMLLinkElementEvents2onactivateEvent;
+    Fondeactivate: THTMLLinkElementEvents2ondeactivateEvent;
+    Fonbeforedeactivate: THTMLLinkElementEvents2onbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLLinkElementEvents2onbeforeactivateEvent;
+    Fonfocusin: THTMLLinkElementEvents2onfocusinEvent;
+    Fonfocusout: THTMLLinkElementEvents2onfocusoutEvent;
+    Fonmove: THTMLLinkElementEvents2onmoveEvent;
+    Foncontrolselect: THTMLLinkElementEvents2oncontrolselectEvent;
+    Fonmovestart: THTMLLinkElementEvents2onmovestartEvent;
+    Fonmoveend: THTMLLinkElementEvents2onmoveendEvent;
+    Fonresizestart: THTMLLinkElementEvents2onresizestartEvent;
+    Fonresizeend: THTMLLinkElementEvents2onresizeendEvent;
+    Fonmousewheel: THTMLLinkElementEvents2onmousewheelEvent;
+    Fonload: THTMLLinkElementEvents2onloadEvent;
+    Fonerror: THTMLLinkElementEvents2onerrorEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLLinkElementEvents2onhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLLinkElementEvents2onclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLLinkElementEvents2ondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLLinkElementEvents2onkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLLinkElementEvents2onkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLLinkElementEvents2onkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLLinkElementEvents2onmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLLinkElementEvents2onmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLLinkElementEvents2onmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLLinkElementEvents2onmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLLinkElementEvents2onmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLLinkElementEvents2onselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLLinkElementEvents2onfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLLinkElementEvents2ondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLLinkElementEvents2onbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLLinkElementEvents2onafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLLinkElementEvents2onerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLLinkElementEvents2onrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLLinkElementEvents2onrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLLinkElementEvents2ondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLLinkElementEvents2ondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLLinkElementEvents2ondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLLinkElementEvents2onlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLLinkElementEvents2onpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLLinkElementEvents2onscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLLinkElementEvents2onfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLLinkElementEvents2onblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLLinkElementEvents2onresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLLinkElementEvents2ondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLLinkElementEvents2ondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLLinkElementEvents2ondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLLinkElementEvents2ondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLLinkElementEvents2ondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLLinkElementEvents2ondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLLinkElementEvents2onbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLLinkElementEvents2oncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLLinkElementEvents2onbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLLinkElementEvents2oncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLLinkElementEvents2onbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLLinkElementEvents2onpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLLinkElementEvents2oncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLLinkElementEvents2onrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLLinkElementEvents2onrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLLinkElementEvents2oncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLLinkElementEvents2onreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onlayoutcomplete: THTMLLinkElementEvents2onlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLLinkElementEvents2onpageEvent read Fonpage write Fonpage;
+    property onmouseenter: THTMLLinkElementEvents2onmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLLinkElementEvents2onmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onactivate: THTMLLinkElementEvents2onactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLLinkElementEvents2ondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onbeforedeactivate: THTMLLinkElementEvents2onbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLLinkElementEvents2onbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onfocusin: THTMLLinkElementEvents2onfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLLinkElementEvents2onfocusoutEvent read Fonfocusout write Fonfocusout;
+    property onmove: THTMLLinkElementEvents2onmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLLinkElementEvents2oncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLLinkElementEvents2onmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLLinkElementEvents2onmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLLinkElementEvents2onresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLLinkElementEvents2onresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmousewheel: THTMLLinkElementEvents2onmousewheelEvent read Fonmousewheel write Fonmousewheel;
+    property onload: THTMLLinkElementEvents2onloadEvent read Fonload write Fonload;
+    property onerror: THTMLLinkElementEvents2onerrorEvent read Fonerror write Fonerror;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLFormElementEventsonhelpEvent = function(Sender: TObject): WordBool of object;
+  THTMLFormElementEventsonclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLFormElementEventsondblclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLFormElementEventsonkeypressEvent = function(Sender: TObject): WordBool of object;
+  THTMLFormElementEventsonkeydownEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsonkeyupEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsonmouseoutEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsonmouseoverEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsonmousemoveEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsonmousedownEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsonmouseupEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsonselectstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLFormElementEventsonfilterchangeEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsondragstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLFormElementEventsonbeforeupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLFormElementEventsonafterupdateEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsonerrorupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLFormElementEventsonrowexitEvent = function(Sender: TObject): WordBool of object;
+  THTMLFormElementEventsonrowenterEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsondatasetchangedEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsondataavailableEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsondatasetcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsonlosecaptureEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsonpropertychangeEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsonscrollEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsonfocusEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsonblurEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsonresizeEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsondragEvent = function(Sender: TObject): WordBool of object;
+  THTMLFormElementEventsondragendEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsondragenterEvent = function(Sender: TObject): WordBool of object;
+  THTMLFormElementEventsondragoverEvent = function(Sender: TObject): WordBool of object;
+  THTMLFormElementEventsondragleaveEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsondropEvent = function(Sender: TObject): WordBool of object;
+  THTMLFormElementEventsonbeforecutEvent = function(Sender: TObject): WordBool of object;
+  THTMLFormElementEventsoncutEvent = function(Sender: TObject): WordBool of object;
+  THTMLFormElementEventsonbeforecopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLFormElementEventsoncopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLFormElementEventsonbeforepasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLFormElementEventsonpasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLFormElementEventsoncontextmenuEvent = function(Sender: TObject): WordBool of object;
+  THTMLFormElementEventsonrowsdeleteEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsonrowsinsertedEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsoncellchangeEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsonreadystatechangeEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsonbeforeeditfocusEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsonlayoutcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsonpageEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsonbeforedeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLFormElementEventsonbeforeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLFormElementEventsonmoveEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsoncontrolselectEvent = function(Sender: TObject): WordBool of object;
+  THTMLFormElementEventsonmovestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLFormElementEventsonmoveendEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsonresizestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLFormElementEventsonresizeendEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsonmouseenterEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsonmouseleaveEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsonmousewheelEvent = function(Sender: TObject): WordBool of object;
+  THTMLFormElementEventsonactivateEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsondeactivateEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsonfocusinEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsonfocusoutEvent = procedure(Sender: TObject) of object;
+  THTMLFormElementEventsonsubmitEvent = function(Sender: TObject): WordBool of object;
+  THTMLFormElementEventsonresetEvent = function(Sender: TObject): WordBool of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLFormElementEvents = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp: WordBool; safecall;
+    function Doonclick: WordBool; safecall;
+    function Doondblclick: WordBool; safecall;
+    function Doonkeypress: WordBool; safecall;
+    procedure Doonkeydown; safecall;
+    procedure Doonkeyup; safecall;
+    procedure Doonmouseout; safecall;
+    procedure Doonmouseover; safecall;
+    procedure Doonmousemove; safecall;
+    procedure Doonmousedown; safecall;
+    procedure Doonmouseup; safecall;
+    function Doonselectstart: WordBool; safecall;
+    procedure Doonfilterchange; safecall;
+    function Doondragstart: WordBool; safecall;
+    function Doonbeforeupdate: WordBool; safecall;
+    procedure Doonafterupdate; safecall;
+    function Doonerrorupdate: WordBool; safecall;
+    function Doonrowexit: WordBool; safecall;
+    procedure Doonrowenter; safecall;
+    procedure Doondatasetchanged; safecall;
+    procedure Doondataavailable; safecall;
+    procedure Doondatasetcomplete; safecall;
+    procedure Doonlosecapture; safecall;
+    procedure Doonpropertychange; safecall;
+    procedure Doonscroll; safecall;
+    procedure Doonfocus; safecall;
+    procedure Doonblur; safecall;
+    procedure Doonresize; safecall;
+    function Doondrag: WordBool; safecall;
+    procedure Doondragend; safecall;
+    function Doondragenter: WordBool; safecall;
+    function Doondragover: WordBool; safecall;
+    procedure Doondragleave; safecall;
+    function Doondrop: WordBool; safecall;
+    function Doonbeforecut: WordBool; safecall;
+    function Dooncut: WordBool; safecall;
+    function Doonbeforecopy: WordBool; safecall;
+    function Dooncopy: WordBool; safecall;
+    function Doonbeforepaste: WordBool; safecall;
+    function Doonpaste: WordBool; safecall;
+    function Dooncontextmenu: WordBool; safecall;
+    procedure Doonrowsdelete; safecall;
+    procedure Doonrowsinserted; safecall;
+    procedure Dooncellchange; safecall;
+    procedure Doonreadystatechange; safecall;
+    procedure Doonbeforeeditfocus; safecall;
+    procedure Doonlayoutcomplete; safecall;
+    procedure Doonpage; safecall;
+    function Doonbeforedeactivate: WordBool; safecall;
+    function Doonbeforeactivate: WordBool; safecall;
+    procedure Doonmove; safecall;
+    function Dooncontrolselect: WordBool; safecall;
+    function Doonmovestart: WordBool; safecall;
+    procedure Doonmoveend; safecall;
+    function Doonresizestart: WordBool; safecall;
+    procedure Doonresizeend; safecall;
+    procedure Doonmouseenter; safecall;
+    procedure Doonmouseleave; safecall;
+    function Doonmousewheel: WordBool; safecall;
+    procedure Doonactivate; safecall;
+    procedure Doondeactivate; safecall;
+    procedure Doonfocusin; safecall;
+    procedure Doonfocusout; safecall;
+    function Doonsubmit: WordBool; safecall;
+    function Doonreset: WordBool; safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLFormElementEventsonhelpEvent;
+    Fonclick: THTMLFormElementEventsonclickEvent;
+    Fondblclick: THTMLFormElementEventsondblclickEvent;
+    Fonkeypress: THTMLFormElementEventsonkeypressEvent;
+    Fonkeydown: THTMLFormElementEventsonkeydownEvent;
+    Fonkeyup: THTMLFormElementEventsonkeyupEvent;
+    Fonmouseout: THTMLFormElementEventsonmouseoutEvent;
+    Fonmouseover: THTMLFormElementEventsonmouseoverEvent;
+    Fonmousemove: THTMLFormElementEventsonmousemoveEvent;
+    Fonmousedown: THTMLFormElementEventsonmousedownEvent;
+    Fonmouseup: THTMLFormElementEventsonmouseupEvent;
+    Fonselectstart: THTMLFormElementEventsonselectstartEvent;
+    Fonfilterchange: THTMLFormElementEventsonfilterchangeEvent;
+    Fondragstart: THTMLFormElementEventsondragstartEvent;
+    Fonbeforeupdate: THTMLFormElementEventsonbeforeupdateEvent;
+    Fonafterupdate: THTMLFormElementEventsonafterupdateEvent;
+    Fonerrorupdate: THTMLFormElementEventsonerrorupdateEvent;
+    Fonrowexit: THTMLFormElementEventsonrowexitEvent;
+    Fonrowenter: THTMLFormElementEventsonrowenterEvent;
+    Fondatasetchanged: THTMLFormElementEventsondatasetchangedEvent;
+    Fondataavailable: THTMLFormElementEventsondataavailableEvent;
+    Fondatasetcomplete: THTMLFormElementEventsondatasetcompleteEvent;
+    Fonlosecapture: THTMLFormElementEventsonlosecaptureEvent;
+    Fonpropertychange: THTMLFormElementEventsonpropertychangeEvent;
+    Fonscroll: THTMLFormElementEventsonscrollEvent;
+    Fonfocus: THTMLFormElementEventsonfocusEvent;
+    Fonblur: THTMLFormElementEventsonblurEvent;
+    Fonresize: THTMLFormElementEventsonresizeEvent;
+    Fondrag: THTMLFormElementEventsondragEvent;
+    Fondragend: THTMLFormElementEventsondragendEvent;
+    Fondragenter: THTMLFormElementEventsondragenterEvent;
+    Fondragover: THTMLFormElementEventsondragoverEvent;
+    Fondragleave: THTMLFormElementEventsondragleaveEvent;
+    Fondrop: THTMLFormElementEventsondropEvent;
+    Fonbeforecut: THTMLFormElementEventsonbeforecutEvent;
+    Foncut: THTMLFormElementEventsoncutEvent;
+    Fonbeforecopy: THTMLFormElementEventsonbeforecopyEvent;
+    Foncopy: THTMLFormElementEventsoncopyEvent;
+    Fonbeforepaste: THTMLFormElementEventsonbeforepasteEvent;
+    Fonpaste: THTMLFormElementEventsonpasteEvent;
+    Foncontextmenu: THTMLFormElementEventsoncontextmenuEvent;
+    Fonrowsdelete: THTMLFormElementEventsonrowsdeleteEvent;
+    Fonrowsinserted: THTMLFormElementEventsonrowsinsertedEvent;
+    Foncellchange: THTMLFormElementEventsoncellchangeEvent;
+    Fonreadystatechange: THTMLFormElementEventsonreadystatechangeEvent;
+    Fonbeforeeditfocus: THTMLFormElementEventsonbeforeeditfocusEvent;
+    Fonlayoutcomplete: THTMLFormElementEventsonlayoutcompleteEvent;
+    Fonpage: THTMLFormElementEventsonpageEvent;
+    Fonbeforedeactivate: THTMLFormElementEventsonbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLFormElementEventsonbeforeactivateEvent;
+    Fonmove: THTMLFormElementEventsonmoveEvent;
+    Foncontrolselect: THTMLFormElementEventsoncontrolselectEvent;
+    Fonmovestart: THTMLFormElementEventsonmovestartEvent;
+    Fonmoveend: THTMLFormElementEventsonmoveendEvent;
+    Fonresizestart: THTMLFormElementEventsonresizestartEvent;
+    Fonresizeend: THTMLFormElementEventsonresizeendEvent;
+    Fonmouseenter: THTMLFormElementEventsonmouseenterEvent;
+    Fonmouseleave: THTMLFormElementEventsonmouseleaveEvent;
+    Fonmousewheel: THTMLFormElementEventsonmousewheelEvent;
+    Fonactivate: THTMLFormElementEventsonactivateEvent;
+    Fondeactivate: THTMLFormElementEventsondeactivateEvent;
+    Fonfocusin: THTMLFormElementEventsonfocusinEvent;
+    Fonfocusout: THTMLFormElementEventsonfocusoutEvent;
+    Fonsubmit: THTMLFormElementEventsonsubmitEvent;
+    Fonreset: THTMLFormElementEventsonresetEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLFormElementEventsonhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLFormElementEventsonclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLFormElementEventsondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLFormElementEventsonkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLFormElementEventsonkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLFormElementEventsonkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLFormElementEventsonmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLFormElementEventsonmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLFormElementEventsonmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLFormElementEventsonmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLFormElementEventsonmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLFormElementEventsonselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLFormElementEventsonfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLFormElementEventsondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLFormElementEventsonbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLFormElementEventsonafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLFormElementEventsonerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLFormElementEventsonrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLFormElementEventsonrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLFormElementEventsondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLFormElementEventsondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLFormElementEventsondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLFormElementEventsonlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLFormElementEventsonpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLFormElementEventsonscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLFormElementEventsonfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLFormElementEventsonblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLFormElementEventsonresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLFormElementEventsondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLFormElementEventsondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLFormElementEventsondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLFormElementEventsondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLFormElementEventsondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLFormElementEventsondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLFormElementEventsonbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLFormElementEventsoncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLFormElementEventsonbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLFormElementEventsoncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLFormElementEventsonbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLFormElementEventsonpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLFormElementEventsoncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLFormElementEventsonrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLFormElementEventsonrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLFormElementEventsoncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLFormElementEventsonreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onbeforeeditfocus: THTMLFormElementEventsonbeforeeditfocusEvent read Fonbeforeeditfocus write Fonbeforeeditfocus;
+    property onlayoutcomplete: THTMLFormElementEventsonlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLFormElementEventsonpageEvent read Fonpage write Fonpage;
+    property onbeforedeactivate: THTMLFormElementEventsonbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLFormElementEventsonbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onmove: THTMLFormElementEventsonmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLFormElementEventsoncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLFormElementEventsonmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLFormElementEventsonmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLFormElementEventsonresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLFormElementEventsonresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmouseenter: THTMLFormElementEventsonmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLFormElementEventsonmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onmousewheel: THTMLFormElementEventsonmousewheelEvent read Fonmousewheel write Fonmousewheel;
+    property onactivate: THTMLFormElementEventsonactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLFormElementEventsondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onfocusin: THTMLFormElementEventsonfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLFormElementEventsonfocusoutEvent read Fonfocusout write Fonfocusout;
+    property onsubmit: THTMLFormElementEventsonsubmitEvent read Fonsubmit write Fonsubmit;
+    property onreset: THTMLFormElementEventsonresetEvent read Fonreset write Fonreset;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLFormElementEvents2onhelpEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFormElementEvents2onclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFormElementEvents2ondblclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFormElementEvents2onkeypressEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFormElementEvents2onkeydownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2onkeyupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2onmouseoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2onmouseoverEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2onmousemoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2onmousedownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2onmouseupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2onselectstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFormElementEvents2onfilterchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2ondragstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFormElementEvents2onbeforeupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFormElementEvents2onafterupdateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2onerrorupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFormElementEvents2onrowexitEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFormElementEvents2onrowenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2ondatasetchangedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2ondataavailableEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2ondatasetcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2onlosecaptureEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2onpropertychangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2onscrollEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2onfocusEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2onblurEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2onresizeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2ondragEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFormElementEvents2ondragendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2ondragenterEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFormElementEvents2ondragoverEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFormElementEvents2ondragleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2ondropEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFormElementEvents2onbeforecutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFormElementEvents2oncutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFormElementEvents2onbeforecopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFormElementEvents2oncopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFormElementEvents2onbeforepasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFormElementEvents2onpasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFormElementEvents2oncontextmenuEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFormElementEvents2onrowsdeleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2onrowsinsertedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2oncellchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2onreadystatechangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2onlayoutcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2onpageEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2onmouseenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2onmouseleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2onactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2ondeactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2onbeforedeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFormElementEvents2onbeforeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFormElementEvents2onfocusinEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2onfocusoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2onmoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2oncontrolselectEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFormElementEvents2onmovestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFormElementEvents2onmoveendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2onresizestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFormElementEvents2onresizeendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFormElementEvents2onmousewheelEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFormElementEvents2onsubmitEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFormElementEvents2onresetEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLFormElementEvents2 = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondblclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonkeydown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonkeyup(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseover(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousemove(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousedown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseup(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfilterchange(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonafterupdate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetchanged(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondataavailable(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlosecapture(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpropertychange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonscroll(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocus(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonblur(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonresize(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrag(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragenter(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondragover(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragleave(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrop(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonpaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowsdelete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonrowsinserted(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Dooncellchange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonreadystatechange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlayoutcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpage(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseleave(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonactivate(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondeactivate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfocusin(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocusout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmove(const pEvtObj: IHTMLEventObj); safecall;
+    function Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonmoveend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonresizeend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonsubmit(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonreset(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLFormElementEvents2onhelpEvent;
+    Fonclick: THTMLFormElementEvents2onclickEvent;
+    Fondblclick: THTMLFormElementEvents2ondblclickEvent;
+    Fonkeypress: THTMLFormElementEvents2onkeypressEvent;
+    Fonkeydown: THTMLFormElementEvents2onkeydownEvent;
+    Fonkeyup: THTMLFormElementEvents2onkeyupEvent;
+    Fonmouseout: THTMLFormElementEvents2onmouseoutEvent;
+    Fonmouseover: THTMLFormElementEvents2onmouseoverEvent;
+    Fonmousemove: THTMLFormElementEvents2onmousemoveEvent;
+    Fonmousedown: THTMLFormElementEvents2onmousedownEvent;
+    Fonmouseup: THTMLFormElementEvents2onmouseupEvent;
+    Fonselectstart: THTMLFormElementEvents2onselectstartEvent;
+    Fonfilterchange: THTMLFormElementEvents2onfilterchangeEvent;
+    Fondragstart: THTMLFormElementEvents2ondragstartEvent;
+    Fonbeforeupdate: THTMLFormElementEvents2onbeforeupdateEvent;
+    Fonafterupdate: THTMLFormElementEvents2onafterupdateEvent;
+    Fonerrorupdate: THTMLFormElementEvents2onerrorupdateEvent;
+    Fonrowexit: THTMLFormElementEvents2onrowexitEvent;
+    Fonrowenter: THTMLFormElementEvents2onrowenterEvent;
+    Fondatasetchanged: THTMLFormElementEvents2ondatasetchangedEvent;
+    Fondataavailable: THTMLFormElementEvents2ondataavailableEvent;
+    Fondatasetcomplete: THTMLFormElementEvents2ondatasetcompleteEvent;
+    Fonlosecapture: THTMLFormElementEvents2onlosecaptureEvent;
+    Fonpropertychange: THTMLFormElementEvents2onpropertychangeEvent;
+    Fonscroll: THTMLFormElementEvents2onscrollEvent;
+    Fonfocus: THTMLFormElementEvents2onfocusEvent;
+    Fonblur: THTMLFormElementEvents2onblurEvent;
+    Fonresize: THTMLFormElementEvents2onresizeEvent;
+    Fondrag: THTMLFormElementEvents2ondragEvent;
+    Fondragend: THTMLFormElementEvents2ondragendEvent;
+    Fondragenter: THTMLFormElementEvents2ondragenterEvent;
+    Fondragover: THTMLFormElementEvents2ondragoverEvent;
+    Fondragleave: THTMLFormElementEvents2ondragleaveEvent;
+    Fondrop: THTMLFormElementEvents2ondropEvent;
+    Fonbeforecut: THTMLFormElementEvents2onbeforecutEvent;
+    Foncut: THTMLFormElementEvents2oncutEvent;
+    Fonbeforecopy: THTMLFormElementEvents2onbeforecopyEvent;
+    Foncopy: THTMLFormElementEvents2oncopyEvent;
+    Fonbeforepaste: THTMLFormElementEvents2onbeforepasteEvent;
+    Fonpaste: THTMLFormElementEvents2onpasteEvent;
+    Foncontextmenu: THTMLFormElementEvents2oncontextmenuEvent;
+    Fonrowsdelete: THTMLFormElementEvents2onrowsdeleteEvent;
+    Fonrowsinserted: THTMLFormElementEvents2onrowsinsertedEvent;
+    Foncellchange: THTMLFormElementEvents2oncellchangeEvent;
+    Fonreadystatechange: THTMLFormElementEvents2onreadystatechangeEvent;
+    Fonlayoutcomplete: THTMLFormElementEvents2onlayoutcompleteEvent;
+    Fonpage: THTMLFormElementEvents2onpageEvent;
+    Fonmouseenter: THTMLFormElementEvents2onmouseenterEvent;
+    Fonmouseleave: THTMLFormElementEvents2onmouseleaveEvent;
+    Fonactivate: THTMLFormElementEvents2onactivateEvent;
+    Fondeactivate: THTMLFormElementEvents2ondeactivateEvent;
+    Fonbeforedeactivate: THTMLFormElementEvents2onbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLFormElementEvents2onbeforeactivateEvent;
+    Fonfocusin: THTMLFormElementEvents2onfocusinEvent;
+    Fonfocusout: THTMLFormElementEvents2onfocusoutEvent;
+    Fonmove: THTMLFormElementEvents2onmoveEvent;
+    Foncontrolselect: THTMLFormElementEvents2oncontrolselectEvent;
+    Fonmovestart: THTMLFormElementEvents2onmovestartEvent;
+    Fonmoveend: THTMLFormElementEvents2onmoveendEvent;
+    Fonresizestart: THTMLFormElementEvents2onresizestartEvent;
+    Fonresizeend: THTMLFormElementEvents2onresizeendEvent;
+    Fonmousewheel: THTMLFormElementEvents2onmousewheelEvent;
+    Fonsubmit: THTMLFormElementEvents2onsubmitEvent;
+    Fonreset: THTMLFormElementEvents2onresetEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLFormElementEvents2onhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLFormElementEvents2onclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLFormElementEvents2ondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLFormElementEvents2onkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLFormElementEvents2onkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLFormElementEvents2onkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLFormElementEvents2onmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLFormElementEvents2onmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLFormElementEvents2onmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLFormElementEvents2onmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLFormElementEvents2onmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLFormElementEvents2onselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLFormElementEvents2onfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLFormElementEvents2ondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLFormElementEvents2onbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLFormElementEvents2onafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLFormElementEvents2onerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLFormElementEvents2onrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLFormElementEvents2onrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLFormElementEvents2ondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLFormElementEvents2ondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLFormElementEvents2ondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLFormElementEvents2onlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLFormElementEvents2onpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLFormElementEvents2onscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLFormElementEvents2onfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLFormElementEvents2onblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLFormElementEvents2onresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLFormElementEvents2ondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLFormElementEvents2ondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLFormElementEvents2ondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLFormElementEvents2ondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLFormElementEvents2ondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLFormElementEvents2ondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLFormElementEvents2onbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLFormElementEvents2oncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLFormElementEvents2onbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLFormElementEvents2oncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLFormElementEvents2onbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLFormElementEvents2onpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLFormElementEvents2oncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLFormElementEvents2onrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLFormElementEvents2onrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLFormElementEvents2oncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLFormElementEvents2onreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onlayoutcomplete: THTMLFormElementEvents2onlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLFormElementEvents2onpageEvent read Fonpage write Fonpage;
+    property onmouseenter: THTMLFormElementEvents2onmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLFormElementEvents2onmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onactivate: THTMLFormElementEvents2onactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLFormElementEvents2ondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onbeforedeactivate: THTMLFormElementEvents2onbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLFormElementEvents2onbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onfocusin: THTMLFormElementEvents2onfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLFormElementEvents2onfocusoutEvent read Fonfocusout write Fonfocusout;
+    property onmove: THTMLFormElementEvents2onmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLFormElementEvents2oncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLFormElementEvents2onmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLFormElementEvents2onmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLFormElementEvents2onresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLFormElementEvents2onresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmousewheel: THTMLFormElementEvents2onmousewheelEvent read Fonmousewheel write Fonmousewheel;
+    property onsubmit: THTMLFormElementEvents2onsubmitEvent read Fonsubmit write Fonsubmit;
+    property onreset: THTMLFormElementEvents2onresetEvent read Fonreset write Fonreset;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLImgEventsonhelpEvent = function(Sender: TObject): WordBool of object;
+  THTMLImgEventsonclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLImgEventsondblclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLImgEventsonkeypressEvent = function(Sender: TObject): WordBool of object;
+  THTMLImgEventsonkeydownEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsonkeyupEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsonmouseoutEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsonmouseoverEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsonmousemoveEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsonmousedownEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsonmouseupEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsonselectstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLImgEventsonfilterchangeEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsondragstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLImgEventsonbeforeupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLImgEventsonafterupdateEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsonerrorupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLImgEventsonrowexitEvent = function(Sender: TObject): WordBool of object;
+  THTMLImgEventsonrowenterEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsondatasetchangedEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsondataavailableEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsondatasetcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsonlosecaptureEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsonpropertychangeEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsonscrollEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsonfocusEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsonblurEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsonresizeEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsondragEvent = function(Sender: TObject): WordBool of object;
+  THTMLImgEventsondragendEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsondragenterEvent = function(Sender: TObject): WordBool of object;
+  THTMLImgEventsondragoverEvent = function(Sender: TObject): WordBool of object;
+  THTMLImgEventsondragleaveEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsondropEvent = function(Sender: TObject): WordBool of object;
+  THTMLImgEventsonbeforecutEvent = function(Sender: TObject): WordBool of object;
+  THTMLImgEventsoncutEvent = function(Sender: TObject): WordBool of object;
+  THTMLImgEventsonbeforecopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLImgEventsoncopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLImgEventsonbeforepasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLImgEventsonpasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLImgEventsoncontextmenuEvent = function(Sender: TObject): WordBool of object;
+  THTMLImgEventsonrowsdeleteEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsonrowsinsertedEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsoncellchangeEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsonreadystatechangeEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsonbeforeeditfocusEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsonlayoutcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsonpageEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsonbeforedeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLImgEventsonbeforeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLImgEventsonmoveEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsoncontrolselectEvent = function(Sender: TObject): WordBool of object;
+  THTMLImgEventsonmovestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLImgEventsonmoveendEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsonresizestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLImgEventsonresizeendEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsonmouseenterEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsonmouseleaveEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsonmousewheelEvent = function(Sender: TObject): WordBool of object;
+  THTMLImgEventsonactivateEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsondeactivateEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsonfocusinEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsonfocusoutEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsonloadEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsonerrorEvent = procedure(Sender: TObject) of object;
+  THTMLImgEventsonabortEvent = procedure(Sender: TObject) of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLImgEvents = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp: WordBool; safecall;
+    function Doonclick: WordBool; safecall;
+    function Doondblclick: WordBool; safecall;
+    function Doonkeypress: WordBool; safecall;
+    procedure Doonkeydown; safecall;
+    procedure Doonkeyup; safecall;
+    procedure Doonmouseout; safecall;
+    procedure Doonmouseover; safecall;
+    procedure Doonmousemove; safecall;
+    procedure Doonmousedown; safecall;
+    procedure Doonmouseup; safecall;
+    function Doonselectstart: WordBool; safecall;
+    procedure Doonfilterchange; safecall;
+    function Doondragstart: WordBool; safecall;
+    function Doonbeforeupdate: WordBool; safecall;
+    procedure Doonafterupdate; safecall;
+    function Doonerrorupdate: WordBool; safecall;
+    function Doonrowexit: WordBool; safecall;
+    procedure Doonrowenter; safecall;
+    procedure Doondatasetchanged; safecall;
+    procedure Doondataavailable; safecall;
+    procedure Doondatasetcomplete; safecall;
+    procedure Doonlosecapture; safecall;
+    procedure Doonpropertychange; safecall;
+    procedure Doonscroll; safecall;
+    procedure Doonfocus; safecall;
+    procedure Doonblur; safecall;
+    procedure Doonresize; safecall;
+    function Doondrag: WordBool; safecall;
+    procedure Doondragend; safecall;
+    function Doondragenter: WordBool; safecall;
+    function Doondragover: WordBool; safecall;
+    procedure Doondragleave; safecall;
+    function Doondrop: WordBool; safecall;
+    function Doonbeforecut: WordBool; safecall;
+    function Dooncut: WordBool; safecall;
+    function Doonbeforecopy: WordBool; safecall;
+    function Dooncopy: WordBool; safecall;
+    function Doonbeforepaste: WordBool; safecall;
+    function Doonpaste: WordBool; safecall;
+    function Dooncontextmenu: WordBool; safecall;
+    procedure Doonrowsdelete; safecall;
+    procedure Doonrowsinserted; safecall;
+    procedure Dooncellchange; safecall;
+    procedure Doonreadystatechange; safecall;
+    procedure Doonbeforeeditfocus; safecall;
+    procedure Doonlayoutcomplete; safecall;
+    procedure Doonpage; safecall;
+    function Doonbeforedeactivate: WordBool; safecall;
+    function Doonbeforeactivate: WordBool; safecall;
+    procedure Doonmove; safecall;
+    function Dooncontrolselect: WordBool; safecall;
+    function Doonmovestart: WordBool; safecall;
+    procedure Doonmoveend; safecall;
+    function Doonresizestart: WordBool; safecall;
+    procedure Doonresizeend; safecall;
+    procedure Doonmouseenter; safecall;
+    procedure Doonmouseleave; safecall;
+    function Doonmousewheel: WordBool; safecall;
+    procedure Doonactivate; safecall;
+    procedure Doondeactivate; safecall;
+    procedure Doonfocusin; safecall;
+    procedure Doonfocusout; safecall;
+    procedure Doonload; safecall;
+    procedure Doonerror; safecall;
+    procedure Doonabort; safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLImgEventsonhelpEvent;
+    Fonclick: THTMLImgEventsonclickEvent;
+    Fondblclick: THTMLImgEventsondblclickEvent;
+    Fonkeypress: THTMLImgEventsonkeypressEvent;
+    Fonkeydown: THTMLImgEventsonkeydownEvent;
+    Fonkeyup: THTMLImgEventsonkeyupEvent;
+    Fonmouseout: THTMLImgEventsonmouseoutEvent;
+    Fonmouseover: THTMLImgEventsonmouseoverEvent;
+    Fonmousemove: THTMLImgEventsonmousemoveEvent;
+    Fonmousedown: THTMLImgEventsonmousedownEvent;
+    Fonmouseup: THTMLImgEventsonmouseupEvent;
+    Fonselectstart: THTMLImgEventsonselectstartEvent;
+    Fonfilterchange: THTMLImgEventsonfilterchangeEvent;
+    Fondragstart: THTMLImgEventsondragstartEvent;
+    Fonbeforeupdate: THTMLImgEventsonbeforeupdateEvent;
+    Fonafterupdate: THTMLImgEventsonafterupdateEvent;
+    Fonerrorupdate: THTMLImgEventsonerrorupdateEvent;
+    Fonrowexit: THTMLImgEventsonrowexitEvent;
+    Fonrowenter: THTMLImgEventsonrowenterEvent;
+    Fondatasetchanged: THTMLImgEventsondatasetchangedEvent;
+    Fondataavailable: THTMLImgEventsondataavailableEvent;
+    Fondatasetcomplete: THTMLImgEventsondatasetcompleteEvent;
+    Fonlosecapture: THTMLImgEventsonlosecaptureEvent;
+    Fonpropertychange: THTMLImgEventsonpropertychangeEvent;
+    Fonscroll: THTMLImgEventsonscrollEvent;
+    Fonfocus: THTMLImgEventsonfocusEvent;
+    Fonblur: THTMLImgEventsonblurEvent;
+    Fonresize: THTMLImgEventsonresizeEvent;
+    Fondrag: THTMLImgEventsondragEvent;
+    Fondragend: THTMLImgEventsondragendEvent;
+    Fondragenter: THTMLImgEventsondragenterEvent;
+    Fondragover: THTMLImgEventsondragoverEvent;
+    Fondragleave: THTMLImgEventsondragleaveEvent;
+    Fondrop: THTMLImgEventsondropEvent;
+    Fonbeforecut: THTMLImgEventsonbeforecutEvent;
+    Foncut: THTMLImgEventsoncutEvent;
+    Fonbeforecopy: THTMLImgEventsonbeforecopyEvent;
+    Foncopy: THTMLImgEventsoncopyEvent;
+    Fonbeforepaste: THTMLImgEventsonbeforepasteEvent;
+    Fonpaste: THTMLImgEventsonpasteEvent;
+    Foncontextmenu: THTMLImgEventsoncontextmenuEvent;
+    Fonrowsdelete: THTMLImgEventsonrowsdeleteEvent;
+    Fonrowsinserted: THTMLImgEventsonrowsinsertedEvent;
+    Foncellchange: THTMLImgEventsoncellchangeEvent;
+    Fonreadystatechange: THTMLImgEventsonreadystatechangeEvent;
+    Fonbeforeeditfocus: THTMLImgEventsonbeforeeditfocusEvent;
+    Fonlayoutcomplete: THTMLImgEventsonlayoutcompleteEvent;
+    Fonpage: THTMLImgEventsonpageEvent;
+    Fonbeforedeactivate: THTMLImgEventsonbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLImgEventsonbeforeactivateEvent;
+    Fonmove: THTMLImgEventsonmoveEvent;
+    Foncontrolselect: THTMLImgEventsoncontrolselectEvent;
+    Fonmovestart: THTMLImgEventsonmovestartEvent;
+    Fonmoveend: THTMLImgEventsonmoveendEvent;
+    Fonresizestart: THTMLImgEventsonresizestartEvent;
+    Fonresizeend: THTMLImgEventsonresizeendEvent;
+    Fonmouseenter: THTMLImgEventsonmouseenterEvent;
+    Fonmouseleave: THTMLImgEventsonmouseleaveEvent;
+    Fonmousewheel: THTMLImgEventsonmousewheelEvent;
+    Fonactivate: THTMLImgEventsonactivateEvent;
+    Fondeactivate: THTMLImgEventsondeactivateEvent;
+    Fonfocusin: THTMLImgEventsonfocusinEvent;
+    Fonfocusout: THTMLImgEventsonfocusoutEvent;
+    Fonload: THTMLImgEventsonloadEvent;
+    Fonerror: THTMLImgEventsonerrorEvent;
+    Fonabort: THTMLImgEventsonabortEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLImgEventsonhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLImgEventsonclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLImgEventsondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLImgEventsonkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLImgEventsonkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLImgEventsonkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLImgEventsonmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLImgEventsonmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLImgEventsonmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLImgEventsonmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLImgEventsonmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLImgEventsonselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLImgEventsonfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLImgEventsondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLImgEventsonbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLImgEventsonafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLImgEventsonerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLImgEventsonrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLImgEventsonrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLImgEventsondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLImgEventsondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLImgEventsondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLImgEventsonlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLImgEventsonpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLImgEventsonscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLImgEventsonfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLImgEventsonblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLImgEventsonresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLImgEventsondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLImgEventsondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLImgEventsondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLImgEventsondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLImgEventsondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLImgEventsondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLImgEventsonbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLImgEventsoncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLImgEventsonbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLImgEventsoncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLImgEventsonbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLImgEventsonpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLImgEventsoncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLImgEventsonrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLImgEventsonrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLImgEventsoncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLImgEventsonreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onbeforeeditfocus: THTMLImgEventsonbeforeeditfocusEvent read Fonbeforeeditfocus write Fonbeforeeditfocus;
+    property onlayoutcomplete: THTMLImgEventsonlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLImgEventsonpageEvent read Fonpage write Fonpage;
+    property onbeforedeactivate: THTMLImgEventsonbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLImgEventsonbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onmove: THTMLImgEventsonmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLImgEventsoncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLImgEventsonmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLImgEventsonmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLImgEventsonresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLImgEventsonresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmouseenter: THTMLImgEventsonmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLImgEventsonmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onmousewheel: THTMLImgEventsonmousewheelEvent read Fonmousewheel write Fonmousewheel;
+    property onactivate: THTMLImgEventsonactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLImgEventsondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onfocusin: THTMLImgEventsonfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLImgEventsonfocusoutEvent read Fonfocusout write Fonfocusout;
+    property onload: THTMLImgEventsonloadEvent read Fonload write Fonload;
+    property onerror: THTMLImgEventsonerrorEvent read Fonerror write Fonerror;
+    property onabort: THTMLImgEventsonabortEvent read Fonabort write Fonabort;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLImgEvents2onhelpEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLImgEvents2onclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLImgEvents2ondblclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLImgEvents2onkeypressEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLImgEvents2onkeydownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2onkeyupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2onmouseoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2onmouseoverEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2onmousemoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2onmousedownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2onmouseupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2onselectstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLImgEvents2onfilterchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2ondragstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLImgEvents2onbeforeupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLImgEvents2onafterupdateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2onerrorupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLImgEvents2onrowexitEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLImgEvents2onrowenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2ondatasetchangedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2ondataavailableEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2ondatasetcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2onlosecaptureEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2onpropertychangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2onscrollEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2onfocusEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2onblurEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2onresizeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2ondragEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLImgEvents2ondragendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2ondragenterEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLImgEvents2ondragoverEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLImgEvents2ondragleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2ondropEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLImgEvents2onbeforecutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLImgEvents2oncutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLImgEvents2onbeforecopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLImgEvents2oncopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLImgEvents2onbeforepasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLImgEvents2onpasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLImgEvents2oncontextmenuEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLImgEvents2onrowsdeleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2onrowsinsertedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2oncellchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2onreadystatechangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2onlayoutcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2onpageEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2onmouseenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2onmouseleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2onactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2ondeactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2onbeforedeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLImgEvents2onbeforeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLImgEvents2onfocusinEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2onfocusoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2onmoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2oncontrolselectEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLImgEvents2onmovestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLImgEvents2onmoveendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2onresizestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLImgEvents2onresizeendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2onmousewheelEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLImgEvents2onloadEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2onerrorEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLImgEvents2onabortEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLImgEvents2 = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondblclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonkeydown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonkeyup(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseover(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousemove(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousedown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseup(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfilterchange(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonafterupdate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetchanged(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondataavailable(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlosecapture(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpropertychange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonscroll(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocus(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonblur(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonresize(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrag(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragenter(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondragover(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragleave(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrop(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonpaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowsdelete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonrowsinserted(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Dooncellchange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonreadystatechange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlayoutcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpage(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseleave(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonactivate(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondeactivate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfocusin(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocusout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmove(const pEvtObj: IHTMLEventObj); safecall;
+    function Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonmoveend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonresizeend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonload(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonerror(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonabort(const pEvtObj: IHTMLEventObj); safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLImgEvents2onhelpEvent;
+    Fonclick: THTMLImgEvents2onclickEvent;
+    Fondblclick: THTMLImgEvents2ondblclickEvent;
+    Fonkeypress: THTMLImgEvents2onkeypressEvent;
+    Fonkeydown: THTMLImgEvents2onkeydownEvent;
+    Fonkeyup: THTMLImgEvents2onkeyupEvent;
+    Fonmouseout: THTMLImgEvents2onmouseoutEvent;
+    Fonmouseover: THTMLImgEvents2onmouseoverEvent;
+    Fonmousemove: THTMLImgEvents2onmousemoveEvent;
+    Fonmousedown: THTMLImgEvents2onmousedownEvent;
+    Fonmouseup: THTMLImgEvents2onmouseupEvent;
+    Fonselectstart: THTMLImgEvents2onselectstartEvent;
+    Fonfilterchange: THTMLImgEvents2onfilterchangeEvent;
+    Fondragstart: THTMLImgEvents2ondragstartEvent;
+    Fonbeforeupdate: THTMLImgEvents2onbeforeupdateEvent;
+    Fonafterupdate: THTMLImgEvents2onafterupdateEvent;
+    Fonerrorupdate: THTMLImgEvents2onerrorupdateEvent;
+    Fonrowexit: THTMLImgEvents2onrowexitEvent;
+    Fonrowenter: THTMLImgEvents2onrowenterEvent;
+    Fondatasetchanged: THTMLImgEvents2ondatasetchangedEvent;
+    Fondataavailable: THTMLImgEvents2ondataavailableEvent;
+    Fondatasetcomplete: THTMLImgEvents2ondatasetcompleteEvent;
+    Fonlosecapture: THTMLImgEvents2onlosecaptureEvent;
+    Fonpropertychange: THTMLImgEvents2onpropertychangeEvent;
+    Fonscroll: THTMLImgEvents2onscrollEvent;
+    Fonfocus: THTMLImgEvents2onfocusEvent;
+    Fonblur: THTMLImgEvents2onblurEvent;
+    Fonresize: THTMLImgEvents2onresizeEvent;
+    Fondrag: THTMLImgEvents2ondragEvent;
+    Fondragend: THTMLImgEvents2ondragendEvent;
+    Fondragenter: THTMLImgEvents2ondragenterEvent;
+    Fondragover: THTMLImgEvents2ondragoverEvent;
+    Fondragleave: THTMLImgEvents2ondragleaveEvent;
+    Fondrop: THTMLImgEvents2ondropEvent;
+    Fonbeforecut: THTMLImgEvents2onbeforecutEvent;
+    Foncut: THTMLImgEvents2oncutEvent;
+    Fonbeforecopy: THTMLImgEvents2onbeforecopyEvent;
+    Foncopy: THTMLImgEvents2oncopyEvent;
+    Fonbeforepaste: THTMLImgEvents2onbeforepasteEvent;
+    Fonpaste: THTMLImgEvents2onpasteEvent;
+    Foncontextmenu: THTMLImgEvents2oncontextmenuEvent;
+    Fonrowsdelete: THTMLImgEvents2onrowsdeleteEvent;
+    Fonrowsinserted: THTMLImgEvents2onrowsinsertedEvent;
+    Foncellchange: THTMLImgEvents2oncellchangeEvent;
+    Fonreadystatechange: THTMLImgEvents2onreadystatechangeEvent;
+    Fonlayoutcomplete: THTMLImgEvents2onlayoutcompleteEvent;
+    Fonpage: THTMLImgEvents2onpageEvent;
+    Fonmouseenter: THTMLImgEvents2onmouseenterEvent;
+    Fonmouseleave: THTMLImgEvents2onmouseleaveEvent;
+    Fonactivate: THTMLImgEvents2onactivateEvent;
+    Fondeactivate: THTMLImgEvents2ondeactivateEvent;
+    Fonbeforedeactivate: THTMLImgEvents2onbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLImgEvents2onbeforeactivateEvent;
+    Fonfocusin: THTMLImgEvents2onfocusinEvent;
+    Fonfocusout: THTMLImgEvents2onfocusoutEvent;
+    Fonmove: THTMLImgEvents2onmoveEvent;
+    Foncontrolselect: THTMLImgEvents2oncontrolselectEvent;
+    Fonmovestart: THTMLImgEvents2onmovestartEvent;
+    Fonmoveend: THTMLImgEvents2onmoveendEvent;
+    Fonresizestart: THTMLImgEvents2onresizestartEvent;
+    Fonresizeend: THTMLImgEvents2onresizeendEvent;
+    Fonmousewheel: THTMLImgEvents2onmousewheelEvent;
+    Fonload: THTMLImgEvents2onloadEvent;
+    Fonerror: THTMLImgEvents2onerrorEvent;
+    Fonabort: THTMLImgEvents2onabortEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLImgEvents2onhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLImgEvents2onclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLImgEvents2ondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLImgEvents2onkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLImgEvents2onkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLImgEvents2onkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLImgEvents2onmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLImgEvents2onmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLImgEvents2onmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLImgEvents2onmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLImgEvents2onmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLImgEvents2onselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLImgEvents2onfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLImgEvents2ondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLImgEvents2onbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLImgEvents2onafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLImgEvents2onerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLImgEvents2onrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLImgEvents2onrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLImgEvents2ondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLImgEvents2ondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLImgEvents2ondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLImgEvents2onlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLImgEvents2onpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLImgEvents2onscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLImgEvents2onfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLImgEvents2onblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLImgEvents2onresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLImgEvents2ondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLImgEvents2ondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLImgEvents2ondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLImgEvents2ondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLImgEvents2ondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLImgEvents2ondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLImgEvents2onbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLImgEvents2oncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLImgEvents2onbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLImgEvents2oncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLImgEvents2onbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLImgEvents2onpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLImgEvents2oncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLImgEvents2onrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLImgEvents2onrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLImgEvents2oncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLImgEvents2onreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onlayoutcomplete: THTMLImgEvents2onlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLImgEvents2onpageEvent read Fonpage write Fonpage;
+    property onmouseenter: THTMLImgEvents2onmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLImgEvents2onmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onactivate: THTMLImgEvents2onactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLImgEvents2ondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onbeforedeactivate: THTMLImgEvents2onbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLImgEvents2onbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onfocusin: THTMLImgEvents2onfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLImgEvents2onfocusoutEvent read Fonfocusout write Fonfocusout;
+    property onmove: THTMLImgEvents2onmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLImgEvents2oncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLImgEvents2onmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLImgEvents2onmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLImgEvents2onresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLImgEvents2onresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmousewheel: THTMLImgEvents2onmousewheelEvent read Fonmousewheel write Fonmousewheel;
+    property onload: THTMLImgEvents2onloadEvent read Fonload write Fonload;
+    property onerror: THTMLImgEvents2onerrorEvent read Fonerror write Fonerror;
+    property onabort: THTMLImgEvents2onabortEvent read Fonabort write Fonabort;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLTextContainerEventsonhelpEvent = function(Sender: TObject): WordBool of object;
+  THTMLTextContainerEventsonclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLTextContainerEventsondblclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLTextContainerEventsonkeypressEvent = function(Sender: TObject): WordBool of object;
+  THTMLTextContainerEventsonkeydownEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsonkeyupEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsonmouseoutEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsonmouseoverEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsonmousemoveEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsonmousedownEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsonmouseupEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsonselectstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLTextContainerEventsonfilterchangeEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsondragstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLTextContainerEventsonbeforeupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLTextContainerEventsonafterupdateEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsonerrorupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLTextContainerEventsonrowexitEvent = function(Sender: TObject): WordBool of object;
+  THTMLTextContainerEventsonrowenterEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsondatasetchangedEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsondataavailableEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsondatasetcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsonlosecaptureEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsonpropertychangeEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsonscrollEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsonfocusEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsonblurEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsonresizeEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsondragEvent = function(Sender: TObject): WordBool of object;
+  THTMLTextContainerEventsondragendEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsondragenterEvent = function(Sender: TObject): WordBool of object;
+  THTMLTextContainerEventsondragoverEvent = function(Sender: TObject): WordBool of object;
+  THTMLTextContainerEventsondragleaveEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsondropEvent = function(Sender: TObject): WordBool of object;
+  THTMLTextContainerEventsonbeforecutEvent = function(Sender: TObject): WordBool of object;
+  THTMLTextContainerEventsoncutEvent = function(Sender: TObject): WordBool of object;
+  THTMLTextContainerEventsonbeforecopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLTextContainerEventsoncopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLTextContainerEventsonbeforepasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLTextContainerEventsonpasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLTextContainerEventsoncontextmenuEvent = function(Sender: TObject): WordBool of object;
+  THTMLTextContainerEventsonrowsdeleteEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsonrowsinsertedEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsoncellchangeEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsonreadystatechangeEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsonbeforeeditfocusEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsonlayoutcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsonpageEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsonbeforedeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLTextContainerEventsonbeforeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLTextContainerEventsonmoveEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsoncontrolselectEvent = function(Sender: TObject): WordBool of object;
+  THTMLTextContainerEventsonmovestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLTextContainerEventsonmoveendEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsonresizestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLTextContainerEventsonresizeendEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsonmouseenterEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsonmouseleaveEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsonmousewheelEvent = function(Sender: TObject): WordBool of object;
+  THTMLTextContainerEventsonactivateEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsondeactivateEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsonfocusinEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsonfocusoutEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsonchangeEvent = procedure(Sender: TObject) of object;
+  THTMLTextContainerEventsonselectEvent = procedure(Sender: TObject) of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLTextContainerEvents = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp: WordBool; safecall;
+    function Doonclick: WordBool; safecall;
+    function Doondblclick: WordBool; safecall;
+    function Doonkeypress: WordBool; safecall;
+    procedure Doonkeydown; safecall;
+    procedure Doonkeyup; safecall;
+    procedure Doonmouseout; safecall;
+    procedure Doonmouseover; safecall;
+    procedure Doonmousemove; safecall;
+    procedure Doonmousedown; safecall;
+    procedure Doonmouseup; safecall;
+    function Doonselectstart: WordBool; safecall;
+    procedure Doonfilterchange; safecall;
+    function Doondragstart: WordBool; safecall;
+    function Doonbeforeupdate: WordBool; safecall;
+    procedure Doonafterupdate; safecall;
+    function Doonerrorupdate: WordBool; safecall;
+    function Doonrowexit: WordBool; safecall;
+    procedure Doonrowenter; safecall;
+    procedure Doondatasetchanged; safecall;
+    procedure Doondataavailable; safecall;
+    procedure Doondatasetcomplete; safecall;
+    procedure Doonlosecapture; safecall;
+    procedure Doonpropertychange; safecall;
+    procedure Doonscroll; safecall;
+    procedure Doonfocus; safecall;
+    procedure Doonblur; safecall;
+    procedure Doonresize; safecall;
+    function Doondrag: WordBool; safecall;
+    procedure Doondragend; safecall;
+    function Doondragenter: WordBool; safecall;
+    function Doondragover: WordBool; safecall;
+    procedure Doondragleave; safecall;
+    function Doondrop: WordBool; safecall;
+    function Doonbeforecut: WordBool; safecall;
+    function Dooncut: WordBool; safecall;
+    function Doonbeforecopy: WordBool; safecall;
+    function Dooncopy: WordBool; safecall;
+    function Doonbeforepaste: WordBool; safecall;
+    function Doonpaste: WordBool; safecall;
+    function Dooncontextmenu: WordBool; safecall;
+    procedure Doonrowsdelete; safecall;
+    procedure Doonrowsinserted; safecall;
+    procedure Dooncellchange; safecall;
+    procedure Doonreadystatechange; safecall;
+    procedure Doonbeforeeditfocus; safecall;
+    procedure Doonlayoutcomplete; safecall;
+    procedure Doonpage; safecall;
+    function Doonbeforedeactivate: WordBool; safecall;
+    function Doonbeforeactivate: WordBool; safecall;
+    procedure Doonmove; safecall;
+    function Dooncontrolselect: WordBool; safecall;
+    function Doonmovestart: WordBool; safecall;
+    procedure Doonmoveend; safecall;
+    function Doonresizestart: WordBool; safecall;
+    procedure Doonresizeend; safecall;
+    procedure Doonmouseenter; safecall;
+    procedure Doonmouseleave; safecall;
+    function Doonmousewheel: WordBool; safecall;
+    procedure Doonactivate; safecall;
+    procedure Doondeactivate; safecall;
+    procedure Doonfocusin; safecall;
+    procedure Doonfocusout; safecall;
+    procedure Doonchange; safecall;
+    procedure Doonselect; safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLTextContainerEventsonhelpEvent;
+    Fonclick: THTMLTextContainerEventsonclickEvent;
+    Fondblclick: THTMLTextContainerEventsondblclickEvent;
+    Fonkeypress: THTMLTextContainerEventsonkeypressEvent;
+    Fonkeydown: THTMLTextContainerEventsonkeydownEvent;
+    Fonkeyup: THTMLTextContainerEventsonkeyupEvent;
+    Fonmouseout: THTMLTextContainerEventsonmouseoutEvent;
+    Fonmouseover: THTMLTextContainerEventsonmouseoverEvent;
+    Fonmousemove: THTMLTextContainerEventsonmousemoveEvent;
+    Fonmousedown: THTMLTextContainerEventsonmousedownEvent;
+    Fonmouseup: THTMLTextContainerEventsonmouseupEvent;
+    Fonselectstart: THTMLTextContainerEventsonselectstartEvent;
+    Fonfilterchange: THTMLTextContainerEventsonfilterchangeEvent;
+    Fondragstart: THTMLTextContainerEventsondragstartEvent;
+    Fonbeforeupdate: THTMLTextContainerEventsonbeforeupdateEvent;
+    Fonafterupdate: THTMLTextContainerEventsonafterupdateEvent;
+    Fonerrorupdate: THTMLTextContainerEventsonerrorupdateEvent;
+    Fonrowexit: THTMLTextContainerEventsonrowexitEvent;
+    Fonrowenter: THTMLTextContainerEventsonrowenterEvent;
+    Fondatasetchanged: THTMLTextContainerEventsondatasetchangedEvent;
+    Fondataavailable: THTMLTextContainerEventsondataavailableEvent;
+    Fondatasetcomplete: THTMLTextContainerEventsondatasetcompleteEvent;
+    Fonlosecapture: THTMLTextContainerEventsonlosecaptureEvent;
+    Fonpropertychange: THTMLTextContainerEventsonpropertychangeEvent;
+    Fonscroll: THTMLTextContainerEventsonscrollEvent;
+    Fonfocus: THTMLTextContainerEventsonfocusEvent;
+    Fonblur: THTMLTextContainerEventsonblurEvent;
+    Fonresize: THTMLTextContainerEventsonresizeEvent;
+    Fondrag: THTMLTextContainerEventsondragEvent;
+    Fondragend: THTMLTextContainerEventsondragendEvent;
+    Fondragenter: THTMLTextContainerEventsondragenterEvent;
+    Fondragover: THTMLTextContainerEventsondragoverEvent;
+    Fondragleave: THTMLTextContainerEventsondragleaveEvent;
+    Fondrop: THTMLTextContainerEventsondropEvent;
+    Fonbeforecut: THTMLTextContainerEventsonbeforecutEvent;
+    Foncut: THTMLTextContainerEventsoncutEvent;
+    Fonbeforecopy: THTMLTextContainerEventsonbeforecopyEvent;
+    Foncopy: THTMLTextContainerEventsoncopyEvent;
+    Fonbeforepaste: THTMLTextContainerEventsonbeforepasteEvent;
+    Fonpaste: THTMLTextContainerEventsonpasteEvent;
+    Foncontextmenu: THTMLTextContainerEventsoncontextmenuEvent;
+    Fonrowsdelete: THTMLTextContainerEventsonrowsdeleteEvent;
+    Fonrowsinserted: THTMLTextContainerEventsonrowsinsertedEvent;
+    Foncellchange: THTMLTextContainerEventsoncellchangeEvent;
+    Fonreadystatechange: THTMLTextContainerEventsonreadystatechangeEvent;
+    Fonbeforeeditfocus: THTMLTextContainerEventsonbeforeeditfocusEvent;
+    Fonlayoutcomplete: THTMLTextContainerEventsonlayoutcompleteEvent;
+    Fonpage: THTMLTextContainerEventsonpageEvent;
+    Fonbeforedeactivate: THTMLTextContainerEventsonbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLTextContainerEventsonbeforeactivateEvent;
+    Fonmove: THTMLTextContainerEventsonmoveEvent;
+    Foncontrolselect: THTMLTextContainerEventsoncontrolselectEvent;
+    Fonmovestart: THTMLTextContainerEventsonmovestartEvent;
+    Fonmoveend: THTMLTextContainerEventsonmoveendEvent;
+    Fonresizestart: THTMLTextContainerEventsonresizestartEvent;
+    Fonresizeend: THTMLTextContainerEventsonresizeendEvent;
+    Fonmouseenter: THTMLTextContainerEventsonmouseenterEvent;
+    Fonmouseleave: THTMLTextContainerEventsonmouseleaveEvent;
+    Fonmousewheel: THTMLTextContainerEventsonmousewheelEvent;
+    Fonactivate: THTMLTextContainerEventsonactivateEvent;
+    Fondeactivate: THTMLTextContainerEventsondeactivateEvent;
+    Fonfocusin: THTMLTextContainerEventsonfocusinEvent;
+    Fonfocusout: THTMLTextContainerEventsonfocusoutEvent;
+    Fonchange: THTMLTextContainerEventsonchangeEvent;
+    Fonselect: THTMLTextContainerEventsonselectEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLTextContainerEventsonhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLTextContainerEventsonclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLTextContainerEventsondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLTextContainerEventsonkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLTextContainerEventsonkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLTextContainerEventsonkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLTextContainerEventsonmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLTextContainerEventsonmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLTextContainerEventsonmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLTextContainerEventsonmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLTextContainerEventsonmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLTextContainerEventsonselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLTextContainerEventsonfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLTextContainerEventsondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLTextContainerEventsonbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLTextContainerEventsonafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLTextContainerEventsonerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLTextContainerEventsonrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLTextContainerEventsonrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLTextContainerEventsondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLTextContainerEventsondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLTextContainerEventsondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLTextContainerEventsonlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLTextContainerEventsonpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLTextContainerEventsonscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLTextContainerEventsonfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLTextContainerEventsonblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLTextContainerEventsonresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLTextContainerEventsondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLTextContainerEventsondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLTextContainerEventsondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLTextContainerEventsondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLTextContainerEventsondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLTextContainerEventsondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLTextContainerEventsonbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLTextContainerEventsoncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLTextContainerEventsonbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLTextContainerEventsoncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLTextContainerEventsonbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLTextContainerEventsonpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLTextContainerEventsoncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLTextContainerEventsonrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLTextContainerEventsonrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLTextContainerEventsoncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLTextContainerEventsonreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onbeforeeditfocus: THTMLTextContainerEventsonbeforeeditfocusEvent read Fonbeforeeditfocus write Fonbeforeeditfocus;
+    property onlayoutcomplete: THTMLTextContainerEventsonlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLTextContainerEventsonpageEvent read Fonpage write Fonpage;
+    property onbeforedeactivate: THTMLTextContainerEventsonbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLTextContainerEventsonbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onmove: THTMLTextContainerEventsonmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLTextContainerEventsoncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLTextContainerEventsonmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLTextContainerEventsonmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLTextContainerEventsonresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLTextContainerEventsonresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmouseenter: THTMLTextContainerEventsonmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLTextContainerEventsonmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onmousewheel: THTMLTextContainerEventsonmousewheelEvent read Fonmousewheel write Fonmousewheel;
+    property onactivate: THTMLTextContainerEventsonactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLTextContainerEventsondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onfocusin: THTMLTextContainerEventsonfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLTextContainerEventsonfocusoutEvent read Fonfocusout write Fonfocusout;
+    property onchange: THTMLTextContainerEventsonchangeEvent read Fonchange write Fonchange;
+    property onselect: THTMLTextContainerEventsonselectEvent read Fonselect write Fonselect;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLTextContainerEvents2onhelpEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTextContainerEvents2onclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTextContainerEvents2ondblclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTextContainerEvents2onkeypressEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTextContainerEvents2onkeydownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2onkeyupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2onmouseoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2onmouseoverEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2onmousemoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2onmousedownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2onmouseupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2onselectstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTextContainerEvents2onfilterchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2ondragstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTextContainerEvents2onbeforeupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTextContainerEvents2onafterupdateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2onerrorupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTextContainerEvents2onrowexitEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTextContainerEvents2onrowenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2ondatasetchangedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2ondataavailableEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2ondatasetcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2onlosecaptureEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2onpropertychangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2onscrollEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2onfocusEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2onblurEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2onresizeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2ondragEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTextContainerEvents2ondragendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2ondragenterEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTextContainerEvents2ondragoverEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTextContainerEvents2ondragleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2ondropEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTextContainerEvents2onbeforecutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTextContainerEvents2oncutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTextContainerEvents2onbeforecopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTextContainerEvents2oncopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTextContainerEvents2onbeforepasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTextContainerEvents2onpasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTextContainerEvents2oncontextmenuEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTextContainerEvents2onrowsdeleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2onrowsinsertedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2oncellchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2onreadystatechangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2onlayoutcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2onpageEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2onmouseenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2onmouseleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2onactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2ondeactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2onbeforedeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTextContainerEvents2onbeforeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTextContainerEvents2onfocusinEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2onfocusoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2onmoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2oncontrolselectEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTextContainerEvents2onmovestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTextContainerEvents2onmoveendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2onresizestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTextContainerEvents2onresizeendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2onmousewheelEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTextContainerEvents2onchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTextContainerEvents2onselectEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLTextContainerEvents2 = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondblclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonkeydown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonkeyup(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseover(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousemove(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousedown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseup(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfilterchange(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonafterupdate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetchanged(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondataavailable(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlosecapture(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpropertychange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonscroll(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocus(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonblur(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonresize(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrag(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragenter(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondragover(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragleave(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrop(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonpaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowsdelete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonrowsinserted(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Dooncellchange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonreadystatechange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlayoutcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpage(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseleave(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonactivate(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondeactivate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfocusin(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocusout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmove(const pEvtObj: IHTMLEventObj); safecall;
+    function Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonmoveend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonresizeend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonchange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonselect(const pEvtObj: IHTMLEventObj); safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLTextContainerEvents2onhelpEvent;
+    Fonclick: THTMLTextContainerEvents2onclickEvent;
+    Fondblclick: THTMLTextContainerEvents2ondblclickEvent;
+    Fonkeypress: THTMLTextContainerEvents2onkeypressEvent;
+    Fonkeydown: THTMLTextContainerEvents2onkeydownEvent;
+    Fonkeyup: THTMLTextContainerEvents2onkeyupEvent;
+    Fonmouseout: THTMLTextContainerEvents2onmouseoutEvent;
+    Fonmouseover: THTMLTextContainerEvents2onmouseoverEvent;
+    Fonmousemove: THTMLTextContainerEvents2onmousemoveEvent;
+    Fonmousedown: THTMLTextContainerEvents2onmousedownEvent;
+    Fonmouseup: THTMLTextContainerEvents2onmouseupEvent;
+    Fonselectstart: THTMLTextContainerEvents2onselectstartEvent;
+    Fonfilterchange: THTMLTextContainerEvents2onfilterchangeEvent;
+    Fondragstart: THTMLTextContainerEvents2ondragstartEvent;
+    Fonbeforeupdate: THTMLTextContainerEvents2onbeforeupdateEvent;
+    Fonafterupdate: THTMLTextContainerEvents2onafterupdateEvent;
+    Fonerrorupdate: THTMLTextContainerEvents2onerrorupdateEvent;
+    Fonrowexit: THTMLTextContainerEvents2onrowexitEvent;
+    Fonrowenter: THTMLTextContainerEvents2onrowenterEvent;
+    Fondatasetchanged: THTMLTextContainerEvents2ondatasetchangedEvent;
+    Fondataavailable: THTMLTextContainerEvents2ondataavailableEvent;
+    Fondatasetcomplete: THTMLTextContainerEvents2ondatasetcompleteEvent;
+    Fonlosecapture: THTMLTextContainerEvents2onlosecaptureEvent;
+    Fonpropertychange: THTMLTextContainerEvents2onpropertychangeEvent;
+    Fonscroll: THTMLTextContainerEvents2onscrollEvent;
+    Fonfocus: THTMLTextContainerEvents2onfocusEvent;
+    Fonblur: THTMLTextContainerEvents2onblurEvent;
+    Fonresize: THTMLTextContainerEvents2onresizeEvent;
+    Fondrag: THTMLTextContainerEvents2ondragEvent;
+    Fondragend: THTMLTextContainerEvents2ondragendEvent;
+    Fondragenter: THTMLTextContainerEvents2ondragenterEvent;
+    Fondragover: THTMLTextContainerEvents2ondragoverEvent;
+    Fondragleave: THTMLTextContainerEvents2ondragleaveEvent;
+    Fondrop: THTMLTextContainerEvents2ondropEvent;
+    Fonbeforecut: THTMLTextContainerEvents2onbeforecutEvent;
+    Foncut: THTMLTextContainerEvents2oncutEvent;
+    Fonbeforecopy: THTMLTextContainerEvents2onbeforecopyEvent;
+    Foncopy: THTMLTextContainerEvents2oncopyEvent;
+    Fonbeforepaste: THTMLTextContainerEvents2onbeforepasteEvent;
+    Fonpaste: THTMLTextContainerEvents2onpasteEvent;
+    Foncontextmenu: THTMLTextContainerEvents2oncontextmenuEvent;
+    Fonrowsdelete: THTMLTextContainerEvents2onrowsdeleteEvent;
+    Fonrowsinserted: THTMLTextContainerEvents2onrowsinsertedEvent;
+    Foncellchange: THTMLTextContainerEvents2oncellchangeEvent;
+    Fonreadystatechange: THTMLTextContainerEvents2onreadystatechangeEvent;
+    Fonlayoutcomplete: THTMLTextContainerEvents2onlayoutcompleteEvent;
+    Fonpage: THTMLTextContainerEvents2onpageEvent;
+    Fonmouseenter: THTMLTextContainerEvents2onmouseenterEvent;
+    Fonmouseleave: THTMLTextContainerEvents2onmouseleaveEvent;
+    Fonactivate: THTMLTextContainerEvents2onactivateEvent;
+    Fondeactivate: THTMLTextContainerEvents2ondeactivateEvent;
+    Fonbeforedeactivate: THTMLTextContainerEvents2onbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLTextContainerEvents2onbeforeactivateEvent;
+    Fonfocusin: THTMLTextContainerEvents2onfocusinEvent;
+    Fonfocusout: THTMLTextContainerEvents2onfocusoutEvent;
+    Fonmove: THTMLTextContainerEvents2onmoveEvent;
+    Foncontrolselect: THTMLTextContainerEvents2oncontrolselectEvent;
+    Fonmovestart: THTMLTextContainerEvents2onmovestartEvent;
+    Fonmoveend: THTMLTextContainerEvents2onmoveendEvent;
+    Fonresizestart: THTMLTextContainerEvents2onresizestartEvent;
+    Fonresizeend: THTMLTextContainerEvents2onresizeendEvent;
+    Fonmousewheel: THTMLTextContainerEvents2onmousewheelEvent;
+    Fonchange: THTMLTextContainerEvents2onchangeEvent;
+    Fonselect: THTMLTextContainerEvents2onselectEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLTextContainerEvents2onhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLTextContainerEvents2onclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLTextContainerEvents2ondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLTextContainerEvents2onkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLTextContainerEvents2onkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLTextContainerEvents2onkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLTextContainerEvents2onmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLTextContainerEvents2onmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLTextContainerEvents2onmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLTextContainerEvents2onmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLTextContainerEvents2onmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLTextContainerEvents2onselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLTextContainerEvents2onfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLTextContainerEvents2ondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLTextContainerEvents2onbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLTextContainerEvents2onafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLTextContainerEvents2onerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLTextContainerEvents2onrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLTextContainerEvents2onrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLTextContainerEvents2ondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLTextContainerEvents2ondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLTextContainerEvents2ondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLTextContainerEvents2onlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLTextContainerEvents2onpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLTextContainerEvents2onscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLTextContainerEvents2onfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLTextContainerEvents2onblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLTextContainerEvents2onresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLTextContainerEvents2ondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLTextContainerEvents2ondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLTextContainerEvents2ondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLTextContainerEvents2ondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLTextContainerEvents2ondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLTextContainerEvents2ondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLTextContainerEvents2onbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLTextContainerEvents2oncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLTextContainerEvents2onbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLTextContainerEvents2oncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLTextContainerEvents2onbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLTextContainerEvents2onpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLTextContainerEvents2oncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLTextContainerEvents2onrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLTextContainerEvents2onrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLTextContainerEvents2oncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLTextContainerEvents2onreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onlayoutcomplete: THTMLTextContainerEvents2onlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLTextContainerEvents2onpageEvent read Fonpage write Fonpage;
+    property onmouseenter: THTMLTextContainerEvents2onmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLTextContainerEvents2onmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onactivate: THTMLTextContainerEvents2onactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLTextContainerEvents2ondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onbeforedeactivate: THTMLTextContainerEvents2onbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLTextContainerEvents2onbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onfocusin: THTMLTextContainerEvents2onfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLTextContainerEvents2onfocusoutEvent read Fonfocusout write Fonfocusout;
+    property onmove: THTMLTextContainerEvents2onmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLTextContainerEvents2oncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLTextContainerEvents2onmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLTextContainerEvents2onmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLTextContainerEvents2onresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLTextContainerEvents2onresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmousewheel: THTMLTextContainerEvents2onmousewheelEvent read Fonmousewheel write Fonmousewheel;
+    property onchange: THTMLTextContainerEvents2onchangeEvent read Fonchange write Fonchange;
+    property onselect: THTMLTextContainerEvents2onselectEvent read Fonselect write Fonselect;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLAnchorEventsonhelpEvent = function(Sender: TObject): WordBool of object;
+  THTMLAnchorEventsonclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLAnchorEventsondblclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLAnchorEventsonkeypressEvent = function(Sender: TObject): WordBool of object;
+  THTMLAnchorEventsonkeydownEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsonkeyupEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsonmouseoutEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsonmouseoverEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsonmousemoveEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsonmousedownEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsonmouseupEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsonselectstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLAnchorEventsonfilterchangeEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsondragstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLAnchorEventsonbeforeupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLAnchorEventsonafterupdateEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsonerrorupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLAnchorEventsonrowexitEvent = function(Sender: TObject): WordBool of object;
+  THTMLAnchorEventsonrowenterEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsondatasetchangedEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsondataavailableEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsondatasetcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsonlosecaptureEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsonpropertychangeEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsonscrollEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsonfocusEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsonblurEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsonresizeEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsondragEvent = function(Sender: TObject): WordBool of object;
+  THTMLAnchorEventsondragendEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsondragenterEvent = function(Sender: TObject): WordBool of object;
+  THTMLAnchorEventsondragoverEvent = function(Sender: TObject): WordBool of object;
+  THTMLAnchorEventsondragleaveEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsondropEvent = function(Sender: TObject): WordBool of object;
+  THTMLAnchorEventsonbeforecutEvent = function(Sender: TObject): WordBool of object;
+  THTMLAnchorEventsoncutEvent = function(Sender: TObject): WordBool of object;
+  THTMLAnchorEventsonbeforecopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLAnchorEventsoncopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLAnchorEventsonbeforepasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLAnchorEventsonpasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLAnchorEventsoncontextmenuEvent = function(Sender: TObject): WordBool of object;
+  THTMLAnchorEventsonrowsdeleteEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsonrowsinsertedEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsoncellchangeEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsonreadystatechangeEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsonbeforeeditfocusEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsonlayoutcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsonpageEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsonbeforedeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLAnchorEventsonbeforeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLAnchorEventsonmoveEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsoncontrolselectEvent = function(Sender: TObject): WordBool of object;
+  THTMLAnchorEventsonmovestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLAnchorEventsonmoveendEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsonresizestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLAnchorEventsonresizeendEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsonmouseenterEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsonmouseleaveEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsonmousewheelEvent = function(Sender: TObject): WordBool of object;
+  THTMLAnchorEventsonactivateEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsondeactivateEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsonfocusinEvent = procedure(Sender: TObject) of object;
+  THTMLAnchorEventsonfocusoutEvent = procedure(Sender: TObject) of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLAnchorEvents = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp: WordBool; safecall;
+    function Doonclick: WordBool; safecall;
+    function Doondblclick: WordBool; safecall;
+    function Doonkeypress: WordBool; safecall;
+    procedure Doonkeydown; safecall;
+    procedure Doonkeyup; safecall;
+    procedure Doonmouseout; safecall;
+    procedure Doonmouseover; safecall;
+    procedure Doonmousemove; safecall;
+    procedure Doonmousedown; safecall;
+    procedure Doonmouseup; safecall;
+    function Doonselectstart: WordBool; safecall;
+    procedure Doonfilterchange; safecall;
+    function Doondragstart: WordBool; safecall;
+    function Doonbeforeupdate: WordBool; safecall;
+    procedure Doonafterupdate; safecall;
+    function Doonerrorupdate: WordBool; safecall;
+    function Doonrowexit: WordBool; safecall;
+    procedure Doonrowenter; safecall;
+    procedure Doondatasetchanged; safecall;
+    procedure Doondataavailable; safecall;
+    procedure Doondatasetcomplete; safecall;
+    procedure Doonlosecapture; safecall;
+    procedure Doonpropertychange; safecall;
+    procedure Doonscroll; safecall;
+    procedure Doonfocus; safecall;
+    procedure Doonblur; safecall;
+    procedure Doonresize; safecall;
+    function Doondrag: WordBool; safecall;
+    procedure Doondragend; safecall;
+    function Doondragenter: WordBool; safecall;
+    function Doondragover: WordBool; safecall;
+    procedure Doondragleave; safecall;
+    function Doondrop: WordBool; safecall;
+    function Doonbeforecut: WordBool; safecall;
+    function Dooncut: WordBool; safecall;
+    function Doonbeforecopy: WordBool; safecall;
+    function Dooncopy: WordBool; safecall;
+    function Doonbeforepaste: WordBool; safecall;
+    function Doonpaste: WordBool; safecall;
+    function Dooncontextmenu: WordBool; safecall;
+    procedure Doonrowsdelete; safecall;
+    procedure Doonrowsinserted; safecall;
+    procedure Dooncellchange; safecall;
+    procedure Doonreadystatechange; safecall;
+    procedure Doonbeforeeditfocus; safecall;
+    procedure Doonlayoutcomplete; safecall;
+    procedure Doonpage; safecall;
+    function Doonbeforedeactivate: WordBool; safecall;
+    function Doonbeforeactivate: WordBool; safecall;
+    procedure Doonmove; safecall;
+    function Dooncontrolselect: WordBool; safecall;
+    function Doonmovestart: WordBool; safecall;
+    procedure Doonmoveend; safecall;
+    function Doonresizestart: WordBool; safecall;
+    procedure Doonresizeend; safecall;
+    procedure Doonmouseenter; safecall;
+    procedure Doonmouseleave; safecall;
+    function Doonmousewheel: WordBool; safecall;
+    procedure Doonactivate; safecall;
+    procedure Doondeactivate; safecall;
+    procedure Doonfocusin; safecall;
+    procedure Doonfocusout; safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLAnchorEventsonhelpEvent;
+    Fonclick: THTMLAnchorEventsonclickEvent;
+    Fondblclick: THTMLAnchorEventsondblclickEvent;
+    Fonkeypress: THTMLAnchorEventsonkeypressEvent;
+    Fonkeydown: THTMLAnchorEventsonkeydownEvent;
+    Fonkeyup: THTMLAnchorEventsonkeyupEvent;
+    Fonmouseout: THTMLAnchorEventsonmouseoutEvent;
+    Fonmouseover: THTMLAnchorEventsonmouseoverEvent;
+    Fonmousemove: THTMLAnchorEventsonmousemoveEvent;
+    Fonmousedown: THTMLAnchorEventsonmousedownEvent;
+    Fonmouseup: THTMLAnchorEventsonmouseupEvent;
+    Fonselectstart: THTMLAnchorEventsonselectstartEvent;
+    Fonfilterchange: THTMLAnchorEventsonfilterchangeEvent;
+    Fondragstart: THTMLAnchorEventsondragstartEvent;
+    Fonbeforeupdate: THTMLAnchorEventsonbeforeupdateEvent;
+    Fonafterupdate: THTMLAnchorEventsonafterupdateEvent;
+    Fonerrorupdate: THTMLAnchorEventsonerrorupdateEvent;
+    Fonrowexit: THTMLAnchorEventsonrowexitEvent;
+    Fonrowenter: THTMLAnchorEventsonrowenterEvent;
+    Fondatasetchanged: THTMLAnchorEventsondatasetchangedEvent;
+    Fondataavailable: THTMLAnchorEventsondataavailableEvent;
+    Fondatasetcomplete: THTMLAnchorEventsondatasetcompleteEvent;
+    Fonlosecapture: THTMLAnchorEventsonlosecaptureEvent;
+    Fonpropertychange: THTMLAnchorEventsonpropertychangeEvent;
+    Fonscroll: THTMLAnchorEventsonscrollEvent;
+    Fonfocus: THTMLAnchorEventsonfocusEvent;
+    Fonblur: THTMLAnchorEventsonblurEvent;
+    Fonresize: THTMLAnchorEventsonresizeEvent;
+    Fondrag: THTMLAnchorEventsondragEvent;
+    Fondragend: THTMLAnchorEventsondragendEvent;
+    Fondragenter: THTMLAnchorEventsondragenterEvent;
+    Fondragover: THTMLAnchorEventsondragoverEvent;
+    Fondragleave: THTMLAnchorEventsondragleaveEvent;
+    Fondrop: THTMLAnchorEventsondropEvent;
+    Fonbeforecut: THTMLAnchorEventsonbeforecutEvent;
+    Foncut: THTMLAnchorEventsoncutEvent;
+    Fonbeforecopy: THTMLAnchorEventsonbeforecopyEvent;
+    Foncopy: THTMLAnchorEventsoncopyEvent;
+    Fonbeforepaste: THTMLAnchorEventsonbeforepasteEvent;
+    Fonpaste: THTMLAnchorEventsonpasteEvent;
+    Foncontextmenu: THTMLAnchorEventsoncontextmenuEvent;
+    Fonrowsdelete: THTMLAnchorEventsonrowsdeleteEvent;
+    Fonrowsinserted: THTMLAnchorEventsonrowsinsertedEvent;
+    Foncellchange: THTMLAnchorEventsoncellchangeEvent;
+    Fonreadystatechange: THTMLAnchorEventsonreadystatechangeEvent;
+    Fonbeforeeditfocus: THTMLAnchorEventsonbeforeeditfocusEvent;
+    Fonlayoutcomplete: THTMLAnchorEventsonlayoutcompleteEvent;
+    Fonpage: THTMLAnchorEventsonpageEvent;
+    Fonbeforedeactivate: THTMLAnchorEventsonbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLAnchorEventsonbeforeactivateEvent;
+    Fonmove: THTMLAnchorEventsonmoveEvent;
+    Foncontrolselect: THTMLAnchorEventsoncontrolselectEvent;
+    Fonmovestart: THTMLAnchorEventsonmovestartEvent;
+    Fonmoveend: THTMLAnchorEventsonmoveendEvent;
+    Fonresizestart: THTMLAnchorEventsonresizestartEvent;
+    Fonresizeend: THTMLAnchorEventsonresizeendEvent;
+    Fonmouseenter: THTMLAnchorEventsonmouseenterEvent;
+    Fonmouseleave: THTMLAnchorEventsonmouseleaveEvent;
+    Fonmousewheel: THTMLAnchorEventsonmousewheelEvent;
+    Fonactivate: THTMLAnchorEventsonactivateEvent;
+    Fondeactivate: THTMLAnchorEventsondeactivateEvent;
+    Fonfocusin: THTMLAnchorEventsonfocusinEvent;
+    Fonfocusout: THTMLAnchorEventsonfocusoutEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLAnchorEventsonhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLAnchorEventsonclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLAnchorEventsondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLAnchorEventsonkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLAnchorEventsonkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLAnchorEventsonkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLAnchorEventsonmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLAnchorEventsonmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLAnchorEventsonmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLAnchorEventsonmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLAnchorEventsonmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLAnchorEventsonselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLAnchorEventsonfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLAnchorEventsondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLAnchorEventsonbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLAnchorEventsonafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLAnchorEventsonerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLAnchorEventsonrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLAnchorEventsonrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLAnchorEventsondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLAnchorEventsondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLAnchorEventsondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLAnchorEventsonlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLAnchorEventsonpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLAnchorEventsonscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLAnchorEventsonfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLAnchorEventsonblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLAnchorEventsonresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLAnchorEventsondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLAnchorEventsondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLAnchorEventsondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLAnchorEventsondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLAnchorEventsondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLAnchorEventsondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLAnchorEventsonbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLAnchorEventsoncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLAnchorEventsonbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLAnchorEventsoncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLAnchorEventsonbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLAnchorEventsonpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLAnchorEventsoncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLAnchorEventsonrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLAnchorEventsonrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLAnchorEventsoncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLAnchorEventsonreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onbeforeeditfocus: THTMLAnchorEventsonbeforeeditfocusEvent read Fonbeforeeditfocus write Fonbeforeeditfocus;
+    property onlayoutcomplete: THTMLAnchorEventsonlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLAnchorEventsonpageEvent read Fonpage write Fonpage;
+    property onbeforedeactivate: THTMLAnchorEventsonbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLAnchorEventsonbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onmove: THTMLAnchorEventsonmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLAnchorEventsoncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLAnchorEventsonmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLAnchorEventsonmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLAnchorEventsonresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLAnchorEventsonresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmouseenter: THTMLAnchorEventsonmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLAnchorEventsonmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onmousewheel: THTMLAnchorEventsonmousewheelEvent read Fonmousewheel write Fonmousewheel;
+    property onactivate: THTMLAnchorEventsonactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLAnchorEventsondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onfocusin: THTMLAnchorEventsonfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLAnchorEventsonfocusoutEvent read Fonfocusout write Fonfocusout;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLAnchorEvents2onhelpEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAnchorEvents2onclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAnchorEvents2ondblclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAnchorEvents2onkeypressEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAnchorEvents2onkeydownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2onkeyupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2onmouseoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2onmouseoverEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2onmousemoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2onmousedownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2onmouseupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2onselectstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAnchorEvents2onfilterchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2ondragstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAnchorEvents2onbeforeupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAnchorEvents2onafterupdateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2onerrorupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAnchorEvents2onrowexitEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAnchorEvents2onrowenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2ondatasetchangedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2ondataavailableEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2ondatasetcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2onlosecaptureEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2onpropertychangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2onscrollEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2onfocusEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2onblurEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2onresizeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2ondragEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAnchorEvents2ondragendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2ondragenterEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAnchorEvents2ondragoverEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAnchorEvents2ondragleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2ondropEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAnchorEvents2onbeforecutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAnchorEvents2oncutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAnchorEvents2onbeforecopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAnchorEvents2oncopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAnchorEvents2onbeforepasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAnchorEvents2onpasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAnchorEvents2oncontextmenuEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAnchorEvents2onrowsdeleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2onrowsinsertedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2oncellchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2onreadystatechangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2onlayoutcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2onpageEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2onmouseenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2onmouseleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2onactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2ondeactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2onbeforedeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAnchorEvents2onbeforeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAnchorEvents2onfocusinEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2onfocusoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2onmoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2oncontrolselectEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAnchorEvents2onmovestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAnchorEvents2onmoveendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2onresizestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAnchorEvents2onresizeendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAnchorEvents2onmousewheelEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLAnchorEvents2 = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondblclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonkeydown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonkeyup(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseover(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousemove(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousedown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseup(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfilterchange(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonafterupdate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetchanged(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondataavailable(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlosecapture(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpropertychange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonscroll(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocus(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonblur(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonresize(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrag(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragenter(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondragover(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragleave(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrop(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonpaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowsdelete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonrowsinserted(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Dooncellchange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonreadystatechange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlayoutcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpage(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseleave(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonactivate(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondeactivate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfocusin(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocusout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmove(const pEvtObj: IHTMLEventObj); safecall;
+    function Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonmoveend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonresizeend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLAnchorEvents2onhelpEvent;
+    Fonclick: THTMLAnchorEvents2onclickEvent;
+    Fondblclick: THTMLAnchorEvents2ondblclickEvent;
+    Fonkeypress: THTMLAnchorEvents2onkeypressEvent;
+    Fonkeydown: THTMLAnchorEvents2onkeydownEvent;
+    Fonkeyup: THTMLAnchorEvents2onkeyupEvent;
+    Fonmouseout: THTMLAnchorEvents2onmouseoutEvent;
+    Fonmouseover: THTMLAnchorEvents2onmouseoverEvent;
+    Fonmousemove: THTMLAnchorEvents2onmousemoveEvent;
+    Fonmousedown: THTMLAnchorEvents2onmousedownEvent;
+    Fonmouseup: THTMLAnchorEvents2onmouseupEvent;
+    Fonselectstart: THTMLAnchorEvents2onselectstartEvent;
+    Fonfilterchange: THTMLAnchorEvents2onfilterchangeEvent;
+    Fondragstart: THTMLAnchorEvents2ondragstartEvent;
+    Fonbeforeupdate: THTMLAnchorEvents2onbeforeupdateEvent;
+    Fonafterupdate: THTMLAnchorEvents2onafterupdateEvent;
+    Fonerrorupdate: THTMLAnchorEvents2onerrorupdateEvent;
+    Fonrowexit: THTMLAnchorEvents2onrowexitEvent;
+    Fonrowenter: THTMLAnchorEvents2onrowenterEvent;
+    Fondatasetchanged: THTMLAnchorEvents2ondatasetchangedEvent;
+    Fondataavailable: THTMLAnchorEvents2ondataavailableEvent;
+    Fondatasetcomplete: THTMLAnchorEvents2ondatasetcompleteEvent;
+    Fonlosecapture: THTMLAnchorEvents2onlosecaptureEvent;
+    Fonpropertychange: THTMLAnchorEvents2onpropertychangeEvent;
+    Fonscroll: THTMLAnchorEvents2onscrollEvent;
+    Fonfocus: THTMLAnchorEvents2onfocusEvent;
+    Fonblur: THTMLAnchorEvents2onblurEvent;
+    Fonresize: THTMLAnchorEvents2onresizeEvent;
+    Fondrag: THTMLAnchorEvents2ondragEvent;
+    Fondragend: THTMLAnchorEvents2ondragendEvent;
+    Fondragenter: THTMLAnchorEvents2ondragenterEvent;
+    Fondragover: THTMLAnchorEvents2ondragoverEvent;
+    Fondragleave: THTMLAnchorEvents2ondragleaveEvent;
+    Fondrop: THTMLAnchorEvents2ondropEvent;
+    Fonbeforecut: THTMLAnchorEvents2onbeforecutEvent;
+    Foncut: THTMLAnchorEvents2oncutEvent;
+    Fonbeforecopy: THTMLAnchorEvents2onbeforecopyEvent;
+    Foncopy: THTMLAnchorEvents2oncopyEvent;
+    Fonbeforepaste: THTMLAnchorEvents2onbeforepasteEvent;
+    Fonpaste: THTMLAnchorEvents2onpasteEvent;
+    Foncontextmenu: THTMLAnchorEvents2oncontextmenuEvent;
+    Fonrowsdelete: THTMLAnchorEvents2onrowsdeleteEvent;
+    Fonrowsinserted: THTMLAnchorEvents2onrowsinsertedEvent;
+    Foncellchange: THTMLAnchorEvents2oncellchangeEvent;
+    Fonreadystatechange: THTMLAnchorEvents2onreadystatechangeEvent;
+    Fonlayoutcomplete: THTMLAnchorEvents2onlayoutcompleteEvent;
+    Fonpage: THTMLAnchorEvents2onpageEvent;
+    Fonmouseenter: THTMLAnchorEvents2onmouseenterEvent;
+    Fonmouseleave: THTMLAnchorEvents2onmouseleaveEvent;
+    Fonactivate: THTMLAnchorEvents2onactivateEvent;
+    Fondeactivate: THTMLAnchorEvents2ondeactivateEvent;
+    Fonbeforedeactivate: THTMLAnchorEvents2onbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLAnchorEvents2onbeforeactivateEvent;
+    Fonfocusin: THTMLAnchorEvents2onfocusinEvent;
+    Fonfocusout: THTMLAnchorEvents2onfocusoutEvent;
+    Fonmove: THTMLAnchorEvents2onmoveEvent;
+    Foncontrolselect: THTMLAnchorEvents2oncontrolselectEvent;
+    Fonmovestart: THTMLAnchorEvents2onmovestartEvent;
+    Fonmoveend: THTMLAnchorEvents2onmoveendEvent;
+    Fonresizestart: THTMLAnchorEvents2onresizestartEvent;
+    Fonresizeend: THTMLAnchorEvents2onresizeendEvent;
+    Fonmousewheel: THTMLAnchorEvents2onmousewheelEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLAnchorEvents2onhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLAnchorEvents2onclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLAnchorEvents2ondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLAnchorEvents2onkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLAnchorEvents2onkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLAnchorEvents2onkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLAnchorEvents2onmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLAnchorEvents2onmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLAnchorEvents2onmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLAnchorEvents2onmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLAnchorEvents2onmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLAnchorEvents2onselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLAnchorEvents2onfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLAnchorEvents2ondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLAnchorEvents2onbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLAnchorEvents2onafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLAnchorEvents2onerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLAnchorEvents2onrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLAnchorEvents2onrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLAnchorEvents2ondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLAnchorEvents2ondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLAnchorEvents2ondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLAnchorEvents2onlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLAnchorEvents2onpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLAnchorEvents2onscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLAnchorEvents2onfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLAnchorEvents2onblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLAnchorEvents2onresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLAnchorEvents2ondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLAnchorEvents2ondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLAnchorEvents2ondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLAnchorEvents2ondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLAnchorEvents2ondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLAnchorEvents2ondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLAnchorEvents2onbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLAnchorEvents2oncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLAnchorEvents2onbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLAnchorEvents2oncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLAnchorEvents2onbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLAnchorEvents2onpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLAnchorEvents2oncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLAnchorEvents2onrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLAnchorEvents2onrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLAnchorEvents2oncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLAnchorEvents2onreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onlayoutcomplete: THTMLAnchorEvents2onlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLAnchorEvents2onpageEvent read Fonpage write Fonpage;
+    property onmouseenter: THTMLAnchorEvents2onmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLAnchorEvents2onmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onactivate: THTMLAnchorEvents2onactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLAnchorEvents2ondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onbeforedeactivate: THTMLAnchorEvents2onbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLAnchorEvents2onbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onfocusin: THTMLAnchorEvents2onfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLAnchorEvents2onfocusoutEvent read Fonfocusout write Fonfocusout;
+    property onmove: THTMLAnchorEvents2onmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLAnchorEvents2oncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLAnchorEvents2onmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLAnchorEvents2onmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLAnchorEvents2onresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLAnchorEvents2onresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmousewheel: THTMLAnchorEvents2onmousewheelEvent read Fonmousewheel write Fonmousewheel;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLLabelEventsonhelpEvent = function(Sender: TObject): WordBool of object;
+  THTMLLabelEventsonclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLLabelEventsondblclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLLabelEventsonkeypressEvent = function(Sender: TObject): WordBool of object;
+  THTMLLabelEventsonkeydownEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsonkeyupEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsonmouseoutEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsonmouseoverEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsonmousemoveEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsonmousedownEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsonmouseupEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsonselectstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLLabelEventsonfilterchangeEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsondragstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLLabelEventsonbeforeupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLLabelEventsonafterupdateEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsonerrorupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLLabelEventsonrowexitEvent = function(Sender: TObject): WordBool of object;
+  THTMLLabelEventsonrowenterEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsondatasetchangedEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsondataavailableEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsondatasetcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsonlosecaptureEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsonpropertychangeEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsonscrollEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsonfocusEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsonblurEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsonresizeEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsondragEvent = function(Sender: TObject): WordBool of object;
+  THTMLLabelEventsondragendEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsondragenterEvent = function(Sender: TObject): WordBool of object;
+  THTMLLabelEventsondragoverEvent = function(Sender: TObject): WordBool of object;
+  THTMLLabelEventsondragleaveEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsondropEvent = function(Sender: TObject): WordBool of object;
+  THTMLLabelEventsonbeforecutEvent = function(Sender: TObject): WordBool of object;
+  THTMLLabelEventsoncutEvent = function(Sender: TObject): WordBool of object;
+  THTMLLabelEventsonbeforecopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLLabelEventsoncopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLLabelEventsonbeforepasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLLabelEventsonpasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLLabelEventsoncontextmenuEvent = function(Sender: TObject): WordBool of object;
+  THTMLLabelEventsonrowsdeleteEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsonrowsinsertedEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsoncellchangeEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsonreadystatechangeEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsonbeforeeditfocusEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsonlayoutcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsonpageEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsonbeforedeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLLabelEventsonbeforeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLLabelEventsonmoveEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsoncontrolselectEvent = function(Sender: TObject): WordBool of object;
+  THTMLLabelEventsonmovestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLLabelEventsonmoveendEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsonresizestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLLabelEventsonresizeendEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsonmouseenterEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsonmouseleaveEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsonmousewheelEvent = function(Sender: TObject): WordBool of object;
+  THTMLLabelEventsonactivateEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsondeactivateEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsonfocusinEvent = procedure(Sender: TObject) of object;
+  THTMLLabelEventsonfocusoutEvent = procedure(Sender: TObject) of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLLabelEvents = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp: WordBool; safecall;
+    function Doonclick: WordBool; safecall;
+    function Doondblclick: WordBool; safecall;
+    function Doonkeypress: WordBool; safecall;
+    procedure Doonkeydown; safecall;
+    procedure Doonkeyup; safecall;
+    procedure Doonmouseout; safecall;
+    procedure Doonmouseover; safecall;
+    procedure Doonmousemove; safecall;
+    procedure Doonmousedown; safecall;
+    procedure Doonmouseup; safecall;
+    function Doonselectstart: WordBool; safecall;
+    procedure Doonfilterchange; safecall;
+    function Doondragstart: WordBool; safecall;
+    function Doonbeforeupdate: WordBool; safecall;
+    procedure Doonafterupdate; safecall;
+    function Doonerrorupdate: WordBool; safecall;
+    function Doonrowexit: WordBool; safecall;
+    procedure Doonrowenter; safecall;
+    procedure Doondatasetchanged; safecall;
+    procedure Doondataavailable; safecall;
+    procedure Doondatasetcomplete; safecall;
+    procedure Doonlosecapture; safecall;
+    procedure Doonpropertychange; safecall;
+    procedure Doonscroll; safecall;
+    procedure Doonfocus; safecall;
+    procedure Doonblur; safecall;
+    procedure Doonresize; safecall;
+    function Doondrag: WordBool; safecall;
+    procedure Doondragend; safecall;
+    function Doondragenter: WordBool; safecall;
+    function Doondragover: WordBool; safecall;
+    procedure Doondragleave; safecall;
+    function Doondrop: WordBool; safecall;
+    function Doonbeforecut: WordBool; safecall;
+    function Dooncut: WordBool; safecall;
+    function Doonbeforecopy: WordBool; safecall;
+    function Dooncopy: WordBool; safecall;
+    function Doonbeforepaste: WordBool; safecall;
+    function Doonpaste: WordBool; safecall;
+    function Dooncontextmenu: WordBool; safecall;
+    procedure Doonrowsdelete; safecall;
+    procedure Doonrowsinserted; safecall;
+    procedure Dooncellchange; safecall;
+    procedure Doonreadystatechange; safecall;
+    procedure Doonbeforeeditfocus; safecall;
+    procedure Doonlayoutcomplete; safecall;
+    procedure Doonpage; safecall;
+    function Doonbeforedeactivate: WordBool; safecall;
+    function Doonbeforeactivate: WordBool; safecall;
+    procedure Doonmove; safecall;
+    function Dooncontrolselect: WordBool; safecall;
+    function Doonmovestart: WordBool; safecall;
+    procedure Doonmoveend; safecall;
+    function Doonresizestart: WordBool; safecall;
+    procedure Doonresizeend; safecall;
+    procedure Doonmouseenter; safecall;
+    procedure Doonmouseleave; safecall;
+    function Doonmousewheel: WordBool; safecall;
+    procedure Doonactivate; safecall;
+    procedure Doondeactivate; safecall;
+    procedure Doonfocusin; safecall;
+    procedure Doonfocusout; safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLLabelEventsonhelpEvent;
+    Fonclick: THTMLLabelEventsonclickEvent;
+    Fondblclick: THTMLLabelEventsondblclickEvent;
+    Fonkeypress: THTMLLabelEventsonkeypressEvent;
+    Fonkeydown: THTMLLabelEventsonkeydownEvent;
+    Fonkeyup: THTMLLabelEventsonkeyupEvent;
+    Fonmouseout: THTMLLabelEventsonmouseoutEvent;
+    Fonmouseover: THTMLLabelEventsonmouseoverEvent;
+    Fonmousemove: THTMLLabelEventsonmousemoveEvent;
+    Fonmousedown: THTMLLabelEventsonmousedownEvent;
+    Fonmouseup: THTMLLabelEventsonmouseupEvent;
+    Fonselectstart: THTMLLabelEventsonselectstartEvent;
+    Fonfilterchange: THTMLLabelEventsonfilterchangeEvent;
+    Fondragstart: THTMLLabelEventsondragstartEvent;
+    Fonbeforeupdate: THTMLLabelEventsonbeforeupdateEvent;
+    Fonafterupdate: THTMLLabelEventsonafterupdateEvent;
+    Fonerrorupdate: THTMLLabelEventsonerrorupdateEvent;
+    Fonrowexit: THTMLLabelEventsonrowexitEvent;
+    Fonrowenter: THTMLLabelEventsonrowenterEvent;
+    Fondatasetchanged: THTMLLabelEventsondatasetchangedEvent;
+    Fondataavailable: THTMLLabelEventsondataavailableEvent;
+    Fondatasetcomplete: THTMLLabelEventsondatasetcompleteEvent;
+    Fonlosecapture: THTMLLabelEventsonlosecaptureEvent;
+    Fonpropertychange: THTMLLabelEventsonpropertychangeEvent;
+    Fonscroll: THTMLLabelEventsonscrollEvent;
+    Fonfocus: THTMLLabelEventsonfocusEvent;
+    Fonblur: THTMLLabelEventsonblurEvent;
+    Fonresize: THTMLLabelEventsonresizeEvent;
+    Fondrag: THTMLLabelEventsondragEvent;
+    Fondragend: THTMLLabelEventsondragendEvent;
+    Fondragenter: THTMLLabelEventsondragenterEvent;
+    Fondragover: THTMLLabelEventsondragoverEvent;
+    Fondragleave: THTMLLabelEventsondragleaveEvent;
+    Fondrop: THTMLLabelEventsondropEvent;
+    Fonbeforecut: THTMLLabelEventsonbeforecutEvent;
+    Foncut: THTMLLabelEventsoncutEvent;
+    Fonbeforecopy: THTMLLabelEventsonbeforecopyEvent;
+    Foncopy: THTMLLabelEventsoncopyEvent;
+    Fonbeforepaste: THTMLLabelEventsonbeforepasteEvent;
+    Fonpaste: THTMLLabelEventsonpasteEvent;
+    Foncontextmenu: THTMLLabelEventsoncontextmenuEvent;
+    Fonrowsdelete: THTMLLabelEventsonrowsdeleteEvent;
+    Fonrowsinserted: THTMLLabelEventsonrowsinsertedEvent;
+    Foncellchange: THTMLLabelEventsoncellchangeEvent;
+    Fonreadystatechange: THTMLLabelEventsonreadystatechangeEvent;
+    Fonbeforeeditfocus: THTMLLabelEventsonbeforeeditfocusEvent;
+    Fonlayoutcomplete: THTMLLabelEventsonlayoutcompleteEvent;
+    Fonpage: THTMLLabelEventsonpageEvent;
+    Fonbeforedeactivate: THTMLLabelEventsonbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLLabelEventsonbeforeactivateEvent;
+    Fonmove: THTMLLabelEventsonmoveEvent;
+    Foncontrolselect: THTMLLabelEventsoncontrolselectEvent;
+    Fonmovestart: THTMLLabelEventsonmovestartEvent;
+    Fonmoveend: THTMLLabelEventsonmoveendEvent;
+    Fonresizestart: THTMLLabelEventsonresizestartEvent;
+    Fonresizeend: THTMLLabelEventsonresizeendEvent;
+    Fonmouseenter: THTMLLabelEventsonmouseenterEvent;
+    Fonmouseleave: THTMLLabelEventsonmouseleaveEvent;
+    Fonmousewheel: THTMLLabelEventsonmousewheelEvent;
+    Fonactivate: THTMLLabelEventsonactivateEvent;
+    Fondeactivate: THTMLLabelEventsondeactivateEvent;
+    Fonfocusin: THTMLLabelEventsonfocusinEvent;
+    Fonfocusout: THTMLLabelEventsonfocusoutEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLLabelEventsonhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLLabelEventsonclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLLabelEventsondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLLabelEventsonkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLLabelEventsonkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLLabelEventsonkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLLabelEventsonmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLLabelEventsonmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLLabelEventsonmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLLabelEventsonmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLLabelEventsonmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLLabelEventsonselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLLabelEventsonfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLLabelEventsondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLLabelEventsonbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLLabelEventsonafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLLabelEventsonerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLLabelEventsonrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLLabelEventsonrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLLabelEventsondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLLabelEventsondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLLabelEventsondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLLabelEventsonlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLLabelEventsonpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLLabelEventsonscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLLabelEventsonfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLLabelEventsonblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLLabelEventsonresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLLabelEventsondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLLabelEventsondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLLabelEventsondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLLabelEventsondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLLabelEventsondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLLabelEventsondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLLabelEventsonbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLLabelEventsoncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLLabelEventsonbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLLabelEventsoncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLLabelEventsonbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLLabelEventsonpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLLabelEventsoncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLLabelEventsonrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLLabelEventsonrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLLabelEventsoncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLLabelEventsonreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onbeforeeditfocus: THTMLLabelEventsonbeforeeditfocusEvent read Fonbeforeeditfocus write Fonbeforeeditfocus;
+    property onlayoutcomplete: THTMLLabelEventsonlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLLabelEventsonpageEvent read Fonpage write Fonpage;
+    property onbeforedeactivate: THTMLLabelEventsonbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLLabelEventsonbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onmove: THTMLLabelEventsonmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLLabelEventsoncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLLabelEventsonmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLLabelEventsonmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLLabelEventsonresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLLabelEventsonresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmouseenter: THTMLLabelEventsonmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLLabelEventsonmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onmousewheel: THTMLLabelEventsonmousewheelEvent read Fonmousewheel write Fonmousewheel;
+    property onactivate: THTMLLabelEventsonactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLLabelEventsondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onfocusin: THTMLLabelEventsonfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLLabelEventsonfocusoutEvent read Fonfocusout write Fonfocusout;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLLabelEvents2onhelpEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLabelEvents2onclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLabelEvents2ondblclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLabelEvents2onkeypressEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLabelEvents2onkeydownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2onkeyupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2onmouseoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2onmouseoverEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2onmousemoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2onmousedownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2onmouseupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2onselectstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLabelEvents2onfilterchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2ondragstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLabelEvents2onbeforeupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLabelEvents2onafterupdateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2onerrorupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLabelEvents2onrowexitEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLabelEvents2onrowenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2ondatasetchangedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2ondataavailableEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2ondatasetcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2onlosecaptureEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2onpropertychangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2onscrollEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2onfocusEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2onblurEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2onresizeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2ondragEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLabelEvents2ondragendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2ondragenterEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLabelEvents2ondragoverEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLabelEvents2ondragleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2ondropEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLabelEvents2onbeforecutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLabelEvents2oncutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLabelEvents2onbeforecopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLabelEvents2oncopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLabelEvents2onbeforepasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLabelEvents2onpasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLabelEvents2oncontextmenuEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLabelEvents2onrowsdeleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2onrowsinsertedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2oncellchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2onreadystatechangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2onlayoutcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2onpageEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2onmouseenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2onmouseleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2onactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2ondeactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2onbeforedeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLabelEvents2onbeforeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLabelEvents2onfocusinEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2onfocusoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2onmoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2oncontrolselectEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLabelEvents2onmovestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLabelEvents2onmoveendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2onresizestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLLabelEvents2onresizeendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLLabelEvents2onmousewheelEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLLabelEvents2 = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondblclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonkeydown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonkeyup(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseover(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousemove(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousedown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseup(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfilterchange(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonafterupdate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetchanged(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondataavailable(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlosecapture(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpropertychange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonscroll(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocus(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonblur(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonresize(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrag(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragenter(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondragover(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragleave(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrop(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonpaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowsdelete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonrowsinserted(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Dooncellchange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonreadystatechange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlayoutcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpage(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseleave(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonactivate(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondeactivate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfocusin(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocusout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmove(const pEvtObj: IHTMLEventObj); safecall;
+    function Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonmoveend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonresizeend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLLabelEvents2onhelpEvent;
+    Fonclick: THTMLLabelEvents2onclickEvent;
+    Fondblclick: THTMLLabelEvents2ondblclickEvent;
+    Fonkeypress: THTMLLabelEvents2onkeypressEvent;
+    Fonkeydown: THTMLLabelEvents2onkeydownEvent;
+    Fonkeyup: THTMLLabelEvents2onkeyupEvent;
+    Fonmouseout: THTMLLabelEvents2onmouseoutEvent;
+    Fonmouseover: THTMLLabelEvents2onmouseoverEvent;
+    Fonmousemove: THTMLLabelEvents2onmousemoveEvent;
+    Fonmousedown: THTMLLabelEvents2onmousedownEvent;
+    Fonmouseup: THTMLLabelEvents2onmouseupEvent;
+    Fonselectstart: THTMLLabelEvents2onselectstartEvent;
+    Fonfilterchange: THTMLLabelEvents2onfilterchangeEvent;
+    Fondragstart: THTMLLabelEvents2ondragstartEvent;
+    Fonbeforeupdate: THTMLLabelEvents2onbeforeupdateEvent;
+    Fonafterupdate: THTMLLabelEvents2onafterupdateEvent;
+    Fonerrorupdate: THTMLLabelEvents2onerrorupdateEvent;
+    Fonrowexit: THTMLLabelEvents2onrowexitEvent;
+    Fonrowenter: THTMLLabelEvents2onrowenterEvent;
+    Fondatasetchanged: THTMLLabelEvents2ondatasetchangedEvent;
+    Fondataavailable: THTMLLabelEvents2ondataavailableEvent;
+    Fondatasetcomplete: THTMLLabelEvents2ondatasetcompleteEvent;
+    Fonlosecapture: THTMLLabelEvents2onlosecaptureEvent;
+    Fonpropertychange: THTMLLabelEvents2onpropertychangeEvent;
+    Fonscroll: THTMLLabelEvents2onscrollEvent;
+    Fonfocus: THTMLLabelEvents2onfocusEvent;
+    Fonblur: THTMLLabelEvents2onblurEvent;
+    Fonresize: THTMLLabelEvents2onresizeEvent;
+    Fondrag: THTMLLabelEvents2ondragEvent;
+    Fondragend: THTMLLabelEvents2ondragendEvent;
+    Fondragenter: THTMLLabelEvents2ondragenterEvent;
+    Fondragover: THTMLLabelEvents2ondragoverEvent;
+    Fondragleave: THTMLLabelEvents2ondragleaveEvent;
+    Fondrop: THTMLLabelEvents2ondropEvent;
+    Fonbeforecut: THTMLLabelEvents2onbeforecutEvent;
+    Foncut: THTMLLabelEvents2oncutEvent;
+    Fonbeforecopy: THTMLLabelEvents2onbeforecopyEvent;
+    Foncopy: THTMLLabelEvents2oncopyEvent;
+    Fonbeforepaste: THTMLLabelEvents2onbeforepasteEvent;
+    Fonpaste: THTMLLabelEvents2onpasteEvent;
+    Foncontextmenu: THTMLLabelEvents2oncontextmenuEvent;
+    Fonrowsdelete: THTMLLabelEvents2onrowsdeleteEvent;
+    Fonrowsinserted: THTMLLabelEvents2onrowsinsertedEvent;
+    Foncellchange: THTMLLabelEvents2oncellchangeEvent;
+    Fonreadystatechange: THTMLLabelEvents2onreadystatechangeEvent;
+    Fonlayoutcomplete: THTMLLabelEvents2onlayoutcompleteEvent;
+    Fonpage: THTMLLabelEvents2onpageEvent;
+    Fonmouseenter: THTMLLabelEvents2onmouseenterEvent;
+    Fonmouseleave: THTMLLabelEvents2onmouseleaveEvent;
+    Fonactivate: THTMLLabelEvents2onactivateEvent;
+    Fondeactivate: THTMLLabelEvents2ondeactivateEvent;
+    Fonbeforedeactivate: THTMLLabelEvents2onbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLLabelEvents2onbeforeactivateEvent;
+    Fonfocusin: THTMLLabelEvents2onfocusinEvent;
+    Fonfocusout: THTMLLabelEvents2onfocusoutEvent;
+    Fonmove: THTMLLabelEvents2onmoveEvent;
+    Foncontrolselect: THTMLLabelEvents2oncontrolselectEvent;
+    Fonmovestart: THTMLLabelEvents2onmovestartEvent;
+    Fonmoveend: THTMLLabelEvents2onmoveendEvent;
+    Fonresizestart: THTMLLabelEvents2onresizestartEvent;
+    Fonresizeend: THTMLLabelEvents2onresizeendEvent;
+    Fonmousewheel: THTMLLabelEvents2onmousewheelEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLLabelEvents2onhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLLabelEvents2onclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLLabelEvents2ondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLLabelEvents2onkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLLabelEvents2onkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLLabelEvents2onkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLLabelEvents2onmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLLabelEvents2onmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLLabelEvents2onmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLLabelEvents2onmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLLabelEvents2onmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLLabelEvents2onselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLLabelEvents2onfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLLabelEvents2ondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLLabelEvents2onbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLLabelEvents2onafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLLabelEvents2onerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLLabelEvents2onrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLLabelEvents2onrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLLabelEvents2ondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLLabelEvents2ondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLLabelEvents2ondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLLabelEvents2onlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLLabelEvents2onpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLLabelEvents2onscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLLabelEvents2onfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLLabelEvents2onblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLLabelEvents2onresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLLabelEvents2ondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLLabelEvents2ondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLLabelEvents2ondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLLabelEvents2ondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLLabelEvents2ondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLLabelEvents2ondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLLabelEvents2onbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLLabelEvents2oncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLLabelEvents2onbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLLabelEvents2oncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLLabelEvents2onbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLLabelEvents2onpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLLabelEvents2oncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLLabelEvents2onrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLLabelEvents2onrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLLabelEvents2oncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLLabelEvents2onreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onlayoutcomplete: THTMLLabelEvents2onlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLLabelEvents2onpageEvent read Fonpage write Fonpage;
+    property onmouseenter: THTMLLabelEvents2onmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLLabelEvents2onmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onactivate: THTMLLabelEvents2onactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLLabelEvents2ondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onbeforedeactivate: THTMLLabelEvents2onbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLLabelEvents2onbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onfocusin: THTMLLabelEvents2onfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLLabelEvents2onfocusoutEvent read Fonfocusout write Fonfocusout;
+    property onmove: THTMLLabelEvents2onmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLLabelEvents2oncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLLabelEvents2onmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLLabelEvents2onmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLLabelEvents2onresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLLabelEvents2onresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmousewheel: THTMLLabelEvents2onmousewheelEvent read Fonmousewheel write Fonmousewheel;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLSelectElementEventsonhelpEvent = function(Sender: TObject): WordBool of object;
+  THTMLSelectElementEventsonclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLSelectElementEventsondblclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLSelectElementEventsonkeypressEvent = function(Sender: TObject): WordBool of object;
+  THTMLSelectElementEventsonkeydownEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsonkeyupEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsonmouseoutEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsonmouseoverEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsonmousemoveEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsonmousedownEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsonmouseupEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsonselectstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLSelectElementEventsonfilterchangeEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsondragstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLSelectElementEventsonbeforeupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLSelectElementEventsonafterupdateEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsonerrorupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLSelectElementEventsonrowexitEvent = function(Sender: TObject): WordBool of object;
+  THTMLSelectElementEventsonrowenterEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsondatasetchangedEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsondataavailableEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsondatasetcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsonlosecaptureEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsonpropertychangeEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsonscrollEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsonfocusEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsonblurEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsonresizeEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsondragEvent = function(Sender: TObject): WordBool of object;
+  THTMLSelectElementEventsondragendEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsondragenterEvent = function(Sender: TObject): WordBool of object;
+  THTMLSelectElementEventsondragoverEvent = function(Sender: TObject): WordBool of object;
+  THTMLSelectElementEventsondragleaveEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsondropEvent = function(Sender: TObject): WordBool of object;
+  THTMLSelectElementEventsonbeforecutEvent = function(Sender: TObject): WordBool of object;
+  THTMLSelectElementEventsoncutEvent = function(Sender: TObject): WordBool of object;
+  THTMLSelectElementEventsonbeforecopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLSelectElementEventsoncopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLSelectElementEventsonbeforepasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLSelectElementEventsonpasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLSelectElementEventsoncontextmenuEvent = function(Sender: TObject): WordBool of object;
+  THTMLSelectElementEventsonrowsdeleteEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsonrowsinsertedEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsoncellchangeEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsonreadystatechangeEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsonbeforeeditfocusEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsonlayoutcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsonpageEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsonbeforedeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLSelectElementEventsonbeforeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLSelectElementEventsonmoveEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsoncontrolselectEvent = function(Sender: TObject): WordBool of object;
+  THTMLSelectElementEventsonmovestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLSelectElementEventsonmoveendEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsonresizestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLSelectElementEventsonresizeendEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsonmouseenterEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsonmouseleaveEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsonmousewheelEvent = function(Sender: TObject): WordBool of object;
+  THTMLSelectElementEventsonactivateEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsondeactivateEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsonfocusinEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsonfocusoutEvent = procedure(Sender: TObject) of object;
+  THTMLSelectElementEventsonchangeEvent = procedure(Sender: TObject) of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLSelectElementEvents = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp: WordBool; safecall;
+    function Doonclick: WordBool; safecall;
+    function Doondblclick: WordBool; safecall;
+    function Doonkeypress: WordBool; safecall;
+    procedure Doonkeydown; safecall;
+    procedure Doonkeyup; safecall;
+    procedure Doonmouseout; safecall;
+    procedure Doonmouseover; safecall;
+    procedure Doonmousemove; safecall;
+    procedure Doonmousedown; safecall;
+    procedure Doonmouseup; safecall;
+    function Doonselectstart: WordBool; safecall;
+    procedure Doonfilterchange; safecall;
+    function Doondragstart: WordBool; safecall;
+    function Doonbeforeupdate: WordBool; safecall;
+    procedure Doonafterupdate; safecall;
+    function Doonerrorupdate: WordBool; safecall;
+    function Doonrowexit: WordBool; safecall;
+    procedure Doonrowenter; safecall;
+    procedure Doondatasetchanged; safecall;
+    procedure Doondataavailable; safecall;
+    procedure Doondatasetcomplete; safecall;
+    procedure Doonlosecapture; safecall;
+    procedure Doonpropertychange; safecall;
+    procedure Doonscroll; safecall;
+    procedure Doonfocus; safecall;
+    procedure Doonblur; safecall;
+    procedure Doonresize; safecall;
+    function Doondrag: WordBool; safecall;
+    procedure Doondragend; safecall;
+    function Doondragenter: WordBool; safecall;
+    function Doondragover: WordBool; safecall;
+    procedure Doondragleave; safecall;
+    function Doondrop: WordBool; safecall;
+    function Doonbeforecut: WordBool; safecall;
+    function Dooncut: WordBool; safecall;
+    function Doonbeforecopy: WordBool; safecall;
+    function Dooncopy: WordBool; safecall;
+    function Doonbeforepaste: WordBool; safecall;
+    function Doonpaste: WordBool; safecall;
+    function Dooncontextmenu: WordBool; safecall;
+    procedure Doonrowsdelete; safecall;
+    procedure Doonrowsinserted; safecall;
+    procedure Dooncellchange; safecall;
+    procedure Doonreadystatechange; safecall;
+    procedure Doonbeforeeditfocus; safecall;
+    procedure Doonlayoutcomplete; safecall;
+    procedure Doonpage; safecall;
+    function Doonbeforedeactivate: WordBool; safecall;
+    function Doonbeforeactivate: WordBool; safecall;
+    procedure Doonmove; safecall;
+    function Dooncontrolselect: WordBool; safecall;
+    function Doonmovestart: WordBool; safecall;
+    procedure Doonmoveend; safecall;
+    function Doonresizestart: WordBool; safecall;
+    procedure Doonresizeend; safecall;
+    procedure Doonmouseenter; safecall;
+    procedure Doonmouseleave; safecall;
+    function Doonmousewheel: WordBool; safecall;
+    procedure Doonactivate; safecall;
+    procedure Doondeactivate; safecall;
+    procedure Doonfocusin; safecall;
+    procedure Doonfocusout; safecall;
+    procedure Doonchange; safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLSelectElementEventsonhelpEvent;
+    Fonclick: THTMLSelectElementEventsonclickEvent;
+    Fondblclick: THTMLSelectElementEventsondblclickEvent;
+    Fonkeypress: THTMLSelectElementEventsonkeypressEvent;
+    Fonkeydown: THTMLSelectElementEventsonkeydownEvent;
+    Fonkeyup: THTMLSelectElementEventsonkeyupEvent;
+    Fonmouseout: THTMLSelectElementEventsonmouseoutEvent;
+    Fonmouseover: THTMLSelectElementEventsonmouseoverEvent;
+    Fonmousemove: THTMLSelectElementEventsonmousemoveEvent;
+    Fonmousedown: THTMLSelectElementEventsonmousedownEvent;
+    Fonmouseup: THTMLSelectElementEventsonmouseupEvent;
+    Fonselectstart: THTMLSelectElementEventsonselectstartEvent;
+    Fonfilterchange: THTMLSelectElementEventsonfilterchangeEvent;
+    Fondragstart: THTMLSelectElementEventsondragstartEvent;
+    Fonbeforeupdate: THTMLSelectElementEventsonbeforeupdateEvent;
+    Fonafterupdate: THTMLSelectElementEventsonafterupdateEvent;
+    Fonerrorupdate: THTMLSelectElementEventsonerrorupdateEvent;
+    Fonrowexit: THTMLSelectElementEventsonrowexitEvent;
+    Fonrowenter: THTMLSelectElementEventsonrowenterEvent;
+    Fondatasetchanged: THTMLSelectElementEventsondatasetchangedEvent;
+    Fondataavailable: THTMLSelectElementEventsondataavailableEvent;
+    Fondatasetcomplete: THTMLSelectElementEventsondatasetcompleteEvent;
+    Fonlosecapture: THTMLSelectElementEventsonlosecaptureEvent;
+    Fonpropertychange: THTMLSelectElementEventsonpropertychangeEvent;
+    Fonscroll: THTMLSelectElementEventsonscrollEvent;
+    Fonfocus: THTMLSelectElementEventsonfocusEvent;
+    Fonblur: THTMLSelectElementEventsonblurEvent;
+    Fonresize: THTMLSelectElementEventsonresizeEvent;
+    Fondrag: THTMLSelectElementEventsondragEvent;
+    Fondragend: THTMLSelectElementEventsondragendEvent;
+    Fondragenter: THTMLSelectElementEventsondragenterEvent;
+    Fondragover: THTMLSelectElementEventsondragoverEvent;
+    Fondragleave: THTMLSelectElementEventsondragleaveEvent;
+    Fondrop: THTMLSelectElementEventsondropEvent;
+    Fonbeforecut: THTMLSelectElementEventsonbeforecutEvent;
+    Foncut: THTMLSelectElementEventsoncutEvent;
+    Fonbeforecopy: THTMLSelectElementEventsonbeforecopyEvent;
+    Foncopy: THTMLSelectElementEventsoncopyEvent;
+    Fonbeforepaste: THTMLSelectElementEventsonbeforepasteEvent;
+    Fonpaste: THTMLSelectElementEventsonpasteEvent;
+    Foncontextmenu: THTMLSelectElementEventsoncontextmenuEvent;
+    Fonrowsdelete: THTMLSelectElementEventsonrowsdeleteEvent;
+    Fonrowsinserted: THTMLSelectElementEventsonrowsinsertedEvent;
+    Foncellchange: THTMLSelectElementEventsoncellchangeEvent;
+    Fonreadystatechange: THTMLSelectElementEventsonreadystatechangeEvent;
+    Fonbeforeeditfocus: THTMLSelectElementEventsonbeforeeditfocusEvent;
+    Fonlayoutcomplete: THTMLSelectElementEventsonlayoutcompleteEvent;
+    Fonpage: THTMLSelectElementEventsonpageEvent;
+    Fonbeforedeactivate: THTMLSelectElementEventsonbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLSelectElementEventsonbeforeactivateEvent;
+    Fonmove: THTMLSelectElementEventsonmoveEvent;
+    Foncontrolselect: THTMLSelectElementEventsoncontrolselectEvent;
+    Fonmovestart: THTMLSelectElementEventsonmovestartEvent;
+    Fonmoveend: THTMLSelectElementEventsonmoveendEvent;
+    Fonresizestart: THTMLSelectElementEventsonresizestartEvent;
+    Fonresizeend: THTMLSelectElementEventsonresizeendEvent;
+    Fonmouseenter: THTMLSelectElementEventsonmouseenterEvent;
+    Fonmouseleave: THTMLSelectElementEventsonmouseleaveEvent;
+    Fonmousewheel: THTMLSelectElementEventsonmousewheelEvent;
+    Fonactivate: THTMLSelectElementEventsonactivateEvent;
+    Fondeactivate: THTMLSelectElementEventsondeactivateEvent;
+    Fonfocusin: THTMLSelectElementEventsonfocusinEvent;
+    Fonfocusout: THTMLSelectElementEventsonfocusoutEvent;
+    Fonchange: THTMLSelectElementEventsonchangeEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLSelectElementEventsonhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLSelectElementEventsonclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLSelectElementEventsondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLSelectElementEventsonkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLSelectElementEventsonkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLSelectElementEventsonkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLSelectElementEventsonmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLSelectElementEventsonmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLSelectElementEventsonmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLSelectElementEventsonmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLSelectElementEventsonmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLSelectElementEventsonselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLSelectElementEventsonfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLSelectElementEventsondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLSelectElementEventsonbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLSelectElementEventsonafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLSelectElementEventsonerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLSelectElementEventsonrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLSelectElementEventsonrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLSelectElementEventsondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLSelectElementEventsondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLSelectElementEventsondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLSelectElementEventsonlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLSelectElementEventsonpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLSelectElementEventsonscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLSelectElementEventsonfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLSelectElementEventsonblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLSelectElementEventsonresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLSelectElementEventsondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLSelectElementEventsondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLSelectElementEventsondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLSelectElementEventsondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLSelectElementEventsondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLSelectElementEventsondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLSelectElementEventsonbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLSelectElementEventsoncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLSelectElementEventsonbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLSelectElementEventsoncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLSelectElementEventsonbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLSelectElementEventsonpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLSelectElementEventsoncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLSelectElementEventsonrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLSelectElementEventsonrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLSelectElementEventsoncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLSelectElementEventsonreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onbeforeeditfocus: THTMLSelectElementEventsonbeforeeditfocusEvent read Fonbeforeeditfocus write Fonbeforeeditfocus;
+    property onlayoutcomplete: THTMLSelectElementEventsonlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLSelectElementEventsonpageEvent read Fonpage write Fonpage;
+    property onbeforedeactivate: THTMLSelectElementEventsonbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLSelectElementEventsonbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onmove: THTMLSelectElementEventsonmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLSelectElementEventsoncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLSelectElementEventsonmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLSelectElementEventsonmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLSelectElementEventsonresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLSelectElementEventsonresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmouseenter: THTMLSelectElementEventsonmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLSelectElementEventsonmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onmousewheel: THTMLSelectElementEventsonmousewheelEvent read Fonmousewheel write Fonmousewheel;
+    property onactivate: THTMLSelectElementEventsonactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLSelectElementEventsondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onfocusin: THTMLSelectElementEventsonfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLSelectElementEventsonfocusoutEvent read Fonfocusout write Fonfocusout;
+    property onchange: THTMLSelectElementEventsonchangeEvent read Fonchange write Fonchange;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLSelectElementEvents2onhelpEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLSelectElementEvents2onclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLSelectElementEvents2ondblclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLSelectElementEvents2onkeypressEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLSelectElementEvents2onkeydownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2onkeyupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2onmouseoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2onmouseoverEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2onmousemoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2onmousedownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2onmouseupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2onselectstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLSelectElementEvents2onfilterchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2ondragstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLSelectElementEvents2onbeforeupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLSelectElementEvents2onafterupdateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2onerrorupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLSelectElementEvents2onrowexitEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLSelectElementEvents2onrowenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2ondatasetchangedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2ondataavailableEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2ondatasetcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2onlosecaptureEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2onpropertychangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2onscrollEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2onfocusEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2onblurEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2onresizeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2ondragEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLSelectElementEvents2ondragendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2ondragenterEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLSelectElementEvents2ondragoverEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLSelectElementEvents2ondragleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2ondropEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLSelectElementEvents2onbeforecutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLSelectElementEvents2oncutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLSelectElementEvents2onbeforecopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLSelectElementEvents2oncopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLSelectElementEvents2onbeforepasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLSelectElementEvents2onpasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLSelectElementEvents2oncontextmenuEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLSelectElementEvents2onrowsdeleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2onrowsinsertedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2oncellchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2onreadystatechangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2onlayoutcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2onpageEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2onmouseenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2onmouseleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2onactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2ondeactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2onbeforedeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLSelectElementEvents2onbeforeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLSelectElementEvents2onfocusinEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2onfocusoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2onmoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2oncontrolselectEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLSelectElementEvents2onmovestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLSelectElementEvents2onmoveendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2onresizestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLSelectElementEvents2onresizeendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLSelectElementEvents2onmousewheelEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLSelectElementEvents2onchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLSelectElementEvents2 = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondblclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonkeydown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonkeyup(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseover(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousemove(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousedown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseup(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfilterchange(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonafterupdate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetchanged(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondataavailable(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlosecapture(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpropertychange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonscroll(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocus(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonblur(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonresize(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrag(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragenter(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondragover(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragleave(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrop(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonpaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowsdelete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonrowsinserted(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Dooncellchange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonreadystatechange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlayoutcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpage(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseleave(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonactivate(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondeactivate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfocusin(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocusout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmove(const pEvtObj: IHTMLEventObj); safecall;
+    function Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonmoveend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonresizeend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonchange(const pEvtObj: IHTMLEventObj); safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLSelectElementEvents2onhelpEvent;
+    Fonclick: THTMLSelectElementEvents2onclickEvent;
+    Fondblclick: THTMLSelectElementEvents2ondblclickEvent;
+    Fonkeypress: THTMLSelectElementEvents2onkeypressEvent;
+    Fonkeydown: THTMLSelectElementEvents2onkeydownEvent;
+    Fonkeyup: THTMLSelectElementEvents2onkeyupEvent;
+    Fonmouseout: THTMLSelectElementEvents2onmouseoutEvent;
+    Fonmouseover: THTMLSelectElementEvents2onmouseoverEvent;
+    Fonmousemove: THTMLSelectElementEvents2onmousemoveEvent;
+    Fonmousedown: THTMLSelectElementEvents2onmousedownEvent;
+    Fonmouseup: THTMLSelectElementEvents2onmouseupEvent;
+    Fonselectstart: THTMLSelectElementEvents2onselectstartEvent;
+    Fonfilterchange: THTMLSelectElementEvents2onfilterchangeEvent;
+    Fondragstart: THTMLSelectElementEvents2ondragstartEvent;
+    Fonbeforeupdate: THTMLSelectElementEvents2onbeforeupdateEvent;
+    Fonafterupdate: THTMLSelectElementEvents2onafterupdateEvent;
+    Fonerrorupdate: THTMLSelectElementEvents2onerrorupdateEvent;
+    Fonrowexit: THTMLSelectElementEvents2onrowexitEvent;
+    Fonrowenter: THTMLSelectElementEvents2onrowenterEvent;
+    Fondatasetchanged: THTMLSelectElementEvents2ondatasetchangedEvent;
+    Fondataavailable: THTMLSelectElementEvents2ondataavailableEvent;
+    Fondatasetcomplete: THTMLSelectElementEvents2ondatasetcompleteEvent;
+    Fonlosecapture: THTMLSelectElementEvents2onlosecaptureEvent;
+    Fonpropertychange: THTMLSelectElementEvents2onpropertychangeEvent;
+    Fonscroll: THTMLSelectElementEvents2onscrollEvent;
+    Fonfocus: THTMLSelectElementEvents2onfocusEvent;
+    Fonblur: THTMLSelectElementEvents2onblurEvent;
+    Fonresize: THTMLSelectElementEvents2onresizeEvent;
+    Fondrag: THTMLSelectElementEvents2ondragEvent;
+    Fondragend: THTMLSelectElementEvents2ondragendEvent;
+    Fondragenter: THTMLSelectElementEvents2ondragenterEvent;
+    Fondragover: THTMLSelectElementEvents2ondragoverEvent;
+    Fondragleave: THTMLSelectElementEvents2ondragleaveEvent;
+    Fondrop: THTMLSelectElementEvents2ondropEvent;
+    Fonbeforecut: THTMLSelectElementEvents2onbeforecutEvent;
+    Foncut: THTMLSelectElementEvents2oncutEvent;
+    Fonbeforecopy: THTMLSelectElementEvents2onbeforecopyEvent;
+    Foncopy: THTMLSelectElementEvents2oncopyEvent;
+    Fonbeforepaste: THTMLSelectElementEvents2onbeforepasteEvent;
+    Fonpaste: THTMLSelectElementEvents2onpasteEvent;
+    Foncontextmenu: THTMLSelectElementEvents2oncontextmenuEvent;
+    Fonrowsdelete: THTMLSelectElementEvents2onrowsdeleteEvent;
+    Fonrowsinserted: THTMLSelectElementEvents2onrowsinsertedEvent;
+    Foncellchange: THTMLSelectElementEvents2oncellchangeEvent;
+    Fonreadystatechange: THTMLSelectElementEvents2onreadystatechangeEvent;
+    Fonlayoutcomplete: THTMLSelectElementEvents2onlayoutcompleteEvent;
+    Fonpage: THTMLSelectElementEvents2onpageEvent;
+    Fonmouseenter: THTMLSelectElementEvents2onmouseenterEvent;
+    Fonmouseleave: THTMLSelectElementEvents2onmouseleaveEvent;
+    Fonactivate: THTMLSelectElementEvents2onactivateEvent;
+    Fondeactivate: THTMLSelectElementEvents2ondeactivateEvent;
+    Fonbeforedeactivate: THTMLSelectElementEvents2onbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLSelectElementEvents2onbeforeactivateEvent;
+    Fonfocusin: THTMLSelectElementEvents2onfocusinEvent;
+    Fonfocusout: THTMLSelectElementEvents2onfocusoutEvent;
+    Fonmove: THTMLSelectElementEvents2onmoveEvent;
+    Foncontrolselect: THTMLSelectElementEvents2oncontrolselectEvent;
+    Fonmovestart: THTMLSelectElementEvents2onmovestartEvent;
+    Fonmoveend: THTMLSelectElementEvents2onmoveendEvent;
+    Fonresizestart: THTMLSelectElementEvents2onresizestartEvent;
+    Fonresizeend: THTMLSelectElementEvents2onresizeendEvent;
+    Fonmousewheel: THTMLSelectElementEvents2onmousewheelEvent;
+    Fonchange: THTMLSelectElementEvents2onchangeEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLSelectElementEvents2onhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLSelectElementEvents2onclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLSelectElementEvents2ondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLSelectElementEvents2onkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLSelectElementEvents2onkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLSelectElementEvents2onkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLSelectElementEvents2onmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLSelectElementEvents2onmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLSelectElementEvents2onmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLSelectElementEvents2onmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLSelectElementEvents2onmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLSelectElementEvents2onselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLSelectElementEvents2onfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLSelectElementEvents2ondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLSelectElementEvents2onbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLSelectElementEvents2onafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLSelectElementEvents2onerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLSelectElementEvents2onrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLSelectElementEvents2onrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLSelectElementEvents2ondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLSelectElementEvents2ondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLSelectElementEvents2ondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLSelectElementEvents2onlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLSelectElementEvents2onpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLSelectElementEvents2onscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLSelectElementEvents2onfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLSelectElementEvents2onblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLSelectElementEvents2onresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLSelectElementEvents2ondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLSelectElementEvents2ondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLSelectElementEvents2ondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLSelectElementEvents2ondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLSelectElementEvents2ondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLSelectElementEvents2ondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLSelectElementEvents2onbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLSelectElementEvents2oncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLSelectElementEvents2onbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLSelectElementEvents2oncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLSelectElementEvents2onbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLSelectElementEvents2onpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLSelectElementEvents2oncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLSelectElementEvents2onrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLSelectElementEvents2onrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLSelectElementEvents2oncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLSelectElementEvents2onreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onlayoutcomplete: THTMLSelectElementEvents2onlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLSelectElementEvents2onpageEvent read Fonpage write Fonpage;
+    property onmouseenter: THTMLSelectElementEvents2onmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLSelectElementEvents2onmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onactivate: THTMLSelectElementEvents2onactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLSelectElementEvents2ondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onbeforedeactivate: THTMLSelectElementEvents2onbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLSelectElementEvents2onbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onfocusin: THTMLSelectElementEvents2onfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLSelectElementEvents2onfocusoutEvent read Fonfocusout write Fonfocusout;
+    property onmove: THTMLSelectElementEvents2onmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLSelectElementEvents2oncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLSelectElementEvents2onmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLSelectElementEvents2onmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLSelectElementEvents2onresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLSelectElementEvents2onresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmousewheel: THTMLSelectElementEvents2onmousewheelEvent read Fonmousewheel write Fonmousewheel;
+    property onchange: THTMLSelectElementEvents2onchangeEvent read Fonchange write Fonchange;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLInputTextElementEventsonhelpEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputTextElementEventsonclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputTextElementEventsondblclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputTextElementEventsonkeypressEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputTextElementEventsonkeydownEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsonkeyupEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsonmouseoutEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsonmouseoverEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsonmousemoveEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsonmousedownEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsonmouseupEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsonselectstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputTextElementEventsonfilterchangeEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsondragstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputTextElementEventsonbeforeupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputTextElementEventsonafterupdateEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsonerrorupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputTextElementEventsonrowexitEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputTextElementEventsonrowenterEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsondatasetchangedEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsondataavailableEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsondatasetcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsonlosecaptureEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsonpropertychangeEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsonscrollEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsonfocusEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsonblurEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsonresizeEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsondragEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputTextElementEventsondragendEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsondragenterEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputTextElementEventsondragoverEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputTextElementEventsondragleaveEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsondropEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputTextElementEventsonbeforecutEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputTextElementEventsoncutEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputTextElementEventsonbeforecopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputTextElementEventsoncopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputTextElementEventsonbeforepasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputTextElementEventsonpasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputTextElementEventsoncontextmenuEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputTextElementEventsonrowsdeleteEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsonrowsinsertedEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsoncellchangeEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsonreadystatechangeEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsonbeforeeditfocusEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsonlayoutcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsonpageEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsonbeforedeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputTextElementEventsonbeforeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputTextElementEventsonmoveEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsoncontrolselectEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputTextElementEventsonmovestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputTextElementEventsonmoveendEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsonresizestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputTextElementEventsonresizeendEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsonmouseenterEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsonmouseleaveEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsonmousewheelEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputTextElementEventsonactivateEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsondeactivateEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsonfocusinEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsonfocusoutEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsonchangeEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputTextElementEventsonselectEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsonloadEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsonerrorEvent = procedure(Sender: TObject) of object;
+  THTMLInputTextElementEventsonabortEvent = procedure(Sender: TObject) of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLInputTextElementEvents = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp: WordBool; safecall;
+    function Doonclick: WordBool; safecall;
+    function Doondblclick: WordBool; safecall;
+    function Doonkeypress: WordBool; safecall;
+    procedure Doonkeydown; safecall;
+    procedure Doonkeyup; safecall;
+    procedure Doonmouseout; safecall;
+    procedure Doonmouseover; safecall;
+    procedure Doonmousemove; safecall;
+    procedure Doonmousedown; safecall;
+    procedure Doonmouseup; safecall;
+    function Doonselectstart: WordBool; safecall;
+    procedure Doonfilterchange; safecall;
+    function Doondragstart: WordBool; safecall;
+    function Doonbeforeupdate: WordBool; safecall;
+    procedure Doonafterupdate; safecall;
+    function Doonerrorupdate: WordBool; safecall;
+    function Doonrowexit: WordBool; safecall;
+    procedure Doonrowenter; safecall;
+    procedure Doondatasetchanged; safecall;
+    procedure Doondataavailable; safecall;
+    procedure Doondatasetcomplete; safecall;
+    procedure Doonlosecapture; safecall;
+    procedure Doonpropertychange; safecall;
+    procedure Doonscroll; safecall;
+    procedure Doonfocus; safecall;
+    procedure Doonblur; safecall;
+    procedure Doonresize; safecall;
+    function Doondrag: WordBool; safecall;
+    procedure Doondragend; safecall;
+    function Doondragenter: WordBool; safecall;
+    function Doondragover: WordBool; safecall;
+    procedure Doondragleave; safecall;
+    function Doondrop: WordBool; safecall;
+    function Doonbeforecut: WordBool; safecall;
+    function Dooncut: WordBool; safecall;
+    function Doonbeforecopy: WordBool; safecall;
+    function Dooncopy: WordBool; safecall;
+    function Doonbeforepaste: WordBool; safecall;
+    function Doonpaste: WordBool; safecall;
+    function Dooncontextmenu: WordBool; safecall;
+    procedure Doonrowsdelete; safecall;
+    procedure Doonrowsinserted; safecall;
+    procedure Dooncellchange; safecall;
+    procedure Doonreadystatechange; safecall;
+    procedure Doonbeforeeditfocus; safecall;
+    procedure Doonlayoutcomplete; safecall;
+    procedure Doonpage; safecall;
+    function Doonbeforedeactivate: WordBool; safecall;
+    function Doonbeforeactivate: WordBool; safecall;
+    procedure Doonmove; safecall;
+    function Dooncontrolselect: WordBool; safecall;
+    function Doonmovestart: WordBool; safecall;
+    procedure Doonmoveend; safecall;
+    function Doonresizestart: WordBool; safecall;
+    procedure Doonresizeend; safecall;
+    procedure Doonmouseenter; safecall;
+    procedure Doonmouseleave; safecall;
+    function Doonmousewheel: WordBool; safecall;
+    procedure Doonactivate; safecall;
+    procedure Doondeactivate; safecall;
+    procedure Doonfocusin; safecall;
+    procedure Doonfocusout; safecall;
+    function Doonchange: WordBool; safecall;
+    procedure Doonselect; safecall;
+    procedure Doonload; safecall;
+    procedure Doonerror; safecall;
+    procedure Doonabort; safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLInputTextElementEventsonhelpEvent;
+    Fonclick: THTMLInputTextElementEventsonclickEvent;
+    Fondblclick: THTMLInputTextElementEventsondblclickEvent;
+    Fonkeypress: THTMLInputTextElementEventsonkeypressEvent;
+    Fonkeydown: THTMLInputTextElementEventsonkeydownEvent;
+    Fonkeyup: THTMLInputTextElementEventsonkeyupEvent;
+    Fonmouseout: THTMLInputTextElementEventsonmouseoutEvent;
+    Fonmouseover: THTMLInputTextElementEventsonmouseoverEvent;
+    Fonmousemove: THTMLInputTextElementEventsonmousemoveEvent;
+    Fonmousedown: THTMLInputTextElementEventsonmousedownEvent;
+    Fonmouseup: THTMLInputTextElementEventsonmouseupEvent;
+    Fonselectstart: THTMLInputTextElementEventsonselectstartEvent;
+    Fonfilterchange: THTMLInputTextElementEventsonfilterchangeEvent;
+    Fondragstart: THTMLInputTextElementEventsondragstartEvent;
+    Fonbeforeupdate: THTMLInputTextElementEventsonbeforeupdateEvent;
+    Fonafterupdate: THTMLInputTextElementEventsonafterupdateEvent;
+    Fonerrorupdate: THTMLInputTextElementEventsonerrorupdateEvent;
+    Fonrowexit: THTMLInputTextElementEventsonrowexitEvent;
+    Fonrowenter: THTMLInputTextElementEventsonrowenterEvent;
+    Fondatasetchanged: THTMLInputTextElementEventsondatasetchangedEvent;
+    Fondataavailable: THTMLInputTextElementEventsondataavailableEvent;
+    Fondatasetcomplete: THTMLInputTextElementEventsondatasetcompleteEvent;
+    Fonlosecapture: THTMLInputTextElementEventsonlosecaptureEvent;
+    Fonpropertychange: THTMLInputTextElementEventsonpropertychangeEvent;
+    Fonscroll: THTMLInputTextElementEventsonscrollEvent;
+    Fonfocus: THTMLInputTextElementEventsonfocusEvent;
+    Fonblur: THTMLInputTextElementEventsonblurEvent;
+    Fonresize: THTMLInputTextElementEventsonresizeEvent;
+    Fondrag: THTMLInputTextElementEventsondragEvent;
+    Fondragend: THTMLInputTextElementEventsondragendEvent;
+    Fondragenter: THTMLInputTextElementEventsondragenterEvent;
+    Fondragover: THTMLInputTextElementEventsondragoverEvent;
+    Fondragleave: THTMLInputTextElementEventsondragleaveEvent;
+    Fondrop: THTMLInputTextElementEventsondropEvent;
+    Fonbeforecut: THTMLInputTextElementEventsonbeforecutEvent;
+    Foncut: THTMLInputTextElementEventsoncutEvent;
+    Fonbeforecopy: THTMLInputTextElementEventsonbeforecopyEvent;
+    Foncopy: THTMLInputTextElementEventsoncopyEvent;
+    Fonbeforepaste: THTMLInputTextElementEventsonbeforepasteEvent;
+    Fonpaste: THTMLInputTextElementEventsonpasteEvent;
+    Foncontextmenu: THTMLInputTextElementEventsoncontextmenuEvent;
+    Fonrowsdelete: THTMLInputTextElementEventsonrowsdeleteEvent;
+    Fonrowsinserted: THTMLInputTextElementEventsonrowsinsertedEvent;
+    Foncellchange: THTMLInputTextElementEventsoncellchangeEvent;
+    Fonreadystatechange: THTMLInputTextElementEventsonreadystatechangeEvent;
+    Fonbeforeeditfocus: THTMLInputTextElementEventsonbeforeeditfocusEvent;
+    Fonlayoutcomplete: THTMLInputTextElementEventsonlayoutcompleteEvent;
+    Fonpage: THTMLInputTextElementEventsonpageEvent;
+    Fonbeforedeactivate: THTMLInputTextElementEventsonbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLInputTextElementEventsonbeforeactivateEvent;
+    Fonmove: THTMLInputTextElementEventsonmoveEvent;
+    Foncontrolselect: THTMLInputTextElementEventsoncontrolselectEvent;
+    Fonmovestart: THTMLInputTextElementEventsonmovestartEvent;
+    Fonmoveend: THTMLInputTextElementEventsonmoveendEvent;
+    Fonresizestart: THTMLInputTextElementEventsonresizestartEvent;
+    Fonresizeend: THTMLInputTextElementEventsonresizeendEvent;
+    Fonmouseenter: THTMLInputTextElementEventsonmouseenterEvent;
+    Fonmouseleave: THTMLInputTextElementEventsonmouseleaveEvent;
+    Fonmousewheel: THTMLInputTextElementEventsonmousewheelEvent;
+    Fonactivate: THTMLInputTextElementEventsonactivateEvent;
+    Fondeactivate: THTMLInputTextElementEventsondeactivateEvent;
+    Fonfocusin: THTMLInputTextElementEventsonfocusinEvent;
+    Fonfocusout: THTMLInputTextElementEventsonfocusoutEvent;
+    Fonchange: THTMLInputTextElementEventsonchangeEvent;
+    Fonselect: THTMLInputTextElementEventsonselectEvent;
+    Fonload: THTMLInputTextElementEventsonloadEvent;
+    Fonerror: THTMLInputTextElementEventsonerrorEvent;
+    Fonabort: THTMLInputTextElementEventsonabortEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLInputTextElementEventsonhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLInputTextElementEventsonclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLInputTextElementEventsondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLInputTextElementEventsonkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLInputTextElementEventsonkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLInputTextElementEventsonkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLInputTextElementEventsonmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLInputTextElementEventsonmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLInputTextElementEventsonmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLInputTextElementEventsonmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLInputTextElementEventsonmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLInputTextElementEventsonselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLInputTextElementEventsonfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLInputTextElementEventsondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLInputTextElementEventsonbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLInputTextElementEventsonafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLInputTextElementEventsonerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLInputTextElementEventsonrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLInputTextElementEventsonrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLInputTextElementEventsondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLInputTextElementEventsondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLInputTextElementEventsondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLInputTextElementEventsonlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLInputTextElementEventsonpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLInputTextElementEventsonscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLInputTextElementEventsonfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLInputTextElementEventsonblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLInputTextElementEventsonresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLInputTextElementEventsondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLInputTextElementEventsondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLInputTextElementEventsondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLInputTextElementEventsondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLInputTextElementEventsondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLInputTextElementEventsondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLInputTextElementEventsonbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLInputTextElementEventsoncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLInputTextElementEventsonbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLInputTextElementEventsoncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLInputTextElementEventsonbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLInputTextElementEventsonpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLInputTextElementEventsoncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLInputTextElementEventsonrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLInputTextElementEventsonrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLInputTextElementEventsoncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLInputTextElementEventsonreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onbeforeeditfocus: THTMLInputTextElementEventsonbeforeeditfocusEvent read Fonbeforeeditfocus write Fonbeforeeditfocus;
+    property onlayoutcomplete: THTMLInputTextElementEventsonlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLInputTextElementEventsonpageEvent read Fonpage write Fonpage;
+    property onbeforedeactivate: THTMLInputTextElementEventsonbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLInputTextElementEventsonbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onmove: THTMLInputTextElementEventsonmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLInputTextElementEventsoncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLInputTextElementEventsonmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLInputTextElementEventsonmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLInputTextElementEventsonresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLInputTextElementEventsonresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmouseenter: THTMLInputTextElementEventsonmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLInputTextElementEventsonmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onmousewheel: THTMLInputTextElementEventsonmousewheelEvent read Fonmousewheel write Fonmousewheel;
+    property onactivate: THTMLInputTextElementEventsonactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLInputTextElementEventsondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onfocusin: THTMLInputTextElementEventsonfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLInputTextElementEventsonfocusoutEvent read Fonfocusout write Fonfocusout;
+    property onchange: THTMLInputTextElementEventsonchangeEvent read Fonchange write Fonchange;
+    property onselect: THTMLInputTextElementEventsonselectEvent read Fonselect write Fonselect;
+    property onload: THTMLInputTextElementEventsonloadEvent read Fonload write Fonload;
+    property onerror: THTMLInputTextElementEventsonerrorEvent read Fonerror write Fonerror;
+    property onabort: THTMLInputTextElementEventsonabortEvent read Fonabort write Fonabort;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLInputTextElementEvents2onhelpEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLInputTextElementEvents2onclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLInputTextElementEvents2ondblclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLInputTextElementEvents2onkeypressEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLInputTextElementEvents2onkeydownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2onkeyupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2onmouseoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2onmouseoverEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2onmousemoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2onmousedownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2onmouseupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2onselectstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLInputTextElementEvents2onfilterchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2ondragstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLInputTextElementEvents2onbeforeupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLInputTextElementEvents2onafterupdateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2onerrorupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLInputTextElementEvents2onrowexitEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLInputTextElementEvents2onrowenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2ondatasetchangedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2ondataavailableEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2ondatasetcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2onlosecaptureEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2onpropertychangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2onscrollEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2onfocusEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2onblurEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2onresizeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2ondragEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLInputTextElementEvents2ondragendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2ondragenterEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLInputTextElementEvents2ondragoverEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLInputTextElementEvents2ondragleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2ondropEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLInputTextElementEvents2onbeforecutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLInputTextElementEvents2oncutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLInputTextElementEvents2onbeforecopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLInputTextElementEvents2oncopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLInputTextElementEvents2onbeforepasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLInputTextElementEvents2onpasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLInputTextElementEvents2oncontextmenuEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLInputTextElementEvents2onrowsdeleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2onrowsinsertedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2oncellchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2onreadystatechangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2onlayoutcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2onpageEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2onmouseenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2onmouseleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2onactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2ondeactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2onbeforedeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLInputTextElementEvents2onbeforeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLInputTextElementEvents2onfocusinEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2onfocusoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2onmoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2oncontrolselectEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLInputTextElementEvents2onmovestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLInputTextElementEvents2onmoveendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2onresizestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLInputTextElementEvents2onresizeendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2onmousewheelEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLInputTextElementEvents2onchangeEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLInputTextElementEvents2onselectEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2onloadEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2onerrorEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLInputTextElementEvents2onabortEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLInputTextElementEvents2 = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondblclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonkeydown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonkeyup(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseover(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousemove(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousedown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseup(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfilterchange(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonafterupdate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetchanged(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondataavailable(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlosecapture(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpropertychange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonscroll(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocus(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonblur(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonresize(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrag(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragenter(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondragover(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragleave(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrop(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonpaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowsdelete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonrowsinserted(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Dooncellchange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonreadystatechange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlayoutcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpage(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseleave(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonactivate(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondeactivate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfocusin(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocusout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmove(const pEvtObj: IHTMLEventObj); safecall;
+    function Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonmoveend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonresizeend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonchange(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonselect(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonload(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonerror(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonabort(const pEvtObj: IHTMLEventObj); safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLInputTextElementEvents2onhelpEvent;
+    Fonclick: THTMLInputTextElementEvents2onclickEvent;
+    Fondblclick: THTMLInputTextElementEvents2ondblclickEvent;
+    Fonkeypress: THTMLInputTextElementEvents2onkeypressEvent;
+    Fonkeydown: THTMLInputTextElementEvents2onkeydownEvent;
+    Fonkeyup: THTMLInputTextElementEvents2onkeyupEvent;
+    Fonmouseout: THTMLInputTextElementEvents2onmouseoutEvent;
+    Fonmouseover: THTMLInputTextElementEvents2onmouseoverEvent;
+    Fonmousemove: THTMLInputTextElementEvents2onmousemoveEvent;
+    Fonmousedown: THTMLInputTextElementEvents2onmousedownEvent;
+    Fonmouseup: THTMLInputTextElementEvents2onmouseupEvent;
+    Fonselectstart: THTMLInputTextElementEvents2onselectstartEvent;
+    Fonfilterchange: THTMLInputTextElementEvents2onfilterchangeEvent;
+    Fondragstart: THTMLInputTextElementEvents2ondragstartEvent;
+    Fonbeforeupdate: THTMLInputTextElementEvents2onbeforeupdateEvent;
+    Fonafterupdate: THTMLInputTextElementEvents2onafterupdateEvent;
+    Fonerrorupdate: THTMLInputTextElementEvents2onerrorupdateEvent;
+    Fonrowexit: THTMLInputTextElementEvents2onrowexitEvent;
+    Fonrowenter: THTMLInputTextElementEvents2onrowenterEvent;
+    Fondatasetchanged: THTMLInputTextElementEvents2ondatasetchangedEvent;
+    Fondataavailable: THTMLInputTextElementEvents2ondataavailableEvent;
+    Fondatasetcomplete: THTMLInputTextElementEvents2ondatasetcompleteEvent;
+    Fonlosecapture: THTMLInputTextElementEvents2onlosecaptureEvent;
+    Fonpropertychange: THTMLInputTextElementEvents2onpropertychangeEvent;
+    Fonscroll: THTMLInputTextElementEvents2onscrollEvent;
+    Fonfocus: THTMLInputTextElementEvents2onfocusEvent;
+    Fonblur: THTMLInputTextElementEvents2onblurEvent;
+    Fonresize: THTMLInputTextElementEvents2onresizeEvent;
+    Fondrag: THTMLInputTextElementEvents2ondragEvent;
+    Fondragend: THTMLInputTextElementEvents2ondragendEvent;
+    Fondragenter: THTMLInputTextElementEvents2ondragenterEvent;
+    Fondragover: THTMLInputTextElementEvents2ondragoverEvent;
+    Fondragleave: THTMLInputTextElementEvents2ondragleaveEvent;
+    Fondrop: THTMLInputTextElementEvents2ondropEvent;
+    Fonbeforecut: THTMLInputTextElementEvents2onbeforecutEvent;
+    Foncut: THTMLInputTextElementEvents2oncutEvent;
+    Fonbeforecopy: THTMLInputTextElementEvents2onbeforecopyEvent;
+    Foncopy: THTMLInputTextElementEvents2oncopyEvent;
+    Fonbeforepaste: THTMLInputTextElementEvents2onbeforepasteEvent;
+    Fonpaste: THTMLInputTextElementEvents2onpasteEvent;
+    Foncontextmenu: THTMLInputTextElementEvents2oncontextmenuEvent;
+    Fonrowsdelete: THTMLInputTextElementEvents2onrowsdeleteEvent;
+    Fonrowsinserted: THTMLInputTextElementEvents2onrowsinsertedEvent;
+    Foncellchange: THTMLInputTextElementEvents2oncellchangeEvent;
+    Fonreadystatechange: THTMLInputTextElementEvents2onreadystatechangeEvent;
+    Fonlayoutcomplete: THTMLInputTextElementEvents2onlayoutcompleteEvent;
+    Fonpage: THTMLInputTextElementEvents2onpageEvent;
+    Fonmouseenter: THTMLInputTextElementEvents2onmouseenterEvent;
+    Fonmouseleave: THTMLInputTextElementEvents2onmouseleaveEvent;
+    Fonactivate: THTMLInputTextElementEvents2onactivateEvent;
+    Fondeactivate: THTMLInputTextElementEvents2ondeactivateEvent;
+    Fonbeforedeactivate: THTMLInputTextElementEvents2onbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLInputTextElementEvents2onbeforeactivateEvent;
+    Fonfocusin: THTMLInputTextElementEvents2onfocusinEvent;
+    Fonfocusout: THTMLInputTextElementEvents2onfocusoutEvent;
+    Fonmove: THTMLInputTextElementEvents2onmoveEvent;
+    Foncontrolselect: THTMLInputTextElementEvents2oncontrolselectEvent;
+    Fonmovestart: THTMLInputTextElementEvents2onmovestartEvent;
+    Fonmoveend: THTMLInputTextElementEvents2onmoveendEvent;
+    Fonresizestart: THTMLInputTextElementEvents2onresizestartEvent;
+    Fonresizeend: THTMLInputTextElementEvents2onresizeendEvent;
+    Fonmousewheel: THTMLInputTextElementEvents2onmousewheelEvent;
+    Fonchange: THTMLInputTextElementEvents2onchangeEvent;
+    Fonselect: THTMLInputTextElementEvents2onselectEvent;
+    Fonload: THTMLInputTextElementEvents2onloadEvent;
+    Fonerror: THTMLInputTextElementEvents2onerrorEvent;
+    Fonabort: THTMLInputTextElementEvents2onabortEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLInputTextElementEvents2onhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLInputTextElementEvents2onclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLInputTextElementEvents2ondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLInputTextElementEvents2onkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLInputTextElementEvents2onkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLInputTextElementEvents2onkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLInputTextElementEvents2onmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLInputTextElementEvents2onmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLInputTextElementEvents2onmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLInputTextElementEvents2onmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLInputTextElementEvents2onmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLInputTextElementEvents2onselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLInputTextElementEvents2onfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLInputTextElementEvents2ondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLInputTextElementEvents2onbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLInputTextElementEvents2onafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLInputTextElementEvents2onerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLInputTextElementEvents2onrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLInputTextElementEvents2onrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLInputTextElementEvents2ondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLInputTextElementEvents2ondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLInputTextElementEvents2ondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLInputTextElementEvents2onlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLInputTextElementEvents2onpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLInputTextElementEvents2onscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLInputTextElementEvents2onfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLInputTextElementEvents2onblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLInputTextElementEvents2onresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLInputTextElementEvents2ondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLInputTextElementEvents2ondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLInputTextElementEvents2ondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLInputTextElementEvents2ondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLInputTextElementEvents2ondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLInputTextElementEvents2ondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLInputTextElementEvents2onbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLInputTextElementEvents2oncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLInputTextElementEvents2onbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLInputTextElementEvents2oncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLInputTextElementEvents2onbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLInputTextElementEvents2onpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLInputTextElementEvents2oncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLInputTextElementEvents2onrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLInputTextElementEvents2onrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLInputTextElementEvents2oncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLInputTextElementEvents2onreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onlayoutcomplete: THTMLInputTextElementEvents2onlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLInputTextElementEvents2onpageEvent read Fonpage write Fonpage;
+    property onmouseenter: THTMLInputTextElementEvents2onmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLInputTextElementEvents2onmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onactivate: THTMLInputTextElementEvents2onactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLInputTextElementEvents2ondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onbeforedeactivate: THTMLInputTextElementEvents2onbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLInputTextElementEvents2onbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onfocusin: THTMLInputTextElementEvents2onfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLInputTextElementEvents2onfocusoutEvent read Fonfocusout write Fonfocusout;
+    property onmove: THTMLInputTextElementEvents2onmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLInputTextElementEvents2oncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLInputTextElementEvents2onmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLInputTextElementEvents2onmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLInputTextElementEvents2onresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLInputTextElementEvents2onresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmousewheel: THTMLInputTextElementEvents2onmousewheelEvent read Fonmousewheel write Fonmousewheel;
+    property onchange: THTMLInputTextElementEvents2onchangeEvent read Fonchange write Fonchange;
+    property onselect: THTMLInputTextElementEvents2onselectEvent read Fonselect write Fonselect;
+    property onload: THTMLInputTextElementEvents2onloadEvent read Fonload write Fonload;
+    property onerror: THTMLInputTextElementEvents2onerrorEvent read Fonerror write Fonerror;
+    property onabort: THTMLInputTextElementEvents2onabortEvent read Fonabort write Fonabort;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLOptionButtonElementEventsonhelpEvent = function(Sender: TObject): WordBool of object;
+  THTMLOptionButtonElementEventsonclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLOptionButtonElementEventsondblclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLOptionButtonElementEventsonkeypressEvent = function(Sender: TObject): WordBool of object;
+  THTMLOptionButtonElementEventsonkeydownEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsonkeyupEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsonmouseoutEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsonmouseoverEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsonmousemoveEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsonmousedownEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsonmouseupEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsonselectstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLOptionButtonElementEventsonfilterchangeEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsondragstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLOptionButtonElementEventsonbeforeupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLOptionButtonElementEventsonafterupdateEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsonerrorupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLOptionButtonElementEventsonrowexitEvent = function(Sender: TObject): WordBool of object;
+  THTMLOptionButtonElementEventsonrowenterEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsondatasetchangedEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsondataavailableEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsondatasetcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsonlosecaptureEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsonpropertychangeEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsonscrollEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsonfocusEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsonblurEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsonresizeEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsondragEvent = function(Sender: TObject): WordBool of object;
+  THTMLOptionButtonElementEventsondragendEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsondragenterEvent = function(Sender: TObject): WordBool of object;
+  THTMLOptionButtonElementEventsondragoverEvent = function(Sender: TObject): WordBool of object;
+  THTMLOptionButtonElementEventsondragleaveEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsondropEvent = function(Sender: TObject): WordBool of object;
+  THTMLOptionButtonElementEventsonbeforecutEvent = function(Sender: TObject): WordBool of object;
+  THTMLOptionButtonElementEventsoncutEvent = function(Sender: TObject): WordBool of object;
+  THTMLOptionButtonElementEventsonbeforecopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLOptionButtonElementEventsoncopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLOptionButtonElementEventsonbeforepasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLOptionButtonElementEventsonpasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLOptionButtonElementEventsoncontextmenuEvent = function(Sender: TObject): WordBool of object;
+  THTMLOptionButtonElementEventsonrowsdeleteEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsonrowsinsertedEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsoncellchangeEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsonreadystatechangeEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsonbeforeeditfocusEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsonlayoutcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsonpageEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsonbeforedeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLOptionButtonElementEventsonbeforeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLOptionButtonElementEventsonmoveEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsoncontrolselectEvent = function(Sender: TObject): WordBool of object;
+  THTMLOptionButtonElementEventsonmovestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLOptionButtonElementEventsonmoveendEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsonresizestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLOptionButtonElementEventsonresizeendEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsonmouseenterEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsonmouseleaveEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsonmousewheelEvent = function(Sender: TObject): WordBool of object;
+  THTMLOptionButtonElementEventsonactivateEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsondeactivateEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsonfocusinEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsonfocusoutEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsonchangeEvent = function(Sender: TObject): WordBool of object;
+  THTMLOptionButtonElementEventsonselectEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsonloadEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsonerrorEvent = procedure(Sender: TObject) of object;
+  THTMLOptionButtonElementEventsonabortEvent = procedure(Sender: TObject) of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLOptionButtonElementEvents = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp: WordBool; safecall;
+    function Doonclick: WordBool; safecall;
+    function Doondblclick: WordBool; safecall;
+    function Doonkeypress: WordBool; safecall;
+    procedure Doonkeydown; safecall;
+    procedure Doonkeyup; safecall;
+    procedure Doonmouseout; safecall;
+    procedure Doonmouseover; safecall;
+    procedure Doonmousemove; safecall;
+    procedure Doonmousedown; safecall;
+    procedure Doonmouseup; safecall;
+    function Doonselectstart: WordBool; safecall;
+    procedure Doonfilterchange; safecall;
+    function Doondragstart: WordBool; safecall;
+    function Doonbeforeupdate: WordBool; safecall;
+    procedure Doonafterupdate; safecall;
+    function Doonerrorupdate: WordBool; safecall;
+    function Doonrowexit: WordBool; safecall;
+    procedure Doonrowenter; safecall;
+    procedure Doondatasetchanged; safecall;
+    procedure Doondataavailable; safecall;
+    procedure Doondatasetcomplete; safecall;
+    procedure Doonlosecapture; safecall;
+    procedure Doonpropertychange; safecall;
+    procedure Doonscroll; safecall;
+    procedure Doonfocus; safecall;
+    procedure Doonblur; safecall;
+    procedure Doonresize; safecall;
+    function Doondrag: WordBool; safecall;
+    procedure Doondragend; safecall;
+    function Doondragenter: WordBool; safecall;
+    function Doondragover: WordBool; safecall;
+    procedure Doondragleave; safecall;
+    function Doondrop: WordBool; safecall;
+    function Doonbeforecut: WordBool; safecall;
+    function Dooncut: WordBool; safecall;
+    function Doonbeforecopy: WordBool; safecall;
+    function Dooncopy: WordBool; safecall;
+    function Doonbeforepaste: WordBool; safecall;
+    function Doonpaste: WordBool; safecall;
+    function Dooncontextmenu: WordBool; safecall;
+    procedure Doonrowsdelete; safecall;
+    procedure Doonrowsinserted; safecall;
+    procedure Dooncellchange; safecall;
+    procedure Doonreadystatechange; safecall;
+    procedure Doonbeforeeditfocus; safecall;
+    procedure Doonlayoutcomplete; safecall;
+    procedure Doonpage; safecall;
+    function Doonbeforedeactivate: WordBool; safecall;
+    function Doonbeforeactivate: WordBool; safecall;
+    procedure Doonmove; safecall;
+    function Dooncontrolselect: WordBool; safecall;
+    function Doonmovestart: WordBool; safecall;
+    procedure Doonmoveend; safecall;
+    function Doonresizestart: WordBool; safecall;
+    procedure Doonresizeend; safecall;
+    procedure Doonmouseenter; safecall;
+    procedure Doonmouseleave; safecall;
+    function Doonmousewheel: WordBool; safecall;
+    procedure Doonactivate; safecall;
+    procedure Doondeactivate; safecall;
+    procedure Doonfocusin; safecall;
+    procedure Doonfocusout; safecall;
+    function Doonchange: WordBool; safecall;
+    procedure Doonselect; safecall;
+    procedure Doonload; safecall;
+    procedure Doonerror; safecall;
+    procedure Doonabort; safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLOptionButtonElementEventsonhelpEvent;
+    Fonclick: THTMLOptionButtonElementEventsonclickEvent;
+    Fondblclick: THTMLOptionButtonElementEventsondblclickEvent;
+    Fonkeypress: THTMLOptionButtonElementEventsonkeypressEvent;
+    Fonkeydown: THTMLOptionButtonElementEventsonkeydownEvent;
+    Fonkeyup: THTMLOptionButtonElementEventsonkeyupEvent;
+    Fonmouseout: THTMLOptionButtonElementEventsonmouseoutEvent;
+    Fonmouseover: THTMLOptionButtonElementEventsonmouseoverEvent;
+    Fonmousemove: THTMLOptionButtonElementEventsonmousemoveEvent;
+    Fonmousedown: THTMLOptionButtonElementEventsonmousedownEvent;
+    Fonmouseup: THTMLOptionButtonElementEventsonmouseupEvent;
+    Fonselectstart: THTMLOptionButtonElementEventsonselectstartEvent;
+    Fonfilterchange: THTMLOptionButtonElementEventsonfilterchangeEvent;
+    Fondragstart: THTMLOptionButtonElementEventsondragstartEvent;
+    Fonbeforeupdate: THTMLOptionButtonElementEventsonbeforeupdateEvent;
+    Fonafterupdate: THTMLOptionButtonElementEventsonafterupdateEvent;
+    Fonerrorupdate: THTMLOptionButtonElementEventsonerrorupdateEvent;
+    Fonrowexit: THTMLOptionButtonElementEventsonrowexitEvent;
+    Fonrowenter: THTMLOptionButtonElementEventsonrowenterEvent;
+    Fondatasetchanged: THTMLOptionButtonElementEventsondatasetchangedEvent;
+    Fondataavailable: THTMLOptionButtonElementEventsondataavailableEvent;
+    Fondatasetcomplete: THTMLOptionButtonElementEventsondatasetcompleteEvent;
+    Fonlosecapture: THTMLOptionButtonElementEventsonlosecaptureEvent;
+    Fonpropertychange: THTMLOptionButtonElementEventsonpropertychangeEvent;
+    Fonscroll: THTMLOptionButtonElementEventsonscrollEvent;
+    Fonfocus: THTMLOptionButtonElementEventsonfocusEvent;
+    Fonblur: THTMLOptionButtonElementEventsonblurEvent;
+    Fonresize: THTMLOptionButtonElementEventsonresizeEvent;
+    Fondrag: THTMLOptionButtonElementEventsondragEvent;
+    Fondragend: THTMLOptionButtonElementEventsondragendEvent;
+    Fondragenter: THTMLOptionButtonElementEventsondragenterEvent;
+    Fondragover: THTMLOptionButtonElementEventsondragoverEvent;
+    Fondragleave: THTMLOptionButtonElementEventsondragleaveEvent;
+    Fondrop: THTMLOptionButtonElementEventsondropEvent;
+    Fonbeforecut: THTMLOptionButtonElementEventsonbeforecutEvent;
+    Foncut: THTMLOptionButtonElementEventsoncutEvent;
+    Fonbeforecopy: THTMLOptionButtonElementEventsonbeforecopyEvent;
+    Foncopy: THTMLOptionButtonElementEventsoncopyEvent;
+    Fonbeforepaste: THTMLOptionButtonElementEventsonbeforepasteEvent;
+    Fonpaste: THTMLOptionButtonElementEventsonpasteEvent;
+    Foncontextmenu: THTMLOptionButtonElementEventsoncontextmenuEvent;
+    Fonrowsdelete: THTMLOptionButtonElementEventsonrowsdeleteEvent;
+    Fonrowsinserted: THTMLOptionButtonElementEventsonrowsinsertedEvent;
+    Foncellchange: THTMLOptionButtonElementEventsoncellchangeEvent;
+    Fonreadystatechange: THTMLOptionButtonElementEventsonreadystatechangeEvent;
+    Fonbeforeeditfocus: THTMLOptionButtonElementEventsonbeforeeditfocusEvent;
+    Fonlayoutcomplete: THTMLOptionButtonElementEventsonlayoutcompleteEvent;
+    Fonpage: THTMLOptionButtonElementEventsonpageEvent;
+    Fonbeforedeactivate: THTMLOptionButtonElementEventsonbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLOptionButtonElementEventsonbeforeactivateEvent;
+    Fonmove: THTMLOptionButtonElementEventsonmoveEvent;
+    Foncontrolselect: THTMLOptionButtonElementEventsoncontrolselectEvent;
+    Fonmovestart: THTMLOptionButtonElementEventsonmovestartEvent;
+    Fonmoveend: THTMLOptionButtonElementEventsonmoveendEvent;
+    Fonresizestart: THTMLOptionButtonElementEventsonresizestartEvent;
+    Fonresizeend: THTMLOptionButtonElementEventsonresizeendEvent;
+    Fonmouseenter: THTMLOptionButtonElementEventsonmouseenterEvent;
+    Fonmouseleave: THTMLOptionButtonElementEventsonmouseleaveEvent;
+    Fonmousewheel: THTMLOptionButtonElementEventsonmousewheelEvent;
+    Fonactivate: THTMLOptionButtonElementEventsonactivateEvent;
+    Fondeactivate: THTMLOptionButtonElementEventsondeactivateEvent;
+    Fonfocusin: THTMLOptionButtonElementEventsonfocusinEvent;
+    Fonfocusout: THTMLOptionButtonElementEventsonfocusoutEvent;
+    Fonchange: THTMLOptionButtonElementEventsonchangeEvent;
+    Fonselect: THTMLOptionButtonElementEventsonselectEvent;
+    Fonload: THTMLOptionButtonElementEventsonloadEvent;
+    Fonerror: THTMLOptionButtonElementEventsonerrorEvent;
+    Fonabort: THTMLOptionButtonElementEventsonabortEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLOptionButtonElementEventsonhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLOptionButtonElementEventsonclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLOptionButtonElementEventsondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLOptionButtonElementEventsonkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLOptionButtonElementEventsonkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLOptionButtonElementEventsonkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLOptionButtonElementEventsonmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLOptionButtonElementEventsonmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLOptionButtonElementEventsonmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLOptionButtonElementEventsonmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLOptionButtonElementEventsonmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLOptionButtonElementEventsonselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLOptionButtonElementEventsonfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLOptionButtonElementEventsondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLOptionButtonElementEventsonbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLOptionButtonElementEventsonafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLOptionButtonElementEventsonerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLOptionButtonElementEventsonrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLOptionButtonElementEventsonrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLOptionButtonElementEventsondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLOptionButtonElementEventsondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLOptionButtonElementEventsondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLOptionButtonElementEventsonlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLOptionButtonElementEventsonpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLOptionButtonElementEventsonscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLOptionButtonElementEventsonfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLOptionButtonElementEventsonblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLOptionButtonElementEventsonresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLOptionButtonElementEventsondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLOptionButtonElementEventsondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLOptionButtonElementEventsondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLOptionButtonElementEventsondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLOptionButtonElementEventsondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLOptionButtonElementEventsondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLOptionButtonElementEventsonbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLOptionButtonElementEventsoncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLOptionButtonElementEventsonbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLOptionButtonElementEventsoncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLOptionButtonElementEventsonbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLOptionButtonElementEventsonpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLOptionButtonElementEventsoncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLOptionButtonElementEventsonrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLOptionButtonElementEventsonrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLOptionButtonElementEventsoncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLOptionButtonElementEventsonreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onbeforeeditfocus: THTMLOptionButtonElementEventsonbeforeeditfocusEvent read Fonbeforeeditfocus write Fonbeforeeditfocus;
+    property onlayoutcomplete: THTMLOptionButtonElementEventsonlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLOptionButtonElementEventsonpageEvent read Fonpage write Fonpage;
+    property onbeforedeactivate: THTMLOptionButtonElementEventsonbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLOptionButtonElementEventsonbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onmove: THTMLOptionButtonElementEventsonmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLOptionButtonElementEventsoncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLOptionButtonElementEventsonmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLOptionButtonElementEventsonmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLOptionButtonElementEventsonresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLOptionButtonElementEventsonresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmouseenter: THTMLOptionButtonElementEventsonmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLOptionButtonElementEventsonmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onmousewheel: THTMLOptionButtonElementEventsonmousewheelEvent read Fonmousewheel write Fonmousewheel;
+    property onactivate: THTMLOptionButtonElementEventsonactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLOptionButtonElementEventsondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onfocusin: THTMLOptionButtonElementEventsonfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLOptionButtonElementEventsonfocusoutEvent read Fonfocusout write Fonfocusout;
+    property onchange: THTMLOptionButtonElementEventsonchangeEvent read Fonchange write Fonchange;
+    property onselect: THTMLOptionButtonElementEventsonselectEvent read Fonselect write Fonselect;
+    property onload: THTMLOptionButtonElementEventsonloadEvent read Fonload write Fonload;
+    property onerror: THTMLOptionButtonElementEventsonerrorEvent read Fonerror write Fonerror;
+    property onabort: THTMLOptionButtonElementEventsonabortEvent read Fonabort write Fonabort;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLButtonElementEventsonhelpEvent = function(Sender: TObject): WordBool of object;
+  THTMLButtonElementEventsonclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLButtonElementEventsondblclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLButtonElementEventsonkeypressEvent = function(Sender: TObject): WordBool of object;
+  THTMLButtonElementEventsonkeydownEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsonkeyupEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsonmouseoutEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsonmouseoverEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsonmousemoveEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsonmousedownEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsonmouseupEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsonselectstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLButtonElementEventsonfilterchangeEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsondragstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLButtonElementEventsonbeforeupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLButtonElementEventsonafterupdateEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsonerrorupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLButtonElementEventsonrowexitEvent = function(Sender: TObject): WordBool of object;
+  THTMLButtonElementEventsonrowenterEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsondatasetchangedEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsondataavailableEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsondatasetcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsonlosecaptureEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsonpropertychangeEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsonscrollEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsonfocusEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsonblurEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsonresizeEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsondragEvent = function(Sender: TObject): WordBool of object;
+  THTMLButtonElementEventsondragendEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsondragenterEvent = function(Sender: TObject): WordBool of object;
+  THTMLButtonElementEventsondragoverEvent = function(Sender: TObject): WordBool of object;
+  THTMLButtonElementEventsondragleaveEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsondropEvent = function(Sender: TObject): WordBool of object;
+  THTMLButtonElementEventsonbeforecutEvent = function(Sender: TObject): WordBool of object;
+  THTMLButtonElementEventsoncutEvent = function(Sender: TObject): WordBool of object;
+  THTMLButtonElementEventsonbeforecopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLButtonElementEventsoncopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLButtonElementEventsonbeforepasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLButtonElementEventsonpasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLButtonElementEventsoncontextmenuEvent = function(Sender: TObject): WordBool of object;
+  THTMLButtonElementEventsonrowsdeleteEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsonrowsinsertedEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsoncellchangeEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsonreadystatechangeEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsonbeforeeditfocusEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsonlayoutcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsonpageEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsonbeforedeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLButtonElementEventsonbeforeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLButtonElementEventsonmoveEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsoncontrolselectEvent = function(Sender: TObject): WordBool of object;
+  THTMLButtonElementEventsonmovestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLButtonElementEventsonmoveendEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsonresizestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLButtonElementEventsonresizeendEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsonmouseenterEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsonmouseleaveEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsonmousewheelEvent = function(Sender: TObject): WordBool of object;
+  THTMLButtonElementEventsonactivateEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsondeactivateEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsonfocusinEvent = procedure(Sender: TObject) of object;
+  THTMLButtonElementEventsonfocusoutEvent = procedure(Sender: TObject) of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLButtonElementEvents = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp: WordBool; safecall;
+    function Doonclick: WordBool; safecall;
+    function Doondblclick: WordBool; safecall;
+    function Doonkeypress: WordBool; safecall;
+    procedure Doonkeydown; safecall;
+    procedure Doonkeyup; safecall;
+    procedure Doonmouseout; safecall;
+    procedure Doonmouseover; safecall;
+    procedure Doonmousemove; safecall;
+    procedure Doonmousedown; safecall;
+    procedure Doonmouseup; safecall;
+    function Doonselectstart: WordBool; safecall;
+    procedure Doonfilterchange; safecall;
+    function Doondragstart: WordBool; safecall;
+    function Doonbeforeupdate: WordBool; safecall;
+    procedure Doonafterupdate; safecall;
+    function Doonerrorupdate: WordBool; safecall;
+    function Doonrowexit: WordBool; safecall;
+    procedure Doonrowenter; safecall;
+    procedure Doondatasetchanged; safecall;
+    procedure Doondataavailable; safecall;
+    procedure Doondatasetcomplete; safecall;
+    procedure Doonlosecapture; safecall;
+    procedure Doonpropertychange; safecall;
+    procedure Doonscroll; safecall;
+    procedure Doonfocus; safecall;
+    procedure Doonblur; safecall;
+    procedure Doonresize; safecall;
+    function Doondrag: WordBool; safecall;
+    procedure Doondragend; safecall;
+    function Doondragenter: WordBool; safecall;
+    function Doondragover: WordBool; safecall;
+    procedure Doondragleave; safecall;
+    function Doondrop: WordBool; safecall;
+    function Doonbeforecut: WordBool; safecall;
+    function Dooncut: WordBool; safecall;
+    function Doonbeforecopy: WordBool; safecall;
+    function Dooncopy: WordBool; safecall;
+    function Doonbeforepaste: WordBool; safecall;
+    function Doonpaste: WordBool; safecall;
+    function Dooncontextmenu: WordBool; safecall;
+    procedure Doonrowsdelete; safecall;
+    procedure Doonrowsinserted; safecall;
+    procedure Dooncellchange; safecall;
+    procedure Doonreadystatechange; safecall;
+    procedure Doonbeforeeditfocus; safecall;
+    procedure Doonlayoutcomplete; safecall;
+    procedure Doonpage; safecall;
+    function Doonbeforedeactivate: WordBool; safecall;
+    function Doonbeforeactivate: WordBool; safecall;
+    procedure Doonmove; safecall;
+    function Dooncontrolselect: WordBool; safecall;
+    function Doonmovestart: WordBool; safecall;
+    procedure Doonmoveend; safecall;
+    function Doonresizestart: WordBool; safecall;
+    procedure Doonresizeend; safecall;
+    procedure Doonmouseenter; safecall;
+    procedure Doonmouseleave; safecall;
+    function Doonmousewheel: WordBool; safecall;
+    procedure Doonactivate; safecall;
+    procedure Doondeactivate; safecall;
+    procedure Doonfocusin; safecall;
+    procedure Doonfocusout; safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLButtonElementEventsonhelpEvent;
+    Fonclick: THTMLButtonElementEventsonclickEvent;
+    Fondblclick: THTMLButtonElementEventsondblclickEvent;
+    Fonkeypress: THTMLButtonElementEventsonkeypressEvent;
+    Fonkeydown: THTMLButtonElementEventsonkeydownEvent;
+    Fonkeyup: THTMLButtonElementEventsonkeyupEvent;
+    Fonmouseout: THTMLButtonElementEventsonmouseoutEvent;
+    Fonmouseover: THTMLButtonElementEventsonmouseoverEvent;
+    Fonmousemove: THTMLButtonElementEventsonmousemoveEvent;
+    Fonmousedown: THTMLButtonElementEventsonmousedownEvent;
+    Fonmouseup: THTMLButtonElementEventsonmouseupEvent;
+    Fonselectstart: THTMLButtonElementEventsonselectstartEvent;
+    Fonfilterchange: THTMLButtonElementEventsonfilterchangeEvent;
+    Fondragstart: THTMLButtonElementEventsondragstartEvent;
+    Fonbeforeupdate: THTMLButtonElementEventsonbeforeupdateEvent;
+    Fonafterupdate: THTMLButtonElementEventsonafterupdateEvent;
+    Fonerrorupdate: THTMLButtonElementEventsonerrorupdateEvent;
+    Fonrowexit: THTMLButtonElementEventsonrowexitEvent;
+    Fonrowenter: THTMLButtonElementEventsonrowenterEvent;
+    Fondatasetchanged: THTMLButtonElementEventsondatasetchangedEvent;
+    Fondataavailable: THTMLButtonElementEventsondataavailableEvent;
+    Fondatasetcomplete: THTMLButtonElementEventsondatasetcompleteEvent;
+    Fonlosecapture: THTMLButtonElementEventsonlosecaptureEvent;
+    Fonpropertychange: THTMLButtonElementEventsonpropertychangeEvent;
+    Fonscroll: THTMLButtonElementEventsonscrollEvent;
+    Fonfocus: THTMLButtonElementEventsonfocusEvent;
+    Fonblur: THTMLButtonElementEventsonblurEvent;
+    Fonresize: THTMLButtonElementEventsonresizeEvent;
+    Fondrag: THTMLButtonElementEventsondragEvent;
+    Fondragend: THTMLButtonElementEventsondragendEvent;
+    Fondragenter: THTMLButtonElementEventsondragenterEvent;
+    Fondragover: THTMLButtonElementEventsondragoverEvent;
+    Fondragleave: THTMLButtonElementEventsondragleaveEvent;
+    Fondrop: THTMLButtonElementEventsondropEvent;
+    Fonbeforecut: THTMLButtonElementEventsonbeforecutEvent;
+    Foncut: THTMLButtonElementEventsoncutEvent;
+    Fonbeforecopy: THTMLButtonElementEventsonbeforecopyEvent;
+    Foncopy: THTMLButtonElementEventsoncopyEvent;
+    Fonbeforepaste: THTMLButtonElementEventsonbeforepasteEvent;
+    Fonpaste: THTMLButtonElementEventsonpasteEvent;
+    Foncontextmenu: THTMLButtonElementEventsoncontextmenuEvent;
+    Fonrowsdelete: THTMLButtonElementEventsonrowsdeleteEvent;
+    Fonrowsinserted: THTMLButtonElementEventsonrowsinsertedEvent;
+    Foncellchange: THTMLButtonElementEventsoncellchangeEvent;
+    Fonreadystatechange: THTMLButtonElementEventsonreadystatechangeEvent;
+    Fonbeforeeditfocus: THTMLButtonElementEventsonbeforeeditfocusEvent;
+    Fonlayoutcomplete: THTMLButtonElementEventsonlayoutcompleteEvent;
+    Fonpage: THTMLButtonElementEventsonpageEvent;
+    Fonbeforedeactivate: THTMLButtonElementEventsonbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLButtonElementEventsonbeforeactivateEvent;
+    Fonmove: THTMLButtonElementEventsonmoveEvent;
+    Foncontrolselect: THTMLButtonElementEventsoncontrolselectEvent;
+    Fonmovestart: THTMLButtonElementEventsonmovestartEvent;
+    Fonmoveend: THTMLButtonElementEventsonmoveendEvent;
+    Fonresizestart: THTMLButtonElementEventsonresizestartEvent;
+    Fonresizeend: THTMLButtonElementEventsonresizeendEvent;
+    Fonmouseenter: THTMLButtonElementEventsonmouseenterEvent;
+    Fonmouseleave: THTMLButtonElementEventsonmouseleaveEvent;
+    Fonmousewheel: THTMLButtonElementEventsonmousewheelEvent;
+    Fonactivate: THTMLButtonElementEventsonactivateEvent;
+    Fondeactivate: THTMLButtonElementEventsondeactivateEvent;
+    Fonfocusin: THTMLButtonElementEventsonfocusinEvent;
+    Fonfocusout: THTMLButtonElementEventsonfocusoutEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLButtonElementEventsonhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLButtonElementEventsonclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLButtonElementEventsondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLButtonElementEventsonkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLButtonElementEventsonkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLButtonElementEventsonkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLButtonElementEventsonmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLButtonElementEventsonmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLButtonElementEventsonmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLButtonElementEventsonmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLButtonElementEventsonmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLButtonElementEventsonselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLButtonElementEventsonfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLButtonElementEventsondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLButtonElementEventsonbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLButtonElementEventsonafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLButtonElementEventsonerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLButtonElementEventsonrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLButtonElementEventsonrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLButtonElementEventsondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLButtonElementEventsondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLButtonElementEventsondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLButtonElementEventsonlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLButtonElementEventsonpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLButtonElementEventsonscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLButtonElementEventsonfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLButtonElementEventsonblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLButtonElementEventsonresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLButtonElementEventsondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLButtonElementEventsondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLButtonElementEventsondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLButtonElementEventsondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLButtonElementEventsondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLButtonElementEventsondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLButtonElementEventsonbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLButtonElementEventsoncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLButtonElementEventsonbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLButtonElementEventsoncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLButtonElementEventsonbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLButtonElementEventsonpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLButtonElementEventsoncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLButtonElementEventsonrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLButtonElementEventsonrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLButtonElementEventsoncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLButtonElementEventsonreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onbeforeeditfocus: THTMLButtonElementEventsonbeforeeditfocusEvent read Fonbeforeeditfocus write Fonbeforeeditfocus;
+    property onlayoutcomplete: THTMLButtonElementEventsonlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLButtonElementEventsonpageEvent read Fonpage write Fonpage;
+    property onbeforedeactivate: THTMLButtonElementEventsonbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLButtonElementEventsonbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onmove: THTMLButtonElementEventsonmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLButtonElementEventsoncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLButtonElementEventsonmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLButtonElementEventsonmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLButtonElementEventsonresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLButtonElementEventsonresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmouseenter: THTMLButtonElementEventsonmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLButtonElementEventsonmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onmousewheel: THTMLButtonElementEventsonmousewheelEvent read Fonmousewheel write Fonmousewheel;
+    property onactivate: THTMLButtonElementEventsonactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLButtonElementEventsondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onfocusin: THTMLButtonElementEventsonfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLButtonElementEventsonfocusoutEvent read Fonfocusout write Fonfocusout;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLButtonElementEvents2onhelpEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLButtonElementEvents2onclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLButtonElementEvents2ondblclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLButtonElementEvents2onkeypressEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLButtonElementEvents2onkeydownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2onkeyupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2onmouseoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2onmouseoverEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2onmousemoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2onmousedownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2onmouseupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2onselectstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLButtonElementEvents2onfilterchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2ondragstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLButtonElementEvents2onbeforeupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLButtonElementEvents2onafterupdateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2onerrorupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLButtonElementEvents2onrowexitEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLButtonElementEvents2onrowenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2ondatasetchangedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2ondataavailableEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2ondatasetcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2onlosecaptureEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2onpropertychangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2onscrollEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2onfocusEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2onblurEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2onresizeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2ondragEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLButtonElementEvents2ondragendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2ondragenterEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLButtonElementEvents2ondragoverEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLButtonElementEvents2ondragleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2ondropEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLButtonElementEvents2onbeforecutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLButtonElementEvents2oncutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLButtonElementEvents2onbeforecopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLButtonElementEvents2oncopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLButtonElementEvents2onbeforepasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLButtonElementEvents2onpasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLButtonElementEvents2oncontextmenuEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLButtonElementEvents2onrowsdeleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2onrowsinsertedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2oncellchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2onreadystatechangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2onlayoutcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2onpageEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2onmouseenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2onmouseleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2onactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2ondeactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2onbeforedeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLButtonElementEvents2onbeforeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLButtonElementEvents2onfocusinEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2onfocusoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2onmoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2oncontrolselectEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLButtonElementEvents2onmovestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLButtonElementEvents2onmoveendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2onresizestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLButtonElementEvents2onresizeendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLButtonElementEvents2onmousewheelEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLButtonElementEvents2 = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondblclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonkeydown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonkeyup(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseover(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousemove(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousedown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseup(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfilterchange(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonafterupdate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetchanged(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondataavailable(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlosecapture(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpropertychange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonscroll(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocus(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonblur(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonresize(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrag(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragenter(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondragover(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragleave(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrop(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonpaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowsdelete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonrowsinserted(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Dooncellchange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonreadystatechange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlayoutcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpage(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseleave(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonactivate(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondeactivate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfocusin(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocusout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmove(const pEvtObj: IHTMLEventObj); safecall;
+    function Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonmoveend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonresizeend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLButtonElementEvents2onhelpEvent;
+    Fonclick: THTMLButtonElementEvents2onclickEvent;
+    Fondblclick: THTMLButtonElementEvents2ondblclickEvent;
+    Fonkeypress: THTMLButtonElementEvents2onkeypressEvent;
+    Fonkeydown: THTMLButtonElementEvents2onkeydownEvent;
+    Fonkeyup: THTMLButtonElementEvents2onkeyupEvent;
+    Fonmouseout: THTMLButtonElementEvents2onmouseoutEvent;
+    Fonmouseover: THTMLButtonElementEvents2onmouseoverEvent;
+    Fonmousemove: THTMLButtonElementEvents2onmousemoveEvent;
+    Fonmousedown: THTMLButtonElementEvents2onmousedownEvent;
+    Fonmouseup: THTMLButtonElementEvents2onmouseupEvent;
+    Fonselectstart: THTMLButtonElementEvents2onselectstartEvent;
+    Fonfilterchange: THTMLButtonElementEvents2onfilterchangeEvent;
+    Fondragstart: THTMLButtonElementEvents2ondragstartEvent;
+    Fonbeforeupdate: THTMLButtonElementEvents2onbeforeupdateEvent;
+    Fonafterupdate: THTMLButtonElementEvents2onafterupdateEvent;
+    Fonerrorupdate: THTMLButtonElementEvents2onerrorupdateEvent;
+    Fonrowexit: THTMLButtonElementEvents2onrowexitEvent;
+    Fonrowenter: THTMLButtonElementEvents2onrowenterEvent;
+    Fondatasetchanged: THTMLButtonElementEvents2ondatasetchangedEvent;
+    Fondataavailable: THTMLButtonElementEvents2ondataavailableEvent;
+    Fondatasetcomplete: THTMLButtonElementEvents2ondatasetcompleteEvent;
+    Fonlosecapture: THTMLButtonElementEvents2onlosecaptureEvent;
+    Fonpropertychange: THTMLButtonElementEvents2onpropertychangeEvent;
+    Fonscroll: THTMLButtonElementEvents2onscrollEvent;
+    Fonfocus: THTMLButtonElementEvents2onfocusEvent;
+    Fonblur: THTMLButtonElementEvents2onblurEvent;
+    Fonresize: THTMLButtonElementEvents2onresizeEvent;
+    Fondrag: THTMLButtonElementEvents2ondragEvent;
+    Fondragend: THTMLButtonElementEvents2ondragendEvent;
+    Fondragenter: THTMLButtonElementEvents2ondragenterEvent;
+    Fondragover: THTMLButtonElementEvents2ondragoverEvent;
+    Fondragleave: THTMLButtonElementEvents2ondragleaveEvent;
+    Fondrop: THTMLButtonElementEvents2ondropEvent;
+    Fonbeforecut: THTMLButtonElementEvents2onbeforecutEvent;
+    Foncut: THTMLButtonElementEvents2oncutEvent;
+    Fonbeforecopy: THTMLButtonElementEvents2onbeforecopyEvent;
+    Foncopy: THTMLButtonElementEvents2oncopyEvent;
+    Fonbeforepaste: THTMLButtonElementEvents2onbeforepasteEvent;
+    Fonpaste: THTMLButtonElementEvents2onpasteEvent;
+    Foncontextmenu: THTMLButtonElementEvents2oncontextmenuEvent;
+    Fonrowsdelete: THTMLButtonElementEvents2onrowsdeleteEvent;
+    Fonrowsinserted: THTMLButtonElementEvents2onrowsinsertedEvent;
+    Foncellchange: THTMLButtonElementEvents2oncellchangeEvent;
+    Fonreadystatechange: THTMLButtonElementEvents2onreadystatechangeEvent;
+    Fonlayoutcomplete: THTMLButtonElementEvents2onlayoutcompleteEvent;
+    Fonpage: THTMLButtonElementEvents2onpageEvent;
+    Fonmouseenter: THTMLButtonElementEvents2onmouseenterEvent;
+    Fonmouseleave: THTMLButtonElementEvents2onmouseleaveEvent;
+    Fonactivate: THTMLButtonElementEvents2onactivateEvent;
+    Fondeactivate: THTMLButtonElementEvents2ondeactivateEvent;
+    Fonbeforedeactivate: THTMLButtonElementEvents2onbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLButtonElementEvents2onbeforeactivateEvent;
+    Fonfocusin: THTMLButtonElementEvents2onfocusinEvent;
+    Fonfocusout: THTMLButtonElementEvents2onfocusoutEvent;
+    Fonmove: THTMLButtonElementEvents2onmoveEvent;
+    Foncontrolselect: THTMLButtonElementEvents2oncontrolselectEvent;
+    Fonmovestart: THTMLButtonElementEvents2onmovestartEvent;
+    Fonmoveend: THTMLButtonElementEvents2onmoveendEvent;
+    Fonresizestart: THTMLButtonElementEvents2onresizestartEvent;
+    Fonresizeend: THTMLButtonElementEvents2onresizeendEvent;
+    Fonmousewheel: THTMLButtonElementEvents2onmousewheelEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLButtonElementEvents2onhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLButtonElementEvents2onclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLButtonElementEvents2ondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLButtonElementEvents2onkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLButtonElementEvents2onkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLButtonElementEvents2onkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLButtonElementEvents2onmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLButtonElementEvents2onmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLButtonElementEvents2onmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLButtonElementEvents2onmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLButtonElementEvents2onmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLButtonElementEvents2onselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLButtonElementEvents2onfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLButtonElementEvents2ondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLButtonElementEvents2onbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLButtonElementEvents2onafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLButtonElementEvents2onerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLButtonElementEvents2onrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLButtonElementEvents2onrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLButtonElementEvents2ondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLButtonElementEvents2ondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLButtonElementEvents2ondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLButtonElementEvents2onlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLButtonElementEvents2onpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLButtonElementEvents2onscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLButtonElementEvents2onfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLButtonElementEvents2onblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLButtonElementEvents2onresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLButtonElementEvents2ondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLButtonElementEvents2ondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLButtonElementEvents2ondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLButtonElementEvents2ondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLButtonElementEvents2ondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLButtonElementEvents2ondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLButtonElementEvents2onbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLButtonElementEvents2oncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLButtonElementEvents2onbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLButtonElementEvents2oncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLButtonElementEvents2onbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLButtonElementEvents2onpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLButtonElementEvents2oncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLButtonElementEvents2onrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLButtonElementEvents2onrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLButtonElementEvents2oncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLButtonElementEvents2onreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onlayoutcomplete: THTMLButtonElementEvents2onlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLButtonElementEvents2onpageEvent read Fonpage write Fonpage;
+    property onmouseenter: THTMLButtonElementEvents2onmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLButtonElementEvents2onmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onactivate: THTMLButtonElementEvents2onactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLButtonElementEvents2ondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onbeforedeactivate: THTMLButtonElementEvents2onbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLButtonElementEvents2onbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onfocusin: THTMLButtonElementEvents2onfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLButtonElementEvents2onfocusoutEvent read Fonfocusout write Fonfocusout;
+    property onmove: THTMLButtonElementEvents2onmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLButtonElementEvents2oncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLButtonElementEvents2onmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLButtonElementEvents2onmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLButtonElementEvents2onresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLButtonElementEvents2onresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmousewheel: THTMLButtonElementEvents2onmousewheelEvent read Fonmousewheel write Fonmousewheel;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLMarqueeElementEventsonhelpEvent = function(Sender: TObject): WordBool of object;
+  THTMLMarqueeElementEventsonclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLMarqueeElementEventsondblclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLMarqueeElementEventsonkeypressEvent = function(Sender: TObject): WordBool of object;
+  THTMLMarqueeElementEventsonkeydownEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsonkeyupEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsonmouseoutEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsonmouseoverEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsonmousemoveEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsonmousedownEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsonmouseupEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsonselectstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLMarqueeElementEventsonfilterchangeEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsondragstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLMarqueeElementEventsonbeforeupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLMarqueeElementEventsonafterupdateEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsonerrorupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLMarqueeElementEventsonrowexitEvent = function(Sender: TObject): WordBool of object;
+  THTMLMarqueeElementEventsonrowenterEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsondatasetchangedEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsondataavailableEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsondatasetcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsonlosecaptureEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsonpropertychangeEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsonscrollEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsonfocusEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsonblurEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsonresizeEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsondragEvent = function(Sender: TObject): WordBool of object;
+  THTMLMarqueeElementEventsondragendEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsondragenterEvent = function(Sender: TObject): WordBool of object;
+  THTMLMarqueeElementEventsondragoverEvent = function(Sender: TObject): WordBool of object;
+  THTMLMarqueeElementEventsondragleaveEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsondropEvent = function(Sender: TObject): WordBool of object;
+  THTMLMarqueeElementEventsonbeforecutEvent = function(Sender: TObject): WordBool of object;
+  THTMLMarqueeElementEventsoncutEvent = function(Sender: TObject): WordBool of object;
+  THTMLMarqueeElementEventsonbeforecopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLMarqueeElementEventsoncopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLMarqueeElementEventsonbeforepasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLMarqueeElementEventsonpasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLMarqueeElementEventsoncontextmenuEvent = function(Sender: TObject): WordBool of object;
+  THTMLMarqueeElementEventsonrowsdeleteEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsonrowsinsertedEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsoncellchangeEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsonreadystatechangeEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsonbeforeeditfocusEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsonlayoutcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsonpageEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsonbeforedeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLMarqueeElementEventsonbeforeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLMarqueeElementEventsonmoveEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsoncontrolselectEvent = function(Sender: TObject): WordBool of object;
+  THTMLMarqueeElementEventsonmovestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLMarqueeElementEventsonmoveendEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsonresizestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLMarqueeElementEventsonresizeendEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsonmouseenterEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsonmouseleaveEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsonmousewheelEvent = function(Sender: TObject): WordBool of object;
+  THTMLMarqueeElementEventsonactivateEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsondeactivateEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsonfocusinEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsonfocusoutEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsonchangeEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsonselectEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsonbounceEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsonfinishEvent = procedure(Sender: TObject) of object;
+  THTMLMarqueeElementEventsonstartEvent = procedure(Sender: TObject) of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLMarqueeElementEvents = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp: WordBool; safecall;
+    function Doonclick: WordBool; safecall;
+    function Doondblclick: WordBool; safecall;
+    function Doonkeypress: WordBool; safecall;
+    procedure Doonkeydown; safecall;
+    procedure Doonkeyup; safecall;
+    procedure Doonmouseout; safecall;
+    procedure Doonmouseover; safecall;
+    procedure Doonmousemove; safecall;
+    procedure Doonmousedown; safecall;
+    procedure Doonmouseup; safecall;
+    function Doonselectstart: WordBool; safecall;
+    procedure Doonfilterchange; safecall;
+    function Doondragstart: WordBool; safecall;
+    function Doonbeforeupdate: WordBool; safecall;
+    procedure Doonafterupdate; safecall;
+    function Doonerrorupdate: WordBool; safecall;
+    function Doonrowexit: WordBool; safecall;
+    procedure Doonrowenter; safecall;
+    procedure Doondatasetchanged; safecall;
+    procedure Doondataavailable; safecall;
+    procedure Doondatasetcomplete; safecall;
+    procedure Doonlosecapture; safecall;
+    procedure Doonpropertychange; safecall;
+    procedure Doonscroll; safecall;
+    procedure Doonfocus; safecall;
+    procedure Doonblur; safecall;
+    procedure Doonresize; safecall;
+    function Doondrag: WordBool; safecall;
+    procedure Doondragend; safecall;
+    function Doondragenter: WordBool; safecall;
+    function Doondragover: WordBool; safecall;
+    procedure Doondragleave; safecall;
+    function Doondrop: WordBool; safecall;
+    function Doonbeforecut: WordBool; safecall;
+    function Dooncut: WordBool; safecall;
+    function Doonbeforecopy: WordBool; safecall;
+    function Dooncopy: WordBool; safecall;
+    function Doonbeforepaste: WordBool; safecall;
+    function Doonpaste: WordBool; safecall;
+    function Dooncontextmenu: WordBool; safecall;
+    procedure Doonrowsdelete; safecall;
+    procedure Doonrowsinserted; safecall;
+    procedure Dooncellchange; safecall;
+    procedure Doonreadystatechange; safecall;
+    procedure Doonbeforeeditfocus; safecall;
+    procedure Doonlayoutcomplete; safecall;
+    procedure Doonpage; safecall;
+    function Doonbeforedeactivate: WordBool; safecall;
+    function Doonbeforeactivate: WordBool; safecall;
+    procedure Doonmove; safecall;
+    function Dooncontrolselect: WordBool; safecall;
+    function Doonmovestart: WordBool; safecall;
+    procedure Doonmoveend; safecall;
+    function Doonresizestart: WordBool; safecall;
+    procedure Doonresizeend; safecall;
+    procedure Doonmouseenter; safecall;
+    procedure Doonmouseleave; safecall;
+    function Doonmousewheel: WordBool; safecall;
+    procedure Doonactivate; safecall;
+    procedure Doondeactivate; safecall;
+    procedure Doonfocusin; safecall;
+    procedure Doonfocusout; safecall;
+    procedure Doonchange; safecall;
+    procedure Doonselect; safecall;
+    procedure Doonbounce; safecall;
+    procedure Doonfinish; safecall;
+    procedure Doonstart; safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLMarqueeElementEventsonhelpEvent;
+    Fonclick: THTMLMarqueeElementEventsonclickEvent;
+    Fondblclick: THTMLMarqueeElementEventsondblclickEvent;
+    Fonkeypress: THTMLMarqueeElementEventsonkeypressEvent;
+    Fonkeydown: THTMLMarqueeElementEventsonkeydownEvent;
+    Fonkeyup: THTMLMarqueeElementEventsonkeyupEvent;
+    Fonmouseout: THTMLMarqueeElementEventsonmouseoutEvent;
+    Fonmouseover: THTMLMarqueeElementEventsonmouseoverEvent;
+    Fonmousemove: THTMLMarqueeElementEventsonmousemoveEvent;
+    Fonmousedown: THTMLMarqueeElementEventsonmousedownEvent;
+    Fonmouseup: THTMLMarqueeElementEventsonmouseupEvent;
+    Fonselectstart: THTMLMarqueeElementEventsonselectstartEvent;
+    Fonfilterchange: THTMLMarqueeElementEventsonfilterchangeEvent;
+    Fondragstart: THTMLMarqueeElementEventsondragstartEvent;
+    Fonbeforeupdate: THTMLMarqueeElementEventsonbeforeupdateEvent;
+    Fonafterupdate: THTMLMarqueeElementEventsonafterupdateEvent;
+    Fonerrorupdate: THTMLMarqueeElementEventsonerrorupdateEvent;
+    Fonrowexit: THTMLMarqueeElementEventsonrowexitEvent;
+    Fonrowenter: THTMLMarqueeElementEventsonrowenterEvent;
+    Fondatasetchanged: THTMLMarqueeElementEventsondatasetchangedEvent;
+    Fondataavailable: THTMLMarqueeElementEventsondataavailableEvent;
+    Fondatasetcomplete: THTMLMarqueeElementEventsondatasetcompleteEvent;
+    Fonlosecapture: THTMLMarqueeElementEventsonlosecaptureEvent;
+    Fonpropertychange: THTMLMarqueeElementEventsonpropertychangeEvent;
+    Fonscroll: THTMLMarqueeElementEventsonscrollEvent;
+    Fonfocus: THTMLMarqueeElementEventsonfocusEvent;
+    Fonblur: THTMLMarqueeElementEventsonblurEvent;
+    Fonresize: THTMLMarqueeElementEventsonresizeEvent;
+    Fondrag: THTMLMarqueeElementEventsondragEvent;
+    Fondragend: THTMLMarqueeElementEventsondragendEvent;
+    Fondragenter: THTMLMarqueeElementEventsondragenterEvent;
+    Fondragover: THTMLMarqueeElementEventsondragoverEvent;
+    Fondragleave: THTMLMarqueeElementEventsondragleaveEvent;
+    Fondrop: THTMLMarqueeElementEventsondropEvent;
+    Fonbeforecut: THTMLMarqueeElementEventsonbeforecutEvent;
+    Foncut: THTMLMarqueeElementEventsoncutEvent;
+    Fonbeforecopy: THTMLMarqueeElementEventsonbeforecopyEvent;
+    Foncopy: THTMLMarqueeElementEventsoncopyEvent;
+    Fonbeforepaste: THTMLMarqueeElementEventsonbeforepasteEvent;
+    Fonpaste: THTMLMarqueeElementEventsonpasteEvent;
+    Foncontextmenu: THTMLMarqueeElementEventsoncontextmenuEvent;
+    Fonrowsdelete: THTMLMarqueeElementEventsonrowsdeleteEvent;
+    Fonrowsinserted: THTMLMarqueeElementEventsonrowsinsertedEvent;
+    Foncellchange: THTMLMarqueeElementEventsoncellchangeEvent;
+    Fonreadystatechange: THTMLMarqueeElementEventsonreadystatechangeEvent;
+    Fonbeforeeditfocus: THTMLMarqueeElementEventsonbeforeeditfocusEvent;
+    Fonlayoutcomplete: THTMLMarqueeElementEventsonlayoutcompleteEvent;
+    Fonpage: THTMLMarqueeElementEventsonpageEvent;
+    Fonbeforedeactivate: THTMLMarqueeElementEventsonbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLMarqueeElementEventsonbeforeactivateEvent;
+    Fonmove: THTMLMarqueeElementEventsonmoveEvent;
+    Foncontrolselect: THTMLMarqueeElementEventsoncontrolselectEvent;
+    Fonmovestart: THTMLMarqueeElementEventsonmovestartEvent;
+    Fonmoveend: THTMLMarqueeElementEventsonmoveendEvent;
+    Fonresizestart: THTMLMarqueeElementEventsonresizestartEvent;
+    Fonresizeend: THTMLMarqueeElementEventsonresizeendEvent;
+    Fonmouseenter: THTMLMarqueeElementEventsonmouseenterEvent;
+    Fonmouseleave: THTMLMarqueeElementEventsonmouseleaveEvent;
+    Fonmousewheel: THTMLMarqueeElementEventsonmousewheelEvent;
+    Fonactivate: THTMLMarqueeElementEventsonactivateEvent;
+    Fondeactivate: THTMLMarqueeElementEventsondeactivateEvent;
+    Fonfocusin: THTMLMarqueeElementEventsonfocusinEvent;
+    Fonfocusout: THTMLMarqueeElementEventsonfocusoutEvent;
+    Fonchange: THTMLMarqueeElementEventsonchangeEvent;
+    Fonselect: THTMLMarqueeElementEventsonselectEvent;
+    Fonbounce: THTMLMarqueeElementEventsonbounceEvent;
+    Fonfinish: THTMLMarqueeElementEventsonfinishEvent;
+    Fonstart: THTMLMarqueeElementEventsonstartEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLMarqueeElementEventsonhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLMarqueeElementEventsonclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLMarqueeElementEventsondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLMarqueeElementEventsonkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLMarqueeElementEventsonkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLMarqueeElementEventsonkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLMarqueeElementEventsonmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLMarqueeElementEventsonmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLMarqueeElementEventsonmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLMarqueeElementEventsonmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLMarqueeElementEventsonmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLMarqueeElementEventsonselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLMarqueeElementEventsonfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLMarqueeElementEventsondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLMarqueeElementEventsonbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLMarqueeElementEventsonafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLMarqueeElementEventsonerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLMarqueeElementEventsonrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLMarqueeElementEventsonrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLMarqueeElementEventsondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLMarqueeElementEventsondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLMarqueeElementEventsondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLMarqueeElementEventsonlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLMarqueeElementEventsonpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLMarqueeElementEventsonscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLMarqueeElementEventsonfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLMarqueeElementEventsonblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLMarqueeElementEventsonresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLMarqueeElementEventsondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLMarqueeElementEventsondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLMarqueeElementEventsondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLMarqueeElementEventsondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLMarqueeElementEventsondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLMarqueeElementEventsondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLMarqueeElementEventsonbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLMarqueeElementEventsoncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLMarqueeElementEventsonbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLMarqueeElementEventsoncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLMarqueeElementEventsonbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLMarqueeElementEventsonpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLMarqueeElementEventsoncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLMarqueeElementEventsonrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLMarqueeElementEventsonrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLMarqueeElementEventsoncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLMarqueeElementEventsonreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onbeforeeditfocus: THTMLMarqueeElementEventsonbeforeeditfocusEvent read Fonbeforeeditfocus write Fonbeforeeditfocus;
+    property onlayoutcomplete: THTMLMarqueeElementEventsonlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLMarqueeElementEventsonpageEvent read Fonpage write Fonpage;
+    property onbeforedeactivate: THTMLMarqueeElementEventsonbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLMarqueeElementEventsonbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onmove: THTMLMarqueeElementEventsonmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLMarqueeElementEventsoncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLMarqueeElementEventsonmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLMarqueeElementEventsonmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLMarqueeElementEventsonresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLMarqueeElementEventsonresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmouseenter: THTMLMarqueeElementEventsonmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLMarqueeElementEventsonmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onmousewheel: THTMLMarqueeElementEventsonmousewheelEvent read Fonmousewheel write Fonmousewheel;
+    property onactivate: THTMLMarqueeElementEventsonactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLMarqueeElementEventsondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onfocusin: THTMLMarqueeElementEventsonfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLMarqueeElementEventsonfocusoutEvent read Fonfocusout write Fonfocusout;
+    property onchange: THTMLMarqueeElementEventsonchangeEvent read Fonchange write Fonchange;
+    property onselect: THTMLMarqueeElementEventsonselectEvent read Fonselect write Fonselect;
+    property onbounce: THTMLMarqueeElementEventsonbounceEvent read Fonbounce write Fonbounce;
+    property onfinish: THTMLMarqueeElementEventsonfinishEvent read Fonfinish write Fonfinish;
+    property onstart: THTMLMarqueeElementEventsonstartEvent read Fonstart write Fonstart;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLMarqueeElementEvents2onhelpEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMarqueeElementEvents2onclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMarqueeElementEvents2ondblclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMarqueeElementEvents2onkeypressEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMarqueeElementEvents2onkeydownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2onkeyupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2onmouseoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2onmouseoverEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2onmousemoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2onmousedownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2onmouseupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2onselectstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMarqueeElementEvents2onfilterchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2ondragstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMarqueeElementEvents2onbeforeupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMarqueeElementEvents2onafterupdateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2onerrorupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMarqueeElementEvents2onrowexitEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMarqueeElementEvents2onrowenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2ondatasetchangedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2ondataavailableEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2ondatasetcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2onlosecaptureEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2onpropertychangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2onscrollEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2onfocusEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2onblurEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2onresizeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2ondragEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMarqueeElementEvents2ondragendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2ondragenterEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMarqueeElementEvents2ondragoverEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMarqueeElementEvents2ondragleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2ondropEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMarqueeElementEvents2onbeforecutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMarqueeElementEvents2oncutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMarqueeElementEvents2onbeforecopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMarqueeElementEvents2oncopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMarqueeElementEvents2onbeforepasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMarqueeElementEvents2onpasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMarqueeElementEvents2oncontextmenuEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMarqueeElementEvents2onrowsdeleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2onrowsinsertedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2oncellchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2onreadystatechangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2onlayoutcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2onpageEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2onmouseenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2onmouseleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2onactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2ondeactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2onbeforedeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMarqueeElementEvents2onbeforeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMarqueeElementEvents2onfocusinEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2onfocusoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2onmoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2oncontrolselectEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMarqueeElementEvents2onmovestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMarqueeElementEvents2onmoveendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2onresizestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMarqueeElementEvents2onresizeendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2onmousewheelEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMarqueeElementEvents2onchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2onselectEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2onbounceEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2onfinishEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMarqueeElementEvents2onstartEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLMarqueeElementEvents2 = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondblclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonkeydown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonkeyup(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseover(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousemove(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousedown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseup(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfilterchange(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonafterupdate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetchanged(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondataavailable(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlosecapture(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpropertychange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonscroll(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocus(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonblur(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonresize(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrag(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragenter(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondragover(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragleave(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrop(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonpaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowsdelete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonrowsinserted(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Dooncellchange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonreadystatechange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlayoutcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpage(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseleave(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonactivate(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondeactivate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfocusin(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocusout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmove(const pEvtObj: IHTMLEventObj); safecall;
+    function Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonmoveend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonresizeend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonchange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonselect(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonbounce(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfinish(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonstart(const pEvtObj: IHTMLEventObj); safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLMarqueeElementEvents2onhelpEvent;
+    Fonclick: THTMLMarqueeElementEvents2onclickEvent;
+    Fondblclick: THTMLMarqueeElementEvents2ondblclickEvent;
+    Fonkeypress: THTMLMarqueeElementEvents2onkeypressEvent;
+    Fonkeydown: THTMLMarqueeElementEvents2onkeydownEvent;
+    Fonkeyup: THTMLMarqueeElementEvents2onkeyupEvent;
+    Fonmouseout: THTMLMarqueeElementEvents2onmouseoutEvent;
+    Fonmouseover: THTMLMarqueeElementEvents2onmouseoverEvent;
+    Fonmousemove: THTMLMarqueeElementEvents2onmousemoveEvent;
+    Fonmousedown: THTMLMarqueeElementEvents2onmousedownEvent;
+    Fonmouseup: THTMLMarqueeElementEvents2onmouseupEvent;
+    Fonselectstart: THTMLMarqueeElementEvents2onselectstartEvent;
+    Fonfilterchange: THTMLMarqueeElementEvents2onfilterchangeEvent;
+    Fondragstart: THTMLMarqueeElementEvents2ondragstartEvent;
+    Fonbeforeupdate: THTMLMarqueeElementEvents2onbeforeupdateEvent;
+    Fonafterupdate: THTMLMarqueeElementEvents2onafterupdateEvent;
+    Fonerrorupdate: THTMLMarqueeElementEvents2onerrorupdateEvent;
+    Fonrowexit: THTMLMarqueeElementEvents2onrowexitEvent;
+    Fonrowenter: THTMLMarqueeElementEvents2onrowenterEvent;
+    Fondatasetchanged: THTMLMarqueeElementEvents2ondatasetchangedEvent;
+    Fondataavailable: THTMLMarqueeElementEvents2ondataavailableEvent;
+    Fondatasetcomplete: THTMLMarqueeElementEvents2ondatasetcompleteEvent;
+    Fonlosecapture: THTMLMarqueeElementEvents2onlosecaptureEvent;
+    Fonpropertychange: THTMLMarqueeElementEvents2onpropertychangeEvent;
+    Fonscroll: THTMLMarqueeElementEvents2onscrollEvent;
+    Fonfocus: THTMLMarqueeElementEvents2onfocusEvent;
+    Fonblur: THTMLMarqueeElementEvents2onblurEvent;
+    Fonresize: THTMLMarqueeElementEvents2onresizeEvent;
+    Fondrag: THTMLMarqueeElementEvents2ondragEvent;
+    Fondragend: THTMLMarqueeElementEvents2ondragendEvent;
+    Fondragenter: THTMLMarqueeElementEvents2ondragenterEvent;
+    Fondragover: THTMLMarqueeElementEvents2ondragoverEvent;
+    Fondragleave: THTMLMarqueeElementEvents2ondragleaveEvent;
+    Fondrop: THTMLMarqueeElementEvents2ondropEvent;
+    Fonbeforecut: THTMLMarqueeElementEvents2onbeforecutEvent;
+    Foncut: THTMLMarqueeElementEvents2oncutEvent;
+    Fonbeforecopy: THTMLMarqueeElementEvents2onbeforecopyEvent;
+    Foncopy: THTMLMarqueeElementEvents2oncopyEvent;
+    Fonbeforepaste: THTMLMarqueeElementEvents2onbeforepasteEvent;
+    Fonpaste: THTMLMarqueeElementEvents2onpasteEvent;
+    Foncontextmenu: THTMLMarqueeElementEvents2oncontextmenuEvent;
+    Fonrowsdelete: THTMLMarqueeElementEvents2onrowsdeleteEvent;
+    Fonrowsinserted: THTMLMarqueeElementEvents2onrowsinsertedEvent;
+    Foncellchange: THTMLMarqueeElementEvents2oncellchangeEvent;
+    Fonreadystatechange: THTMLMarqueeElementEvents2onreadystatechangeEvent;
+    Fonlayoutcomplete: THTMLMarqueeElementEvents2onlayoutcompleteEvent;
+    Fonpage: THTMLMarqueeElementEvents2onpageEvent;
+    Fonmouseenter: THTMLMarqueeElementEvents2onmouseenterEvent;
+    Fonmouseleave: THTMLMarqueeElementEvents2onmouseleaveEvent;
+    Fonactivate: THTMLMarqueeElementEvents2onactivateEvent;
+    Fondeactivate: THTMLMarqueeElementEvents2ondeactivateEvent;
+    Fonbeforedeactivate: THTMLMarqueeElementEvents2onbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLMarqueeElementEvents2onbeforeactivateEvent;
+    Fonfocusin: THTMLMarqueeElementEvents2onfocusinEvent;
+    Fonfocusout: THTMLMarqueeElementEvents2onfocusoutEvent;
+    Fonmove: THTMLMarqueeElementEvents2onmoveEvent;
+    Foncontrolselect: THTMLMarqueeElementEvents2oncontrolselectEvent;
+    Fonmovestart: THTMLMarqueeElementEvents2onmovestartEvent;
+    Fonmoveend: THTMLMarqueeElementEvents2onmoveendEvent;
+    Fonresizestart: THTMLMarqueeElementEvents2onresizestartEvent;
+    Fonresizeend: THTMLMarqueeElementEvents2onresizeendEvent;
+    Fonmousewheel: THTMLMarqueeElementEvents2onmousewheelEvent;
+    Fonchange: THTMLMarqueeElementEvents2onchangeEvent;
+    Fonselect: THTMLMarqueeElementEvents2onselectEvent;
+    Fonbounce: THTMLMarqueeElementEvents2onbounceEvent;
+    Fonfinish: THTMLMarqueeElementEvents2onfinishEvent;
+    Fonstart: THTMLMarqueeElementEvents2onstartEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLMarqueeElementEvents2onhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLMarqueeElementEvents2onclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLMarqueeElementEvents2ondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLMarqueeElementEvents2onkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLMarqueeElementEvents2onkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLMarqueeElementEvents2onkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLMarqueeElementEvents2onmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLMarqueeElementEvents2onmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLMarqueeElementEvents2onmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLMarqueeElementEvents2onmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLMarqueeElementEvents2onmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLMarqueeElementEvents2onselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLMarqueeElementEvents2onfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLMarqueeElementEvents2ondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLMarqueeElementEvents2onbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLMarqueeElementEvents2onafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLMarqueeElementEvents2onerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLMarqueeElementEvents2onrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLMarqueeElementEvents2onrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLMarqueeElementEvents2ondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLMarqueeElementEvents2ondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLMarqueeElementEvents2ondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLMarqueeElementEvents2onlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLMarqueeElementEvents2onpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLMarqueeElementEvents2onscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLMarqueeElementEvents2onfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLMarqueeElementEvents2onblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLMarqueeElementEvents2onresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLMarqueeElementEvents2ondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLMarqueeElementEvents2ondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLMarqueeElementEvents2ondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLMarqueeElementEvents2ondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLMarqueeElementEvents2ondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLMarqueeElementEvents2ondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLMarqueeElementEvents2onbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLMarqueeElementEvents2oncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLMarqueeElementEvents2onbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLMarqueeElementEvents2oncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLMarqueeElementEvents2onbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLMarqueeElementEvents2onpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLMarqueeElementEvents2oncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLMarqueeElementEvents2onrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLMarqueeElementEvents2onrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLMarqueeElementEvents2oncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLMarqueeElementEvents2onreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onlayoutcomplete: THTMLMarqueeElementEvents2onlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLMarqueeElementEvents2onpageEvent read Fonpage write Fonpage;
+    property onmouseenter: THTMLMarqueeElementEvents2onmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLMarqueeElementEvents2onmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onactivate: THTMLMarqueeElementEvents2onactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLMarqueeElementEvents2ondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onbeforedeactivate: THTMLMarqueeElementEvents2onbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLMarqueeElementEvents2onbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onfocusin: THTMLMarqueeElementEvents2onfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLMarqueeElementEvents2onfocusoutEvent read Fonfocusout write Fonfocusout;
+    property onmove: THTMLMarqueeElementEvents2onmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLMarqueeElementEvents2oncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLMarqueeElementEvents2onmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLMarqueeElementEvents2onmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLMarqueeElementEvents2onresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLMarqueeElementEvents2onresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmousewheel: THTMLMarqueeElementEvents2onmousewheelEvent read Fonmousewheel write Fonmousewheel;
+    property onchange: THTMLMarqueeElementEvents2onchangeEvent read Fonchange write Fonchange;
+    property onselect: THTMLMarqueeElementEvents2onselectEvent read Fonselect write Fonselect;
+    property onbounce: THTMLMarqueeElementEvents2onbounceEvent read Fonbounce write Fonbounce;
+    property onfinish: THTMLMarqueeElementEvents2onfinishEvent read Fonfinish write Fonfinish;
+    property onstart: THTMLMarqueeElementEvents2onstartEvent read Fonstart write Fonstart;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLWindowEventsonloadEvent = procedure(Sender: TObject) of object;
+  THTMLWindowEventsonunloadEvent = procedure(Sender: TObject) of object;
+  THTMLWindowEventsonhelpEvent = function(Sender: TObject): WordBool of object;
+  THTMLWindowEventsonfocusEvent = procedure(Sender: TObject) of object;
+  THTMLWindowEventsonblurEvent = procedure(Sender: TObject) of object;
+  THTMLWindowEventsonerrorEvent = procedure(Sender: TObject; const description: WideString; const url: WideString; line: Integer) of object;
+  THTMLWindowEventsonresizeEvent = procedure(Sender: TObject) of object;
+  THTMLWindowEventsonscrollEvent = procedure(Sender: TObject) of object;
+  THTMLWindowEventsonbeforeunloadEvent = procedure(Sender: TObject) of object;
+  THTMLWindowEventsonbeforeprintEvent = procedure(Sender: TObject) of object;
+  THTMLWindowEventsonafterprintEvent = procedure(Sender: TObject) of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLWindowEvents = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    procedure Doonload; safecall;
+    procedure Doonunload; safecall;
+    function Doonhelp: WordBool; safecall;
+    procedure Doonfocus; safecall;
+    procedure Doonblur; safecall;
+    procedure Doonerror(const description: WideString; const url: WideString; line: Integer); safecall;
+    procedure Doonresize; safecall;
+    procedure Doonscroll; safecall;
+    procedure Doonbeforeunload; safecall;
+    procedure Doonbeforeprint; safecall;
+    procedure Doonafterprint; safecall;
+  protected
+    //SinkEventsProtected//
+    Fonload: THTMLWindowEventsonloadEvent;
+    Fonunload: THTMLWindowEventsonunloadEvent;
+    Fonhelp: THTMLWindowEventsonhelpEvent;
+    Fonfocus: THTMLWindowEventsonfocusEvent;
+    Fonblur: THTMLWindowEventsonblurEvent;
+    Fonerror: THTMLWindowEventsonerrorEvent;
+    Fonresize: THTMLWindowEventsonresizeEvent;
+    Fonscroll: THTMLWindowEventsonscrollEvent;
+    Fonbeforeunload: THTMLWindowEventsonbeforeunloadEvent;
+    Fonbeforeprint: THTMLWindowEventsonbeforeprintEvent;
+    Fonafterprint: THTMLWindowEventsonafterprintEvent;
+  published
+    //SinkEventsPublished//
+    property onload: THTMLWindowEventsonloadEvent read Fonload write Fonload;
+    property onunload: THTMLWindowEventsonunloadEvent read Fonunload write Fonunload;
+    property onhelp: THTMLWindowEventsonhelpEvent read Fonhelp write Fonhelp;
+    property onfocus: THTMLWindowEventsonfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLWindowEventsonblurEvent read Fonblur write Fonblur;
+    property onerror: THTMLWindowEventsonerrorEvent read Fonerror write Fonerror;
+    property onresize: THTMLWindowEventsonresizeEvent read Fonresize write Fonresize;
+    property onscroll: THTMLWindowEventsonscrollEvent read Fonscroll write Fonscroll;
+    property onbeforeunload: THTMLWindowEventsonbeforeunloadEvent read Fonbeforeunload write Fonbeforeunload;
+    property onbeforeprint: THTMLWindowEventsonbeforeprintEvent read Fonbeforeprint write Fonbeforeprint;
+    property onafterprint: THTMLWindowEventsonafterprintEvent read Fonafterprint write Fonafterprint;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLWindowEvents2onloadEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLWindowEvents2onunloadEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLWindowEvents2onhelpEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLWindowEvents2onfocusEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLWindowEvents2onblurEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLWindowEvents2onerrorEvent = procedure(Sender: TObject; const description: WideString; const url: WideString; line: Integer) of object;
+  THTMLWindowEvents2onresizeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLWindowEvents2onscrollEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLWindowEvents2onbeforeunloadEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLWindowEvents2onbeforeprintEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLWindowEvents2onafterprintEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLWindowEvents2 = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    procedure Doonload(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonunload(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonhelp(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfocus(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonblur(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonerror(const description: WideString; const url: WideString; line: Integer); safecall;
+    procedure Doonresize(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonscroll(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonbeforeunload(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonbeforeprint(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonafterprint(const pEvtObj: IHTMLEventObj); safecall;
+  protected
+    //SinkEventsProtected//
+    Fonload: THTMLWindowEvents2onloadEvent;
+    Fonunload: THTMLWindowEvents2onunloadEvent;
+    Fonhelp: THTMLWindowEvents2onhelpEvent;
+    Fonfocus: THTMLWindowEvents2onfocusEvent;
+    Fonblur: THTMLWindowEvents2onblurEvent;
+    Fonerror: THTMLWindowEvents2onerrorEvent;
+    Fonresize: THTMLWindowEvents2onresizeEvent;
+    Fonscroll: THTMLWindowEvents2onscrollEvent;
+    Fonbeforeunload: THTMLWindowEvents2onbeforeunloadEvent;
+    Fonbeforeprint: THTMLWindowEvents2onbeforeprintEvent;
+    Fonafterprint: THTMLWindowEvents2onafterprintEvent;
+  published
+    //SinkEventsPublished//
+    property onload: THTMLWindowEvents2onloadEvent read Fonload write Fonload;
+    property onunload: THTMLWindowEvents2onunloadEvent read Fonunload write Fonunload;
+    property onhelp: THTMLWindowEvents2onhelpEvent read Fonhelp write Fonhelp;
+    property onfocus: THTMLWindowEvents2onfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLWindowEvents2onblurEvent read Fonblur write Fonblur;
+    property onerror: THTMLWindowEvents2onerrorEvent read Fonerror write Fonerror;
+    property onresize: THTMLWindowEvents2onresizeEvent read Fonresize write Fonresize;
+    property onscroll: THTMLWindowEvents2onscrollEvent read Fonscroll write Fonscroll;
+    property onbeforeunload: THTMLWindowEvents2onbeforeunloadEvent read Fonbeforeunload write Fonbeforeunload;
+    property onbeforeprint: THTMLWindowEvents2onbeforeprintEvent read Fonbeforeprint write Fonbeforeprint;
+    property onafterprint: THTMLWindowEvents2onafterprintEvent read Fonafterprint write Fonafterprint;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLDocumentEventsonhelpEvent = function(Sender: TObject): WordBool of object;
+  THTMLDocumentEventsonclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLDocumentEventsondblclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLDocumentEventsonkeydownEvent = procedure(Sender: TObject) of object;
+  THTMLDocumentEventsonkeyupEvent = procedure(Sender: TObject) of object;
+  THTMLDocumentEventsonkeypressEvent = function(Sender: TObject): WordBool of object;
+  THTMLDocumentEventsonmousedownEvent = procedure(Sender: TObject) of object;
+  THTMLDocumentEventsonmousemoveEvent = procedure(Sender: TObject) of object;
+  THTMLDocumentEventsonmouseupEvent = procedure(Sender: TObject) of object;
+  THTMLDocumentEventsonmouseoutEvent = procedure(Sender: TObject) of object;
+  THTMLDocumentEventsonmouseoverEvent = procedure(Sender: TObject) of object;
+  THTMLDocumentEventsonreadystatechangeEvent = procedure(Sender: TObject) of object;
+  THTMLDocumentEventsonbeforeupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLDocumentEventsonafterupdateEvent = procedure(Sender: TObject) of object;
+  THTMLDocumentEventsonrowexitEvent = function(Sender: TObject): WordBool of object;
+  THTMLDocumentEventsonrowenterEvent = procedure(Sender: TObject) of object;
+  THTMLDocumentEventsondragstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLDocumentEventsonselectstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLDocumentEventsonerrorupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLDocumentEventsoncontextmenuEvent = function(Sender: TObject): WordBool of object;
+  THTMLDocumentEventsonstopEvent = function(Sender: TObject): WordBool of object;
+  THTMLDocumentEventsonrowsdeleteEvent = procedure(Sender: TObject) of object;
+  THTMLDocumentEventsonrowsinsertedEvent = procedure(Sender: TObject) of object;
+  THTMLDocumentEventsoncellchangeEvent = procedure(Sender: TObject) of object;
+  THTMLDocumentEventsonpropertychangeEvent = procedure(Sender: TObject) of object;
+  THTMLDocumentEventsondatasetchangedEvent = procedure(Sender: TObject) of object;
+  THTMLDocumentEventsondataavailableEvent = procedure(Sender: TObject) of object;
+  THTMLDocumentEventsondatasetcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLDocumentEventsonbeforeeditfocusEvent = procedure(Sender: TObject) of object;
+  THTMLDocumentEventsonselectionchangeEvent = procedure(Sender: TObject) of object;
+  THTMLDocumentEventsoncontrolselectEvent = function(Sender: TObject): WordBool of object;
+  THTMLDocumentEventsonmousewheelEvent = function(Sender: TObject): WordBool of object;
+  THTMLDocumentEventsonfocusinEvent = procedure(Sender: TObject) of object;
+  THTMLDocumentEventsonfocusoutEvent = procedure(Sender: TObject) of object;
+  THTMLDocumentEventsonactivateEvent = procedure(Sender: TObject) of object;
+  THTMLDocumentEventsondeactivateEvent = procedure(Sender: TObject) of object;
+  THTMLDocumentEventsonbeforeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLDocumentEventsonbeforedeactivateEvent = function(Sender: TObject): WordBool of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLDocumentEvents = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp: WordBool; safecall;
+    function Doonclick: WordBool; safecall;
+    function Doondblclick: WordBool; safecall;
+    procedure Doonkeydown; safecall;
+    procedure Doonkeyup; safecall;
+    function Doonkeypress: WordBool; safecall;
+    procedure Doonmousedown; safecall;
+    procedure Doonmousemove; safecall;
+    procedure Doonmouseup; safecall;
+    procedure Doonmouseout; safecall;
+    procedure Doonmouseover; safecall;
+    procedure Doonreadystatechange; safecall;
+    function Doonbeforeupdate: WordBool; safecall;
+    procedure Doonafterupdate; safecall;
+    function Doonrowexit: WordBool; safecall;
+    procedure Doonrowenter; safecall;
+    function Doondragstart: WordBool; safecall;
+    function Doonselectstart: WordBool; safecall;
+    function Doonerrorupdate: WordBool; safecall;
+    function Dooncontextmenu: WordBool; safecall;
+    function Doonstop: WordBool; safecall;
+    procedure Doonrowsdelete; safecall;
+    procedure Doonrowsinserted; safecall;
+    procedure Dooncellchange; safecall;
+    procedure Doonpropertychange; safecall;
+    procedure Doondatasetchanged; safecall;
+    procedure Doondataavailable; safecall;
+    procedure Doondatasetcomplete; safecall;
+    procedure Doonbeforeeditfocus; safecall;
+    procedure Doonselectionchange; safecall;
+    function Dooncontrolselect: WordBool; safecall;
+    function Doonmousewheel: WordBool; safecall;
+    procedure Doonfocusin; safecall;
+    procedure Doonfocusout; safecall;
+    procedure Doonactivate; safecall;
+    procedure Doondeactivate; safecall;
+    function Doonbeforeactivate: WordBool; safecall;
+    function Doonbeforedeactivate: WordBool; safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLDocumentEventsonhelpEvent;
+    Fonclick: THTMLDocumentEventsonclickEvent;
+    Fondblclick: THTMLDocumentEventsondblclickEvent;
+    Fonkeydown: THTMLDocumentEventsonkeydownEvent;
+    Fonkeyup: THTMLDocumentEventsonkeyupEvent;
+    Fonkeypress: THTMLDocumentEventsonkeypressEvent;
+    Fonmousedown: THTMLDocumentEventsonmousedownEvent;
+    Fonmousemove: THTMLDocumentEventsonmousemoveEvent;
+    Fonmouseup: THTMLDocumentEventsonmouseupEvent;
+    Fonmouseout: THTMLDocumentEventsonmouseoutEvent;
+    Fonmouseover: THTMLDocumentEventsonmouseoverEvent;
+    Fonreadystatechange: THTMLDocumentEventsonreadystatechangeEvent;
+    Fonbeforeupdate: THTMLDocumentEventsonbeforeupdateEvent;
+    Fonafterupdate: THTMLDocumentEventsonafterupdateEvent;
+    Fonrowexit: THTMLDocumentEventsonrowexitEvent;
+    Fonrowenter: THTMLDocumentEventsonrowenterEvent;
+    Fondragstart: THTMLDocumentEventsondragstartEvent;
+    Fonselectstart: THTMLDocumentEventsonselectstartEvent;
+    Fonerrorupdate: THTMLDocumentEventsonerrorupdateEvent;
+    Foncontextmenu: THTMLDocumentEventsoncontextmenuEvent;
+    Fonstop: THTMLDocumentEventsonstopEvent;
+    Fonrowsdelete: THTMLDocumentEventsonrowsdeleteEvent;
+    Fonrowsinserted: THTMLDocumentEventsonrowsinsertedEvent;
+    Foncellchange: THTMLDocumentEventsoncellchangeEvent;
+    Fonpropertychange: THTMLDocumentEventsonpropertychangeEvent;
+    Fondatasetchanged: THTMLDocumentEventsondatasetchangedEvent;
+    Fondataavailable: THTMLDocumentEventsondataavailableEvent;
+    Fondatasetcomplete: THTMLDocumentEventsondatasetcompleteEvent;
+    Fonbeforeeditfocus: THTMLDocumentEventsonbeforeeditfocusEvent;
+    Fonselectionchange: THTMLDocumentEventsonselectionchangeEvent;
+    Foncontrolselect: THTMLDocumentEventsoncontrolselectEvent;
+    Fonmousewheel: THTMLDocumentEventsonmousewheelEvent;
+    Fonfocusin: THTMLDocumentEventsonfocusinEvent;
+    Fonfocusout: THTMLDocumentEventsonfocusoutEvent;
+    Fonactivate: THTMLDocumentEventsonactivateEvent;
+    Fondeactivate: THTMLDocumentEventsondeactivateEvent;
+    Fonbeforeactivate: THTMLDocumentEventsonbeforeactivateEvent;
+    Fonbeforedeactivate: THTMLDocumentEventsonbeforedeactivateEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLDocumentEventsonhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLDocumentEventsonclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLDocumentEventsondblclickEvent read Fondblclick write Fondblclick;
+    property onkeydown: THTMLDocumentEventsonkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLDocumentEventsonkeyupEvent read Fonkeyup write Fonkeyup;
+    property onkeypress: THTMLDocumentEventsonkeypressEvent read Fonkeypress write Fonkeypress;
+    property onmousedown: THTMLDocumentEventsonmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmousemove: THTMLDocumentEventsonmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmouseup: THTMLDocumentEventsonmouseupEvent read Fonmouseup write Fonmouseup;
+    property onmouseout: THTMLDocumentEventsonmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLDocumentEventsonmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onreadystatechange: THTMLDocumentEventsonreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onbeforeupdate: THTMLDocumentEventsonbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLDocumentEventsonafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onrowexit: THTMLDocumentEventsonrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLDocumentEventsonrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondragstart: THTMLDocumentEventsondragstartEvent read Fondragstart write Fondragstart;
+    property onselectstart: THTMLDocumentEventsonselectstartEvent read Fonselectstart write Fonselectstart;
+    property onerrorupdate: THTMLDocumentEventsonerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property oncontextmenu: THTMLDocumentEventsoncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onstop: THTMLDocumentEventsonstopEvent read Fonstop write Fonstop;
+    property onrowsdelete: THTMLDocumentEventsonrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLDocumentEventsonrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLDocumentEventsoncellchangeEvent read Foncellchange write Foncellchange;
+    property onpropertychange: THTMLDocumentEventsonpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property ondatasetchanged: THTMLDocumentEventsondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLDocumentEventsondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLDocumentEventsondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onbeforeeditfocus: THTMLDocumentEventsonbeforeeditfocusEvent read Fonbeforeeditfocus write Fonbeforeeditfocus;
+    property onselectionchange: THTMLDocumentEventsonselectionchangeEvent read Fonselectionchange write Fonselectionchange;
+    property oncontrolselect: THTMLDocumentEventsoncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmousewheel: THTMLDocumentEventsonmousewheelEvent read Fonmousewheel write Fonmousewheel;
+    property onfocusin: THTMLDocumentEventsonfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLDocumentEventsonfocusoutEvent read Fonfocusout write Fonfocusout;
+    property onactivate: THTMLDocumentEventsonactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLDocumentEventsondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onbeforeactivate: THTMLDocumentEventsonbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onbeforedeactivate: THTMLDocumentEventsonbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLDocumentEvents2onhelpEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLDocumentEvents2onclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLDocumentEvents2ondblclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLDocumentEvents2onkeydownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLDocumentEvents2onkeyupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLDocumentEvents2onkeypressEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLDocumentEvents2onmousedownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLDocumentEvents2onmousemoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLDocumentEvents2onmouseupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLDocumentEvents2onmouseoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLDocumentEvents2onmouseoverEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLDocumentEvents2onreadystatechangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLDocumentEvents2onbeforeupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLDocumentEvents2onafterupdateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLDocumentEvents2onrowexitEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLDocumentEvents2onrowenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLDocumentEvents2ondragstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLDocumentEvents2onselectstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLDocumentEvents2onerrorupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLDocumentEvents2oncontextmenuEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLDocumentEvents2onstopEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLDocumentEvents2onrowsdeleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLDocumentEvents2onrowsinsertedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLDocumentEvents2oncellchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLDocumentEvents2onpropertychangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLDocumentEvents2ondatasetchangedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLDocumentEvents2ondataavailableEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLDocumentEvents2ondatasetcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLDocumentEvents2onbeforeeditfocusEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLDocumentEvents2onselectionchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLDocumentEvents2oncontrolselectEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLDocumentEvents2onmousewheelEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLDocumentEvents2onfocusinEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLDocumentEvents2onfocusoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLDocumentEvents2onactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLDocumentEvents2ondeactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLDocumentEvents2onbeforeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLDocumentEvents2onbeforedeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLDocumentEvents2 = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondblclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonkeydown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonkeyup(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonmousedown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousemove(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseup(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseover(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonreadystatechange(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonafterupdate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowenter(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonstop(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowsdelete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonrowsinserted(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Dooncellchange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpropertychange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetchanged(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondataavailable(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonbeforeeditfocus(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonselectionchange(const pEvtObj: IHTMLEventObj); safecall;
+    function Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfocusin(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocusout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonactivate(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondeactivate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLDocumentEvents2onhelpEvent;
+    Fonclick: THTMLDocumentEvents2onclickEvent;
+    Fondblclick: THTMLDocumentEvents2ondblclickEvent;
+    Fonkeydown: THTMLDocumentEvents2onkeydownEvent;
+    Fonkeyup: THTMLDocumentEvents2onkeyupEvent;
+    Fonkeypress: THTMLDocumentEvents2onkeypressEvent;
+    Fonmousedown: THTMLDocumentEvents2onmousedownEvent;
+    Fonmousemove: THTMLDocumentEvents2onmousemoveEvent;
+    Fonmouseup: THTMLDocumentEvents2onmouseupEvent;
+    Fonmouseout: THTMLDocumentEvents2onmouseoutEvent;
+    Fonmouseover: THTMLDocumentEvents2onmouseoverEvent;
+    Fonreadystatechange: THTMLDocumentEvents2onreadystatechangeEvent;
+    Fonbeforeupdate: THTMLDocumentEvents2onbeforeupdateEvent;
+    Fonafterupdate: THTMLDocumentEvents2onafterupdateEvent;
+    Fonrowexit: THTMLDocumentEvents2onrowexitEvent;
+    Fonrowenter: THTMLDocumentEvents2onrowenterEvent;
+    Fondragstart: THTMLDocumentEvents2ondragstartEvent;
+    Fonselectstart: THTMLDocumentEvents2onselectstartEvent;
+    Fonerrorupdate: THTMLDocumentEvents2onerrorupdateEvent;
+    Foncontextmenu: THTMLDocumentEvents2oncontextmenuEvent;
+    Fonstop: THTMLDocumentEvents2onstopEvent;
+    Fonrowsdelete: THTMLDocumentEvents2onrowsdeleteEvent;
+    Fonrowsinserted: THTMLDocumentEvents2onrowsinsertedEvent;
+    Foncellchange: THTMLDocumentEvents2oncellchangeEvent;
+    Fonpropertychange: THTMLDocumentEvents2onpropertychangeEvent;
+    Fondatasetchanged: THTMLDocumentEvents2ondatasetchangedEvent;
+    Fondataavailable: THTMLDocumentEvents2ondataavailableEvent;
+    Fondatasetcomplete: THTMLDocumentEvents2ondatasetcompleteEvent;
+    Fonbeforeeditfocus: THTMLDocumentEvents2onbeforeeditfocusEvent;
+    Fonselectionchange: THTMLDocumentEvents2onselectionchangeEvent;
+    Foncontrolselect: THTMLDocumentEvents2oncontrolselectEvent;
+    Fonmousewheel: THTMLDocumentEvents2onmousewheelEvent;
+    Fonfocusin: THTMLDocumentEvents2onfocusinEvent;
+    Fonfocusout: THTMLDocumentEvents2onfocusoutEvent;
+    Fonactivate: THTMLDocumentEvents2onactivateEvent;
+    Fondeactivate: THTMLDocumentEvents2ondeactivateEvent;
+    Fonbeforeactivate: THTMLDocumentEvents2onbeforeactivateEvent;
+    Fonbeforedeactivate: THTMLDocumentEvents2onbeforedeactivateEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLDocumentEvents2onhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLDocumentEvents2onclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLDocumentEvents2ondblclickEvent read Fondblclick write Fondblclick;
+    property onkeydown: THTMLDocumentEvents2onkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLDocumentEvents2onkeyupEvent read Fonkeyup write Fonkeyup;
+    property onkeypress: THTMLDocumentEvents2onkeypressEvent read Fonkeypress write Fonkeypress;
+    property onmousedown: THTMLDocumentEvents2onmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmousemove: THTMLDocumentEvents2onmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmouseup: THTMLDocumentEvents2onmouseupEvent read Fonmouseup write Fonmouseup;
+    property onmouseout: THTMLDocumentEvents2onmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLDocumentEvents2onmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onreadystatechange: THTMLDocumentEvents2onreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onbeforeupdate: THTMLDocumentEvents2onbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLDocumentEvents2onafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onrowexit: THTMLDocumentEvents2onrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLDocumentEvents2onrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondragstart: THTMLDocumentEvents2ondragstartEvent read Fondragstart write Fondragstart;
+    property onselectstart: THTMLDocumentEvents2onselectstartEvent read Fonselectstart write Fonselectstart;
+    property onerrorupdate: THTMLDocumentEvents2onerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property oncontextmenu: THTMLDocumentEvents2oncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onstop: THTMLDocumentEvents2onstopEvent read Fonstop write Fonstop;
+    property onrowsdelete: THTMLDocumentEvents2onrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLDocumentEvents2onrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLDocumentEvents2oncellchangeEvent read Foncellchange write Foncellchange;
+    property onpropertychange: THTMLDocumentEvents2onpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property ondatasetchanged: THTMLDocumentEvents2ondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLDocumentEvents2ondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLDocumentEvents2ondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onbeforeeditfocus: THTMLDocumentEvents2onbeforeeditfocusEvent read Fonbeforeeditfocus write Fonbeforeeditfocus;
+    property onselectionchange: THTMLDocumentEvents2onselectionchangeEvent read Fonselectionchange write Fonselectionchange;
+    property oncontrolselect: THTMLDocumentEvents2oncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmousewheel: THTMLDocumentEvents2onmousewheelEvent read Fonmousewheel write Fonmousewheel;
+    property onfocusin: THTMLDocumentEvents2onfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLDocumentEvents2onfocusoutEvent read Fonfocusout write Fonfocusout;
+    property onactivate: THTMLDocumentEvents2onactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLDocumentEvents2ondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onbeforeactivate: THTMLDocumentEvents2onbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onbeforedeactivate: THTMLDocumentEvents2onbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+  end;
+
+
+  //SinkEventsForwards//
+  TDWebBridgeEventsonscriptleteventEvent = procedure(Sender: TObject; const name: WideString; eventData: OleVariant) of object;
+  TDWebBridgeEventsonreadystatechangeEvent = procedure(Sender: TObject) of object;
+  TDWebBridgeEventsonclickEvent = function(Sender: TObject): WordBool of object;
+  TDWebBridgeEventsondblclickEvent = function(Sender: TObject): WordBool of object;
+  TDWebBridgeEventsonkeydownEvent = procedure(Sender: TObject) of object;
+  TDWebBridgeEventsonkeyupEvent = procedure(Sender: TObject) of object;
+  TDWebBridgeEventsonkeypressEvent = function(Sender: TObject): WordBool of object;
+  TDWebBridgeEventsonmousedownEvent = procedure(Sender: TObject) of object;
+  TDWebBridgeEventsonmousemoveEvent = procedure(Sender: TObject) of object;
+  TDWebBridgeEventsonmouseupEvent = procedure(Sender: TObject) of object;
+
+  //SinkComponent//
+  TMSHTMLDWebBridgeEvents = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    procedure Doonscriptletevent(const name: WideString; eventData: OleVariant); safecall;
+    procedure Doonreadystatechange; safecall;
+    function Doonclick: WordBool; safecall;
+    function Doondblclick: WordBool; safecall;
+    procedure Doonkeydown; safecall;
+    procedure Doonkeyup; safecall;
+    function Doonkeypress: WordBool; safecall;
+    procedure Doonmousedown; safecall;
+    procedure Doonmousemove; safecall;
+    procedure Doonmouseup; safecall;
+  protected
+    //SinkEventsProtected//
+    Fonscriptletevent: TDWebBridgeEventsonscriptleteventEvent;
+    Fonreadystatechange: TDWebBridgeEventsonreadystatechangeEvent;
+    Fonclick: TDWebBridgeEventsonclickEvent;
+    Fondblclick: TDWebBridgeEventsondblclickEvent;
+    Fonkeydown: TDWebBridgeEventsonkeydownEvent;
+    Fonkeyup: TDWebBridgeEventsonkeyupEvent;
+    Fonkeypress: TDWebBridgeEventsonkeypressEvent;
+    Fonmousedown: TDWebBridgeEventsonmousedownEvent;
+    Fonmousemove: TDWebBridgeEventsonmousemoveEvent;
+    Fonmouseup: TDWebBridgeEventsonmouseupEvent;
+  published
+    //SinkEventsPublished//
+    property onscriptletevent: TDWebBridgeEventsonscriptleteventEvent read Fonscriptletevent write Fonscriptletevent;
+    property onreadystatechange: TDWebBridgeEventsonreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onclick: TDWebBridgeEventsonclickEvent read Fonclick write Fonclick;
+    property ondblclick: TDWebBridgeEventsondblclickEvent read Fondblclick write Fondblclick;
+    property onkeydown: TDWebBridgeEventsonkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: TDWebBridgeEventsonkeyupEvent read Fonkeyup write Fonkeyup;
+    property onkeypress: TDWebBridgeEventsonkeypressEvent read Fonkeypress write Fonkeypress;
+    property onmousedown: TDWebBridgeEventsonmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmousemove: TDWebBridgeEventsonmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmouseup: TDWebBridgeEventsonmouseupEvent read Fonmouseup write Fonmouseup;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLControlElementEventsonhelpEvent = function(Sender: TObject): WordBool of object;
+  THTMLControlElementEventsonclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLControlElementEventsondblclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLControlElementEventsonkeypressEvent = function(Sender: TObject): WordBool of object;
+  THTMLControlElementEventsonkeydownEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsonkeyupEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsonmouseoutEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsonmouseoverEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsonmousemoveEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsonmousedownEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsonmouseupEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsonselectstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLControlElementEventsonfilterchangeEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsondragstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLControlElementEventsonbeforeupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLControlElementEventsonafterupdateEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsonerrorupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLControlElementEventsonrowexitEvent = function(Sender: TObject): WordBool of object;
+  THTMLControlElementEventsonrowenterEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsondatasetchangedEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsondataavailableEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsondatasetcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsonlosecaptureEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsonpropertychangeEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsonscrollEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsonfocusEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsonblurEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsonresizeEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsondragEvent = function(Sender: TObject): WordBool of object;
+  THTMLControlElementEventsondragendEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsondragenterEvent = function(Sender: TObject): WordBool of object;
+  THTMLControlElementEventsondragoverEvent = function(Sender: TObject): WordBool of object;
+  THTMLControlElementEventsondragleaveEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsondropEvent = function(Sender: TObject): WordBool of object;
+  THTMLControlElementEventsonbeforecutEvent = function(Sender: TObject): WordBool of object;
+  THTMLControlElementEventsoncutEvent = function(Sender: TObject): WordBool of object;
+  THTMLControlElementEventsonbeforecopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLControlElementEventsoncopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLControlElementEventsonbeforepasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLControlElementEventsonpasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLControlElementEventsoncontextmenuEvent = function(Sender: TObject): WordBool of object;
+  THTMLControlElementEventsonrowsdeleteEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsonrowsinsertedEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsoncellchangeEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsonreadystatechangeEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsonbeforeeditfocusEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsonlayoutcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsonpageEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsonbeforedeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLControlElementEventsonbeforeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLControlElementEventsonmoveEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsoncontrolselectEvent = function(Sender: TObject): WordBool of object;
+  THTMLControlElementEventsonmovestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLControlElementEventsonmoveendEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsonresizestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLControlElementEventsonresizeendEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsonmouseenterEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsonmouseleaveEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsonmousewheelEvent = function(Sender: TObject): WordBool of object;
+  THTMLControlElementEventsonactivateEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsondeactivateEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsonfocusinEvent = procedure(Sender: TObject) of object;
+  THTMLControlElementEventsonfocusoutEvent = procedure(Sender: TObject) of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLControlElementEvents = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp: WordBool; safecall;
+    function Doonclick: WordBool; safecall;
+    function Doondblclick: WordBool; safecall;
+    function Doonkeypress: WordBool; safecall;
+    procedure Doonkeydown; safecall;
+    procedure Doonkeyup; safecall;
+    procedure Doonmouseout; safecall;
+    procedure Doonmouseover; safecall;
+    procedure Doonmousemove; safecall;
+    procedure Doonmousedown; safecall;
+    procedure Doonmouseup; safecall;
+    function Doonselectstart: WordBool; safecall;
+    procedure Doonfilterchange; safecall;
+    function Doondragstart: WordBool; safecall;
+    function Doonbeforeupdate: WordBool; safecall;
+    procedure Doonafterupdate; safecall;
+    function Doonerrorupdate: WordBool; safecall;
+    function Doonrowexit: WordBool; safecall;
+    procedure Doonrowenter; safecall;
+    procedure Doondatasetchanged; safecall;
+    procedure Doondataavailable; safecall;
+    procedure Doondatasetcomplete; safecall;
+    procedure Doonlosecapture; safecall;
+    procedure Doonpropertychange; safecall;
+    procedure Doonscroll; safecall;
+    procedure Doonfocus; safecall;
+    procedure Doonblur; safecall;
+    procedure Doonresize; safecall;
+    function Doondrag: WordBool; safecall;
+    procedure Doondragend; safecall;
+    function Doondragenter: WordBool; safecall;
+    function Doondragover: WordBool; safecall;
+    procedure Doondragleave; safecall;
+    function Doondrop: WordBool; safecall;
+    function Doonbeforecut: WordBool; safecall;
+    function Dooncut: WordBool; safecall;
+    function Doonbeforecopy: WordBool; safecall;
+    function Dooncopy: WordBool; safecall;
+    function Doonbeforepaste: WordBool; safecall;
+    function Doonpaste: WordBool; safecall;
+    function Dooncontextmenu: WordBool; safecall;
+    procedure Doonrowsdelete; safecall;
+    procedure Doonrowsinserted; safecall;
+    procedure Dooncellchange; safecall;
+    procedure Doonreadystatechange; safecall;
+    procedure Doonbeforeeditfocus; safecall;
+    procedure Doonlayoutcomplete; safecall;
+    procedure Doonpage; safecall;
+    function Doonbeforedeactivate: WordBool; safecall;
+    function Doonbeforeactivate: WordBool; safecall;
+    procedure Doonmove; safecall;
+    function Dooncontrolselect: WordBool; safecall;
+    function Doonmovestart: WordBool; safecall;
+    procedure Doonmoveend; safecall;
+    function Doonresizestart: WordBool; safecall;
+    procedure Doonresizeend; safecall;
+    procedure Doonmouseenter; safecall;
+    procedure Doonmouseleave; safecall;
+    function Doonmousewheel: WordBool; safecall;
+    procedure Doonactivate; safecall;
+    procedure Doondeactivate; safecall;
+    procedure Doonfocusin; safecall;
+    procedure Doonfocusout; safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLControlElementEventsonhelpEvent;
+    Fonclick: THTMLControlElementEventsonclickEvent;
+    Fondblclick: THTMLControlElementEventsondblclickEvent;
+    Fonkeypress: THTMLControlElementEventsonkeypressEvent;
+    Fonkeydown: THTMLControlElementEventsonkeydownEvent;
+    Fonkeyup: THTMLControlElementEventsonkeyupEvent;
+    Fonmouseout: THTMLControlElementEventsonmouseoutEvent;
+    Fonmouseover: THTMLControlElementEventsonmouseoverEvent;
+    Fonmousemove: THTMLControlElementEventsonmousemoveEvent;
+    Fonmousedown: THTMLControlElementEventsonmousedownEvent;
+    Fonmouseup: THTMLControlElementEventsonmouseupEvent;
+    Fonselectstart: THTMLControlElementEventsonselectstartEvent;
+    Fonfilterchange: THTMLControlElementEventsonfilterchangeEvent;
+    Fondragstart: THTMLControlElementEventsondragstartEvent;
+    Fonbeforeupdate: THTMLControlElementEventsonbeforeupdateEvent;
+    Fonafterupdate: THTMLControlElementEventsonafterupdateEvent;
+    Fonerrorupdate: THTMLControlElementEventsonerrorupdateEvent;
+    Fonrowexit: THTMLControlElementEventsonrowexitEvent;
+    Fonrowenter: THTMLControlElementEventsonrowenterEvent;
+    Fondatasetchanged: THTMLControlElementEventsondatasetchangedEvent;
+    Fondataavailable: THTMLControlElementEventsondataavailableEvent;
+    Fondatasetcomplete: THTMLControlElementEventsondatasetcompleteEvent;
+    Fonlosecapture: THTMLControlElementEventsonlosecaptureEvent;
+    Fonpropertychange: THTMLControlElementEventsonpropertychangeEvent;
+    Fonscroll: THTMLControlElementEventsonscrollEvent;
+    Fonfocus: THTMLControlElementEventsonfocusEvent;
+    Fonblur: THTMLControlElementEventsonblurEvent;
+    Fonresize: THTMLControlElementEventsonresizeEvent;
+    Fondrag: THTMLControlElementEventsondragEvent;
+    Fondragend: THTMLControlElementEventsondragendEvent;
+    Fondragenter: THTMLControlElementEventsondragenterEvent;
+    Fondragover: THTMLControlElementEventsondragoverEvent;
+    Fondragleave: THTMLControlElementEventsondragleaveEvent;
+    Fondrop: THTMLControlElementEventsondropEvent;
+    Fonbeforecut: THTMLControlElementEventsonbeforecutEvent;
+    Foncut: THTMLControlElementEventsoncutEvent;
+    Fonbeforecopy: THTMLControlElementEventsonbeforecopyEvent;
+    Foncopy: THTMLControlElementEventsoncopyEvent;
+    Fonbeforepaste: THTMLControlElementEventsonbeforepasteEvent;
+    Fonpaste: THTMLControlElementEventsonpasteEvent;
+    Foncontextmenu: THTMLControlElementEventsoncontextmenuEvent;
+    Fonrowsdelete: THTMLControlElementEventsonrowsdeleteEvent;
+    Fonrowsinserted: THTMLControlElementEventsonrowsinsertedEvent;
+    Foncellchange: THTMLControlElementEventsoncellchangeEvent;
+    Fonreadystatechange: THTMLControlElementEventsonreadystatechangeEvent;
+    Fonbeforeeditfocus: THTMLControlElementEventsonbeforeeditfocusEvent;
+    Fonlayoutcomplete: THTMLControlElementEventsonlayoutcompleteEvent;
+    Fonpage: THTMLControlElementEventsonpageEvent;
+    Fonbeforedeactivate: THTMLControlElementEventsonbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLControlElementEventsonbeforeactivateEvent;
+    Fonmove: THTMLControlElementEventsonmoveEvent;
+    Foncontrolselect: THTMLControlElementEventsoncontrolselectEvent;
+    Fonmovestart: THTMLControlElementEventsonmovestartEvent;
+    Fonmoveend: THTMLControlElementEventsonmoveendEvent;
+    Fonresizestart: THTMLControlElementEventsonresizestartEvent;
+    Fonresizeend: THTMLControlElementEventsonresizeendEvent;
+    Fonmouseenter: THTMLControlElementEventsonmouseenterEvent;
+    Fonmouseleave: THTMLControlElementEventsonmouseleaveEvent;
+    Fonmousewheel: THTMLControlElementEventsonmousewheelEvent;
+    Fonactivate: THTMLControlElementEventsonactivateEvent;
+    Fondeactivate: THTMLControlElementEventsondeactivateEvent;
+    Fonfocusin: THTMLControlElementEventsonfocusinEvent;
+    Fonfocusout: THTMLControlElementEventsonfocusoutEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLControlElementEventsonhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLControlElementEventsonclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLControlElementEventsondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLControlElementEventsonkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLControlElementEventsonkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLControlElementEventsonkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLControlElementEventsonmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLControlElementEventsonmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLControlElementEventsonmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLControlElementEventsonmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLControlElementEventsonmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLControlElementEventsonselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLControlElementEventsonfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLControlElementEventsondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLControlElementEventsonbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLControlElementEventsonafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLControlElementEventsonerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLControlElementEventsonrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLControlElementEventsonrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLControlElementEventsondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLControlElementEventsondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLControlElementEventsondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLControlElementEventsonlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLControlElementEventsonpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLControlElementEventsonscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLControlElementEventsonfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLControlElementEventsonblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLControlElementEventsonresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLControlElementEventsondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLControlElementEventsondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLControlElementEventsondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLControlElementEventsondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLControlElementEventsondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLControlElementEventsondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLControlElementEventsonbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLControlElementEventsoncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLControlElementEventsonbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLControlElementEventsoncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLControlElementEventsonbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLControlElementEventsonpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLControlElementEventsoncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLControlElementEventsonrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLControlElementEventsonrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLControlElementEventsoncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLControlElementEventsonreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onbeforeeditfocus: THTMLControlElementEventsonbeforeeditfocusEvent read Fonbeforeeditfocus write Fonbeforeeditfocus;
+    property onlayoutcomplete: THTMLControlElementEventsonlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLControlElementEventsonpageEvent read Fonpage write Fonpage;
+    property onbeforedeactivate: THTMLControlElementEventsonbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLControlElementEventsonbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onmove: THTMLControlElementEventsonmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLControlElementEventsoncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLControlElementEventsonmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLControlElementEventsonmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLControlElementEventsonresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLControlElementEventsonresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmouseenter: THTMLControlElementEventsonmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLControlElementEventsonmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onmousewheel: THTMLControlElementEventsonmousewheelEvent read Fonmousewheel write Fonmousewheel;
+    property onactivate: THTMLControlElementEventsonactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLControlElementEventsondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onfocusin: THTMLControlElementEventsonfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLControlElementEventsonfocusoutEvent read Fonfocusout write Fonfocusout;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLControlElementEvents2onhelpEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLControlElementEvents2onclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLControlElementEvents2ondblclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLControlElementEvents2onkeypressEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLControlElementEvents2onkeydownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2onkeyupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2onmouseoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2onmouseoverEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2onmousemoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2onmousedownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2onmouseupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2onselectstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLControlElementEvents2onfilterchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2ondragstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLControlElementEvents2onbeforeupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLControlElementEvents2onafterupdateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2onerrorupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLControlElementEvents2onrowexitEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLControlElementEvents2onrowenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2ondatasetchangedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2ondataavailableEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2ondatasetcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2onlosecaptureEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2onpropertychangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2onscrollEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2onfocusEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2onblurEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2onresizeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2ondragEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLControlElementEvents2ondragendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2ondragenterEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLControlElementEvents2ondragoverEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLControlElementEvents2ondragleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2ondropEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLControlElementEvents2onbeforecutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLControlElementEvents2oncutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLControlElementEvents2onbeforecopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLControlElementEvents2oncopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLControlElementEvents2onbeforepasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLControlElementEvents2onpasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLControlElementEvents2oncontextmenuEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLControlElementEvents2onrowsdeleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2onrowsinsertedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2oncellchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2onreadystatechangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2onlayoutcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2onpageEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2onmouseenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2onmouseleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2onactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2ondeactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2onbeforedeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLControlElementEvents2onbeforeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLControlElementEvents2onfocusinEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2onfocusoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2onmoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2oncontrolselectEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLControlElementEvents2onmovestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLControlElementEvents2onmoveendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2onresizestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLControlElementEvents2onresizeendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLControlElementEvents2onmousewheelEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLControlElementEvents2 = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondblclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonkeydown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonkeyup(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseover(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousemove(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousedown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseup(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfilterchange(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonafterupdate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetchanged(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondataavailable(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlosecapture(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpropertychange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonscroll(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocus(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonblur(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonresize(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrag(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragenter(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondragover(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragleave(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrop(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonpaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowsdelete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonrowsinserted(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Dooncellchange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonreadystatechange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlayoutcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpage(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseleave(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonactivate(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondeactivate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfocusin(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocusout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmove(const pEvtObj: IHTMLEventObj); safecall;
+    function Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonmoveend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonresizeend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLControlElementEvents2onhelpEvent;
+    Fonclick: THTMLControlElementEvents2onclickEvent;
+    Fondblclick: THTMLControlElementEvents2ondblclickEvent;
+    Fonkeypress: THTMLControlElementEvents2onkeypressEvent;
+    Fonkeydown: THTMLControlElementEvents2onkeydownEvent;
+    Fonkeyup: THTMLControlElementEvents2onkeyupEvent;
+    Fonmouseout: THTMLControlElementEvents2onmouseoutEvent;
+    Fonmouseover: THTMLControlElementEvents2onmouseoverEvent;
+    Fonmousemove: THTMLControlElementEvents2onmousemoveEvent;
+    Fonmousedown: THTMLControlElementEvents2onmousedownEvent;
+    Fonmouseup: THTMLControlElementEvents2onmouseupEvent;
+    Fonselectstart: THTMLControlElementEvents2onselectstartEvent;
+    Fonfilterchange: THTMLControlElementEvents2onfilterchangeEvent;
+    Fondragstart: THTMLControlElementEvents2ondragstartEvent;
+    Fonbeforeupdate: THTMLControlElementEvents2onbeforeupdateEvent;
+    Fonafterupdate: THTMLControlElementEvents2onafterupdateEvent;
+    Fonerrorupdate: THTMLControlElementEvents2onerrorupdateEvent;
+    Fonrowexit: THTMLControlElementEvents2onrowexitEvent;
+    Fonrowenter: THTMLControlElementEvents2onrowenterEvent;
+    Fondatasetchanged: THTMLControlElementEvents2ondatasetchangedEvent;
+    Fondataavailable: THTMLControlElementEvents2ondataavailableEvent;
+    Fondatasetcomplete: THTMLControlElementEvents2ondatasetcompleteEvent;
+    Fonlosecapture: THTMLControlElementEvents2onlosecaptureEvent;
+    Fonpropertychange: THTMLControlElementEvents2onpropertychangeEvent;
+    Fonscroll: THTMLControlElementEvents2onscrollEvent;
+    Fonfocus: THTMLControlElementEvents2onfocusEvent;
+    Fonblur: THTMLControlElementEvents2onblurEvent;
+    Fonresize: THTMLControlElementEvents2onresizeEvent;
+    Fondrag: THTMLControlElementEvents2ondragEvent;
+    Fondragend: THTMLControlElementEvents2ondragendEvent;
+    Fondragenter: THTMLControlElementEvents2ondragenterEvent;
+    Fondragover: THTMLControlElementEvents2ondragoverEvent;
+    Fondragleave: THTMLControlElementEvents2ondragleaveEvent;
+    Fondrop: THTMLControlElementEvents2ondropEvent;
+    Fonbeforecut: THTMLControlElementEvents2onbeforecutEvent;
+    Foncut: THTMLControlElementEvents2oncutEvent;
+    Fonbeforecopy: THTMLControlElementEvents2onbeforecopyEvent;
+    Foncopy: THTMLControlElementEvents2oncopyEvent;
+    Fonbeforepaste: THTMLControlElementEvents2onbeforepasteEvent;
+    Fonpaste: THTMLControlElementEvents2onpasteEvent;
+    Foncontextmenu: THTMLControlElementEvents2oncontextmenuEvent;
+    Fonrowsdelete: THTMLControlElementEvents2onrowsdeleteEvent;
+    Fonrowsinserted: THTMLControlElementEvents2onrowsinsertedEvent;
+    Foncellchange: THTMLControlElementEvents2oncellchangeEvent;
+    Fonreadystatechange: THTMLControlElementEvents2onreadystatechangeEvent;
+    Fonlayoutcomplete: THTMLControlElementEvents2onlayoutcompleteEvent;
+    Fonpage: THTMLControlElementEvents2onpageEvent;
+    Fonmouseenter: THTMLControlElementEvents2onmouseenterEvent;
+    Fonmouseleave: THTMLControlElementEvents2onmouseleaveEvent;
+    Fonactivate: THTMLControlElementEvents2onactivateEvent;
+    Fondeactivate: THTMLControlElementEvents2ondeactivateEvent;
+    Fonbeforedeactivate: THTMLControlElementEvents2onbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLControlElementEvents2onbeforeactivateEvent;
+    Fonfocusin: THTMLControlElementEvents2onfocusinEvent;
+    Fonfocusout: THTMLControlElementEvents2onfocusoutEvent;
+    Fonmove: THTMLControlElementEvents2onmoveEvent;
+    Foncontrolselect: THTMLControlElementEvents2oncontrolselectEvent;
+    Fonmovestart: THTMLControlElementEvents2onmovestartEvent;
+    Fonmoveend: THTMLControlElementEvents2onmoveendEvent;
+    Fonresizestart: THTMLControlElementEvents2onresizestartEvent;
+    Fonresizeend: THTMLControlElementEvents2onresizeendEvent;
+    Fonmousewheel: THTMLControlElementEvents2onmousewheelEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLControlElementEvents2onhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLControlElementEvents2onclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLControlElementEvents2ondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLControlElementEvents2onkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLControlElementEvents2onkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLControlElementEvents2onkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLControlElementEvents2onmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLControlElementEvents2onmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLControlElementEvents2onmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLControlElementEvents2onmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLControlElementEvents2onmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLControlElementEvents2onselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLControlElementEvents2onfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLControlElementEvents2ondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLControlElementEvents2onbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLControlElementEvents2onafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLControlElementEvents2onerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLControlElementEvents2onrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLControlElementEvents2onrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLControlElementEvents2ondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLControlElementEvents2ondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLControlElementEvents2ondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLControlElementEvents2onlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLControlElementEvents2onpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLControlElementEvents2onscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLControlElementEvents2onfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLControlElementEvents2onblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLControlElementEvents2onresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLControlElementEvents2ondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLControlElementEvents2ondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLControlElementEvents2ondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLControlElementEvents2ondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLControlElementEvents2ondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLControlElementEvents2ondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLControlElementEvents2onbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLControlElementEvents2oncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLControlElementEvents2onbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLControlElementEvents2oncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLControlElementEvents2onbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLControlElementEvents2onpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLControlElementEvents2oncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLControlElementEvents2onrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLControlElementEvents2onrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLControlElementEvents2oncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLControlElementEvents2onreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onlayoutcomplete: THTMLControlElementEvents2onlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLControlElementEvents2onpageEvent read Fonpage write Fonpage;
+    property onmouseenter: THTMLControlElementEvents2onmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLControlElementEvents2onmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onactivate: THTMLControlElementEvents2onactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLControlElementEvents2ondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onbeforedeactivate: THTMLControlElementEvents2onbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLControlElementEvents2onbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onfocusin: THTMLControlElementEvents2onfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLControlElementEvents2onfocusoutEvent read Fonfocusout write Fonfocusout;
+    property onmove: THTMLControlElementEvents2onmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLControlElementEvents2oncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLControlElementEvents2onmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLControlElementEvents2onmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLControlElementEvents2onresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLControlElementEvents2onresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmousewheel: THTMLControlElementEvents2onmousewheelEvent read Fonmousewheel write Fonmousewheel;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLMapEventsonhelpEvent = function(Sender: TObject): WordBool of object;
+  THTMLMapEventsonclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLMapEventsondblclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLMapEventsonkeypressEvent = function(Sender: TObject): WordBool of object;
+  THTMLMapEventsonkeydownEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsonkeyupEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsonmouseoutEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsonmouseoverEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsonmousemoveEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsonmousedownEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsonmouseupEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsonselectstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLMapEventsonfilterchangeEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsondragstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLMapEventsonbeforeupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLMapEventsonafterupdateEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsonerrorupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLMapEventsonrowexitEvent = function(Sender: TObject): WordBool of object;
+  THTMLMapEventsonrowenterEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsondatasetchangedEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsondataavailableEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsondatasetcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsonlosecaptureEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsonpropertychangeEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsonscrollEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsonfocusEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsonblurEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsonresizeEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsondragEvent = function(Sender: TObject): WordBool of object;
+  THTMLMapEventsondragendEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsondragenterEvent = function(Sender: TObject): WordBool of object;
+  THTMLMapEventsondragoverEvent = function(Sender: TObject): WordBool of object;
+  THTMLMapEventsondragleaveEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsondropEvent = function(Sender: TObject): WordBool of object;
+  THTMLMapEventsonbeforecutEvent = function(Sender: TObject): WordBool of object;
+  THTMLMapEventsoncutEvent = function(Sender: TObject): WordBool of object;
+  THTMLMapEventsonbeforecopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLMapEventsoncopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLMapEventsonbeforepasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLMapEventsonpasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLMapEventsoncontextmenuEvent = function(Sender: TObject): WordBool of object;
+  THTMLMapEventsonrowsdeleteEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsonrowsinsertedEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsoncellchangeEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsonreadystatechangeEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsonbeforeeditfocusEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsonlayoutcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsonpageEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsonbeforedeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLMapEventsonbeforeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLMapEventsonmoveEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsoncontrolselectEvent = function(Sender: TObject): WordBool of object;
+  THTMLMapEventsonmovestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLMapEventsonmoveendEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsonresizestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLMapEventsonresizeendEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsonmouseenterEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsonmouseleaveEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsonmousewheelEvent = function(Sender: TObject): WordBool of object;
+  THTMLMapEventsonactivateEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsondeactivateEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsonfocusinEvent = procedure(Sender: TObject) of object;
+  THTMLMapEventsonfocusoutEvent = procedure(Sender: TObject) of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLMapEvents = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp: WordBool; safecall;
+    function Doonclick: WordBool; safecall;
+    function Doondblclick: WordBool; safecall;
+    function Doonkeypress: WordBool; safecall;
+    procedure Doonkeydown; safecall;
+    procedure Doonkeyup; safecall;
+    procedure Doonmouseout; safecall;
+    procedure Doonmouseover; safecall;
+    procedure Doonmousemove; safecall;
+    procedure Doonmousedown; safecall;
+    procedure Doonmouseup; safecall;
+    function Doonselectstart: WordBool; safecall;
+    procedure Doonfilterchange; safecall;
+    function Doondragstart: WordBool; safecall;
+    function Doonbeforeupdate: WordBool; safecall;
+    procedure Doonafterupdate; safecall;
+    function Doonerrorupdate: WordBool; safecall;
+    function Doonrowexit: WordBool; safecall;
+    procedure Doonrowenter; safecall;
+    procedure Doondatasetchanged; safecall;
+    procedure Doondataavailable; safecall;
+    procedure Doondatasetcomplete; safecall;
+    procedure Doonlosecapture; safecall;
+    procedure Doonpropertychange; safecall;
+    procedure Doonscroll; safecall;
+    procedure Doonfocus; safecall;
+    procedure Doonblur; safecall;
+    procedure Doonresize; safecall;
+    function Doondrag: WordBool; safecall;
+    procedure Doondragend; safecall;
+    function Doondragenter: WordBool; safecall;
+    function Doondragover: WordBool; safecall;
+    procedure Doondragleave; safecall;
+    function Doondrop: WordBool; safecall;
+    function Doonbeforecut: WordBool; safecall;
+    function Dooncut: WordBool; safecall;
+    function Doonbeforecopy: WordBool; safecall;
+    function Dooncopy: WordBool; safecall;
+    function Doonbeforepaste: WordBool; safecall;
+    function Doonpaste: WordBool; safecall;
+    function Dooncontextmenu: WordBool; safecall;
+    procedure Doonrowsdelete; safecall;
+    procedure Doonrowsinserted; safecall;
+    procedure Dooncellchange; safecall;
+    procedure Doonreadystatechange; safecall;
+    procedure Doonbeforeeditfocus; safecall;
+    procedure Doonlayoutcomplete; safecall;
+    procedure Doonpage; safecall;
+    function Doonbeforedeactivate: WordBool; safecall;
+    function Doonbeforeactivate: WordBool; safecall;
+    procedure Doonmove; safecall;
+    function Dooncontrolselect: WordBool; safecall;
+    function Doonmovestart: WordBool; safecall;
+    procedure Doonmoveend; safecall;
+    function Doonresizestart: WordBool; safecall;
+    procedure Doonresizeend; safecall;
+    procedure Doonmouseenter; safecall;
+    procedure Doonmouseleave; safecall;
+    function Doonmousewheel: WordBool; safecall;
+    procedure Doonactivate; safecall;
+    procedure Doondeactivate; safecall;
+    procedure Doonfocusin; safecall;
+    procedure Doonfocusout; safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLMapEventsonhelpEvent;
+    Fonclick: THTMLMapEventsonclickEvent;
+    Fondblclick: THTMLMapEventsondblclickEvent;
+    Fonkeypress: THTMLMapEventsonkeypressEvent;
+    Fonkeydown: THTMLMapEventsonkeydownEvent;
+    Fonkeyup: THTMLMapEventsonkeyupEvent;
+    Fonmouseout: THTMLMapEventsonmouseoutEvent;
+    Fonmouseover: THTMLMapEventsonmouseoverEvent;
+    Fonmousemove: THTMLMapEventsonmousemoveEvent;
+    Fonmousedown: THTMLMapEventsonmousedownEvent;
+    Fonmouseup: THTMLMapEventsonmouseupEvent;
+    Fonselectstart: THTMLMapEventsonselectstartEvent;
+    Fonfilterchange: THTMLMapEventsonfilterchangeEvent;
+    Fondragstart: THTMLMapEventsondragstartEvent;
+    Fonbeforeupdate: THTMLMapEventsonbeforeupdateEvent;
+    Fonafterupdate: THTMLMapEventsonafterupdateEvent;
+    Fonerrorupdate: THTMLMapEventsonerrorupdateEvent;
+    Fonrowexit: THTMLMapEventsonrowexitEvent;
+    Fonrowenter: THTMLMapEventsonrowenterEvent;
+    Fondatasetchanged: THTMLMapEventsondatasetchangedEvent;
+    Fondataavailable: THTMLMapEventsondataavailableEvent;
+    Fondatasetcomplete: THTMLMapEventsondatasetcompleteEvent;
+    Fonlosecapture: THTMLMapEventsonlosecaptureEvent;
+    Fonpropertychange: THTMLMapEventsonpropertychangeEvent;
+    Fonscroll: THTMLMapEventsonscrollEvent;
+    Fonfocus: THTMLMapEventsonfocusEvent;
+    Fonblur: THTMLMapEventsonblurEvent;
+    Fonresize: THTMLMapEventsonresizeEvent;
+    Fondrag: THTMLMapEventsondragEvent;
+    Fondragend: THTMLMapEventsondragendEvent;
+    Fondragenter: THTMLMapEventsondragenterEvent;
+    Fondragover: THTMLMapEventsondragoverEvent;
+    Fondragleave: THTMLMapEventsondragleaveEvent;
+    Fondrop: THTMLMapEventsondropEvent;
+    Fonbeforecut: THTMLMapEventsonbeforecutEvent;
+    Foncut: THTMLMapEventsoncutEvent;
+    Fonbeforecopy: THTMLMapEventsonbeforecopyEvent;
+    Foncopy: THTMLMapEventsoncopyEvent;
+    Fonbeforepaste: THTMLMapEventsonbeforepasteEvent;
+    Fonpaste: THTMLMapEventsonpasteEvent;
+    Foncontextmenu: THTMLMapEventsoncontextmenuEvent;
+    Fonrowsdelete: THTMLMapEventsonrowsdeleteEvent;
+    Fonrowsinserted: THTMLMapEventsonrowsinsertedEvent;
+    Foncellchange: THTMLMapEventsoncellchangeEvent;
+    Fonreadystatechange: THTMLMapEventsonreadystatechangeEvent;
+    Fonbeforeeditfocus: THTMLMapEventsonbeforeeditfocusEvent;
+    Fonlayoutcomplete: THTMLMapEventsonlayoutcompleteEvent;
+    Fonpage: THTMLMapEventsonpageEvent;
+    Fonbeforedeactivate: THTMLMapEventsonbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLMapEventsonbeforeactivateEvent;
+    Fonmove: THTMLMapEventsonmoveEvent;
+    Foncontrolselect: THTMLMapEventsoncontrolselectEvent;
+    Fonmovestart: THTMLMapEventsonmovestartEvent;
+    Fonmoveend: THTMLMapEventsonmoveendEvent;
+    Fonresizestart: THTMLMapEventsonresizestartEvent;
+    Fonresizeend: THTMLMapEventsonresizeendEvent;
+    Fonmouseenter: THTMLMapEventsonmouseenterEvent;
+    Fonmouseleave: THTMLMapEventsonmouseleaveEvent;
+    Fonmousewheel: THTMLMapEventsonmousewheelEvent;
+    Fonactivate: THTMLMapEventsonactivateEvent;
+    Fondeactivate: THTMLMapEventsondeactivateEvent;
+    Fonfocusin: THTMLMapEventsonfocusinEvent;
+    Fonfocusout: THTMLMapEventsonfocusoutEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLMapEventsonhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLMapEventsonclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLMapEventsondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLMapEventsonkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLMapEventsonkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLMapEventsonkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLMapEventsonmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLMapEventsonmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLMapEventsonmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLMapEventsonmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLMapEventsonmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLMapEventsonselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLMapEventsonfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLMapEventsondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLMapEventsonbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLMapEventsonafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLMapEventsonerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLMapEventsonrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLMapEventsonrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLMapEventsondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLMapEventsondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLMapEventsondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLMapEventsonlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLMapEventsonpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLMapEventsonscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLMapEventsonfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLMapEventsonblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLMapEventsonresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLMapEventsondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLMapEventsondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLMapEventsondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLMapEventsondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLMapEventsondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLMapEventsondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLMapEventsonbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLMapEventsoncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLMapEventsonbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLMapEventsoncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLMapEventsonbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLMapEventsonpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLMapEventsoncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLMapEventsonrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLMapEventsonrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLMapEventsoncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLMapEventsonreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onbeforeeditfocus: THTMLMapEventsonbeforeeditfocusEvent read Fonbeforeeditfocus write Fonbeforeeditfocus;
+    property onlayoutcomplete: THTMLMapEventsonlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLMapEventsonpageEvent read Fonpage write Fonpage;
+    property onbeforedeactivate: THTMLMapEventsonbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLMapEventsonbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onmove: THTMLMapEventsonmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLMapEventsoncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLMapEventsonmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLMapEventsonmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLMapEventsonresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLMapEventsonresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmouseenter: THTMLMapEventsonmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLMapEventsonmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onmousewheel: THTMLMapEventsonmousewheelEvent read Fonmousewheel write Fonmousewheel;
+    property onactivate: THTMLMapEventsonactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLMapEventsondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onfocusin: THTMLMapEventsonfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLMapEventsonfocusoutEvent read Fonfocusout write Fonfocusout;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLMapEvents2onhelpEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMapEvents2onclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMapEvents2ondblclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMapEvents2onkeypressEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMapEvents2onkeydownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2onkeyupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2onmouseoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2onmouseoverEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2onmousemoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2onmousedownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2onmouseupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2onselectstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMapEvents2onfilterchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2ondragstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMapEvents2onbeforeupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMapEvents2onafterupdateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2onerrorupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMapEvents2onrowexitEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMapEvents2onrowenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2ondatasetchangedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2ondataavailableEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2ondatasetcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2onlosecaptureEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2onpropertychangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2onscrollEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2onfocusEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2onblurEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2onresizeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2ondragEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMapEvents2ondragendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2ondragenterEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMapEvents2ondragoverEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMapEvents2ondragleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2ondropEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMapEvents2onbeforecutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMapEvents2oncutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMapEvents2onbeforecopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMapEvents2oncopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMapEvents2onbeforepasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMapEvents2onpasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMapEvents2oncontextmenuEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMapEvents2onrowsdeleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2onrowsinsertedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2oncellchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2onreadystatechangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2onlayoutcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2onpageEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2onmouseenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2onmouseleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2onactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2ondeactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2onbeforedeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMapEvents2onbeforeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMapEvents2onfocusinEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2onfocusoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2onmoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2oncontrolselectEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMapEvents2onmovestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMapEvents2onmoveendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2onresizestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLMapEvents2onresizeendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLMapEvents2onmousewheelEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLMapEvents2 = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondblclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonkeydown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonkeyup(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseover(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousemove(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousedown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseup(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfilterchange(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonafterupdate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetchanged(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondataavailable(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlosecapture(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpropertychange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonscroll(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocus(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonblur(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonresize(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrag(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragenter(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondragover(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragleave(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrop(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonpaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowsdelete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonrowsinserted(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Dooncellchange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonreadystatechange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlayoutcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpage(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseleave(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonactivate(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondeactivate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfocusin(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocusout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmove(const pEvtObj: IHTMLEventObj); safecall;
+    function Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonmoveend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonresizeend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLMapEvents2onhelpEvent;
+    Fonclick: THTMLMapEvents2onclickEvent;
+    Fondblclick: THTMLMapEvents2ondblclickEvent;
+    Fonkeypress: THTMLMapEvents2onkeypressEvent;
+    Fonkeydown: THTMLMapEvents2onkeydownEvent;
+    Fonkeyup: THTMLMapEvents2onkeyupEvent;
+    Fonmouseout: THTMLMapEvents2onmouseoutEvent;
+    Fonmouseover: THTMLMapEvents2onmouseoverEvent;
+    Fonmousemove: THTMLMapEvents2onmousemoveEvent;
+    Fonmousedown: THTMLMapEvents2onmousedownEvent;
+    Fonmouseup: THTMLMapEvents2onmouseupEvent;
+    Fonselectstart: THTMLMapEvents2onselectstartEvent;
+    Fonfilterchange: THTMLMapEvents2onfilterchangeEvent;
+    Fondragstart: THTMLMapEvents2ondragstartEvent;
+    Fonbeforeupdate: THTMLMapEvents2onbeforeupdateEvent;
+    Fonafterupdate: THTMLMapEvents2onafterupdateEvent;
+    Fonerrorupdate: THTMLMapEvents2onerrorupdateEvent;
+    Fonrowexit: THTMLMapEvents2onrowexitEvent;
+    Fonrowenter: THTMLMapEvents2onrowenterEvent;
+    Fondatasetchanged: THTMLMapEvents2ondatasetchangedEvent;
+    Fondataavailable: THTMLMapEvents2ondataavailableEvent;
+    Fondatasetcomplete: THTMLMapEvents2ondatasetcompleteEvent;
+    Fonlosecapture: THTMLMapEvents2onlosecaptureEvent;
+    Fonpropertychange: THTMLMapEvents2onpropertychangeEvent;
+    Fonscroll: THTMLMapEvents2onscrollEvent;
+    Fonfocus: THTMLMapEvents2onfocusEvent;
+    Fonblur: THTMLMapEvents2onblurEvent;
+    Fonresize: THTMLMapEvents2onresizeEvent;
+    Fondrag: THTMLMapEvents2ondragEvent;
+    Fondragend: THTMLMapEvents2ondragendEvent;
+    Fondragenter: THTMLMapEvents2ondragenterEvent;
+    Fondragover: THTMLMapEvents2ondragoverEvent;
+    Fondragleave: THTMLMapEvents2ondragleaveEvent;
+    Fondrop: THTMLMapEvents2ondropEvent;
+    Fonbeforecut: THTMLMapEvents2onbeforecutEvent;
+    Foncut: THTMLMapEvents2oncutEvent;
+    Fonbeforecopy: THTMLMapEvents2onbeforecopyEvent;
+    Foncopy: THTMLMapEvents2oncopyEvent;
+    Fonbeforepaste: THTMLMapEvents2onbeforepasteEvent;
+    Fonpaste: THTMLMapEvents2onpasteEvent;
+    Foncontextmenu: THTMLMapEvents2oncontextmenuEvent;
+    Fonrowsdelete: THTMLMapEvents2onrowsdeleteEvent;
+    Fonrowsinserted: THTMLMapEvents2onrowsinsertedEvent;
+    Foncellchange: THTMLMapEvents2oncellchangeEvent;
+    Fonreadystatechange: THTMLMapEvents2onreadystatechangeEvent;
+    Fonlayoutcomplete: THTMLMapEvents2onlayoutcompleteEvent;
+    Fonpage: THTMLMapEvents2onpageEvent;
+    Fonmouseenter: THTMLMapEvents2onmouseenterEvent;
+    Fonmouseleave: THTMLMapEvents2onmouseleaveEvent;
+    Fonactivate: THTMLMapEvents2onactivateEvent;
+    Fondeactivate: THTMLMapEvents2ondeactivateEvent;
+    Fonbeforedeactivate: THTMLMapEvents2onbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLMapEvents2onbeforeactivateEvent;
+    Fonfocusin: THTMLMapEvents2onfocusinEvent;
+    Fonfocusout: THTMLMapEvents2onfocusoutEvent;
+    Fonmove: THTMLMapEvents2onmoveEvent;
+    Foncontrolselect: THTMLMapEvents2oncontrolselectEvent;
+    Fonmovestart: THTMLMapEvents2onmovestartEvent;
+    Fonmoveend: THTMLMapEvents2onmoveendEvent;
+    Fonresizestart: THTMLMapEvents2onresizestartEvent;
+    Fonresizeend: THTMLMapEvents2onresizeendEvent;
+    Fonmousewheel: THTMLMapEvents2onmousewheelEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLMapEvents2onhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLMapEvents2onclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLMapEvents2ondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLMapEvents2onkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLMapEvents2onkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLMapEvents2onkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLMapEvents2onmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLMapEvents2onmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLMapEvents2onmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLMapEvents2onmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLMapEvents2onmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLMapEvents2onselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLMapEvents2onfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLMapEvents2ondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLMapEvents2onbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLMapEvents2onafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLMapEvents2onerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLMapEvents2onrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLMapEvents2onrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLMapEvents2ondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLMapEvents2ondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLMapEvents2ondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLMapEvents2onlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLMapEvents2onpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLMapEvents2onscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLMapEvents2onfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLMapEvents2onblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLMapEvents2onresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLMapEvents2ondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLMapEvents2ondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLMapEvents2ondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLMapEvents2ondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLMapEvents2ondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLMapEvents2ondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLMapEvents2onbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLMapEvents2oncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLMapEvents2onbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLMapEvents2oncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLMapEvents2onbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLMapEvents2onpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLMapEvents2oncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLMapEvents2onrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLMapEvents2onrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLMapEvents2oncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLMapEvents2onreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onlayoutcomplete: THTMLMapEvents2onlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLMapEvents2onpageEvent read Fonpage write Fonpage;
+    property onmouseenter: THTMLMapEvents2onmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLMapEvents2onmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onactivate: THTMLMapEvents2onactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLMapEvents2ondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onbeforedeactivate: THTMLMapEvents2onbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLMapEvents2onbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onfocusin: THTMLMapEvents2onfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLMapEvents2onfocusoutEvent read Fonfocusout write Fonfocusout;
+    property onmove: THTMLMapEvents2onmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLMapEvents2oncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLMapEvents2onmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLMapEvents2onmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLMapEvents2onresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLMapEvents2onresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmousewheel: THTMLMapEvents2onmousewheelEvent read Fonmousewheel write Fonmousewheel;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLAreaEventsonhelpEvent = function(Sender: TObject): WordBool of object;
+  THTMLAreaEventsonclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLAreaEventsondblclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLAreaEventsonkeypressEvent = function(Sender: TObject): WordBool of object;
+  THTMLAreaEventsonkeydownEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsonkeyupEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsonmouseoutEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsonmouseoverEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsonmousemoveEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsonmousedownEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsonmouseupEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsonselectstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLAreaEventsonfilterchangeEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsondragstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLAreaEventsonbeforeupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLAreaEventsonafterupdateEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsonerrorupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLAreaEventsonrowexitEvent = function(Sender: TObject): WordBool of object;
+  THTMLAreaEventsonrowenterEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsondatasetchangedEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsondataavailableEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsondatasetcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsonlosecaptureEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsonpropertychangeEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsonscrollEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsonfocusEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsonblurEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsonresizeEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsondragEvent = function(Sender: TObject): WordBool of object;
+  THTMLAreaEventsondragendEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsondragenterEvent = function(Sender: TObject): WordBool of object;
+  THTMLAreaEventsondragoverEvent = function(Sender: TObject): WordBool of object;
+  THTMLAreaEventsondragleaveEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsondropEvent = function(Sender: TObject): WordBool of object;
+  THTMLAreaEventsonbeforecutEvent = function(Sender: TObject): WordBool of object;
+  THTMLAreaEventsoncutEvent = function(Sender: TObject): WordBool of object;
+  THTMLAreaEventsonbeforecopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLAreaEventsoncopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLAreaEventsonbeforepasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLAreaEventsonpasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLAreaEventsoncontextmenuEvent = function(Sender: TObject): WordBool of object;
+  THTMLAreaEventsonrowsdeleteEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsonrowsinsertedEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsoncellchangeEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsonreadystatechangeEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsonbeforeeditfocusEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsonlayoutcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsonpageEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsonbeforedeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLAreaEventsonbeforeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLAreaEventsonmoveEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsoncontrolselectEvent = function(Sender: TObject): WordBool of object;
+  THTMLAreaEventsonmovestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLAreaEventsonmoveendEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsonresizestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLAreaEventsonresizeendEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsonmouseenterEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsonmouseleaveEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsonmousewheelEvent = function(Sender: TObject): WordBool of object;
+  THTMLAreaEventsonactivateEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsondeactivateEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsonfocusinEvent = procedure(Sender: TObject) of object;
+  THTMLAreaEventsonfocusoutEvent = procedure(Sender: TObject) of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLAreaEvents = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp: WordBool; safecall;
+    function Doonclick: WordBool; safecall;
+    function Doondblclick: WordBool; safecall;
+    function Doonkeypress: WordBool; safecall;
+    procedure Doonkeydown; safecall;
+    procedure Doonkeyup; safecall;
+    procedure Doonmouseout; safecall;
+    procedure Doonmouseover; safecall;
+    procedure Doonmousemove; safecall;
+    procedure Doonmousedown; safecall;
+    procedure Doonmouseup; safecall;
+    function Doonselectstart: WordBool; safecall;
+    procedure Doonfilterchange; safecall;
+    function Doondragstart: WordBool; safecall;
+    function Doonbeforeupdate: WordBool; safecall;
+    procedure Doonafterupdate; safecall;
+    function Doonerrorupdate: WordBool; safecall;
+    function Doonrowexit: WordBool; safecall;
+    procedure Doonrowenter; safecall;
+    procedure Doondatasetchanged; safecall;
+    procedure Doondataavailable; safecall;
+    procedure Doondatasetcomplete; safecall;
+    procedure Doonlosecapture; safecall;
+    procedure Doonpropertychange; safecall;
+    procedure Doonscroll; safecall;
+    procedure Doonfocus; safecall;
+    procedure Doonblur; safecall;
+    procedure Doonresize; safecall;
+    function Doondrag: WordBool; safecall;
+    procedure Doondragend; safecall;
+    function Doondragenter: WordBool; safecall;
+    function Doondragover: WordBool; safecall;
+    procedure Doondragleave; safecall;
+    function Doondrop: WordBool; safecall;
+    function Doonbeforecut: WordBool; safecall;
+    function Dooncut: WordBool; safecall;
+    function Doonbeforecopy: WordBool; safecall;
+    function Dooncopy: WordBool; safecall;
+    function Doonbeforepaste: WordBool; safecall;
+    function Doonpaste: WordBool; safecall;
+    function Dooncontextmenu: WordBool; safecall;
+    procedure Doonrowsdelete; safecall;
+    procedure Doonrowsinserted; safecall;
+    procedure Dooncellchange; safecall;
+    procedure Doonreadystatechange; safecall;
+    procedure Doonbeforeeditfocus; safecall;
+    procedure Doonlayoutcomplete; safecall;
+    procedure Doonpage; safecall;
+    function Doonbeforedeactivate: WordBool; safecall;
+    function Doonbeforeactivate: WordBool; safecall;
+    procedure Doonmove; safecall;
+    function Dooncontrolselect: WordBool; safecall;
+    function Doonmovestart: WordBool; safecall;
+    procedure Doonmoveend; safecall;
+    function Doonresizestart: WordBool; safecall;
+    procedure Doonresizeend; safecall;
+    procedure Doonmouseenter; safecall;
+    procedure Doonmouseleave; safecall;
+    function Doonmousewheel: WordBool; safecall;
+    procedure Doonactivate; safecall;
+    procedure Doondeactivate; safecall;
+    procedure Doonfocusin; safecall;
+    procedure Doonfocusout; safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLAreaEventsonhelpEvent;
+    Fonclick: THTMLAreaEventsonclickEvent;
+    Fondblclick: THTMLAreaEventsondblclickEvent;
+    Fonkeypress: THTMLAreaEventsonkeypressEvent;
+    Fonkeydown: THTMLAreaEventsonkeydownEvent;
+    Fonkeyup: THTMLAreaEventsonkeyupEvent;
+    Fonmouseout: THTMLAreaEventsonmouseoutEvent;
+    Fonmouseover: THTMLAreaEventsonmouseoverEvent;
+    Fonmousemove: THTMLAreaEventsonmousemoveEvent;
+    Fonmousedown: THTMLAreaEventsonmousedownEvent;
+    Fonmouseup: THTMLAreaEventsonmouseupEvent;
+    Fonselectstart: THTMLAreaEventsonselectstartEvent;
+    Fonfilterchange: THTMLAreaEventsonfilterchangeEvent;
+    Fondragstart: THTMLAreaEventsondragstartEvent;
+    Fonbeforeupdate: THTMLAreaEventsonbeforeupdateEvent;
+    Fonafterupdate: THTMLAreaEventsonafterupdateEvent;
+    Fonerrorupdate: THTMLAreaEventsonerrorupdateEvent;
+    Fonrowexit: THTMLAreaEventsonrowexitEvent;
+    Fonrowenter: THTMLAreaEventsonrowenterEvent;
+    Fondatasetchanged: THTMLAreaEventsondatasetchangedEvent;
+    Fondataavailable: THTMLAreaEventsondataavailableEvent;
+    Fondatasetcomplete: THTMLAreaEventsondatasetcompleteEvent;
+    Fonlosecapture: THTMLAreaEventsonlosecaptureEvent;
+    Fonpropertychange: THTMLAreaEventsonpropertychangeEvent;
+    Fonscroll: THTMLAreaEventsonscrollEvent;
+    Fonfocus: THTMLAreaEventsonfocusEvent;
+    Fonblur: THTMLAreaEventsonblurEvent;
+    Fonresize: THTMLAreaEventsonresizeEvent;
+    Fondrag: THTMLAreaEventsondragEvent;
+    Fondragend: THTMLAreaEventsondragendEvent;
+    Fondragenter: THTMLAreaEventsondragenterEvent;
+    Fondragover: THTMLAreaEventsondragoverEvent;
+    Fondragleave: THTMLAreaEventsondragleaveEvent;
+    Fondrop: THTMLAreaEventsondropEvent;
+    Fonbeforecut: THTMLAreaEventsonbeforecutEvent;
+    Foncut: THTMLAreaEventsoncutEvent;
+    Fonbeforecopy: THTMLAreaEventsonbeforecopyEvent;
+    Foncopy: THTMLAreaEventsoncopyEvent;
+    Fonbeforepaste: THTMLAreaEventsonbeforepasteEvent;
+    Fonpaste: THTMLAreaEventsonpasteEvent;
+    Foncontextmenu: THTMLAreaEventsoncontextmenuEvent;
+    Fonrowsdelete: THTMLAreaEventsonrowsdeleteEvent;
+    Fonrowsinserted: THTMLAreaEventsonrowsinsertedEvent;
+    Foncellchange: THTMLAreaEventsoncellchangeEvent;
+    Fonreadystatechange: THTMLAreaEventsonreadystatechangeEvent;
+    Fonbeforeeditfocus: THTMLAreaEventsonbeforeeditfocusEvent;
+    Fonlayoutcomplete: THTMLAreaEventsonlayoutcompleteEvent;
+    Fonpage: THTMLAreaEventsonpageEvent;
+    Fonbeforedeactivate: THTMLAreaEventsonbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLAreaEventsonbeforeactivateEvent;
+    Fonmove: THTMLAreaEventsonmoveEvent;
+    Foncontrolselect: THTMLAreaEventsoncontrolselectEvent;
+    Fonmovestart: THTMLAreaEventsonmovestartEvent;
+    Fonmoveend: THTMLAreaEventsonmoveendEvent;
+    Fonresizestart: THTMLAreaEventsonresizestartEvent;
+    Fonresizeend: THTMLAreaEventsonresizeendEvent;
+    Fonmouseenter: THTMLAreaEventsonmouseenterEvent;
+    Fonmouseleave: THTMLAreaEventsonmouseleaveEvent;
+    Fonmousewheel: THTMLAreaEventsonmousewheelEvent;
+    Fonactivate: THTMLAreaEventsonactivateEvent;
+    Fondeactivate: THTMLAreaEventsondeactivateEvent;
+    Fonfocusin: THTMLAreaEventsonfocusinEvent;
+    Fonfocusout: THTMLAreaEventsonfocusoutEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLAreaEventsonhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLAreaEventsonclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLAreaEventsondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLAreaEventsonkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLAreaEventsonkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLAreaEventsonkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLAreaEventsonmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLAreaEventsonmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLAreaEventsonmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLAreaEventsonmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLAreaEventsonmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLAreaEventsonselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLAreaEventsonfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLAreaEventsondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLAreaEventsonbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLAreaEventsonafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLAreaEventsonerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLAreaEventsonrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLAreaEventsonrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLAreaEventsondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLAreaEventsondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLAreaEventsondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLAreaEventsonlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLAreaEventsonpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLAreaEventsonscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLAreaEventsonfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLAreaEventsonblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLAreaEventsonresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLAreaEventsondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLAreaEventsondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLAreaEventsondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLAreaEventsondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLAreaEventsondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLAreaEventsondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLAreaEventsonbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLAreaEventsoncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLAreaEventsonbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLAreaEventsoncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLAreaEventsonbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLAreaEventsonpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLAreaEventsoncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLAreaEventsonrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLAreaEventsonrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLAreaEventsoncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLAreaEventsonreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onbeforeeditfocus: THTMLAreaEventsonbeforeeditfocusEvent read Fonbeforeeditfocus write Fonbeforeeditfocus;
+    property onlayoutcomplete: THTMLAreaEventsonlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLAreaEventsonpageEvent read Fonpage write Fonpage;
+    property onbeforedeactivate: THTMLAreaEventsonbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLAreaEventsonbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onmove: THTMLAreaEventsonmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLAreaEventsoncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLAreaEventsonmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLAreaEventsonmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLAreaEventsonresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLAreaEventsonresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmouseenter: THTMLAreaEventsonmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLAreaEventsonmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onmousewheel: THTMLAreaEventsonmousewheelEvent read Fonmousewheel write Fonmousewheel;
+    property onactivate: THTMLAreaEventsonactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLAreaEventsondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onfocusin: THTMLAreaEventsonfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLAreaEventsonfocusoutEvent read Fonfocusout write Fonfocusout;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLAreaEvents2onhelpEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAreaEvents2onclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAreaEvents2ondblclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAreaEvents2onkeypressEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAreaEvents2onkeydownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2onkeyupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2onmouseoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2onmouseoverEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2onmousemoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2onmousedownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2onmouseupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2onselectstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAreaEvents2onfilterchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2ondragstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAreaEvents2onbeforeupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAreaEvents2onafterupdateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2onerrorupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAreaEvents2onrowexitEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAreaEvents2onrowenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2ondatasetchangedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2ondataavailableEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2ondatasetcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2onlosecaptureEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2onpropertychangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2onscrollEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2onfocusEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2onblurEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2onresizeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2ondragEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAreaEvents2ondragendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2ondragenterEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAreaEvents2ondragoverEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAreaEvents2ondragleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2ondropEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAreaEvents2onbeforecutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAreaEvents2oncutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAreaEvents2onbeforecopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAreaEvents2oncopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAreaEvents2onbeforepasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAreaEvents2onpasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAreaEvents2oncontextmenuEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAreaEvents2onrowsdeleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2onrowsinsertedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2oncellchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2onreadystatechangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2onlayoutcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2onpageEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2onmouseenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2onmouseleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2onactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2ondeactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2onbeforedeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAreaEvents2onbeforeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAreaEvents2onfocusinEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2onfocusoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2onmoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2oncontrolselectEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAreaEvents2onmovestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAreaEvents2onmoveendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2onresizestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLAreaEvents2onresizeendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLAreaEvents2onmousewheelEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLAreaEvents2 = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondblclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonkeydown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonkeyup(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseover(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousemove(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousedown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseup(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfilterchange(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonafterupdate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetchanged(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondataavailable(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlosecapture(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpropertychange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonscroll(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocus(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonblur(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonresize(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrag(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragenter(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondragover(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragleave(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrop(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonpaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowsdelete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonrowsinserted(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Dooncellchange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonreadystatechange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlayoutcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpage(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseleave(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonactivate(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondeactivate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfocusin(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocusout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmove(const pEvtObj: IHTMLEventObj); safecall;
+    function Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonmoveend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonresizeend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLAreaEvents2onhelpEvent;
+    Fonclick: THTMLAreaEvents2onclickEvent;
+    Fondblclick: THTMLAreaEvents2ondblclickEvent;
+    Fonkeypress: THTMLAreaEvents2onkeypressEvent;
+    Fonkeydown: THTMLAreaEvents2onkeydownEvent;
+    Fonkeyup: THTMLAreaEvents2onkeyupEvent;
+    Fonmouseout: THTMLAreaEvents2onmouseoutEvent;
+    Fonmouseover: THTMLAreaEvents2onmouseoverEvent;
+    Fonmousemove: THTMLAreaEvents2onmousemoveEvent;
+    Fonmousedown: THTMLAreaEvents2onmousedownEvent;
+    Fonmouseup: THTMLAreaEvents2onmouseupEvent;
+    Fonselectstart: THTMLAreaEvents2onselectstartEvent;
+    Fonfilterchange: THTMLAreaEvents2onfilterchangeEvent;
+    Fondragstart: THTMLAreaEvents2ondragstartEvent;
+    Fonbeforeupdate: THTMLAreaEvents2onbeforeupdateEvent;
+    Fonafterupdate: THTMLAreaEvents2onafterupdateEvent;
+    Fonerrorupdate: THTMLAreaEvents2onerrorupdateEvent;
+    Fonrowexit: THTMLAreaEvents2onrowexitEvent;
+    Fonrowenter: THTMLAreaEvents2onrowenterEvent;
+    Fondatasetchanged: THTMLAreaEvents2ondatasetchangedEvent;
+    Fondataavailable: THTMLAreaEvents2ondataavailableEvent;
+    Fondatasetcomplete: THTMLAreaEvents2ondatasetcompleteEvent;
+    Fonlosecapture: THTMLAreaEvents2onlosecaptureEvent;
+    Fonpropertychange: THTMLAreaEvents2onpropertychangeEvent;
+    Fonscroll: THTMLAreaEvents2onscrollEvent;
+    Fonfocus: THTMLAreaEvents2onfocusEvent;
+    Fonblur: THTMLAreaEvents2onblurEvent;
+    Fonresize: THTMLAreaEvents2onresizeEvent;
+    Fondrag: THTMLAreaEvents2ondragEvent;
+    Fondragend: THTMLAreaEvents2ondragendEvent;
+    Fondragenter: THTMLAreaEvents2ondragenterEvent;
+    Fondragover: THTMLAreaEvents2ondragoverEvent;
+    Fondragleave: THTMLAreaEvents2ondragleaveEvent;
+    Fondrop: THTMLAreaEvents2ondropEvent;
+    Fonbeforecut: THTMLAreaEvents2onbeforecutEvent;
+    Foncut: THTMLAreaEvents2oncutEvent;
+    Fonbeforecopy: THTMLAreaEvents2onbeforecopyEvent;
+    Foncopy: THTMLAreaEvents2oncopyEvent;
+    Fonbeforepaste: THTMLAreaEvents2onbeforepasteEvent;
+    Fonpaste: THTMLAreaEvents2onpasteEvent;
+    Foncontextmenu: THTMLAreaEvents2oncontextmenuEvent;
+    Fonrowsdelete: THTMLAreaEvents2onrowsdeleteEvent;
+    Fonrowsinserted: THTMLAreaEvents2onrowsinsertedEvent;
+    Foncellchange: THTMLAreaEvents2oncellchangeEvent;
+    Fonreadystatechange: THTMLAreaEvents2onreadystatechangeEvent;
+    Fonlayoutcomplete: THTMLAreaEvents2onlayoutcompleteEvent;
+    Fonpage: THTMLAreaEvents2onpageEvent;
+    Fonmouseenter: THTMLAreaEvents2onmouseenterEvent;
+    Fonmouseleave: THTMLAreaEvents2onmouseleaveEvent;
+    Fonactivate: THTMLAreaEvents2onactivateEvent;
+    Fondeactivate: THTMLAreaEvents2ondeactivateEvent;
+    Fonbeforedeactivate: THTMLAreaEvents2onbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLAreaEvents2onbeforeactivateEvent;
+    Fonfocusin: THTMLAreaEvents2onfocusinEvent;
+    Fonfocusout: THTMLAreaEvents2onfocusoutEvent;
+    Fonmove: THTMLAreaEvents2onmoveEvent;
+    Foncontrolselect: THTMLAreaEvents2oncontrolselectEvent;
+    Fonmovestart: THTMLAreaEvents2onmovestartEvent;
+    Fonmoveend: THTMLAreaEvents2onmoveendEvent;
+    Fonresizestart: THTMLAreaEvents2onresizestartEvent;
+    Fonresizeend: THTMLAreaEvents2onresizeendEvent;
+    Fonmousewheel: THTMLAreaEvents2onmousewheelEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLAreaEvents2onhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLAreaEvents2onclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLAreaEvents2ondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLAreaEvents2onkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLAreaEvents2onkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLAreaEvents2onkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLAreaEvents2onmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLAreaEvents2onmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLAreaEvents2onmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLAreaEvents2onmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLAreaEvents2onmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLAreaEvents2onselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLAreaEvents2onfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLAreaEvents2ondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLAreaEvents2onbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLAreaEvents2onafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLAreaEvents2onerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLAreaEvents2onrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLAreaEvents2onrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLAreaEvents2ondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLAreaEvents2ondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLAreaEvents2ondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLAreaEvents2onlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLAreaEvents2onpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLAreaEvents2onscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLAreaEvents2onfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLAreaEvents2onblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLAreaEvents2onresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLAreaEvents2ondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLAreaEvents2ondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLAreaEvents2ondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLAreaEvents2ondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLAreaEvents2ondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLAreaEvents2ondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLAreaEvents2onbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLAreaEvents2oncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLAreaEvents2onbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLAreaEvents2oncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLAreaEvents2onbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLAreaEvents2onpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLAreaEvents2oncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLAreaEvents2onrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLAreaEvents2onrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLAreaEvents2oncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLAreaEvents2onreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onlayoutcomplete: THTMLAreaEvents2onlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLAreaEvents2onpageEvent read Fonpage write Fonpage;
+    property onmouseenter: THTMLAreaEvents2onmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLAreaEvents2onmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onactivate: THTMLAreaEvents2onactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLAreaEvents2ondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onbeforedeactivate: THTMLAreaEvents2onbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLAreaEvents2onbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onfocusin: THTMLAreaEvents2onfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLAreaEvents2onfocusoutEvent read Fonfocusout write Fonfocusout;
+    property onmove: THTMLAreaEvents2onmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLAreaEvents2oncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLAreaEvents2onmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLAreaEvents2onmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLAreaEvents2onresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLAreaEvents2onresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmousewheel: THTMLAreaEvents2onmousewheelEvent read Fonmousewheel write Fonmousewheel;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLTableEventsonhelpEvent = function(Sender: TObject): WordBool of object;
+  THTMLTableEventsonclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLTableEventsondblclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLTableEventsonkeypressEvent = function(Sender: TObject): WordBool of object;
+  THTMLTableEventsonkeydownEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsonkeyupEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsonmouseoutEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsonmouseoverEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsonmousemoveEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsonmousedownEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsonmouseupEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsonselectstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLTableEventsonfilterchangeEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsondragstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLTableEventsonbeforeupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLTableEventsonafterupdateEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsonerrorupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLTableEventsonrowexitEvent = function(Sender: TObject): WordBool of object;
+  THTMLTableEventsonrowenterEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsondatasetchangedEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsondataavailableEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsondatasetcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsonlosecaptureEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsonpropertychangeEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsonscrollEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsonfocusEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsonblurEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsonresizeEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsondragEvent = function(Sender: TObject): WordBool of object;
+  THTMLTableEventsondragendEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsondragenterEvent = function(Sender: TObject): WordBool of object;
+  THTMLTableEventsondragoverEvent = function(Sender: TObject): WordBool of object;
+  THTMLTableEventsondragleaveEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsondropEvent = function(Sender: TObject): WordBool of object;
+  THTMLTableEventsonbeforecutEvent = function(Sender: TObject): WordBool of object;
+  THTMLTableEventsoncutEvent = function(Sender: TObject): WordBool of object;
+  THTMLTableEventsonbeforecopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLTableEventsoncopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLTableEventsonbeforepasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLTableEventsonpasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLTableEventsoncontextmenuEvent = function(Sender: TObject): WordBool of object;
+  THTMLTableEventsonrowsdeleteEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsonrowsinsertedEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsoncellchangeEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsonreadystatechangeEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsonbeforeeditfocusEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsonlayoutcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsonpageEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsonbeforedeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLTableEventsonbeforeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLTableEventsonmoveEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsoncontrolselectEvent = function(Sender: TObject): WordBool of object;
+  THTMLTableEventsonmovestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLTableEventsonmoveendEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsonresizestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLTableEventsonresizeendEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsonmouseenterEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsonmouseleaveEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsonmousewheelEvent = function(Sender: TObject): WordBool of object;
+  THTMLTableEventsonactivateEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsondeactivateEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsonfocusinEvent = procedure(Sender: TObject) of object;
+  THTMLTableEventsonfocusoutEvent = procedure(Sender: TObject) of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLTableEvents = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp: WordBool; safecall;
+    function Doonclick: WordBool; safecall;
+    function Doondblclick: WordBool; safecall;
+    function Doonkeypress: WordBool; safecall;
+    procedure Doonkeydown; safecall;
+    procedure Doonkeyup; safecall;
+    procedure Doonmouseout; safecall;
+    procedure Doonmouseover; safecall;
+    procedure Doonmousemove; safecall;
+    procedure Doonmousedown; safecall;
+    procedure Doonmouseup; safecall;
+    function Doonselectstart: WordBool; safecall;
+    procedure Doonfilterchange; safecall;
+    function Doondragstart: WordBool; safecall;
+    function Doonbeforeupdate: WordBool; safecall;
+    procedure Doonafterupdate; safecall;
+    function Doonerrorupdate: WordBool; safecall;
+    function Doonrowexit: WordBool; safecall;
+    procedure Doonrowenter; safecall;
+    procedure Doondatasetchanged; safecall;
+    procedure Doondataavailable; safecall;
+    procedure Doondatasetcomplete; safecall;
+    procedure Doonlosecapture; safecall;
+    procedure Doonpropertychange; safecall;
+    procedure Doonscroll; safecall;
+    procedure Doonfocus; safecall;
+    procedure Doonblur; safecall;
+    procedure Doonresize; safecall;
+    function Doondrag: WordBool; safecall;
+    procedure Doondragend; safecall;
+    function Doondragenter: WordBool; safecall;
+    function Doondragover: WordBool; safecall;
+    procedure Doondragleave; safecall;
+    function Doondrop: WordBool; safecall;
+    function Doonbeforecut: WordBool; safecall;
+    function Dooncut: WordBool; safecall;
+    function Doonbeforecopy: WordBool; safecall;
+    function Dooncopy: WordBool; safecall;
+    function Doonbeforepaste: WordBool; safecall;
+    function Doonpaste: WordBool; safecall;
+    function Dooncontextmenu: WordBool; safecall;
+    procedure Doonrowsdelete; safecall;
+    procedure Doonrowsinserted; safecall;
+    procedure Dooncellchange; safecall;
+    procedure Doonreadystatechange; safecall;
+    procedure Doonbeforeeditfocus; safecall;
+    procedure Doonlayoutcomplete; safecall;
+    procedure Doonpage; safecall;
+    function Doonbeforedeactivate: WordBool; safecall;
+    function Doonbeforeactivate: WordBool; safecall;
+    procedure Doonmove; safecall;
+    function Dooncontrolselect: WordBool; safecall;
+    function Doonmovestart: WordBool; safecall;
+    procedure Doonmoveend; safecall;
+    function Doonresizestart: WordBool; safecall;
+    procedure Doonresizeend; safecall;
+    procedure Doonmouseenter; safecall;
+    procedure Doonmouseleave; safecall;
+    function Doonmousewheel: WordBool; safecall;
+    procedure Doonactivate; safecall;
+    procedure Doondeactivate; safecall;
+    procedure Doonfocusin; safecall;
+    procedure Doonfocusout; safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLTableEventsonhelpEvent;
+    Fonclick: THTMLTableEventsonclickEvent;
+    Fondblclick: THTMLTableEventsondblclickEvent;
+    Fonkeypress: THTMLTableEventsonkeypressEvent;
+    Fonkeydown: THTMLTableEventsonkeydownEvent;
+    Fonkeyup: THTMLTableEventsonkeyupEvent;
+    Fonmouseout: THTMLTableEventsonmouseoutEvent;
+    Fonmouseover: THTMLTableEventsonmouseoverEvent;
+    Fonmousemove: THTMLTableEventsonmousemoveEvent;
+    Fonmousedown: THTMLTableEventsonmousedownEvent;
+    Fonmouseup: THTMLTableEventsonmouseupEvent;
+    Fonselectstart: THTMLTableEventsonselectstartEvent;
+    Fonfilterchange: THTMLTableEventsonfilterchangeEvent;
+    Fondragstart: THTMLTableEventsondragstartEvent;
+    Fonbeforeupdate: THTMLTableEventsonbeforeupdateEvent;
+    Fonafterupdate: THTMLTableEventsonafterupdateEvent;
+    Fonerrorupdate: THTMLTableEventsonerrorupdateEvent;
+    Fonrowexit: THTMLTableEventsonrowexitEvent;
+    Fonrowenter: THTMLTableEventsonrowenterEvent;
+    Fondatasetchanged: THTMLTableEventsondatasetchangedEvent;
+    Fondataavailable: THTMLTableEventsondataavailableEvent;
+    Fondatasetcomplete: THTMLTableEventsondatasetcompleteEvent;
+    Fonlosecapture: THTMLTableEventsonlosecaptureEvent;
+    Fonpropertychange: THTMLTableEventsonpropertychangeEvent;
+    Fonscroll: THTMLTableEventsonscrollEvent;
+    Fonfocus: THTMLTableEventsonfocusEvent;
+    Fonblur: THTMLTableEventsonblurEvent;
+    Fonresize: THTMLTableEventsonresizeEvent;
+    Fondrag: THTMLTableEventsondragEvent;
+    Fondragend: THTMLTableEventsondragendEvent;
+    Fondragenter: THTMLTableEventsondragenterEvent;
+    Fondragover: THTMLTableEventsondragoverEvent;
+    Fondragleave: THTMLTableEventsondragleaveEvent;
+    Fondrop: THTMLTableEventsondropEvent;
+    Fonbeforecut: THTMLTableEventsonbeforecutEvent;
+    Foncut: THTMLTableEventsoncutEvent;
+    Fonbeforecopy: THTMLTableEventsonbeforecopyEvent;
+    Foncopy: THTMLTableEventsoncopyEvent;
+    Fonbeforepaste: THTMLTableEventsonbeforepasteEvent;
+    Fonpaste: THTMLTableEventsonpasteEvent;
+    Foncontextmenu: THTMLTableEventsoncontextmenuEvent;
+    Fonrowsdelete: THTMLTableEventsonrowsdeleteEvent;
+    Fonrowsinserted: THTMLTableEventsonrowsinsertedEvent;
+    Foncellchange: THTMLTableEventsoncellchangeEvent;
+    Fonreadystatechange: THTMLTableEventsonreadystatechangeEvent;
+    Fonbeforeeditfocus: THTMLTableEventsonbeforeeditfocusEvent;
+    Fonlayoutcomplete: THTMLTableEventsonlayoutcompleteEvent;
+    Fonpage: THTMLTableEventsonpageEvent;
+    Fonbeforedeactivate: THTMLTableEventsonbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLTableEventsonbeforeactivateEvent;
+    Fonmove: THTMLTableEventsonmoveEvent;
+    Foncontrolselect: THTMLTableEventsoncontrolselectEvent;
+    Fonmovestart: THTMLTableEventsonmovestartEvent;
+    Fonmoveend: THTMLTableEventsonmoveendEvent;
+    Fonresizestart: THTMLTableEventsonresizestartEvent;
+    Fonresizeend: THTMLTableEventsonresizeendEvent;
+    Fonmouseenter: THTMLTableEventsonmouseenterEvent;
+    Fonmouseleave: THTMLTableEventsonmouseleaveEvent;
+    Fonmousewheel: THTMLTableEventsonmousewheelEvent;
+    Fonactivate: THTMLTableEventsonactivateEvent;
+    Fondeactivate: THTMLTableEventsondeactivateEvent;
+    Fonfocusin: THTMLTableEventsonfocusinEvent;
+    Fonfocusout: THTMLTableEventsonfocusoutEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLTableEventsonhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLTableEventsonclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLTableEventsondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLTableEventsonkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLTableEventsonkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLTableEventsonkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLTableEventsonmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLTableEventsonmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLTableEventsonmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLTableEventsonmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLTableEventsonmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLTableEventsonselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLTableEventsonfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLTableEventsondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLTableEventsonbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLTableEventsonafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLTableEventsonerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLTableEventsonrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLTableEventsonrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLTableEventsondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLTableEventsondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLTableEventsondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLTableEventsonlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLTableEventsonpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLTableEventsonscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLTableEventsonfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLTableEventsonblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLTableEventsonresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLTableEventsondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLTableEventsondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLTableEventsondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLTableEventsondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLTableEventsondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLTableEventsondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLTableEventsonbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLTableEventsoncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLTableEventsonbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLTableEventsoncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLTableEventsonbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLTableEventsonpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLTableEventsoncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLTableEventsonrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLTableEventsonrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLTableEventsoncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLTableEventsonreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onbeforeeditfocus: THTMLTableEventsonbeforeeditfocusEvent read Fonbeforeeditfocus write Fonbeforeeditfocus;
+    property onlayoutcomplete: THTMLTableEventsonlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLTableEventsonpageEvent read Fonpage write Fonpage;
+    property onbeforedeactivate: THTMLTableEventsonbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLTableEventsonbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onmove: THTMLTableEventsonmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLTableEventsoncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLTableEventsonmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLTableEventsonmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLTableEventsonresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLTableEventsonresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmouseenter: THTMLTableEventsonmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLTableEventsonmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onmousewheel: THTMLTableEventsonmousewheelEvent read Fonmousewheel write Fonmousewheel;
+    property onactivate: THTMLTableEventsonactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLTableEventsondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onfocusin: THTMLTableEventsonfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLTableEventsonfocusoutEvent read Fonfocusout write Fonfocusout;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLTableEvents2onhelpEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTableEvents2onclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTableEvents2ondblclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTableEvents2onkeypressEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTableEvents2onkeydownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2onkeyupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2onmouseoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2onmouseoverEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2onmousemoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2onmousedownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2onmouseupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2onselectstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTableEvents2onfilterchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2ondragstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTableEvents2onbeforeupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTableEvents2onafterupdateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2onerrorupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTableEvents2onrowexitEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTableEvents2onrowenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2ondatasetchangedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2ondataavailableEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2ondatasetcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2onlosecaptureEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2onpropertychangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2onscrollEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2onfocusEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2onblurEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2onresizeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2ondragEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTableEvents2ondragendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2ondragenterEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTableEvents2ondragoverEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTableEvents2ondragleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2ondropEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTableEvents2onbeforecutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTableEvents2oncutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTableEvents2onbeforecopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTableEvents2oncopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTableEvents2onbeforepasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTableEvents2onpasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTableEvents2oncontextmenuEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTableEvents2onrowsdeleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2onrowsinsertedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2oncellchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2onreadystatechangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2onlayoutcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2onpageEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2onmouseenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2onmouseleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2onactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2ondeactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2onbeforedeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTableEvents2onbeforeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTableEvents2onfocusinEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2onfocusoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2onmoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2oncontrolselectEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTableEvents2onmovestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTableEvents2onmoveendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2onresizestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLTableEvents2onresizeendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLTableEvents2onmousewheelEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLTableEvents2 = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondblclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonkeydown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonkeyup(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseover(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousemove(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousedown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseup(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfilterchange(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonafterupdate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetchanged(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondataavailable(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlosecapture(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpropertychange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonscroll(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocus(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonblur(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonresize(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrag(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragenter(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondragover(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragleave(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrop(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonpaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowsdelete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonrowsinserted(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Dooncellchange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonreadystatechange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlayoutcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpage(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseleave(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonactivate(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondeactivate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfocusin(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocusout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmove(const pEvtObj: IHTMLEventObj); safecall;
+    function Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonmoveend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonresizeend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLTableEvents2onhelpEvent;
+    Fonclick: THTMLTableEvents2onclickEvent;
+    Fondblclick: THTMLTableEvents2ondblclickEvent;
+    Fonkeypress: THTMLTableEvents2onkeypressEvent;
+    Fonkeydown: THTMLTableEvents2onkeydownEvent;
+    Fonkeyup: THTMLTableEvents2onkeyupEvent;
+    Fonmouseout: THTMLTableEvents2onmouseoutEvent;
+    Fonmouseover: THTMLTableEvents2onmouseoverEvent;
+    Fonmousemove: THTMLTableEvents2onmousemoveEvent;
+    Fonmousedown: THTMLTableEvents2onmousedownEvent;
+    Fonmouseup: THTMLTableEvents2onmouseupEvent;
+    Fonselectstart: THTMLTableEvents2onselectstartEvent;
+    Fonfilterchange: THTMLTableEvents2onfilterchangeEvent;
+    Fondragstart: THTMLTableEvents2ondragstartEvent;
+    Fonbeforeupdate: THTMLTableEvents2onbeforeupdateEvent;
+    Fonafterupdate: THTMLTableEvents2onafterupdateEvent;
+    Fonerrorupdate: THTMLTableEvents2onerrorupdateEvent;
+    Fonrowexit: THTMLTableEvents2onrowexitEvent;
+    Fonrowenter: THTMLTableEvents2onrowenterEvent;
+    Fondatasetchanged: THTMLTableEvents2ondatasetchangedEvent;
+    Fondataavailable: THTMLTableEvents2ondataavailableEvent;
+    Fondatasetcomplete: THTMLTableEvents2ondatasetcompleteEvent;
+    Fonlosecapture: THTMLTableEvents2onlosecaptureEvent;
+    Fonpropertychange: THTMLTableEvents2onpropertychangeEvent;
+    Fonscroll: THTMLTableEvents2onscrollEvent;
+    Fonfocus: THTMLTableEvents2onfocusEvent;
+    Fonblur: THTMLTableEvents2onblurEvent;
+    Fonresize: THTMLTableEvents2onresizeEvent;
+    Fondrag: THTMLTableEvents2ondragEvent;
+    Fondragend: THTMLTableEvents2ondragendEvent;
+    Fondragenter: THTMLTableEvents2ondragenterEvent;
+    Fondragover: THTMLTableEvents2ondragoverEvent;
+    Fondragleave: THTMLTableEvents2ondragleaveEvent;
+    Fondrop: THTMLTableEvents2ondropEvent;
+    Fonbeforecut: THTMLTableEvents2onbeforecutEvent;
+    Foncut: THTMLTableEvents2oncutEvent;
+    Fonbeforecopy: THTMLTableEvents2onbeforecopyEvent;
+    Foncopy: THTMLTableEvents2oncopyEvent;
+    Fonbeforepaste: THTMLTableEvents2onbeforepasteEvent;
+    Fonpaste: THTMLTableEvents2onpasteEvent;
+    Foncontextmenu: THTMLTableEvents2oncontextmenuEvent;
+    Fonrowsdelete: THTMLTableEvents2onrowsdeleteEvent;
+    Fonrowsinserted: THTMLTableEvents2onrowsinsertedEvent;
+    Foncellchange: THTMLTableEvents2oncellchangeEvent;
+    Fonreadystatechange: THTMLTableEvents2onreadystatechangeEvent;
+    Fonlayoutcomplete: THTMLTableEvents2onlayoutcompleteEvent;
+    Fonpage: THTMLTableEvents2onpageEvent;
+    Fonmouseenter: THTMLTableEvents2onmouseenterEvent;
+    Fonmouseleave: THTMLTableEvents2onmouseleaveEvent;
+    Fonactivate: THTMLTableEvents2onactivateEvent;
+    Fondeactivate: THTMLTableEvents2ondeactivateEvent;
+    Fonbeforedeactivate: THTMLTableEvents2onbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLTableEvents2onbeforeactivateEvent;
+    Fonfocusin: THTMLTableEvents2onfocusinEvent;
+    Fonfocusout: THTMLTableEvents2onfocusoutEvent;
+    Fonmove: THTMLTableEvents2onmoveEvent;
+    Foncontrolselect: THTMLTableEvents2oncontrolselectEvent;
+    Fonmovestart: THTMLTableEvents2onmovestartEvent;
+    Fonmoveend: THTMLTableEvents2onmoveendEvent;
+    Fonresizestart: THTMLTableEvents2onresizestartEvent;
+    Fonresizeend: THTMLTableEvents2onresizeendEvent;
+    Fonmousewheel: THTMLTableEvents2onmousewheelEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLTableEvents2onhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLTableEvents2onclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLTableEvents2ondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLTableEvents2onkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLTableEvents2onkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLTableEvents2onkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLTableEvents2onmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLTableEvents2onmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLTableEvents2onmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLTableEvents2onmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLTableEvents2onmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLTableEvents2onselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLTableEvents2onfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLTableEvents2ondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLTableEvents2onbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLTableEvents2onafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLTableEvents2onerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLTableEvents2onrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLTableEvents2onrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLTableEvents2ondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLTableEvents2ondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLTableEvents2ondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLTableEvents2onlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLTableEvents2onpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLTableEvents2onscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLTableEvents2onfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLTableEvents2onblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLTableEvents2onresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLTableEvents2ondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLTableEvents2ondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLTableEvents2ondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLTableEvents2ondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLTableEvents2ondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLTableEvents2ondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLTableEvents2onbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLTableEvents2oncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLTableEvents2onbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLTableEvents2oncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLTableEvents2onbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLTableEvents2onpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLTableEvents2oncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLTableEvents2onrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLTableEvents2onrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLTableEvents2oncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLTableEvents2onreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onlayoutcomplete: THTMLTableEvents2onlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLTableEvents2onpageEvent read Fonpage write Fonpage;
+    property onmouseenter: THTMLTableEvents2onmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLTableEvents2onmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onactivate: THTMLTableEvents2onactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLTableEvents2ondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onbeforedeactivate: THTMLTableEvents2onbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLTableEvents2onbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onfocusin: THTMLTableEvents2onfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLTableEvents2onfocusoutEvent read Fonfocusout write Fonfocusout;
+    property onmove: THTMLTableEvents2onmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLTableEvents2oncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLTableEvents2onmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLTableEvents2onmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLTableEvents2onresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLTableEvents2onresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmousewheel: THTMLTableEvents2onmousewheelEvent read Fonmousewheel write Fonmousewheel;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLScriptEventsonhelpEvent = function(Sender: TObject): WordBool of object;
+  THTMLScriptEventsonclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLScriptEventsondblclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLScriptEventsonkeypressEvent = function(Sender: TObject): WordBool of object;
+  THTMLScriptEventsonkeydownEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsonkeyupEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsonmouseoutEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsonmouseoverEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsonmousemoveEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsonmousedownEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsonmouseupEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsonselectstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLScriptEventsonfilterchangeEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsondragstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLScriptEventsonbeforeupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLScriptEventsonafterupdateEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsonerrorupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLScriptEventsonrowexitEvent = function(Sender: TObject): WordBool of object;
+  THTMLScriptEventsonrowenterEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsondatasetchangedEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsondataavailableEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsondatasetcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsonlosecaptureEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsonpropertychangeEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsonscrollEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsonfocusEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsonblurEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsonresizeEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsondragEvent = function(Sender: TObject): WordBool of object;
+  THTMLScriptEventsondragendEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsondragenterEvent = function(Sender: TObject): WordBool of object;
+  THTMLScriptEventsondragoverEvent = function(Sender: TObject): WordBool of object;
+  THTMLScriptEventsondragleaveEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsondropEvent = function(Sender: TObject): WordBool of object;
+  THTMLScriptEventsonbeforecutEvent = function(Sender: TObject): WordBool of object;
+  THTMLScriptEventsoncutEvent = function(Sender: TObject): WordBool of object;
+  THTMLScriptEventsonbeforecopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLScriptEventsoncopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLScriptEventsonbeforepasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLScriptEventsonpasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLScriptEventsoncontextmenuEvent = function(Sender: TObject): WordBool of object;
+  THTMLScriptEventsonrowsdeleteEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsonrowsinsertedEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsoncellchangeEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsonreadystatechangeEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsonbeforeeditfocusEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsonlayoutcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsonpageEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsonbeforedeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLScriptEventsonbeforeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLScriptEventsonmoveEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsoncontrolselectEvent = function(Sender: TObject): WordBool of object;
+  THTMLScriptEventsonmovestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLScriptEventsonmoveendEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsonresizestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLScriptEventsonresizeendEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsonmouseenterEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsonmouseleaveEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsonmousewheelEvent = function(Sender: TObject): WordBool of object;
+  THTMLScriptEventsonactivateEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsondeactivateEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsonfocusinEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsonfocusoutEvent = procedure(Sender: TObject) of object;
+  THTMLScriptEventsonerrorEvent = procedure(Sender: TObject) of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLScriptEvents = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp: WordBool; safecall;
+    function Doonclick: WordBool; safecall;
+    function Doondblclick: WordBool; safecall;
+    function Doonkeypress: WordBool; safecall;
+    procedure Doonkeydown; safecall;
+    procedure Doonkeyup; safecall;
+    procedure Doonmouseout; safecall;
+    procedure Doonmouseover; safecall;
+    procedure Doonmousemove; safecall;
+    procedure Doonmousedown; safecall;
+    procedure Doonmouseup; safecall;
+    function Doonselectstart: WordBool; safecall;
+    procedure Doonfilterchange; safecall;
+    function Doondragstart: WordBool; safecall;
+    function Doonbeforeupdate: WordBool; safecall;
+    procedure Doonafterupdate; safecall;
+    function Doonerrorupdate: WordBool; safecall;
+    function Doonrowexit: WordBool; safecall;
+    procedure Doonrowenter; safecall;
+    procedure Doondatasetchanged; safecall;
+    procedure Doondataavailable; safecall;
+    procedure Doondatasetcomplete; safecall;
+    procedure Doonlosecapture; safecall;
+    procedure Doonpropertychange; safecall;
+    procedure Doonscroll; safecall;
+    procedure Doonfocus; safecall;
+    procedure Doonblur; safecall;
+    procedure Doonresize; safecall;
+    function Doondrag: WordBool; safecall;
+    procedure Doondragend; safecall;
+    function Doondragenter: WordBool; safecall;
+    function Doondragover: WordBool; safecall;
+    procedure Doondragleave; safecall;
+    function Doondrop: WordBool; safecall;
+    function Doonbeforecut: WordBool; safecall;
+    function Dooncut: WordBool; safecall;
+    function Doonbeforecopy: WordBool; safecall;
+    function Dooncopy: WordBool; safecall;
+    function Doonbeforepaste: WordBool; safecall;
+    function Doonpaste: WordBool; safecall;
+    function Dooncontextmenu: WordBool; safecall;
+    procedure Doonrowsdelete; safecall;
+    procedure Doonrowsinserted; safecall;
+    procedure Dooncellchange; safecall;
+    procedure Doonreadystatechange; safecall;
+    procedure Doonbeforeeditfocus; safecall;
+    procedure Doonlayoutcomplete; safecall;
+    procedure Doonpage; safecall;
+    function Doonbeforedeactivate: WordBool; safecall;
+    function Doonbeforeactivate: WordBool; safecall;
+    procedure Doonmove; safecall;
+    function Dooncontrolselect: WordBool; safecall;
+    function Doonmovestart: WordBool; safecall;
+    procedure Doonmoveend; safecall;
+    function Doonresizestart: WordBool; safecall;
+    procedure Doonresizeend; safecall;
+    procedure Doonmouseenter; safecall;
+    procedure Doonmouseleave; safecall;
+    function Doonmousewheel: WordBool; safecall;
+    procedure Doonactivate; safecall;
+    procedure Doondeactivate; safecall;
+    procedure Doonfocusin; safecall;
+    procedure Doonfocusout; safecall;
+    procedure Doonerror; safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLScriptEventsonhelpEvent;
+    Fonclick: THTMLScriptEventsonclickEvent;
+    Fondblclick: THTMLScriptEventsondblclickEvent;
+    Fonkeypress: THTMLScriptEventsonkeypressEvent;
+    Fonkeydown: THTMLScriptEventsonkeydownEvent;
+    Fonkeyup: THTMLScriptEventsonkeyupEvent;
+    Fonmouseout: THTMLScriptEventsonmouseoutEvent;
+    Fonmouseover: THTMLScriptEventsonmouseoverEvent;
+    Fonmousemove: THTMLScriptEventsonmousemoveEvent;
+    Fonmousedown: THTMLScriptEventsonmousedownEvent;
+    Fonmouseup: THTMLScriptEventsonmouseupEvent;
+    Fonselectstart: THTMLScriptEventsonselectstartEvent;
+    Fonfilterchange: THTMLScriptEventsonfilterchangeEvent;
+    Fondragstart: THTMLScriptEventsondragstartEvent;
+    Fonbeforeupdate: THTMLScriptEventsonbeforeupdateEvent;
+    Fonafterupdate: THTMLScriptEventsonafterupdateEvent;
+    Fonerrorupdate: THTMLScriptEventsonerrorupdateEvent;
+    Fonrowexit: THTMLScriptEventsonrowexitEvent;
+    Fonrowenter: THTMLScriptEventsonrowenterEvent;
+    Fondatasetchanged: THTMLScriptEventsondatasetchangedEvent;
+    Fondataavailable: THTMLScriptEventsondataavailableEvent;
+    Fondatasetcomplete: THTMLScriptEventsondatasetcompleteEvent;
+    Fonlosecapture: THTMLScriptEventsonlosecaptureEvent;
+    Fonpropertychange: THTMLScriptEventsonpropertychangeEvent;
+    Fonscroll: THTMLScriptEventsonscrollEvent;
+    Fonfocus: THTMLScriptEventsonfocusEvent;
+    Fonblur: THTMLScriptEventsonblurEvent;
+    Fonresize: THTMLScriptEventsonresizeEvent;
+    Fondrag: THTMLScriptEventsondragEvent;
+    Fondragend: THTMLScriptEventsondragendEvent;
+    Fondragenter: THTMLScriptEventsondragenterEvent;
+    Fondragover: THTMLScriptEventsondragoverEvent;
+    Fondragleave: THTMLScriptEventsondragleaveEvent;
+    Fondrop: THTMLScriptEventsondropEvent;
+    Fonbeforecut: THTMLScriptEventsonbeforecutEvent;
+    Foncut: THTMLScriptEventsoncutEvent;
+    Fonbeforecopy: THTMLScriptEventsonbeforecopyEvent;
+    Foncopy: THTMLScriptEventsoncopyEvent;
+    Fonbeforepaste: THTMLScriptEventsonbeforepasteEvent;
+    Fonpaste: THTMLScriptEventsonpasteEvent;
+    Foncontextmenu: THTMLScriptEventsoncontextmenuEvent;
+    Fonrowsdelete: THTMLScriptEventsonrowsdeleteEvent;
+    Fonrowsinserted: THTMLScriptEventsonrowsinsertedEvent;
+    Foncellchange: THTMLScriptEventsoncellchangeEvent;
+    Fonreadystatechange: THTMLScriptEventsonreadystatechangeEvent;
+    Fonbeforeeditfocus: THTMLScriptEventsonbeforeeditfocusEvent;
+    Fonlayoutcomplete: THTMLScriptEventsonlayoutcompleteEvent;
+    Fonpage: THTMLScriptEventsonpageEvent;
+    Fonbeforedeactivate: THTMLScriptEventsonbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLScriptEventsonbeforeactivateEvent;
+    Fonmove: THTMLScriptEventsonmoveEvent;
+    Foncontrolselect: THTMLScriptEventsoncontrolselectEvent;
+    Fonmovestart: THTMLScriptEventsonmovestartEvent;
+    Fonmoveend: THTMLScriptEventsonmoveendEvent;
+    Fonresizestart: THTMLScriptEventsonresizestartEvent;
+    Fonresizeend: THTMLScriptEventsonresizeendEvent;
+    Fonmouseenter: THTMLScriptEventsonmouseenterEvent;
+    Fonmouseleave: THTMLScriptEventsonmouseleaveEvent;
+    Fonmousewheel: THTMLScriptEventsonmousewheelEvent;
+    Fonactivate: THTMLScriptEventsonactivateEvent;
+    Fondeactivate: THTMLScriptEventsondeactivateEvent;
+    Fonfocusin: THTMLScriptEventsonfocusinEvent;
+    Fonfocusout: THTMLScriptEventsonfocusoutEvent;
+    Fonerror: THTMLScriptEventsonerrorEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLScriptEventsonhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLScriptEventsonclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLScriptEventsondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLScriptEventsonkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLScriptEventsonkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLScriptEventsonkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLScriptEventsonmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLScriptEventsonmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLScriptEventsonmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLScriptEventsonmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLScriptEventsonmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLScriptEventsonselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLScriptEventsonfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLScriptEventsondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLScriptEventsonbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLScriptEventsonafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLScriptEventsonerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLScriptEventsonrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLScriptEventsonrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLScriptEventsondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLScriptEventsondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLScriptEventsondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLScriptEventsonlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLScriptEventsonpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLScriptEventsonscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLScriptEventsonfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLScriptEventsonblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLScriptEventsonresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLScriptEventsondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLScriptEventsondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLScriptEventsondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLScriptEventsondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLScriptEventsondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLScriptEventsondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLScriptEventsonbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLScriptEventsoncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLScriptEventsonbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLScriptEventsoncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLScriptEventsonbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLScriptEventsonpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLScriptEventsoncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLScriptEventsonrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLScriptEventsonrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLScriptEventsoncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLScriptEventsonreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onbeforeeditfocus: THTMLScriptEventsonbeforeeditfocusEvent read Fonbeforeeditfocus write Fonbeforeeditfocus;
+    property onlayoutcomplete: THTMLScriptEventsonlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLScriptEventsonpageEvent read Fonpage write Fonpage;
+    property onbeforedeactivate: THTMLScriptEventsonbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLScriptEventsonbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onmove: THTMLScriptEventsonmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLScriptEventsoncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLScriptEventsonmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLScriptEventsonmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLScriptEventsonresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLScriptEventsonresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmouseenter: THTMLScriptEventsonmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLScriptEventsonmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onmousewheel: THTMLScriptEventsonmousewheelEvent read Fonmousewheel write Fonmousewheel;
+    property onactivate: THTMLScriptEventsonactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLScriptEventsondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onfocusin: THTMLScriptEventsonfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLScriptEventsonfocusoutEvent read Fonfocusout write Fonfocusout;
+    property onerror: THTMLScriptEventsonerrorEvent read Fonerror write Fonerror;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLScriptEvents2onhelpEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLScriptEvents2onclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLScriptEvents2ondblclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLScriptEvents2onkeypressEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLScriptEvents2onkeydownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2onkeyupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2onmouseoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2onmouseoverEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2onmousemoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2onmousedownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2onmouseupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2onselectstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLScriptEvents2onfilterchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2ondragstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLScriptEvents2onbeforeupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLScriptEvents2onafterupdateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2onerrorupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLScriptEvents2onrowexitEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLScriptEvents2onrowenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2ondatasetchangedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2ondataavailableEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2ondatasetcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2onlosecaptureEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2onpropertychangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2onscrollEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2onfocusEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2onblurEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2onresizeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2ondragEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLScriptEvents2ondragendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2ondragenterEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLScriptEvents2ondragoverEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLScriptEvents2ondragleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2ondropEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLScriptEvents2onbeforecutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLScriptEvents2oncutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLScriptEvents2onbeforecopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLScriptEvents2oncopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLScriptEvents2onbeforepasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLScriptEvents2onpasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLScriptEvents2oncontextmenuEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLScriptEvents2onrowsdeleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2onrowsinsertedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2oncellchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2onreadystatechangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2onlayoutcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2onpageEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2onmouseenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2onmouseleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2onactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2ondeactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2onbeforedeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLScriptEvents2onbeforeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLScriptEvents2onfocusinEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2onfocusoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2onmoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2oncontrolselectEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLScriptEvents2onmovestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLScriptEvents2onmoveendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2onresizestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLScriptEvents2onresizeendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLScriptEvents2onmousewheelEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLScriptEvents2onerrorEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLScriptEvents2 = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondblclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonkeydown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonkeyup(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseover(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousemove(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousedown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseup(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfilterchange(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonafterupdate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetchanged(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondataavailable(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlosecapture(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpropertychange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonscroll(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocus(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonblur(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonresize(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrag(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragenter(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondragover(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragleave(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrop(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonpaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowsdelete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonrowsinserted(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Dooncellchange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonreadystatechange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlayoutcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpage(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseleave(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonactivate(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondeactivate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfocusin(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocusout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmove(const pEvtObj: IHTMLEventObj); safecall;
+    function Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonmoveend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonresizeend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonerror(const pEvtObj: IHTMLEventObj); safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLScriptEvents2onhelpEvent;
+    Fonclick: THTMLScriptEvents2onclickEvent;
+    Fondblclick: THTMLScriptEvents2ondblclickEvent;
+    Fonkeypress: THTMLScriptEvents2onkeypressEvent;
+    Fonkeydown: THTMLScriptEvents2onkeydownEvent;
+    Fonkeyup: THTMLScriptEvents2onkeyupEvent;
+    Fonmouseout: THTMLScriptEvents2onmouseoutEvent;
+    Fonmouseover: THTMLScriptEvents2onmouseoverEvent;
+    Fonmousemove: THTMLScriptEvents2onmousemoveEvent;
+    Fonmousedown: THTMLScriptEvents2onmousedownEvent;
+    Fonmouseup: THTMLScriptEvents2onmouseupEvent;
+    Fonselectstart: THTMLScriptEvents2onselectstartEvent;
+    Fonfilterchange: THTMLScriptEvents2onfilterchangeEvent;
+    Fondragstart: THTMLScriptEvents2ondragstartEvent;
+    Fonbeforeupdate: THTMLScriptEvents2onbeforeupdateEvent;
+    Fonafterupdate: THTMLScriptEvents2onafterupdateEvent;
+    Fonerrorupdate: THTMLScriptEvents2onerrorupdateEvent;
+    Fonrowexit: THTMLScriptEvents2onrowexitEvent;
+    Fonrowenter: THTMLScriptEvents2onrowenterEvent;
+    Fondatasetchanged: THTMLScriptEvents2ondatasetchangedEvent;
+    Fondataavailable: THTMLScriptEvents2ondataavailableEvent;
+    Fondatasetcomplete: THTMLScriptEvents2ondatasetcompleteEvent;
+    Fonlosecapture: THTMLScriptEvents2onlosecaptureEvent;
+    Fonpropertychange: THTMLScriptEvents2onpropertychangeEvent;
+    Fonscroll: THTMLScriptEvents2onscrollEvent;
+    Fonfocus: THTMLScriptEvents2onfocusEvent;
+    Fonblur: THTMLScriptEvents2onblurEvent;
+    Fonresize: THTMLScriptEvents2onresizeEvent;
+    Fondrag: THTMLScriptEvents2ondragEvent;
+    Fondragend: THTMLScriptEvents2ondragendEvent;
+    Fondragenter: THTMLScriptEvents2ondragenterEvent;
+    Fondragover: THTMLScriptEvents2ondragoverEvent;
+    Fondragleave: THTMLScriptEvents2ondragleaveEvent;
+    Fondrop: THTMLScriptEvents2ondropEvent;
+    Fonbeforecut: THTMLScriptEvents2onbeforecutEvent;
+    Foncut: THTMLScriptEvents2oncutEvent;
+    Fonbeforecopy: THTMLScriptEvents2onbeforecopyEvent;
+    Foncopy: THTMLScriptEvents2oncopyEvent;
+    Fonbeforepaste: THTMLScriptEvents2onbeforepasteEvent;
+    Fonpaste: THTMLScriptEvents2onpasteEvent;
+    Foncontextmenu: THTMLScriptEvents2oncontextmenuEvent;
+    Fonrowsdelete: THTMLScriptEvents2onrowsdeleteEvent;
+    Fonrowsinserted: THTMLScriptEvents2onrowsinsertedEvent;
+    Foncellchange: THTMLScriptEvents2oncellchangeEvent;
+    Fonreadystatechange: THTMLScriptEvents2onreadystatechangeEvent;
+    Fonlayoutcomplete: THTMLScriptEvents2onlayoutcompleteEvent;
+    Fonpage: THTMLScriptEvents2onpageEvent;
+    Fonmouseenter: THTMLScriptEvents2onmouseenterEvent;
+    Fonmouseleave: THTMLScriptEvents2onmouseleaveEvent;
+    Fonactivate: THTMLScriptEvents2onactivateEvent;
+    Fondeactivate: THTMLScriptEvents2ondeactivateEvent;
+    Fonbeforedeactivate: THTMLScriptEvents2onbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLScriptEvents2onbeforeactivateEvent;
+    Fonfocusin: THTMLScriptEvents2onfocusinEvent;
+    Fonfocusout: THTMLScriptEvents2onfocusoutEvent;
+    Fonmove: THTMLScriptEvents2onmoveEvent;
+    Foncontrolselect: THTMLScriptEvents2oncontrolselectEvent;
+    Fonmovestart: THTMLScriptEvents2onmovestartEvent;
+    Fonmoveend: THTMLScriptEvents2onmoveendEvent;
+    Fonresizestart: THTMLScriptEvents2onresizestartEvent;
+    Fonresizeend: THTMLScriptEvents2onresizeendEvent;
+    Fonmousewheel: THTMLScriptEvents2onmousewheelEvent;
+    Fonerror: THTMLScriptEvents2onerrorEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLScriptEvents2onhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLScriptEvents2onclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLScriptEvents2ondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLScriptEvents2onkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLScriptEvents2onkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLScriptEvents2onkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLScriptEvents2onmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLScriptEvents2onmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLScriptEvents2onmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLScriptEvents2onmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLScriptEvents2onmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLScriptEvents2onselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLScriptEvents2onfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLScriptEvents2ondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLScriptEvents2onbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLScriptEvents2onafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLScriptEvents2onerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLScriptEvents2onrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLScriptEvents2onrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLScriptEvents2ondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLScriptEvents2ondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLScriptEvents2ondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLScriptEvents2onlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLScriptEvents2onpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLScriptEvents2onscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLScriptEvents2onfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLScriptEvents2onblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLScriptEvents2onresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLScriptEvents2ondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLScriptEvents2ondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLScriptEvents2ondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLScriptEvents2ondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLScriptEvents2ondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLScriptEvents2ondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLScriptEvents2onbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLScriptEvents2oncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLScriptEvents2onbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLScriptEvents2oncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLScriptEvents2onbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLScriptEvents2onpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLScriptEvents2oncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLScriptEvents2onrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLScriptEvents2onrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLScriptEvents2oncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLScriptEvents2onreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onlayoutcomplete: THTMLScriptEvents2onlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLScriptEvents2onpageEvent read Fonpage write Fonpage;
+    property onmouseenter: THTMLScriptEvents2onmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLScriptEvents2onmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onactivate: THTMLScriptEvents2onactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLScriptEvents2ondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onbeforedeactivate: THTMLScriptEvents2onbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLScriptEvents2onbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onfocusin: THTMLScriptEvents2onfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLScriptEvents2onfocusoutEvent read Fonfocusout write Fonfocusout;
+    property onmove: THTMLScriptEvents2onmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLScriptEvents2oncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLScriptEvents2onmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLScriptEvents2onmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLScriptEvents2onresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLScriptEvents2onresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmousewheel: THTMLScriptEvents2onmousewheelEvent read Fonmousewheel write Fonmousewheel;
+    property onerror: THTMLScriptEvents2onerrorEvent read Fonerror write Fonerror;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLObjectElementEventsonbeforeupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLObjectElementEventsonafterupdateEvent = procedure(Sender: TObject) of object;
+  THTMLObjectElementEventsonerrorupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLObjectElementEventsonrowexitEvent = function(Sender: TObject): WordBool of object;
+  THTMLObjectElementEventsonrowenterEvent = procedure(Sender: TObject) of object;
+  THTMLObjectElementEventsondatasetchangedEvent = procedure(Sender: TObject) of object;
+  THTMLObjectElementEventsondataavailableEvent = procedure(Sender: TObject) of object;
+  THTMLObjectElementEventsondatasetcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLObjectElementEventsonerrorEvent = function(Sender: TObject): WordBool of object;
+  THTMLObjectElementEventsonrowsdeleteEvent = procedure(Sender: TObject) of object;
+  THTMLObjectElementEventsonrowsinsertedEvent = procedure(Sender: TObject) of object;
+  THTMLObjectElementEventsoncellchangeEvent = procedure(Sender: TObject) of object;
+  THTMLObjectElementEventsonreadystatechangeEvent = procedure(Sender: TObject) of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLObjectElementEvents = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonbeforeupdate: WordBool; safecall;
+    procedure Doonafterupdate; safecall;
+    function Doonerrorupdate: WordBool; safecall;
+    function Doonrowexit: WordBool; safecall;
+    procedure Doonrowenter; safecall;
+    procedure Doondatasetchanged; safecall;
+    procedure Doondataavailable; safecall;
+    procedure Doondatasetcomplete; safecall;
+    function Doonerror: WordBool; safecall;
+    procedure Doonrowsdelete; safecall;
+    procedure Doonrowsinserted; safecall;
+    procedure Dooncellchange; safecall;
+    procedure Doonreadystatechange; safecall;
+  protected
+    //SinkEventsProtected//
+    Fonbeforeupdate: THTMLObjectElementEventsonbeforeupdateEvent;
+    Fonafterupdate: THTMLObjectElementEventsonafterupdateEvent;
+    Fonerrorupdate: THTMLObjectElementEventsonerrorupdateEvent;
+    Fonrowexit: THTMLObjectElementEventsonrowexitEvent;
+    Fonrowenter: THTMLObjectElementEventsonrowenterEvent;
+    Fondatasetchanged: THTMLObjectElementEventsondatasetchangedEvent;
+    Fondataavailable: THTMLObjectElementEventsondataavailableEvent;
+    Fondatasetcomplete: THTMLObjectElementEventsondatasetcompleteEvent;
+    Fonerror: THTMLObjectElementEventsonerrorEvent;
+    Fonrowsdelete: THTMLObjectElementEventsonrowsdeleteEvent;
+    Fonrowsinserted: THTMLObjectElementEventsonrowsinsertedEvent;
+    Foncellchange: THTMLObjectElementEventsoncellchangeEvent;
+    Fonreadystatechange: THTMLObjectElementEventsonreadystatechangeEvent;
+  published
+    //SinkEventsPublished//
+    property onbeforeupdate: THTMLObjectElementEventsonbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLObjectElementEventsonafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLObjectElementEventsonerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLObjectElementEventsonrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLObjectElementEventsonrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLObjectElementEventsondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLObjectElementEventsondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLObjectElementEventsondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onerror: THTMLObjectElementEventsonerrorEvent read Fonerror write Fonerror;
+    property onrowsdelete: THTMLObjectElementEventsonrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLObjectElementEventsonrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLObjectElementEventsoncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLObjectElementEventsonreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLObjectElementEvents2onbeforeupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLObjectElementEvents2onafterupdateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLObjectElementEvents2onerrorupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLObjectElementEvents2onrowexitEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLObjectElementEvents2onrowenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLObjectElementEvents2ondatasetchangedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLObjectElementEvents2ondataavailableEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLObjectElementEvents2ondatasetcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLObjectElementEvents2onerrorEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLObjectElementEvents2onrowsdeleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLObjectElementEvents2onrowsinsertedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLObjectElementEvents2oncellchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLObjectElementEvents2onreadystatechangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLObjectElementEvents2 = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonafterupdate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetchanged(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondataavailable(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonerror(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowsdelete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonrowsinserted(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Dooncellchange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonreadystatechange(const pEvtObj: IHTMLEventObj); safecall;
+  protected
+    //SinkEventsProtected//
+    Fonbeforeupdate: THTMLObjectElementEvents2onbeforeupdateEvent;
+    Fonafterupdate: THTMLObjectElementEvents2onafterupdateEvent;
+    Fonerrorupdate: THTMLObjectElementEvents2onerrorupdateEvent;
+    Fonrowexit: THTMLObjectElementEvents2onrowexitEvent;
+    Fonrowenter: THTMLObjectElementEvents2onrowenterEvent;
+    Fondatasetchanged: THTMLObjectElementEvents2ondatasetchangedEvent;
+    Fondataavailable: THTMLObjectElementEvents2ondataavailableEvent;
+    Fondatasetcomplete: THTMLObjectElementEvents2ondatasetcompleteEvent;
+    Fonerror: THTMLObjectElementEvents2onerrorEvent;
+    Fonrowsdelete: THTMLObjectElementEvents2onrowsdeleteEvent;
+    Fonrowsinserted: THTMLObjectElementEvents2onrowsinsertedEvent;
+    Foncellchange: THTMLObjectElementEvents2oncellchangeEvent;
+    Fonreadystatechange: THTMLObjectElementEvents2onreadystatechangeEvent;
+  published
+    //SinkEventsPublished//
+    property onbeforeupdate: THTMLObjectElementEvents2onbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLObjectElementEvents2onafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLObjectElementEvents2onerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLObjectElementEvents2onrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLObjectElementEvents2onrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLObjectElementEvents2ondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLObjectElementEvents2ondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLObjectElementEvents2ondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onerror: THTMLObjectElementEvents2onerrorEvent read Fonerror write Fonerror;
+    property onrowsdelete: THTMLObjectElementEvents2onrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLObjectElementEvents2onrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLObjectElementEvents2oncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLObjectElementEvents2onreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLFrameSiteEventsonhelpEvent = function(Sender: TObject): WordBool of object;
+  THTMLFrameSiteEventsonclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLFrameSiteEventsondblclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLFrameSiteEventsonkeypressEvent = function(Sender: TObject): WordBool of object;
+  THTMLFrameSiteEventsonkeydownEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsonkeyupEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsonmouseoutEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsonmouseoverEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsonmousemoveEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsonmousedownEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsonmouseupEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsonselectstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLFrameSiteEventsonfilterchangeEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsondragstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLFrameSiteEventsonbeforeupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLFrameSiteEventsonafterupdateEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsonerrorupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLFrameSiteEventsonrowexitEvent = function(Sender: TObject): WordBool of object;
+  THTMLFrameSiteEventsonrowenterEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsondatasetchangedEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsondataavailableEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsondatasetcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsonlosecaptureEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsonpropertychangeEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsonscrollEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsonfocusEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsonblurEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsonresizeEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsondragEvent = function(Sender: TObject): WordBool of object;
+  THTMLFrameSiteEventsondragendEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsondragenterEvent = function(Sender: TObject): WordBool of object;
+  THTMLFrameSiteEventsondragoverEvent = function(Sender: TObject): WordBool of object;
+  THTMLFrameSiteEventsondragleaveEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsondropEvent = function(Sender: TObject): WordBool of object;
+  THTMLFrameSiteEventsonbeforecutEvent = function(Sender: TObject): WordBool of object;
+  THTMLFrameSiteEventsoncutEvent = function(Sender: TObject): WordBool of object;
+  THTMLFrameSiteEventsonbeforecopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLFrameSiteEventsoncopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLFrameSiteEventsonbeforepasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLFrameSiteEventsonpasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLFrameSiteEventsoncontextmenuEvent = function(Sender: TObject): WordBool of object;
+  THTMLFrameSiteEventsonrowsdeleteEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsonrowsinsertedEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsoncellchangeEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsonreadystatechangeEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsonbeforeeditfocusEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsonlayoutcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsonpageEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsonbeforedeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLFrameSiteEventsonbeforeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLFrameSiteEventsonmoveEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsoncontrolselectEvent = function(Sender: TObject): WordBool of object;
+  THTMLFrameSiteEventsonmovestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLFrameSiteEventsonmoveendEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsonresizestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLFrameSiteEventsonresizeendEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsonmouseenterEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsonmouseleaveEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsonmousewheelEvent = function(Sender: TObject): WordBool of object;
+  THTMLFrameSiteEventsonactivateEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsondeactivateEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsonfocusinEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsonfocusoutEvent = procedure(Sender: TObject) of object;
+  THTMLFrameSiteEventsonloadEvent = procedure(Sender: TObject) of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLFrameSiteEvents = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp: WordBool; safecall;
+    function Doonclick: WordBool; safecall;
+    function Doondblclick: WordBool; safecall;
+    function Doonkeypress: WordBool; safecall;
+    procedure Doonkeydown; safecall;
+    procedure Doonkeyup; safecall;
+    procedure Doonmouseout; safecall;
+    procedure Doonmouseover; safecall;
+    procedure Doonmousemove; safecall;
+    procedure Doonmousedown; safecall;
+    procedure Doonmouseup; safecall;
+    function Doonselectstart: WordBool; safecall;
+    procedure Doonfilterchange; safecall;
+    function Doondragstart: WordBool; safecall;
+    function Doonbeforeupdate: WordBool; safecall;
+    procedure Doonafterupdate; safecall;
+    function Doonerrorupdate: WordBool; safecall;
+    function Doonrowexit: WordBool; safecall;
+    procedure Doonrowenter; safecall;
+    procedure Doondatasetchanged; safecall;
+    procedure Doondataavailable; safecall;
+    procedure Doondatasetcomplete; safecall;
+    procedure Doonlosecapture; safecall;
+    procedure Doonpropertychange; safecall;
+    procedure Doonscroll; safecall;
+    procedure Doonfocus; safecall;
+    procedure Doonblur; safecall;
+    procedure Doonresize; safecall;
+    function Doondrag: WordBool; safecall;
+    procedure Doondragend; safecall;
+    function Doondragenter: WordBool; safecall;
+    function Doondragover: WordBool; safecall;
+    procedure Doondragleave; safecall;
+    function Doondrop: WordBool; safecall;
+    function Doonbeforecut: WordBool; safecall;
+    function Dooncut: WordBool; safecall;
+    function Doonbeforecopy: WordBool; safecall;
+    function Dooncopy: WordBool; safecall;
+    function Doonbeforepaste: WordBool; safecall;
+    function Doonpaste: WordBool; safecall;
+    function Dooncontextmenu: WordBool; safecall;
+    procedure Doonrowsdelete; safecall;
+    procedure Doonrowsinserted; safecall;
+    procedure Dooncellchange; safecall;
+    procedure Doonreadystatechange; safecall;
+    procedure Doonbeforeeditfocus; safecall;
+    procedure Doonlayoutcomplete; safecall;
+    procedure Doonpage; safecall;
+    function Doonbeforedeactivate: WordBool; safecall;
+    function Doonbeforeactivate: WordBool; safecall;
+    procedure Doonmove; safecall;
+    function Dooncontrolselect: WordBool; safecall;
+    function Doonmovestart: WordBool; safecall;
+    procedure Doonmoveend; safecall;
+    function Doonresizestart: WordBool; safecall;
+    procedure Doonresizeend; safecall;
+    procedure Doonmouseenter; safecall;
+    procedure Doonmouseleave; safecall;
+    function Doonmousewheel: WordBool; safecall;
+    procedure Doonactivate; safecall;
+    procedure Doondeactivate; safecall;
+    procedure Doonfocusin; safecall;
+    procedure Doonfocusout; safecall;
+    procedure Doonload; safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLFrameSiteEventsonhelpEvent;
+    Fonclick: THTMLFrameSiteEventsonclickEvent;
+    Fondblclick: THTMLFrameSiteEventsondblclickEvent;
+    Fonkeypress: THTMLFrameSiteEventsonkeypressEvent;
+    Fonkeydown: THTMLFrameSiteEventsonkeydownEvent;
+    Fonkeyup: THTMLFrameSiteEventsonkeyupEvent;
+    Fonmouseout: THTMLFrameSiteEventsonmouseoutEvent;
+    Fonmouseover: THTMLFrameSiteEventsonmouseoverEvent;
+    Fonmousemove: THTMLFrameSiteEventsonmousemoveEvent;
+    Fonmousedown: THTMLFrameSiteEventsonmousedownEvent;
+    Fonmouseup: THTMLFrameSiteEventsonmouseupEvent;
+    Fonselectstart: THTMLFrameSiteEventsonselectstartEvent;
+    Fonfilterchange: THTMLFrameSiteEventsonfilterchangeEvent;
+    Fondragstart: THTMLFrameSiteEventsondragstartEvent;
+    Fonbeforeupdate: THTMLFrameSiteEventsonbeforeupdateEvent;
+    Fonafterupdate: THTMLFrameSiteEventsonafterupdateEvent;
+    Fonerrorupdate: THTMLFrameSiteEventsonerrorupdateEvent;
+    Fonrowexit: THTMLFrameSiteEventsonrowexitEvent;
+    Fonrowenter: THTMLFrameSiteEventsonrowenterEvent;
+    Fondatasetchanged: THTMLFrameSiteEventsondatasetchangedEvent;
+    Fondataavailable: THTMLFrameSiteEventsondataavailableEvent;
+    Fondatasetcomplete: THTMLFrameSiteEventsondatasetcompleteEvent;
+    Fonlosecapture: THTMLFrameSiteEventsonlosecaptureEvent;
+    Fonpropertychange: THTMLFrameSiteEventsonpropertychangeEvent;
+    Fonscroll: THTMLFrameSiteEventsonscrollEvent;
+    Fonfocus: THTMLFrameSiteEventsonfocusEvent;
+    Fonblur: THTMLFrameSiteEventsonblurEvent;
+    Fonresize: THTMLFrameSiteEventsonresizeEvent;
+    Fondrag: THTMLFrameSiteEventsondragEvent;
+    Fondragend: THTMLFrameSiteEventsondragendEvent;
+    Fondragenter: THTMLFrameSiteEventsondragenterEvent;
+    Fondragover: THTMLFrameSiteEventsondragoverEvent;
+    Fondragleave: THTMLFrameSiteEventsondragleaveEvent;
+    Fondrop: THTMLFrameSiteEventsondropEvent;
+    Fonbeforecut: THTMLFrameSiteEventsonbeforecutEvent;
+    Foncut: THTMLFrameSiteEventsoncutEvent;
+    Fonbeforecopy: THTMLFrameSiteEventsonbeforecopyEvent;
+    Foncopy: THTMLFrameSiteEventsoncopyEvent;
+    Fonbeforepaste: THTMLFrameSiteEventsonbeforepasteEvent;
+    Fonpaste: THTMLFrameSiteEventsonpasteEvent;
+    Foncontextmenu: THTMLFrameSiteEventsoncontextmenuEvent;
+    Fonrowsdelete: THTMLFrameSiteEventsonrowsdeleteEvent;
+    Fonrowsinserted: THTMLFrameSiteEventsonrowsinsertedEvent;
+    Foncellchange: THTMLFrameSiteEventsoncellchangeEvent;
+    Fonreadystatechange: THTMLFrameSiteEventsonreadystatechangeEvent;
+    Fonbeforeeditfocus: THTMLFrameSiteEventsonbeforeeditfocusEvent;
+    Fonlayoutcomplete: THTMLFrameSiteEventsonlayoutcompleteEvent;
+    Fonpage: THTMLFrameSiteEventsonpageEvent;
+    Fonbeforedeactivate: THTMLFrameSiteEventsonbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLFrameSiteEventsonbeforeactivateEvent;
+    Fonmove: THTMLFrameSiteEventsonmoveEvent;
+    Foncontrolselect: THTMLFrameSiteEventsoncontrolselectEvent;
+    Fonmovestart: THTMLFrameSiteEventsonmovestartEvent;
+    Fonmoveend: THTMLFrameSiteEventsonmoveendEvent;
+    Fonresizestart: THTMLFrameSiteEventsonresizestartEvent;
+    Fonresizeend: THTMLFrameSiteEventsonresizeendEvent;
+    Fonmouseenter: THTMLFrameSiteEventsonmouseenterEvent;
+    Fonmouseleave: THTMLFrameSiteEventsonmouseleaveEvent;
+    Fonmousewheel: THTMLFrameSiteEventsonmousewheelEvent;
+    Fonactivate: THTMLFrameSiteEventsonactivateEvent;
+    Fondeactivate: THTMLFrameSiteEventsondeactivateEvent;
+    Fonfocusin: THTMLFrameSiteEventsonfocusinEvent;
+    Fonfocusout: THTMLFrameSiteEventsonfocusoutEvent;
+    Fonload: THTMLFrameSiteEventsonloadEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLFrameSiteEventsonhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLFrameSiteEventsonclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLFrameSiteEventsondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLFrameSiteEventsonkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLFrameSiteEventsonkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLFrameSiteEventsonkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLFrameSiteEventsonmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLFrameSiteEventsonmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLFrameSiteEventsonmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLFrameSiteEventsonmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLFrameSiteEventsonmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLFrameSiteEventsonselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLFrameSiteEventsonfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLFrameSiteEventsondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLFrameSiteEventsonbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLFrameSiteEventsonafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLFrameSiteEventsonerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLFrameSiteEventsonrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLFrameSiteEventsonrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLFrameSiteEventsondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLFrameSiteEventsondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLFrameSiteEventsondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLFrameSiteEventsonlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLFrameSiteEventsonpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLFrameSiteEventsonscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLFrameSiteEventsonfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLFrameSiteEventsonblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLFrameSiteEventsonresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLFrameSiteEventsondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLFrameSiteEventsondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLFrameSiteEventsondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLFrameSiteEventsondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLFrameSiteEventsondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLFrameSiteEventsondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLFrameSiteEventsonbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLFrameSiteEventsoncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLFrameSiteEventsonbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLFrameSiteEventsoncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLFrameSiteEventsonbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLFrameSiteEventsonpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLFrameSiteEventsoncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLFrameSiteEventsonrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLFrameSiteEventsonrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLFrameSiteEventsoncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLFrameSiteEventsonreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onbeforeeditfocus: THTMLFrameSiteEventsonbeforeeditfocusEvent read Fonbeforeeditfocus write Fonbeforeeditfocus;
+    property onlayoutcomplete: THTMLFrameSiteEventsonlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLFrameSiteEventsonpageEvent read Fonpage write Fonpage;
+    property onbeforedeactivate: THTMLFrameSiteEventsonbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLFrameSiteEventsonbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onmove: THTMLFrameSiteEventsonmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLFrameSiteEventsoncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLFrameSiteEventsonmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLFrameSiteEventsonmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLFrameSiteEventsonresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLFrameSiteEventsonresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmouseenter: THTMLFrameSiteEventsonmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLFrameSiteEventsonmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onmousewheel: THTMLFrameSiteEventsonmousewheelEvent read Fonmousewheel write Fonmousewheel;
+    property onactivate: THTMLFrameSiteEventsonactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLFrameSiteEventsondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onfocusin: THTMLFrameSiteEventsonfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLFrameSiteEventsonfocusoutEvent read Fonfocusout write Fonfocusout;
+    property onload: THTMLFrameSiteEventsonloadEvent read Fonload write Fonload;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLFrameSiteEvents2onhelpEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFrameSiteEvents2onclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFrameSiteEvents2ondblclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFrameSiteEvents2onkeypressEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFrameSiteEvents2onkeydownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2onkeyupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2onmouseoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2onmouseoverEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2onmousemoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2onmousedownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2onmouseupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2onselectstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFrameSiteEvents2onfilterchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2ondragstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFrameSiteEvents2onbeforeupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFrameSiteEvents2onafterupdateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2onerrorupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFrameSiteEvents2onrowexitEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFrameSiteEvents2onrowenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2ondatasetchangedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2ondataavailableEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2ondatasetcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2onlosecaptureEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2onpropertychangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2onscrollEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2onfocusEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2onblurEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2onresizeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2ondragEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFrameSiteEvents2ondragendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2ondragenterEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFrameSiteEvents2ondragoverEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFrameSiteEvents2ondragleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2ondropEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFrameSiteEvents2onbeforecutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFrameSiteEvents2oncutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFrameSiteEvents2onbeforecopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFrameSiteEvents2oncopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFrameSiteEvents2onbeforepasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFrameSiteEvents2onpasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFrameSiteEvents2oncontextmenuEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFrameSiteEvents2onrowsdeleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2onrowsinsertedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2oncellchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2onreadystatechangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2onlayoutcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2onpageEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2onmouseenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2onmouseleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2onactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2ondeactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2onbeforedeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFrameSiteEvents2onbeforeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFrameSiteEvents2onfocusinEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2onfocusoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2onmoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2oncontrolselectEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFrameSiteEvents2onmovestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFrameSiteEvents2onmoveendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2onresizestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFrameSiteEvents2onresizeendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLFrameSiteEvents2onmousewheelEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLFrameSiteEvents2onloadEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLFrameSiteEvents2 = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondblclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonkeydown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonkeyup(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseover(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousemove(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousedown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseup(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfilterchange(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonafterupdate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetchanged(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondataavailable(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlosecapture(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpropertychange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonscroll(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocus(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonblur(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonresize(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrag(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragenter(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondragover(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragleave(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrop(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonpaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowsdelete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonrowsinserted(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Dooncellchange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonreadystatechange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlayoutcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpage(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseleave(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonactivate(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondeactivate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfocusin(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocusout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmove(const pEvtObj: IHTMLEventObj); safecall;
+    function Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonmoveend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonresizeend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonload(const pEvtObj: IHTMLEventObj); safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLFrameSiteEvents2onhelpEvent;
+    Fonclick: THTMLFrameSiteEvents2onclickEvent;
+    Fondblclick: THTMLFrameSiteEvents2ondblclickEvent;
+    Fonkeypress: THTMLFrameSiteEvents2onkeypressEvent;
+    Fonkeydown: THTMLFrameSiteEvents2onkeydownEvent;
+    Fonkeyup: THTMLFrameSiteEvents2onkeyupEvent;
+    Fonmouseout: THTMLFrameSiteEvents2onmouseoutEvent;
+    Fonmouseover: THTMLFrameSiteEvents2onmouseoverEvent;
+    Fonmousemove: THTMLFrameSiteEvents2onmousemoveEvent;
+    Fonmousedown: THTMLFrameSiteEvents2onmousedownEvent;
+    Fonmouseup: THTMLFrameSiteEvents2onmouseupEvent;
+    Fonselectstart: THTMLFrameSiteEvents2onselectstartEvent;
+    Fonfilterchange: THTMLFrameSiteEvents2onfilterchangeEvent;
+    Fondragstart: THTMLFrameSiteEvents2ondragstartEvent;
+    Fonbeforeupdate: THTMLFrameSiteEvents2onbeforeupdateEvent;
+    Fonafterupdate: THTMLFrameSiteEvents2onafterupdateEvent;
+    Fonerrorupdate: THTMLFrameSiteEvents2onerrorupdateEvent;
+    Fonrowexit: THTMLFrameSiteEvents2onrowexitEvent;
+    Fonrowenter: THTMLFrameSiteEvents2onrowenterEvent;
+    Fondatasetchanged: THTMLFrameSiteEvents2ondatasetchangedEvent;
+    Fondataavailable: THTMLFrameSiteEvents2ondataavailableEvent;
+    Fondatasetcomplete: THTMLFrameSiteEvents2ondatasetcompleteEvent;
+    Fonlosecapture: THTMLFrameSiteEvents2onlosecaptureEvent;
+    Fonpropertychange: THTMLFrameSiteEvents2onpropertychangeEvent;
+    Fonscroll: THTMLFrameSiteEvents2onscrollEvent;
+    Fonfocus: THTMLFrameSiteEvents2onfocusEvent;
+    Fonblur: THTMLFrameSiteEvents2onblurEvent;
+    Fonresize: THTMLFrameSiteEvents2onresizeEvent;
+    Fondrag: THTMLFrameSiteEvents2ondragEvent;
+    Fondragend: THTMLFrameSiteEvents2ondragendEvent;
+    Fondragenter: THTMLFrameSiteEvents2ondragenterEvent;
+    Fondragover: THTMLFrameSiteEvents2ondragoverEvent;
+    Fondragleave: THTMLFrameSiteEvents2ondragleaveEvent;
+    Fondrop: THTMLFrameSiteEvents2ondropEvent;
+    Fonbeforecut: THTMLFrameSiteEvents2onbeforecutEvent;
+    Foncut: THTMLFrameSiteEvents2oncutEvent;
+    Fonbeforecopy: THTMLFrameSiteEvents2onbeforecopyEvent;
+    Foncopy: THTMLFrameSiteEvents2oncopyEvent;
+    Fonbeforepaste: THTMLFrameSiteEvents2onbeforepasteEvent;
+    Fonpaste: THTMLFrameSiteEvents2onpasteEvent;
+    Foncontextmenu: THTMLFrameSiteEvents2oncontextmenuEvent;
+    Fonrowsdelete: THTMLFrameSiteEvents2onrowsdeleteEvent;
+    Fonrowsinserted: THTMLFrameSiteEvents2onrowsinsertedEvent;
+    Foncellchange: THTMLFrameSiteEvents2oncellchangeEvent;
+    Fonreadystatechange: THTMLFrameSiteEvents2onreadystatechangeEvent;
+    Fonlayoutcomplete: THTMLFrameSiteEvents2onlayoutcompleteEvent;
+    Fonpage: THTMLFrameSiteEvents2onpageEvent;
+    Fonmouseenter: THTMLFrameSiteEvents2onmouseenterEvent;
+    Fonmouseleave: THTMLFrameSiteEvents2onmouseleaveEvent;
+    Fonactivate: THTMLFrameSiteEvents2onactivateEvent;
+    Fondeactivate: THTMLFrameSiteEvents2ondeactivateEvent;
+    Fonbeforedeactivate: THTMLFrameSiteEvents2onbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLFrameSiteEvents2onbeforeactivateEvent;
+    Fonfocusin: THTMLFrameSiteEvents2onfocusinEvent;
+    Fonfocusout: THTMLFrameSiteEvents2onfocusoutEvent;
+    Fonmove: THTMLFrameSiteEvents2onmoveEvent;
+    Foncontrolselect: THTMLFrameSiteEvents2oncontrolselectEvent;
+    Fonmovestart: THTMLFrameSiteEvents2onmovestartEvent;
+    Fonmoveend: THTMLFrameSiteEvents2onmoveendEvent;
+    Fonresizestart: THTMLFrameSiteEvents2onresizestartEvent;
+    Fonresizeend: THTMLFrameSiteEvents2onresizeendEvent;
+    Fonmousewheel: THTMLFrameSiteEvents2onmousewheelEvent;
+    Fonload: THTMLFrameSiteEvents2onloadEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLFrameSiteEvents2onhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLFrameSiteEvents2onclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLFrameSiteEvents2ondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLFrameSiteEvents2onkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLFrameSiteEvents2onkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLFrameSiteEvents2onkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLFrameSiteEvents2onmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLFrameSiteEvents2onmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLFrameSiteEvents2onmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLFrameSiteEvents2onmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLFrameSiteEvents2onmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLFrameSiteEvents2onselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLFrameSiteEvents2onfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLFrameSiteEvents2ondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLFrameSiteEvents2onbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLFrameSiteEvents2onafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLFrameSiteEvents2onerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLFrameSiteEvents2onrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLFrameSiteEvents2onrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLFrameSiteEvents2ondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLFrameSiteEvents2ondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLFrameSiteEvents2ondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLFrameSiteEvents2onlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLFrameSiteEvents2onpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLFrameSiteEvents2onscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLFrameSiteEvents2onfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLFrameSiteEvents2onblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLFrameSiteEvents2onresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLFrameSiteEvents2ondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLFrameSiteEvents2ondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLFrameSiteEvents2ondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLFrameSiteEvents2ondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLFrameSiteEvents2ondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLFrameSiteEvents2ondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLFrameSiteEvents2onbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLFrameSiteEvents2oncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLFrameSiteEvents2onbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLFrameSiteEvents2oncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLFrameSiteEvents2onbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLFrameSiteEvents2onpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLFrameSiteEvents2oncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLFrameSiteEvents2onrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLFrameSiteEvents2onrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLFrameSiteEvents2oncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLFrameSiteEvents2onreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onlayoutcomplete: THTMLFrameSiteEvents2onlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLFrameSiteEvents2onpageEvent read Fonpage write Fonpage;
+    property onmouseenter: THTMLFrameSiteEvents2onmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLFrameSiteEvents2onmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onactivate: THTMLFrameSiteEvents2onactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLFrameSiteEvents2ondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onbeforedeactivate: THTMLFrameSiteEvents2onbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLFrameSiteEvents2onbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onfocusin: THTMLFrameSiteEvents2onfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLFrameSiteEvents2onfocusoutEvent read Fonfocusout write Fonfocusout;
+    property onmove: THTMLFrameSiteEvents2onmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLFrameSiteEvents2oncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLFrameSiteEvents2onmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLFrameSiteEvents2onmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLFrameSiteEvents2onresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLFrameSiteEvents2onresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmousewheel: THTMLFrameSiteEvents2onmousewheelEvent read Fonmousewheel write Fonmousewheel;
+    property onload: THTMLFrameSiteEvents2onloadEvent read Fonload write Fonload;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLStyleElementEventsonhelpEvent = function(Sender: TObject): WordBool of object;
+  THTMLStyleElementEventsonclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLStyleElementEventsondblclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLStyleElementEventsonkeypressEvent = function(Sender: TObject): WordBool of object;
+  THTMLStyleElementEventsonkeydownEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsonkeyupEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsonmouseoutEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsonmouseoverEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsonmousemoveEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsonmousedownEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsonmouseupEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsonselectstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLStyleElementEventsonfilterchangeEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsondragstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLStyleElementEventsonbeforeupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLStyleElementEventsonafterupdateEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsonerrorupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLStyleElementEventsonrowexitEvent = function(Sender: TObject): WordBool of object;
+  THTMLStyleElementEventsonrowenterEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsondatasetchangedEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsondataavailableEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsondatasetcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsonlosecaptureEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsonpropertychangeEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsonscrollEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsonfocusEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsonblurEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsonresizeEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsondragEvent = function(Sender: TObject): WordBool of object;
+  THTMLStyleElementEventsondragendEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsondragenterEvent = function(Sender: TObject): WordBool of object;
+  THTMLStyleElementEventsondragoverEvent = function(Sender: TObject): WordBool of object;
+  THTMLStyleElementEventsondragleaveEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsondropEvent = function(Sender: TObject): WordBool of object;
+  THTMLStyleElementEventsonbeforecutEvent = function(Sender: TObject): WordBool of object;
+  THTMLStyleElementEventsoncutEvent = function(Sender: TObject): WordBool of object;
+  THTMLStyleElementEventsonbeforecopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLStyleElementEventsoncopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLStyleElementEventsonbeforepasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLStyleElementEventsonpasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLStyleElementEventsoncontextmenuEvent = function(Sender: TObject): WordBool of object;
+  THTMLStyleElementEventsonrowsdeleteEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsonrowsinsertedEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsoncellchangeEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsonreadystatechangeEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsonbeforeeditfocusEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsonlayoutcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsonpageEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsonbeforedeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLStyleElementEventsonbeforeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLStyleElementEventsonmoveEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsoncontrolselectEvent = function(Sender: TObject): WordBool of object;
+  THTMLStyleElementEventsonmovestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLStyleElementEventsonmoveendEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsonresizestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLStyleElementEventsonresizeendEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsonmouseenterEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsonmouseleaveEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsonmousewheelEvent = function(Sender: TObject): WordBool of object;
+  THTMLStyleElementEventsonactivateEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsondeactivateEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsonfocusinEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsonfocusoutEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsonloadEvent = procedure(Sender: TObject) of object;
+  THTMLStyleElementEventsonerrorEvent = procedure(Sender: TObject) of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLStyleElementEvents = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp: WordBool; safecall;
+    function Doonclick: WordBool; safecall;
+    function Doondblclick: WordBool; safecall;
+    function Doonkeypress: WordBool; safecall;
+    procedure Doonkeydown; safecall;
+    procedure Doonkeyup; safecall;
+    procedure Doonmouseout; safecall;
+    procedure Doonmouseover; safecall;
+    procedure Doonmousemove; safecall;
+    procedure Doonmousedown; safecall;
+    procedure Doonmouseup; safecall;
+    function Doonselectstart: WordBool; safecall;
+    procedure Doonfilterchange; safecall;
+    function Doondragstart: WordBool; safecall;
+    function Doonbeforeupdate: WordBool; safecall;
+    procedure Doonafterupdate; safecall;
+    function Doonerrorupdate: WordBool; safecall;
+    function Doonrowexit: WordBool; safecall;
+    procedure Doonrowenter; safecall;
+    procedure Doondatasetchanged; safecall;
+    procedure Doondataavailable; safecall;
+    procedure Doondatasetcomplete; safecall;
+    procedure Doonlosecapture; safecall;
+    procedure Doonpropertychange; safecall;
+    procedure Doonscroll; safecall;
+    procedure Doonfocus; safecall;
+    procedure Doonblur; safecall;
+    procedure Doonresize; safecall;
+    function Doondrag: WordBool; safecall;
+    procedure Doondragend; safecall;
+    function Doondragenter: WordBool; safecall;
+    function Doondragover: WordBool; safecall;
+    procedure Doondragleave; safecall;
+    function Doondrop: WordBool; safecall;
+    function Doonbeforecut: WordBool; safecall;
+    function Dooncut: WordBool; safecall;
+    function Doonbeforecopy: WordBool; safecall;
+    function Dooncopy: WordBool; safecall;
+    function Doonbeforepaste: WordBool; safecall;
+    function Doonpaste: WordBool; safecall;
+    function Dooncontextmenu: WordBool; safecall;
+    procedure Doonrowsdelete; safecall;
+    procedure Doonrowsinserted; safecall;
+    procedure Dooncellchange; safecall;
+    procedure Doonreadystatechange; safecall;
+    procedure Doonbeforeeditfocus; safecall;
+    procedure Doonlayoutcomplete; safecall;
+    procedure Doonpage; safecall;
+    function Doonbeforedeactivate: WordBool; safecall;
+    function Doonbeforeactivate: WordBool; safecall;
+    procedure Doonmove; safecall;
+    function Dooncontrolselect: WordBool; safecall;
+    function Doonmovestart: WordBool; safecall;
+    procedure Doonmoveend; safecall;
+    function Doonresizestart: WordBool; safecall;
+    procedure Doonresizeend; safecall;
+    procedure Doonmouseenter; safecall;
+    procedure Doonmouseleave; safecall;
+    function Doonmousewheel: WordBool; safecall;
+    procedure Doonactivate; safecall;
+    procedure Doondeactivate; safecall;
+    procedure Doonfocusin; safecall;
+    procedure Doonfocusout; safecall;
+    procedure Doonload; safecall;
+    procedure Doonerror; safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLStyleElementEventsonhelpEvent;
+    Fonclick: THTMLStyleElementEventsonclickEvent;
+    Fondblclick: THTMLStyleElementEventsondblclickEvent;
+    Fonkeypress: THTMLStyleElementEventsonkeypressEvent;
+    Fonkeydown: THTMLStyleElementEventsonkeydownEvent;
+    Fonkeyup: THTMLStyleElementEventsonkeyupEvent;
+    Fonmouseout: THTMLStyleElementEventsonmouseoutEvent;
+    Fonmouseover: THTMLStyleElementEventsonmouseoverEvent;
+    Fonmousemove: THTMLStyleElementEventsonmousemoveEvent;
+    Fonmousedown: THTMLStyleElementEventsonmousedownEvent;
+    Fonmouseup: THTMLStyleElementEventsonmouseupEvent;
+    Fonselectstart: THTMLStyleElementEventsonselectstartEvent;
+    Fonfilterchange: THTMLStyleElementEventsonfilterchangeEvent;
+    Fondragstart: THTMLStyleElementEventsondragstartEvent;
+    Fonbeforeupdate: THTMLStyleElementEventsonbeforeupdateEvent;
+    Fonafterupdate: THTMLStyleElementEventsonafterupdateEvent;
+    Fonerrorupdate: THTMLStyleElementEventsonerrorupdateEvent;
+    Fonrowexit: THTMLStyleElementEventsonrowexitEvent;
+    Fonrowenter: THTMLStyleElementEventsonrowenterEvent;
+    Fondatasetchanged: THTMLStyleElementEventsondatasetchangedEvent;
+    Fondataavailable: THTMLStyleElementEventsondataavailableEvent;
+    Fondatasetcomplete: THTMLStyleElementEventsondatasetcompleteEvent;
+    Fonlosecapture: THTMLStyleElementEventsonlosecaptureEvent;
+    Fonpropertychange: THTMLStyleElementEventsonpropertychangeEvent;
+    Fonscroll: THTMLStyleElementEventsonscrollEvent;
+    Fonfocus: THTMLStyleElementEventsonfocusEvent;
+    Fonblur: THTMLStyleElementEventsonblurEvent;
+    Fonresize: THTMLStyleElementEventsonresizeEvent;
+    Fondrag: THTMLStyleElementEventsondragEvent;
+    Fondragend: THTMLStyleElementEventsondragendEvent;
+    Fondragenter: THTMLStyleElementEventsondragenterEvent;
+    Fondragover: THTMLStyleElementEventsondragoverEvent;
+    Fondragleave: THTMLStyleElementEventsondragleaveEvent;
+    Fondrop: THTMLStyleElementEventsondropEvent;
+    Fonbeforecut: THTMLStyleElementEventsonbeforecutEvent;
+    Foncut: THTMLStyleElementEventsoncutEvent;
+    Fonbeforecopy: THTMLStyleElementEventsonbeforecopyEvent;
+    Foncopy: THTMLStyleElementEventsoncopyEvent;
+    Fonbeforepaste: THTMLStyleElementEventsonbeforepasteEvent;
+    Fonpaste: THTMLStyleElementEventsonpasteEvent;
+    Foncontextmenu: THTMLStyleElementEventsoncontextmenuEvent;
+    Fonrowsdelete: THTMLStyleElementEventsonrowsdeleteEvent;
+    Fonrowsinserted: THTMLStyleElementEventsonrowsinsertedEvent;
+    Foncellchange: THTMLStyleElementEventsoncellchangeEvent;
+    Fonreadystatechange: THTMLStyleElementEventsonreadystatechangeEvent;
+    Fonbeforeeditfocus: THTMLStyleElementEventsonbeforeeditfocusEvent;
+    Fonlayoutcomplete: THTMLStyleElementEventsonlayoutcompleteEvent;
+    Fonpage: THTMLStyleElementEventsonpageEvent;
+    Fonbeforedeactivate: THTMLStyleElementEventsonbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLStyleElementEventsonbeforeactivateEvent;
+    Fonmove: THTMLStyleElementEventsonmoveEvent;
+    Foncontrolselect: THTMLStyleElementEventsoncontrolselectEvent;
+    Fonmovestart: THTMLStyleElementEventsonmovestartEvent;
+    Fonmoveend: THTMLStyleElementEventsonmoveendEvent;
+    Fonresizestart: THTMLStyleElementEventsonresizestartEvent;
+    Fonresizeend: THTMLStyleElementEventsonresizeendEvent;
+    Fonmouseenter: THTMLStyleElementEventsonmouseenterEvent;
+    Fonmouseleave: THTMLStyleElementEventsonmouseleaveEvent;
+    Fonmousewheel: THTMLStyleElementEventsonmousewheelEvent;
+    Fonactivate: THTMLStyleElementEventsonactivateEvent;
+    Fondeactivate: THTMLStyleElementEventsondeactivateEvent;
+    Fonfocusin: THTMLStyleElementEventsonfocusinEvent;
+    Fonfocusout: THTMLStyleElementEventsonfocusoutEvent;
+    Fonload: THTMLStyleElementEventsonloadEvent;
+    Fonerror: THTMLStyleElementEventsonerrorEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLStyleElementEventsonhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLStyleElementEventsonclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLStyleElementEventsondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLStyleElementEventsonkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLStyleElementEventsonkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLStyleElementEventsonkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLStyleElementEventsonmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLStyleElementEventsonmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLStyleElementEventsonmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLStyleElementEventsonmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLStyleElementEventsonmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLStyleElementEventsonselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLStyleElementEventsonfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLStyleElementEventsondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLStyleElementEventsonbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLStyleElementEventsonafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLStyleElementEventsonerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLStyleElementEventsonrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLStyleElementEventsonrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLStyleElementEventsondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLStyleElementEventsondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLStyleElementEventsondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLStyleElementEventsonlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLStyleElementEventsonpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLStyleElementEventsonscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLStyleElementEventsonfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLStyleElementEventsonblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLStyleElementEventsonresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLStyleElementEventsondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLStyleElementEventsondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLStyleElementEventsondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLStyleElementEventsondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLStyleElementEventsondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLStyleElementEventsondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLStyleElementEventsonbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLStyleElementEventsoncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLStyleElementEventsonbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLStyleElementEventsoncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLStyleElementEventsonbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLStyleElementEventsonpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLStyleElementEventsoncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLStyleElementEventsonrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLStyleElementEventsonrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLStyleElementEventsoncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLStyleElementEventsonreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onbeforeeditfocus: THTMLStyleElementEventsonbeforeeditfocusEvent read Fonbeforeeditfocus write Fonbeforeeditfocus;
+    property onlayoutcomplete: THTMLStyleElementEventsonlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLStyleElementEventsonpageEvent read Fonpage write Fonpage;
+    property onbeforedeactivate: THTMLStyleElementEventsonbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLStyleElementEventsonbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onmove: THTMLStyleElementEventsonmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLStyleElementEventsoncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLStyleElementEventsonmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLStyleElementEventsonmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLStyleElementEventsonresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLStyleElementEventsonresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmouseenter: THTMLStyleElementEventsonmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLStyleElementEventsonmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onmousewheel: THTMLStyleElementEventsonmousewheelEvent read Fonmousewheel write Fonmousewheel;
+    property onactivate: THTMLStyleElementEventsonactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLStyleElementEventsondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onfocusin: THTMLStyleElementEventsonfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLStyleElementEventsonfocusoutEvent read Fonfocusout write Fonfocusout;
+    property onload: THTMLStyleElementEventsonloadEvent read Fonload write Fonload;
+    property onerror: THTMLStyleElementEventsonerrorEvent read Fonerror write Fonerror;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLStyleElementEvents2onhelpEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLStyleElementEvents2onclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLStyleElementEvents2ondblclickEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLStyleElementEvents2onkeypressEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLStyleElementEvents2onkeydownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2onkeyupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2onmouseoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2onmouseoverEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2onmousemoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2onmousedownEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2onmouseupEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2onselectstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLStyleElementEvents2onfilterchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2ondragstartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLStyleElementEvents2onbeforeupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLStyleElementEvents2onafterupdateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2onerrorupdateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLStyleElementEvents2onrowexitEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLStyleElementEvents2onrowenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2ondatasetchangedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2ondataavailableEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2ondatasetcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2onlosecaptureEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2onpropertychangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2onscrollEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2onfocusEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2onblurEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2onresizeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2ondragEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLStyleElementEvents2ondragendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2ondragenterEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLStyleElementEvents2ondragoverEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLStyleElementEvents2ondragleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2ondropEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLStyleElementEvents2onbeforecutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLStyleElementEvents2oncutEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLStyleElementEvents2onbeforecopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLStyleElementEvents2oncopyEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLStyleElementEvents2onbeforepasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLStyleElementEvents2onpasteEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLStyleElementEvents2oncontextmenuEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLStyleElementEvents2onrowsdeleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2onrowsinsertedEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2oncellchangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2onreadystatechangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2onlayoutcompleteEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2onpageEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2onmouseenterEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2onmouseleaveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2onactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2ondeactivateEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2onbeforedeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLStyleElementEvents2onbeforeactivateEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLStyleElementEvents2onfocusinEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2onfocusoutEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2onmoveEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2oncontrolselectEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLStyleElementEvents2onmovestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLStyleElementEvents2onmoveendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2onresizestartEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLStyleElementEvents2onresizeendEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2onmousewheelEvent = function(Sender: TObject; const pEvtObj: IHTMLEventObj): WordBool of object;
+  THTMLStyleElementEvents2onloadEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+  THTMLStyleElementEvents2onerrorEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLStyleElementEvents2 = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondblclick(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonkeydown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonkeyup(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseover(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousemove(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmousedown(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseup(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfilterchange(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragstart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonafterupdate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetchanged(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondataavailable(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondatasetcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlosecapture(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpropertychange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonscroll(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocus(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonblur(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonresize(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrag(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondragenter(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doondragover(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doondragleave(const pEvtObj: IHTMLEventObj); safecall;
+    function Doondrop(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncut(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncopy(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonpaste(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonrowsdelete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonrowsinserted(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Dooncellchange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonreadystatechange(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonlayoutcomplete(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonpage(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseenter(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmouseleave(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonactivate(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doondeactivate(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonfocusin(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonfocusout(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonmove(const pEvtObj: IHTMLEventObj); safecall;
+    function Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    function Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonmoveend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonresizeend(const pEvtObj: IHTMLEventObj); safecall;
+    function Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool; safecall;
+    procedure Doonload(const pEvtObj: IHTMLEventObj); safecall;
+    procedure Doonerror(const pEvtObj: IHTMLEventObj); safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLStyleElementEvents2onhelpEvent;
+    Fonclick: THTMLStyleElementEvents2onclickEvent;
+    Fondblclick: THTMLStyleElementEvents2ondblclickEvent;
+    Fonkeypress: THTMLStyleElementEvents2onkeypressEvent;
+    Fonkeydown: THTMLStyleElementEvents2onkeydownEvent;
+    Fonkeyup: THTMLStyleElementEvents2onkeyupEvent;
+    Fonmouseout: THTMLStyleElementEvents2onmouseoutEvent;
+    Fonmouseover: THTMLStyleElementEvents2onmouseoverEvent;
+    Fonmousemove: THTMLStyleElementEvents2onmousemoveEvent;
+    Fonmousedown: THTMLStyleElementEvents2onmousedownEvent;
+    Fonmouseup: THTMLStyleElementEvents2onmouseupEvent;
+    Fonselectstart: THTMLStyleElementEvents2onselectstartEvent;
+    Fonfilterchange: THTMLStyleElementEvents2onfilterchangeEvent;
+    Fondragstart: THTMLStyleElementEvents2ondragstartEvent;
+    Fonbeforeupdate: THTMLStyleElementEvents2onbeforeupdateEvent;
+    Fonafterupdate: THTMLStyleElementEvents2onafterupdateEvent;
+    Fonerrorupdate: THTMLStyleElementEvents2onerrorupdateEvent;
+    Fonrowexit: THTMLStyleElementEvents2onrowexitEvent;
+    Fonrowenter: THTMLStyleElementEvents2onrowenterEvent;
+    Fondatasetchanged: THTMLStyleElementEvents2ondatasetchangedEvent;
+    Fondataavailable: THTMLStyleElementEvents2ondataavailableEvent;
+    Fondatasetcomplete: THTMLStyleElementEvents2ondatasetcompleteEvent;
+    Fonlosecapture: THTMLStyleElementEvents2onlosecaptureEvent;
+    Fonpropertychange: THTMLStyleElementEvents2onpropertychangeEvent;
+    Fonscroll: THTMLStyleElementEvents2onscrollEvent;
+    Fonfocus: THTMLStyleElementEvents2onfocusEvent;
+    Fonblur: THTMLStyleElementEvents2onblurEvent;
+    Fonresize: THTMLStyleElementEvents2onresizeEvent;
+    Fondrag: THTMLStyleElementEvents2ondragEvent;
+    Fondragend: THTMLStyleElementEvents2ondragendEvent;
+    Fondragenter: THTMLStyleElementEvents2ondragenterEvent;
+    Fondragover: THTMLStyleElementEvents2ondragoverEvent;
+    Fondragleave: THTMLStyleElementEvents2ondragleaveEvent;
+    Fondrop: THTMLStyleElementEvents2ondropEvent;
+    Fonbeforecut: THTMLStyleElementEvents2onbeforecutEvent;
+    Foncut: THTMLStyleElementEvents2oncutEvent;
+    Fonbeforecopy: THTMLStyleElementEvents2onbeforecopyEvent;
+    Foncopy: THTMLStyleElementEvents2oncopyEvent;
+    Fonbeforepaste: THTMLStyleElementEvents2onbeforepasteEvent;
+    Fonpaste: THTMLStyleElementEvents2onpasteEvent;
+    Foncontextmenu: THTMLStyleElementEvents2oncontextmenuEvent;
+    Fonrowsdelete: THTMLStyleElementEvents2onrowsdeleteEvent;
+    Fonrowsinserted: THTMLStyleElementEvents2onrowsinsertedEvent;
+    Foncellchange: THTMLStyleElementEvents2oncellchangeEvent;
+    Fonreadystatechange: THTMLStyleElementEvents2onreadystatechangeEvent;
+    Fonlayoutcomplete: THTMLStyleElementEvents2onlayoutcompleteEvent;
+    Fonpage: THTMLStyleElementEvents2onpageEvent;
+    Fonmouseenter: THTMLStyleElementEvents2onmouseenterEvent;
+    Fonmouseleave: THTMLStyleElementEvents2onmouseleaveEvent;
+    Fonactivate: THTMLStyleElementEvents2onactivateEvent;
+    Fondeactivate: THTMLStyleElementEvents2ondeactivateEvent;
+    Fonbeforedeactivate: THTMLStyleElementEvents2onbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLStyleElementEvents2onbeforeactivateEvent;
+    Fonfocusin: THTMLStyleElementEvents2onfocusinEvent;
+    Fonfocusout: THTMLStyleElementEvents2onfocusoutEvent;
+    Fonmove: THTMLStyleElementEvents2onmoveEvent;
+    Foncontrolselect: THTMLStyleElementEvents2oncontrolselectEvent;
+    Fonmovestart: THTMLStyleElementEvents2onmovestartEvent;
+    Fonmoveend: THTMLStyleElementEvents2onmoveendEvent;
+    Fonresizestart: THTMLStyleElementEvents2onresizestartEvent;
+    Fonresizeend: THTMLStyleElementEvents2onresizeendEvent;
+    Fonmousewheel: THTMLStyleElementEvents2onmousewheelEvent;
+    Fonload: THTMLStyleElementEvents2onloadEvent;
+    Fonerror: THTMLStyleElementEvents2onerrorEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLStyleElementEvents2onhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLStyleElementEvents2onclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLStyleElementEvents2ondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLStyleElementEvents2onkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLStyleElementEvents2onkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLStyleElementEvents2onkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLStyleElementEvents2onmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLStyleElementEvents2onmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLStyleElementEvents2onmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLStyleElementEvents2onmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLStyleElementEvents2onmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLStyleElementEvents2onselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLStyleElementEvents2onfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLStyleElementEvents2ondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLStyleElementEvents2onbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLStyleElementEvents2onafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLStyleElementEvents2onerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLStyleElementEvents2onrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLStyleElementEvents2onrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLStyleElementEvents2ondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLStyleElementEvents2ondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLStyleElementEvents2ondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLStyleElementEvents2onlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLStyleElementEvents2onpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLStyleElementEvents2onscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLStyleElementEvents2onfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLStyleElementEvents2onblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLStyleElementEvents2onresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLStyleElementEvents2ondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLStyleElementEvents2ondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLStyleElementEvents2ondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLStyleElementEvents2ondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLStyleElementEvents2ondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLStyleElementEvents2ondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLStyleElementEvents2onbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLStyleElementEvents2oncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLStyleElementEvents2onbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLStyleElementEvents2oncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLStyleElementEvents2onbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLStyleElementEvents2onpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLStyleElementEvents2oncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLStyleElementEvents2onrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLStyleElementEvents2onrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLStyleElementEvents2oncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLStyleElementEvents2onreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onlayoutcomplete: THTMLStyleElementEvents2onlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLStyleElementEvents2onpageEvent read Fonpage write Fonpage;
+    property onmouseenter: THTMLStyleElementEvents2onmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLStyleElementEvents2onmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onactivate: THTMLStyleElementEvents2onactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLStyleElementEvents2ondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onbeforedeactivate: THTMLStyleElementEvents2onbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLStyleElementEvents2onbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onfocusin: THTMLStyleElementEvents2onfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLStyleElementEvents2onfocusoutEvent read Fonfocusout write Fonfocusout;
+    property onmove: THTMLStyleElementEvents2onmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLStyleElementEvents2oncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLStyleElementEvents2onmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLStyleElementEvents2onmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLStyleElementEvents2onresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLStyleElementEvents2onresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmousewheel: THTMLStyleElementEvents2onmousewheelEvent read Fonmousewheel write Fonmousewheel;
+    property onload: THTMLStyleElementEvents2onloadEvent read Fonload write Fonload;
+    property onerror: THTMLStyleElementEvents2onerrorEvent read Fonerror write Fonerror;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLNamespaceEventsonreadystatechangeEvent = procedure(Sender: TObject; const pEvtObj: IHTMLEventObj) of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLNamespaceEvents = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    procedure Doonreadystatechange(const pEvtObj: IHTMLEventObj); safecall;
+  protected
+    //SinkEventsProtected//
+    Fonreadystatechange: THTMLNamespaceEventsonreadystatechangeEvent;
+  published
+    //SinkEventsPublished//
+    property onreadystatechange: THTMLNamespaceEventsonreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLInputFileElementEventsonhelpEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputFileElementEventsonclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputFileElementEventsondblclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputFileElementEventsonkeypressEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputFileElementEventsonkeydownEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsonkeyupEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsonmouseoutEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsonmouseoverEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsonmousemoveEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsonmousedownEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsonmouseupEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsonselectstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputFileElementEventsonfilterchangeEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsondragstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputFileElementEventsonbeforeupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputFileElementEventsonafterupdateEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsonerrorupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputFileElementEventsonrowexitEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputFileElementEventsonrowenterEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsondatasetchangedEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsondataavailableEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsondatasetcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsonlosecaptureEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsonpropertychangeEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsonscrollEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsonfocusEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsonblurEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsonresizeEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsondragEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputFileElementEventsondragendEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsondragenterEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputFileElementEventsondragoverEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputFileElementEventsondragleaveEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsondropEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputFileElementEventsonbeforecutEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputFileElementEventsoncutEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputFileElementEventsonbeforecopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputFileElementEventsoncopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputFileElementEventsonbeforepasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputFileElementEventsonpasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputFileElementEventsoncontextmenuEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputFileElementEventsonrowsdeleteEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsonrowsinsertedEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsoncellchangeEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsonreadystatechangeEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsonbeforeeditfocusEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsonlayoutcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsonpageEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsonbeforedeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputFileElementEventsonbeforeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputFileElementEventsonmoveEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsoncontrolselectEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputFileElementEventsonmovestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputFileElementEventsonmoveendEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsonresizestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputFileElementEventsonresizeendEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsonmouseenterEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsonmouseleaveEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsonmousewheelEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputFileElementEventsonactivateEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsondeactivateEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsonfocusinEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsonfocusoutEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsonchangeEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputFileElementEventsonselectEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsonloadEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsonerrorEvent = procedure(Sender: TObject) of object;
+  THTMLInputFileElementEventsonabortEvent = procedure(Sender: TObject) of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLInputFileElementEvents = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp: WordBool; safecall;
+    function Doonclick: WordBool; safecall;
+    function Doondblclick: WordBool; safecall;
+    function Doonkeypress: WordBool; safecall;
+    procedure Doonkeydown; safecall;
+    procedure Doonkeyup; safecall;
+    procedure Doonmouseout; safecall;
+    procedure Doonmouseover; safecall;
+    procedure Doonmousemove; safecall;
+    procedure Doonmousedown; safecall;
+    procedure Doonmouseup; safecall;
+    function Doonselectstart: WordBool; safecall;
+    procedure Doonfilterchange; safecall;
+    function Doondragstart: WordBool; safecall;
+    function Doonbeforeupdate: WordBool; safecall;
+    procedure Doonafterupdate; safecall;
+    function Doonerrorupdate: WordBool; safecall;
+    function Doonrowexit: WordBool; safecall;
+    procedure Doonrowenter; safecall;
+    procedure Doondatasetchanged; safecall;
+    procedure Doondataavailable; safecall;
+    procedure Doondatasetcomplete; safecall;
+    procedure Doonlosecapture; safecall;
+    procedure Doonpropertychange; safecall;
+    procedure Doonscroll; safecall;
+    procedure Doonfocus; safecall;
+    procedure Doonblur; safecall;
+    procedure Doonresize; safecall;
+    function Doondrag: WordBool; safecall;
+    procedure Doondragend; safecall;
+    function Doondragenter: WordBool; safecall;
+    function Doondragover: WordBool; safecall;
+    procedure Doondragleave; safecall;
+    function Doondrop: WordBool; safecall;
+    function Doonbeforecut: WordBool; safecall;
+    function Dooncut: WordBool; safecall;
+    function Doonbeforecopy: WordBool; safecall;
+    function Dooncopy: WordBool; safecall;
+    function Doonbeforepaste: WordBool; safecall;
+    function Doonpaste: WordBool; safecall;
+    function Dooncontextmenu: WordBool; safecall;
+    procedure Doonrowsdelete; safecall;
+    procedure Doonrowsinserted; safecall;
+    procedure Dooncellchange; safecall;
+    procedure Doonreadystatechange; safecall;
+    procedure Doonbeforeeditfocus; safecall;
+    procedure Doonlayoutcomplete; safecall;
+    procedure Doonpage; safecall;
+    function Doonbeforedeactivate: WordBool; safecall;
+    function Doonbeforeactivate: WordBool; safecall;
+    procedure Doonmove; safecall;
+    function Dooncontrolselect: WordBool; safecall;
+    function Doonmovestart: WordBool; safecall;
+    procedure Doonmoveend; safecall;
+    function Doonresizestart: WordBool; safecall;
+    procedure Doonresizeend; safecall;
+    procedure Doonmouseenter; safecall;
+    procedure Doonmouseleave; safecall;
+    function Doonmousewheel: WordBool; safecall;
+    procedure Doonactivate; safecall;
+    procedure Doondeactivate; safecall;
+    procedure Doonfocusin; safecall;
+    procedure Doonfocusout; safecall;
+    function Doonchange: WordBool; safecall;
+    procedure Doonselect; safecall;
+    procedure Doonload; safecall;
+    procedure Doonerror; safecall;
+    procedure Doonabort; safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLInputFileElementEventsonhelpEvent;
+    Fonclick: THTMLInputFileElementEventsonclickEvent;
+    Fondblclick: THTMLInputFileElementEventsondblclickEvent;
+    Fonkeypress: THTMLInputFileElementEventsonkeypressEvent;
+    Fonkeydown: THTMLInputFileElementEventsonkeydownEvent;
+    Fonkeyup: THTMLInputFileElementEventsonkeyupEvent;
+    Fonmouseout: THTMLInputFileElementEventsonmouseoutEvent;
+    Fonmouseover: THTMLInputFileElementEventsonmouseoverEvent;
+    Fonmousemove: THTMLInputFileElementEventsonmousemoveEvent;
+    Fonmousedown: THTMLInputFileElementEventsonmousedownEvent;
+    Fonmouseup: THTMLInputFileElementEventsonmouseupEvent;
+    Fonselectstart: THTMLInputFileElementEventsonselectstartEvent;
+    Fonfilterchange: THTMLInputFileElementEventsonfilterchangeEvent;
+    Fondragstart: THTMLInputFileElementEventsondragstartEvent;
+    Fonbeforeupdate: THTMLInputFileElementEventsonbeforeupdateEvent;
+    Fonafterupdate: THTMLInputFileElementEventsonafterupdateEvent;
+    Fonerrorupdate: THTMLInputFileElementEventsonerrorupdateEvent;
+    Fonrowexit: THTMLInputFileElementEventsonrowexitEvent;
+    Fonrowenter: THTMLInputFileElementEventsonrowenterEvent;
+    Fondatasetchanged: THTMLInputFileElementEventsondatasetchangedEvent;
+    Fondataavailable: THTMLInputFileElementEventsondataavailableEvent;
+    Fondatasetcomplete: THTMLInputFileElementEventsondatasetcompleteEvent;
+    Fonlosecapture: THTMLInputFileElementEventsonlosecaptureEvent;
+    Fonpropertychange: THTMLInputFileElementEventsonpropertychangeEvent;
+    Fonscroll: THTMLInputFileElementEventsonscrollEvent;
+    Fonfocus: THTMLInputFileElementEventsonfocusEvent;
+    Fonblur: THTMLInputFileElementEventsonblurEvent;
+    Fonresize: THTMLInputFileElementEventsonresizeEvent;
+    Fondrag: THTMLInputFileElementEventsondragEvent;
+    Fondragend: THTMLInputFileElementEventsondragendEvent;
+    Fondragenter: THTMLInputFileElementEventsondragenterEvent;
+    Fondragover: THTMLInputFileElementEventsondragoverEvent;
+    Fondragleave: THTMLInputFileElementEventsondragleaveEvent;
+    Fondrop: THTMLInputFileElementEventsondropEvent;
+    Fonbeforecut: THTMLInputFileElementEventsonbeforecutEvent;
+    Foncut: THTMLInputFileElementEventsoncutEvent;
+    Fonbeforecopy: THTMLInputFileElementEventsonbeforecopyEvent;
+    Foncopy: THTMLInputFileElementEventsoncopyEvent;
+    Fonbeforepaste: THTMLInputFileElementEventsonbeforepasteEvent;
+    Fonpaste: THTMLInputFileElementEventsonpasteEvent;
+    Foncontextmenu: THTMLInputFileElementEventsoncontextmenuEvent;
+    Fonrowsdelete: THTMLInputFileElementEventsonrowsdeleteEvent;
+    Fonrowsinserted: THTMLInputFileElementEventsonrowsinsertedEvent;
+    Foncellchange: THTMLInputFileElementEventsoncellchangeEvent;
+    Fonreadystatechange: THTMLInputFileElementEventsonreadystatechangeEvent;
+    Fonbeforeeditfocus: THTMLInputFileElementEventsonbeforeeditfocusEvent;
+    Fonlayoutcomplete: THTMLInputFileElementEventsonlayoutcompleteEvent;
+    Fonpage: THTMLInputFileElementEventsonpageEvent;
+    Fonbeforedeactivate: THTMLInputFileElementEventsonbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLInputFileElementEventsonbeforeactivateEvent;
+    Fonmove: THTMLInputFileElementEventsonmoveEvent;
+    Foncontrolselect: THTMLInputFileElementEventsoncontrolselectEvent;
+    Fonmovestart: THTMLInputFileElementEventsonmovestartEvent;
+    Fonmoveend: THTMLInputFileElementEventsonmoveendEvent;
+    Fonresizestart: THTMLInputFileElementEventsonresizestartEvent;
+    Fonresizeend: THTMLInputFileElementEventsonresizeendEvent;
+    Fonmouseenter: THTMLInputFileElementEventsonmouseenterEvent;
+    Fonmouseleave: THTMLInputFileElementEventsonmouseleaveEvent;
+    Fonmousewheel: THTMLInputFileElementEventsonmousewheelEvent;
+    Fonactivate: THTMLInputFileElementEventsonactivateEvent;
+    Fondeactivate: THTMLInputFileElementEventsondeactivateEvent;
+    Fonfocusin: THTMLInputFileElementEventsonfocusinEvent;
+    Fonfocusout: THTMLInputFileElementEventsonfocusoutEvent;
+    Fonchange: THTMLInputFileElementEventsonchangeEvent;
+    Fonselect: THTMLInputFileElementEventsonselectEvent;
+    Fonload: THTMLInputFileElementEventsonloadEvent;
+    Fonerror: THTMLInputFileElementEventsonerrorEvent;
+    Fonabort: THTMLInputFileElementEventsonabortEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLInputFileElementEventsonhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLInputFileElementEventsonclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLInputFileElementEventsondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLInputFileElementEventsonkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLInputFileElementEventsonkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLInputFileElementEventsonkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLInputFileElementEventsonmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLInputFileElementEventsonmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLInputFileElementEventsonmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLInputFileElementEventsonmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLInputFileElementEventsonmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLInputFileElementEventsonselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLInputFileElementEventsonfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLInputFileElementEventsondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLInputFileElementEventsonbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLInputFileElementEventsonafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLInputFileElementEventsonerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLInputFileElementEventsonrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLInputFileElementEventsonrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLInputFileElementEventsondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLInputFileElementEventsondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLInputFileElementEventsondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLInputFileElementEventsonlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLInputFileElementEventsonpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLInputFileElementEventsonscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLInputFileElementEventsonfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLInputFileElementEventsonblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLInputFileElementEventsonresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLInputFileElementEventsondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLInputFileElementEventsondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLInputFileElementEventsondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLInputFileElementEventsondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLInputFileElementEventsondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLInputFileElementEventsondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLInputFileElementEventsonbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLInputFileElementEventsoncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLInputFileElementEventsonbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLInputFileElementEventsoncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLInputFileElementEventsonbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLInputFileElementEventsonpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLInputFileElementEventsoncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLInputFileElementEventsonrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLInputFileElementEventsonrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLInputFileElementEventsoncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLInputFileElementEventsonreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onbeforeeditfocus: THTMLInputFileElementEventsonbeforeeditfocusEvent read Fonbeforeeditfocus write Fonbeforeeditfocus;
+    property onlayoutcomplete: THTMLInputFileElementEventsonlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLInputFileElementEventsonpageEvent read Fonpage write Fonpage;
+    property onbeforedeactivate: THTMLInputFileElementEventsonbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLInputFileElementEventsonbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onmove: THTMLInputFileElementEventsonmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLInputFileElementEventsoncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLInputFileElementEventsonmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLInputFileElementEventsonmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLInputFileElementEventsonresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLInputFileElementEventsonresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmouseenter: THTMLInputFileElementEventsonmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLInputFileElementEventsonmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onmousewheel: THTMLInputFileElementEventsonmousewheelEvent read Fonmousewheel write Fonmousewheel;
+    property onactivate: THTMLInputFileElementEventsonactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLInputFileElementEventsondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onfocusin: THTMLInputFileElementEventsonfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLInputFileElementEventsonfocusoutEvent read Fonfocusout write Fonfocusout;
+    property onchange: THTMLInputFileElementEventsonchangeEvent read Fonchange write Fonchange;
+    property onselect: THTMLInputFileElementEventsonselectEvent read Fonselect write Fonselect;
+    property onload: THTMLInputFileElementEventsonloadEvent read Fonload write Fonload;
+    property onerror: THTMLInputFileElementEventsonerrorEvent read Fonerror write Fonerror;
+    property onabort: THTMLInputFileElementEventsonabortEvent read Fonabort write Fonabort;
+  end;
+
+
+  //SinkEventsForwards//
+  THTMLInputImageEventsonhelpEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputImageEventsonclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputImageEventsondblclickEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputImageEventsonkeypressEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputImageEventsonkeydownEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsonkeyupEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsonmouseoutEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsonmouseoverEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsonmousemoveEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsonmousedownEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsonmouseupEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsonselectstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputImageEventsonfilterchangeEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsondragstartEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputImageEventsonbeforeupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputImageEventsonafterupdateEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsonerrorupdateEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputImageEventsonrowexitEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputImageEventsonrowenterEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsondatasetchangedEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsondataavailableEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsondatasetcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsonlosecaptureEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsonpropertychangeEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsonscrollEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsonfocusEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsonblurEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsonresizeEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsondragEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputImageEventsondragendEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsondragenterEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputImageEventsondragoverEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputImageEventsondragleaveEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsondropEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputImageEventsonbeforecutEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputImageEventsoncutEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputImageEventsonbeforecopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputImageEventsoncopyEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputImageEventsonbeforepasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputImageEventsonpasteEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputImageEventsoncontextmenuEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputImageEventsonrowsdeleteEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsonrowsinsertedEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsoncellchangeEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsonreadystatechangeEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsonbeforeeditfocusEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsonlayoutcompleteEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsonpageEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsonbeforedeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputImageEventsonbeforeactivateEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputImageEventsonmoveEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsoncontrolselectEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputImageEventsonmovestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputImageEventsonmoveendEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsonresizestartEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputImageEventsonresizeendEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsonmouseenterEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsonmouseleaveEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsonmousewheelEvent = function(Sender: TObject): WordBool of object;
+  THTMLInputImageEventsonactivateEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsondeactivateEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsonfocusinEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsonfocusoutEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsonloadEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsonerrorEvent = procedure(Sender: TObject) of object;
+  THTMLInputImageEventsonabortEvent = procedure(Sender: TObject) of object;
+
+  //SinkComponent//
+  TMSHTMLHTMLInputImageEvents = class(TMSHTMLEventsBaseSink
+    //ISinkInterface//
+      )
+  protected
+    function DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+      Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+      VarResult, ExcepInfo, ArgErr: Pointer): HResult; override;
+
+    //ISinkInterfaceMethods//
+  public
+    { system methods }
+    constructor Create(AOwner: TComponent); override;
+  protected
+    //SinkInterface//
+    function Doonhelp: WordBool; safecall;
+    function Doonclick: WordBool; safecall;
+    function Doondblclick: WordBool; safecall;
+    function Doonkeypress: WordBool; safecall;
+    procedure Doonkeydown; safecall;
+    procedure Doonkeyup; safecall;
+    procedure Doonmouseout; safecall;
+    procedure Doonmouseover; safecall;
+    procedure Doonmousemove; safecall;
+    procedure Doonmousedown; safecall;
+    procedure Doonmouseup; safecall;
+    function Doonselectstart: WordBool; safecall;
+    procedure Doonfilterchange; safecall;
+    function Doondragstart: WordBool; safecall;
+    function Doonbeforeupdate: WordBool; safecall;
+    procedure Doonafterupdate; safecall;
+    function Doonerrorupdate: WordBool; safecall;
+    function Doonrowexit: WordBool; safecall;
+    procedure Doonrowenter; safecall;
+    procedure Doondatasetchanged; safecall;
+    procedure Doondataavailable; safecall;
+    procedure Doondatasetcomplete; safecall;
+    procedure Doonlosecapture; safecall;
+    procedure Doonpropertychange; safecall;
+    procedure Doonscroll; safecall;
+    procedure Doonfocus; safecall;
+    procedure Doonblur; safecall;
+    procedure Doonresize; safecall;
+    function Doondrag: WordBool; safecall;
+    procedure Doondragend; safecall;
+    function Doondragenter: WordBool; safecall;
+    function Doondragover: WordBool; safecall;
+    procedure Doondragleave; safecall;
+    function Doondrop: WordBool; safecall;
+    function Doonbeforecut: WordBool; safecall;
+    function Dooncut: WordBool; safecall;
+    function Doonbeforecopy: WordBool; safecall;
+    function Dooncopy: WordBool; safecall;
+    function Doonbeforepaste: WordBool; safecall;
+    function Doonpaste: WordBool; safecall;
+    function Dooncontextmenu: WordBool; safecall;
+    procedure Doonrowsdelete; safecall;
+    procedure Doonrowsinserted; safecall;
+    procedure Dooncellchange; safecall;
+    procedure Doonreadystatechange; safecall;
+    procedure Doonbeforeeditfocus; safecall;
+    procedure Doonlayoutcomplete; safecall;
+    procedure Doonpage; safecall;
+    function Doonbeforedeactivate: WordBool; safecall;
+    function Doonbeforeactivate: WordBool; safecall;
+    procedure Doonmove; safecall;
+    function Dooncontrolselect: WordBool; safecall;
+    function Doonmovestart: WordBool; safecall;
+    procedure Doonmoveend; safecall;
+    function Doonresizestart: WordBool; safecall;
+    procedure Doonresizeend; safecall;
+    procedure Doonmouseenter; safecall;
+    procedure Doonmouseleave; safecall;
+    function Doonmousewheel: WordBool; safecall;
+    procedure Doonactivate; safecall;
+    procedure Doondeactivate; safecall;
+    procedure Doonfocusin; safecall;
+    procedure Doonfocusout; safecall;
+    procedure Doonload; safecall;
+    procedure Doonerror; safecall;
+    procedure Doonabort; safecall;
+  protected
+    //SinkEventsProtected//
+    Fonhelp: THTMLInputImageEventsonhelpEvent;
+    Fonclick: THTMLInputImageEventsonclickEvent;
+    Fondblclick: THTMLInputImageEventsondblclickEvent;
+    Fonkeypress: THTMLInputImageEventsonkeypressEvent;
+    Fonkeydown: THTMLInputImageEventsonkeydownEvent;
+    Fonkeyup: THTMLInputImageEventsonkeyupEvent;
+    Fonmouseout: THTMLInputImageEventsonmouseoutEvent;
+    Fonmouseover: THTMLInputImageEventsonmouseoverEvent;
+    Fonmousemove: THTMLInputImageEventsonmousemoveEvent;
+    Fonmousedown: THTMLInputImageEventsonmousedownEvent;
+    Fonmouseup: THTMLInputImageEventsonmouseupEvent;
+    Fonselectstart: THTMLInputImageEventsonselectstartEvent;
+    Fonfilterchange: THTMLInputImageEventsonfilterchangeEvent;
+    Fondragstart: THTMLInputImageEventsondragstartEvent;
+    Fonbeforeupdate: THTMLInputImageEventsonbeforeupdateEvent;
+    Fonafterupdate: THTMLInputImageEventsonafterupdateEvent;
+    Fonerrorupdate: THTMLInputImageEventsonerrorupdateEvent;
+    Fonrowexit: THTMLInputImageEventsonrowexitEvent;
+    Fonrowenter: THTMLInputImageEventsonrowenterEvent;
+    Fondatasetchanged: THTMLInputImageEventsondatasetchangedEvent;
+    Fondataavailable: THTMLInputImageEventsondataavailableEvent;
+    Fondatasetcomplete: THTMLInputImageEventsondatasetcompleteEvent;
+    Fonlosecapture: THTMLInputImageEventsonlosecaptureEvent;
+    Fonpropertychange: THTMLInputImageEventsonpropertychangeEvent;
+    Fonscroll: THTMLInputImageEventsonscrollEvent;
+    Fonfocus: THTMLInputImageEventsonfocusEvent;
+    Fonblur: THTMLInputImageEventsonblurEvent;
+    Fonresize: THTMLInputImageEventsonresizeEvent;
+    Fondrag: THTMLInputImageEventsondragEvent;
+    Fondragend: THTMLInputImageEventsondragendEvent;
+    Fondragenter: THTMLInputImageEventsondragenterEvent;
+    Fondragover: THTMLInputImageEventsondragoverEvent;
+    Fondragleave: THTMLInputImageEventsondragleaveEvent;
+    Fondrop: THTMLInputImageEventsondropEvent;
+    Fonbeforecut: THTMLInputImageEventsonbeforecutEvent;
+    Foncut: THTMLInputImageEventsoncutEvent;
+    Fonbeforecopy: THTMLInputImageEventsonbeforecopyEvent;
+    Foncopy: THTMLInputImageEventsoncopyEvent;
+    Fonbeforepaste: THTMLInputImageEventsonbeforepasteEvent;
+    Fonpaste: THTMLInputImageEventsonpasteEvent;
+    Foncontextmenu: THTMLInputImageEventsoncontextmenuEvent;
+    Fonrowsdelete: THTMLInputImageEventsonrowsdeleteEvent;
+    Fonrowsinserted: THTMLInputImageEventsonrowsinsertedEvent;
+    Foncellchange: THTMLInputImageEventsoncellchangeEvent;
+    Fonreadystatechange: THTMLInputImageEventsonreadystatechangeEvent;
+    Fonbeforeeditfocus: THTMLInputImageEventsonbeforeeditfocusEvent;
+    Fonlayoutcomplete: THTMLInputImageEventsonlayoutcompleteEvent;
+    Fonpage: THTMLInputImageEventsonpageEvent;
+    Fonbeforedeactivate: THTMLInputImageEventsonbeforedeactivateEvent;
+    Fonbeforeactivate: THTMLInputImageEventsonbeforeactivateEvent;
+    Fonmove: THTMLInputImageEventsonmoveEvent;
+    Foncontrolselect: THTMLInputImageEventsoncontrolselectEvent;
+    Fonmovestart: THTMLInputImageEventsonmovestartEvent;
+    Fonmoveend: THTMLInputImageEventsonmoveendEvent;
+    Fonresizestart: THTMLInputImageEventsonresizestartEvent;
+    Fonresizeend: THTMLInputImageEventsonresizeendEvent;
+    Fonmouseenter: THTMLInputImageEventsonmouseenterEvent;
+    Fonmouseleave: THTMLInputImageEventsonmouseleaveEvent;
+    Fonmousewheel: THTMLInputImageEventsonmousewheelEvent;
+    Fonactivate: THTMLInputImageEventsonactivateEvent;
+    Fondeactivate: THTMLInputImageEventsondeactivateEvent;
+    Fonfocusin: THTMLInputImageEventsonfocusinEvent;
+    Fonfocusout: THTMLInputImageEventsonfocusoutEvent;
+    Fonload: THTMLInputImageEventsonloadEvent;
+    Fonerror: THTMLInputImageEventsonerrorEvent;
+    Fonabort: THTMLInputImageEventsonabortEvent;
+  published
+    //SinkEventsPublished//
+    property onhelp: THTMLInputImageEventsonhelpEvent read Fonhelp write Fonhelp;
+    property onclick: THTMLInputImageEventsonclickEvent read Fonclick write Fonclick;
+    property ondblclick: THTMLInputImageEventsondblclickEvent read Fondblclick write Fondblclick;
+    property onkeypress: THTMLInputImageEventsonkeypressEvent read Fonkeypress write Fonkeypress;
+    property onkeydown: THTMLInputImageEventsonkeydownEvent read Fonkeydown write Fonkeydown;
+    property onkeyup: THTMLInputImageEventsonkeyupEvent read Fonkeyup write Fonkeyup;
+    property onmouseout: THTMLInputImageEventsonmouseoutEvent read Fonmouseout write Fonmouseout;
+    property onmouseover: THTMLInputImageEventsonmouseoverEvent read Fonmouseover write Fonmouseover;
+    property onmousemove: THTMLInputImageEventsonmousemoveEvent read Fonmousemove write Fonmousemove;
+    property onmousedown: THTMLInputImageEventsonmousedownEvent read Fonmousedown write Fonmousedown;
+    property onmouseup: THTMLInputImageEventsonmouseupEvent read Fonmouseup write Fonmouseup;
+    property onselectstart: THTMLInputImageEventsonselectstartEvent read Fonselectstart write Fonselectstart;
+    property onfilterchange: THTMLInputImageEventsonfilterchangeEvent read Fonfilterchange write Fonfilterchange;
+    property ondragstart: THTMLInputImageEventsondragstartEvent read Fondragstart write Fondragstart;
+    property onbeforeupdate: THTMLInputImageEventsonbeforeupdateEvent read Fonbeforeupdate write Fonbeforeupdate;
+    property onafterupdate: THTMLInputImageEventsonafterupdateEvent read Fonafterupdate write Fonafterupdate;
+    property onerrorupdate: THTMLInputImageEventsonerrorupdateEvent read Fonerrorupdate write Fonerrorupdate;
+    property onrowexit: THTMLInputImageEventsonrowexitEvent read Fonrowexit write Fonrowexit;
+    property onrowenter: THTMLInputImageEventsonrowenterEvent read Fonrowenter write Fonrowenter;
+    property ondatasetchanged: THTMLInputImageEventsondatasetchangedEvent read Fondatasetchanged write Fondatasetchanged;
+    property ondataavailable: THTMLInputImageEventsondataavailableEvent read Fondataavailable write Fondataavailable;
+    property ondatasetcomplete: THTMLInputImageEventsondatasetcompleteEvent read Fondatasetcomplete write Fondatasetcomplete;
+    property onlosecapture: THTMLInputImageEventsonlosecaptureEvent read Fonlosecapture write Fonlosecapture;
+    property onpropertychange: THTMLInputImageEventsonpropertychangeEvent read Fonpropertychange write Fonpropertychange;
+    property onscroll: THTMLInputImageEventsonscrollEvent read Fonscroll write Fonscroll;
+    property onfocus: THTMLInputImageEventsonfocusEvent read Fonfocus write Fonfocus;
+    property onblur: THTMLInputImageEventsonblurEvent read Fonblur write Fonblur;
+    property onresize: THTMLInputImageEventsonresizeEvent read Fonresize write Fonresize;
+    property ondrag: THTMLInputImageEventsondragEvent read Fondrag write Fondrag;
+    property ondragend: THTMLInputImageEventsondragendEvent read Fondragend write Fondragend;
+    property ondragenter: THTMLInputImageEventsondragenterEvent read Fondragenter write Fondragenter;
+    property ondragover: THTMLInputImageEventsondragoverEvent read Fondragover write Fondragover;
+    property ondragleave: THTMLInputImageEventsondragleaveEvent read Fondragleave write Fondragleave;
+    property ondrop: THTMLInputImageEventsondropEvent read Fondrop write Fondrop;
+    property onbeforecut: THTMLInputImageEventsonbeforecutEvent read Fonbeforecut write Fonbeforecut;
+    property oncut: THTMLInputImageEventsoncutEvent read Foncut write Foncut;
+    property onbeforecopy: THTMLInputImageEventsonbeforecopyEvent read Fonbeforecopy write Fonbeforecopy;
+    property oncopy: THTMLInputImageEventsoncopyEvent read Foncopy write Foncopy;
+    property onbeforepaste: THTMLInputImageEventsonbeforepasteEvent read Fonbeforepaste write Fonbeforepaste;
+    property onpaste: THTMLInputImageEventsonpasteEvent read Fonpaste write Fonpaste;
+    property oncontextmenu: THTMLInputImageEventsoncontextmenuEvent read Foncontextmenu write Foncontextmenu;
+    property onrowsdelete: THTMLInputImageEventsonrowsdeleteEvent read Fonrowsdelete write Fonrowsdelete;
+    property onrowsinserted: THTMLInputImageEventsonrowsinsertedEvent read Fonrowsinserted write Fonrowsinserted;
+    property oncellchange: THTMLInputImageEventsoncellchangeEvent read Foncellchange write Foncellchange;
+    property onreadystatechange: THTMLInputImageEventsonreadystatechangeEvent read Fonreadystatechange write Fonreadystatechange;
+    property onbeforeeditfocus: THTMLInputImageEventsonbeforeeditfocusEvent read Fonbeforeeditfocus write Fonbeforeeditfocus;
+    property onlayoutcomplete: THTMLInputImageEventsonlayoutcompleteEvent read Fonlayoutcomplete write Fonlayoutcomplete;
+    property onpage: THTMLInputImageEventsonpageEvent read Fonpage write Fonpage;
+    property onbeforedeactivate: THTMLInputImageEventsonbeforedeactivateEvent read Fonbeforedeactivate write Fonbeforedeactivate;
+    property onbeforeactivate: THTMLInputImageEventsonbeforeactivateEvent read Fonbeforeactivate write Fonbeforeactivate;
+    property onmove: THTMLInputImageEventsonmoveEvent read Fonmove write Fonmove;
+    property oncontrolselect: THTMLInputImageEventsoncontrolselectEvent read Foncontrolselect write Foncontrolselect;
+    property onmovestart: THTMLInputImageEventsonmovestartEvent read Fonmovestart write Fonmovestart;
+    property onmoveend: THTMLInputImageEventsonmoveendEvent read Fonmoveend write Fonmoveend;
+    property onresizestart: THTMLInputImageEventsonresizestartEvent read Fonresizestart write Fonresizestart;
+    property onresizeend: THTMLInputImageEventsonresizeendEvent read Fonresizeend write Fonresizeend;
+    property onmouseenter: THTMLInputImageEventsonmouseenterEvent read Fonmouseenter write Fonmouseenter;
+    property onmouseleave: THTMLInputImageEventsonmouseleaveEvent read Fonmouseleave write Fonmouseleave;
+    property onmousewheel: THTMLInputImageEventsonmousewheelEvent read Fonmousewheel write Fonmousewheel;
+    property onactivate: THTMLInputImageEventsonactivateEvent read Fonactivate write Fonactivate;
+    property ondeactivate: THTMLInputImageEventsondeactivateEvent read Fondeactivate write Fondeactivate;
+    property onfocusin: THTMLInputImageEventsonfocusinEvent read Fonfocusin write Fonfocusin;
+    property onfocusout: THTMLInputImageEventsonfocusoutEvent read Fonfocusout write Fonfocusout;
+    property onload: THTMLInputImageEventsonloadEvent read Fonload write Fonload;
+    property onerror: THTMLInputImageEventsonerrorEvent read Fonerror write Fonerror;
+    property onabort: THTMLInputImageEventsonabortEvent read Fonabort write Fonabort;
+  end;
+
+  //SinkIntfEnd//
+
+procedure Register;
+
+implementation
+
+uses
+  SysUtils;
+
+{ globals }
+
+procedure BuildPositionalDispIds(pDispIds: PDispIdList; const dps: TDispParams);
+var
+  i: integer;
+begin
+  Assert(pDispIds <> nil);
+
+  { by default, directly arrange in reverse order }
+  for i := 0 to dps.cArgs - 1 do
+    pDispIds^[i] := dps.cArgs - 1 - i;
+
+  { check for named args }
+  if (dps.cNamedArgs <= 0) then Exit;
+
+  { parse named args }
+  for i := 0 to dps.cNamedArgs - 1 do
+    pDispIds^[dps.rgdispidNamedArgs^[i]] := i;
+end;
+
+
+{ TMSHTMLEventsBaseSink }
+
+function TMSHTMLEventsBaseSink.GetIDsOfNames(const IID: TGUID; Names: Pointer;
+  NameCount, LocaleID: Integer; DispIDs: Pointer): HResult;
+begin
+  Result := E_NOTIMPL;
+end;
+
+function TMSHTMLEventsBaseSink.GetTypeInfo(Index, LocaleID: Integer; out TypeInfo): HResult;
+begin
+  Result := E_NOTIMPL;
+  pointer(TypeInfo) := nil;
+end;
+
+function TMSHTMLEventsBaseSink.GetTypeInfoCount(out Count: Integer): HResult;
+begin
+  Result := E_NOTIMPL;
+  Count := 0;
+end;
+
+function TMSHTMLEventsBaseSink.Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+var
+  dps: TDispParams absolute Params;
+  bHasParams: boolean;
+  pDispIds: PDispIdList;
+  iDispIdsSize: integer;
+begin
+  { validity checks }
+  if (Flags and DISPATCH_METHOD = 0) then
+    raise Exception.Create(
+      Format('%s only supports sinking of method calls!', [ClassName]
+      ));
+
+  { build pDispIds array. this maybe a bit of overhead but it allows us to
+    sink named-argument calls such as Excel's AppEvents, etc!
+  }
+  pDispIds := nil;
+  iDispIdsSize := 0;
+  bHasParams := (dps.cArgs > 0);
+  if (bHasParams) then
+  begin
+    iDispIdsSize := dps.cArgs * SizeOf(TDispId);
+    GetMem(pDispIds, iDispIdsSize);
+  end; { if }
+
+  try
+    { rearrange dispids properly }
+    if (bHasParams) then BuildPositionalDispIds(pDispIds, dps);
+    Result := DoInvoke(DispId, IID, LocaleID, Flags, dps, pDispIds, VarResult, ExcepInfo, ArgErr);
+  finally
+    { free pDispIds array }
+    if (bHasParams) then FreeMem(pDispIds, iDispIdsSize);
+  end; { finally }
+end;
+
+function TMSHTMLEventsBaseSink.QueryInterface(const IID: TGUID; out Obj): HResult;
+begin
+  if (GetInterface(IID, Obj)) then
+  begin
+    Result := S_OK;
+    Exit;
+  end
+  else
+    if (IsEqualIID(IID, FSinkIID)) then
+      if (GetInterface(IDispatch, Obj)) then
+      begin
+        Result := S_OK;
+        Exit;
+      end;
+  Result := E_NOINTERFACE;
+  pointer(Obj) := nil;
+end;
+
+function TMSHTMLEventsBaseSink._AddRef: Integer;
+begin
+  Result := 2;
+end;
+
+function TMSHTMLEventsBaseSink._Release: Integer;
+begin
+  Result := 1;
+end;
+
+destructor TMSHTMLEventsBaseSink.Destroy;
+begin
+  Disconnect;
+  inherited;
+end;
+
+procedure TMSHTMLEventsBaseSink.Connect(const ASource: IUnknown);
+var
+  pcpc: IConnectionPointContainer;
+begin
+  Assert(ASource <> nil);
+  Disconnect;
+  try
+    OleCheck(ASource.QueryInterface(IConnectionPointContainer, pcpc));
+    OleCheck(pcpc.FindConnectionPoint(FSinkIID, FCP));
+    OleCheck(FCP.Advise(Self, FCookie));
+    FSource := ASource;
+  except
+    raise Exception.Create(Format('Unable to connect %s.'#13'%s',
+      [Name, Exception(ExceptObject).Message]
+      ));
+  end; { finally }
+end;
+
+procedure TMSHTMLEventsBaseSink.Disconnect;
+begin
+  if (FSource = nil) then Exit;
+  try
+    OleCheck(FCP.Unadvise(FCookie));
+    FCP := nil;
+    FSource := nil;
+  except
+    pointer(FCP) := nil;
+    pointer(FSource) := nil;
+  end; { except }
+end;
+
+
+//SinkImplStart//
+
+function TMSHTMLHTMLElementEvents.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp();
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick();
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick();
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress();
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown();
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup();
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout();
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover();
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove();
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown();
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup();
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart();
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange();
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart();
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate();
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate();
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate();
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit();
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter();
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged();
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable();
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete();
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture();
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange();
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll();
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus();
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur();
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize();
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag();
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend();
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter();
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover();
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave();
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop();
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut();
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut();
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy();
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy();
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste();
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste();
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu();
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete();
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted();
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange();
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange();
+        Result := S_OK;
+      end;
+    1027:
+      begin
+        Doonbeforeeditfocus();
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete();
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage();
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate();
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate();
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove();
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect();
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart();
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend();
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart();
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend();
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter();
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave();
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel();
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate();
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate();
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin();
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout();
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLElementEvents.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLElementEvents;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLElementEvents.Doonhelp: WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self);
+end;
+
+function TMSHTMLHTMLElementEvents.Doonclick: WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self);
+end;
+
+function TMSHTMLHTMLElementEvents.Doondblclick: WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self);
+end;
+
+function TMSHTMLHTMLElementEvents.Doonkeypress: WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doonkeydown;
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doonkeyup;
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doonmouseout;
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doonmouseover;
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doonmousemove;
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doonmousedown;
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doonmouseup;
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self);
+end;
+
+function TMSHTMLHTMLElementEvents.Doonselectstart: WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doonfilterchange;
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self);
+end;
+
+function TMSHTMLHTMLElementEvents.Doondragstart: WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self);
+end;
+
+function TMSHTMLHTMLElementEvents.Doonbeforeupdate: WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doonafterupdate;
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self);
+end;
+
+function TMSHTMLHTMLElementEvents.Doonerrorupdate: WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self);
+end;
+
+function TMSHTMLHTMLElementEvents.Doonrowexit: WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doonrowenter;
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doondatasetchanged;
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doondataavailable;
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doondatasetcomplete;
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doonlosecapture;
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doonpropertychange;
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doonscroll;
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doonfocus;
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doonblur;
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doonresize;
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self);
+end;
+
+function TMSHTMLHTMLElementEvents.Doondrag: WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doondragend;
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self);
+end;
+
+function TMSHTMLHTMLElementEvents.Doondragenter: WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self);
+end;
+
+function TMSHTMLHTMLElementEvents.Doondragover: WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doondragleave;
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self);
+end;
+
+function TMSHTMLHTMLElementEvents.Doondrop: WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self);
+end;
+
+function TMSHTMLHTMLElementEvents.Doonbeforecut: WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self);
+end;
+
+function TMSHTMLHTMLElementEvents.Dooncut: WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self);
+end;
+
+function TMSHTMLHTMLElementEvents.Doonbeforecopy: WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self);
+end;
+
+function TMSHTMLHTMLElementEvents.Dooncopy: WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self);
+end;
+
+function TMSHTMLHTMLElementEvents.Doonbeforepaste: WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self);
+end;
+
+function TMSHTMLHTMLElementEvents.Doonpaste: WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self);
+end;
+
+function TMSHTMLHTMLElementEvents.Dooncontextmenu: WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doonrowsdelete;
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doonrowsinserted;
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Dooncellchange;
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doonreadystatechange;
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doonbeforeeditfocus;
+begin
+  if not Assigned(onbeforeeditfocus) then System.Exit;
+  onbeforeeditfocus(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doonlayoutcomplete;
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doonpage;
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self);
+end;
+
+function TMSHTMLHTMLElementEvents.Doonbeforedeactivate: WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self);
+end;
+
+function TMSHTMLHTMLElementEvents.Doonbeforeactivate: WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doonmove;
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self);
+end;
+
+function TMSHTMLHTMLElementEvents.Dooncontrolselect: WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self);
+end;
+
+function TMSHTMLHTMLElementEvents.Doonmovestart: WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doonmoveend;
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self);
+end;
+
+function TMSHTMLHTMLElementEvents.Doonresizestart: WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doonresizeend;
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doonmouseenter;
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doonmouseleave;
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self);
+end;
+
+function TMSHTMLHTMLElementEvents.Doonmousewheel: WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doonactivate;
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doondeactivate;
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doonfocusin;
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self);
+end;
+
+procedure TMSHTMLHTMLElementEvents.Doonfocusout;
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self);
+end;
+
+
+
+function TMSHTMLHTMLElementEvents2.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLElementEvents2.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLElementEvents2;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLElementEvents2.Doonhelp(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLElementEvents2.Doonclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLElementEvents2.Doondblclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLElementEvents2.Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Doonkeydown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Doonkeyup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Doonmouseout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Doonmouseover(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Doonmousemove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Doonmousedown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Doonmouseup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLElementEvents2.Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Doonfilterchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLElementEvents2.Doondragstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLElementEvents2.Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Doonafterupdate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLElementEvents2.Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLElementEvents2.Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Doonrowenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Doondatasetchanged(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Doondataavailable(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Doondatasetcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Doonlosecapture(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Doonpropertychange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Doonscroll(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Doonfocus(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Doonblur(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Doonresize(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLElementEvents2.Doondrag(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Doondragend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLElementEvents2.Doondragenter(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLElementEvents2.Doondragover(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Doondragleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLElementEvents2.Doondrop(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLElementEvents2.Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLElementEvents2.Dooncut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLElementEvents2.Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLElementEvents2.Dooncopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLElementEvents2.Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLElementEvents2.Doonpaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLElementEvents2.Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Doonrowsdelete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Doonrowsinserted(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Dooncellchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Doonreadystatechange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Doonlayoutcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Doonpage(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Doonmouseenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Doonmouseleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Doonactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Doondeactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLElementEvents2.Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLElementEvents2.Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Doonfocusin(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Doonfocusout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Doonmove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLElementEvents2.Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLElementEvents2.Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Doonmoveend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLElementEvents2.Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLElementEvents2.Doonresizeend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLElementEvents2.Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self, pEvtObj);
+end;
+
+
+
+function TMSHTMLHTMLLinkElementEvents.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp();
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick();
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick();
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress();
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown();
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup();
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout();
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover();
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove();
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown();
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup();
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart();
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange();
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart();
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate();
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate();
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate();
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit();
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter();
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged();
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable();
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete();
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture();
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange();
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll();
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus();
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur();
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize();
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag();
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend();
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter();
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover();
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave();
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop();
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut();
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut();
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy();
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy();
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste();
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste();
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu();
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete();
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted();
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange();
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange();
+        Result := S_OK;
+      end;
+    1027:
+      begin
+        Doonbeforeeditfocus();
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete();
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage();
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate();
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate();
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove();
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect();
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart();
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend();
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart();
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend();
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter();
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave();
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel();
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate();
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate();
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin();
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout();
+        Result := S_OK;
+      end;
+    1003:
+      begin
+        Doonload();
+        Result := S_OK;
+      end;
+    1002:
+      begin
+        Doonerror();
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLLinkElementEvents.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLLinkElementEvents;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLLinkElementEvents.Doonhelp: WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self);
+end;
+
+function TMSHTMLHTMLLinkElementEvents.Doonclick: WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self);
+end;
+
+function TMSHTMLHTMLLinkElementEvents.Doondblclick: WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self);
+end;
+
+function TMSHTMLHTMLLinkElementEvents.Doonkeypress: WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doonkeydown;
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doonkeyup;
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doonmouseout;
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doonmouseover;
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doonmousemove;
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doonmousedown;
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doonmouseup;
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self);
+end;
+
+function TMSHTMLHTMLLinkElementEvents.Doonselectstart: WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doonfilterchange;
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self);
+end;
+
+function TMSHTMLHTMLLinkElementEvents.Doondragstart: WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self);
+end;
+
+function TMSHTMLHTMLLinkElementEvents.Doonbeforeupdate: WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doonafterupdate;
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self);
+end;
+
+function TMSHTMLHTMLLinkElementEvents.Doonerrorupdate: WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self);
+end;
+
+function TMSHTMLHTMLLinkElementEvents.Doonrowexit: WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doonrowenter;
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doondatasetchanged;
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doondataavailable;
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doondatasetcomplete;
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doonlosecapture;
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doonpropertychange;
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doonscroll;
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doonfocus;
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doonblur;
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doonresize;
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self);
+end;
+
+function TMSHTMLHTMLLinkElementEvents.Doondrag: WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doondragend;
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self);
+end;
+
+function TMSHTMLHTMLLinkElementEvents.Doondragenter: WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self);
+end;
+
+function TMSHTMLHTMLLinkElementEvents.Doondragover: WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doondragleave;
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self);
+end;
+
+function TMSHTMLHTMLLinkElementEvents.Doondrop: WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self);
+end;
+
+function TMSHTMLHTMLLinkElementEvents.Doonbeforecut: WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self);
+end;
+
+function TMSHTMLHTMLLinkElementEvents.Dooncut: WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self);
+end;
+
+function TMSHTMLHTMLLinkElementEvents.Doonbeforecopy: WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self);
+end;
+
+function TMSHTMLHTMLLinkElementEvents.Dooncopy: WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self);
+end;
+
+function TMSHTMLHTMLLinkElementEvents.Doonbeforepaste: WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self);
+end;
+
+function TMSHTMLHTMLLinkElementEvents.Doonpaste: WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self);
+end;
+
+function TMSHTMLHTMLLinkElementEvents.Dooncontextmenu: WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doonrowsdelete;
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doonrowsinserted;
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Dooncellchange;
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doonreadystatechange;
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doonbeforeeditfocus;
+begin
+  if not Assigned(onbeforeeditfocus) then System.Exit;
+  onbeforeeditfocus(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doonlayoutcomplete;
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doonpage;
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self);
+end;
+
+function TMSHTMLHTMLLinkElementEvents.Doonbeforedeactivate: WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self);
+end;
+
+function TMSHTMLHTMLLinkElementEvents.Doonbeforeactivate: WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doonmove;
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self);
+end;
+
+function TMSHTMLHTMLLinkElementEvents.Dooncontrolselect: WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self);
+end;
+
+function TMSHTMLHTMLLinkElementEvents.Doonmovestart: WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doonmoveend;
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self);
+end;
+
+function TMSHTMLHTMLLinkElementEvents.Doonresizestart: WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doonresizeend;
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doonmouseenter;
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doonmouseleave;
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self);
+end;
+
+function TMSHTMLHTMLLinkElementEvents.Doonmousewheel: WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doonactivate;
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doondeactivate;
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doonfocusin;
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doonfocusout;
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doonload;
+begin
+  if not Assigned(onload) then System.Exit;
+  onload(Self);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents.Doonerror;
+begin
+  if not Assigned(onerror) then System.Exit;
+  onerror(Self);
+end;
+
+
+
+function TMSHTMLHTMLLinkElementEvents2.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1003:
+      begin
+        Doonload(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1002:
+      begin
+        Doonerror(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLLinkElementEvents2.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLLinkElementEvents2;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLLinkElementEvents2.Doonhelp(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLinkElementEvents2.Doonclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLinkElementEvents2.Doondblclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLinkElementEvents2.Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doonkeydown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doonkeyup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doonmouseout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doonmouseover(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doonmousemove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doonmousedown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doonmouseup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLinkElementEvents2.Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doonfilterchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLinkElementEvents2.Doondragstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLinkElementEvents2.Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doonafterupdate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLinkElementEvents2.Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLinkElementEvents2.Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doonrowenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doondatasetchanged(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doondataavailable(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doondatasetcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doonlosecapture(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doonpropertychange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doonscroll(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doonfocus(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doonblur(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doonresize(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLinkElementEvents2.Doondrag(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doondragend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLinkElementEvents2.Doondragenter(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLinkElementEvents2.Doondragover(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doondragleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLinkElementEvents2.Doondrop(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLinkElementEvents2.Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLinkElementEvents2.Dooncut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLinkElementEvents2.Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLinkElementEvents2.Dooncopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLinkElementEvents2.Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLinkElementEvents2.Doonpaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLinkElementEvents2.Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doonrowsdelete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doonrowsinserted(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Dooncellchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doonreadystatechange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doonlayoutcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doonpage(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doonmouseenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doonmouseleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doonactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doondeactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLinkElementEvents2.Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLinkElementEvents2.Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doonfocusin(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doonfocusout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doonmove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLinkElementEvents2.Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLinkElementEvents2.Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doonmoveend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLinkElementEvents2.Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doonresizeend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLinkElementEvents2.Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doonload(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onload) then System.Exit;
+  onload(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLinkElementEvents2.Doonerror(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onerror) then System.Exit;
+  onerror(Self, pEvtObj);
+end;
+
+
+
+function TMSHTMLHTMLFormElementEvents.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp();
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick();
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick();
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress();
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown();
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup();
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout();
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover();
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove();
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown();
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup();
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart();
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange();
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart();
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate();
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate();
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate();
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit();
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter();
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged();
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable();
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete();
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture();
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange();
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll();
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus();
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur();
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize();
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag();
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend();
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter();
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover();
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave();
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop();
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut();
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut();
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy();
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy();
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste();
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste();
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu();
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete();
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted();
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange();
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange();
+        Result := S_OK;
+      end;
+    1027:
+      begin
+        Doonbeforeeditfocus();
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete();
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage();
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate();
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate();
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove();
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect();
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart();
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend();
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart();
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend();
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter();
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave();
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel();
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate();
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate();
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin();
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout();
+        Result := S_OK;
+      end;
+    1007:
+      begin
+        OleVariant(VarResult^) := Doonsubmit();
+        Result := S_OK;
+      end;
+    1015:
+      begin
+        OleVariant(VarResult^) := Doonreset();
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLFormElementEvents.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLFormElementEvents;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLFormElementEvents.Doonhelp: WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self);
+end;
+
+function TMSHTMLHTMLFormElementEvents.Doonclick: WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self);
+end;
+
+function TMSHTMLHTMLFormElementEvents.Doondblclick: WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self);
+end;
+
+function TMSHTMLHTMLFormElementEvents.Doonkeypress: WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doonkeydown;
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doonkeyup;
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doonmouseout;
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doonmouseover;
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doonmousemove;
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doonmousedown;
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doonmouseup;
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self);
+end;
+
+function TMSHTMLHTMLFormElementEvents.Doonselectstart: WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doonfilterchange;
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self);
+end;
+
+function TMSHTMLHTMLFormElementEvents.Doondragstart: WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self);
+end;
+
+function TMSHTMLHTMLFormElementEvents.Doonbeforeupdate: WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doonafterupdate;
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self);
+end;
+
+function TMSHTMLHTMLFormElementEvents.Doonerrorupdate: WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self);
+end;
+
+function TMSHTMLHTMLFormElementEvents.Doonrowexit: WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doonrowenter;
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doondatasetchanged;
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doondataavailable;
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doondatasetcomplete;
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doonlosecapture;
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doonpropertychange;
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doonscroll;
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doonfocus;
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doonblur;
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doonresize;
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self);
+end;
+
+function TMSHTMLHTMLFormElementEvents.Doondrag: WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doondragend;
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self);
+end;
+
+function TMSHTMLHTMLFormElementEvents.Doondragenter: WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self);
+end;
+
+function TMSHTMLHTMLFormElementEvents.Doondragover: WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doondragleave;
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self);
+end;
+
+function TMSHTMLHTMLFormElementEvents.Doondrop: WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self);
+end;
+
+function TMSHTMLHTMLFormElementEvents.Doonbeforecut: WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self);
+end;
+
+function TMSHTMLHTMLFormElementEvents.Dooncut: WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self);
+end;
+
+function TMSHTMLHTMLFormElementEvents.Doonbeforecopy: WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self);
+end;
+
+function TMSHTMLHTMLFormElementEvents.Dooncopy: WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self);
+end;
+
+function TMSHTMLHTMLFormElementEvents.Doonbeforepaste: WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self);
+end;
+
+function TMSHTMLHTMLFormElementEvents.Doonpaste: WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self);
+end;
+
+function TMSHTMLHTMLFormElementEvents.Dooncontextmenu: WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doonrowsdelete;
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doonrowsinserted;
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Dooncellchange;
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doonreadystatechange;
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doonbeforeeditfocus;
+begin
+  if not Assigned(onbeforeeditfocus) then System.Exit;
+  onbeforeeditfocus(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doonlayoutcomplete;
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doonpage;
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self);
+end;
+
+function TMSHTMLHTMLFormElementEvents.Doonbeforedeactivate: WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self);
+end;
+
+function TMSHTMLHTMLFormElementEvents.Doonbeforeactivate: WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doonmove;
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self);
+end;
+
+function TMSHTMLHTMLFormElementEvents.Dooncontrolselect: WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self);
+end;
+
+function TMSHTMLHTMLFormElementEvents.Doonmovestart: WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doonmoveend;
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self);
+end;
+
+function TMSHTMLHTMLFormElementEvents.Doonresizestart: WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doonresizeend;
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doonmouseenter;
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doonmouseleave;
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self);
+end;
+
+function TMSHTMLHTMLFormElementEvents.Doonmousewheel: WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doonactivate;
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doondeactivate;
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doonfocusin;
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents.Doonfocusout;
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self);
+end;
+
+function TMSHTMLHTMLFormElementEvents.Doonsubmit: WordBool;
+begin
+  if not Assigned(onsubmit) then System.Exit;
+  Result := onsubmit(Self);
+end;
+
+function TMSHTMLHTMLFormElementEvents.Doonreset: WordBool;
+begin
+  if not Assigned(onreset) then System.Exit;
+  Result := onreset(Self);
+end;
+
+
+
+function TMSHTMLHTMLFormElementEvents2.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1007:
+      begin
+        OleVariant(VarResult^) := Doonsubmit(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1015:
+      begin
+        OleVariant(VarResult^) := Doonreset(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLFormElementEvents2.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLFormElementEvents2;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLFormElementEvents2.Doonhelp(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFormElementEvents2.Doonclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFormElementEvents2.Doondblclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFormElementEvents2.Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Doonkeydown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Doonkeyup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Doonmouseout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Doonmouseover(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Doonmousemove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Doonmousedown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Doonmouseup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFormElementEvents2.Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Doonfilterchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFormElementEvents2.Doondragstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFormElementEvents2.Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Doonafterupdate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFormElementEvents2.Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFormElementEvents2.Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Doonrowenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Doondatasetchanged(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Doondataavailable(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Doondatasetcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Doonlosecapture(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Doonpropertychange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Doonscroll(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Doonfocus(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Doonblur(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Doonresize(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFormElementEvents2.Doondrag(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Doondragend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFormElementEvents2.Doondragenter(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFormElementEvents2.Doondragover(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Doondragleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFormElementEvents2.Doondrop(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFormElementEvents2.Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFormElementEvents2.Dooncut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFormElementEvents2.Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFormElementEvents2.Dooncopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFormElementEvents2.Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFormElementEvents2.Doonpaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFormElementEvents2.Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Doonrowsdelete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Doonrowsinserted(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Dooncellchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Doonreadystatechange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Doonlayoutcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Doonpage(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Doonmouseenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Doonmouseleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Doonactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Doondeactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFormElementEvents2.Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFormElementEvents2.Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Doonfocusin(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Doonfocusout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Doonmove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFormElementEvents2.Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFormElementEvents2.Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Doonmoveend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFormElementEvents2.Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFormElementEvents2.Doonresizeend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFormElementEvents2.Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFormElementEvents2.Doonsubmit(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onsubmit) then System.Exit;
+  Result := onsubmit(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFormElementEvents2.Doonreset(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onreset) then System.Exit;
+  Result := onreset(Self, pEvtObj);
+end;
+
+
+
+function TMSHTMLHTMLImgEvents.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp();
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick();
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick();
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress();
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown();
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup();
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout();
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover();
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove();
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown();
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup();
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart();
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange();
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart();
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate();
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate();
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate();
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit();
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter();
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged();
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable();
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete();
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture();
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange();
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll();
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus();
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur();
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize();
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag();
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend();
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter();
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover();
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave();
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop();
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut();
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut();
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy();
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy();
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste();
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste();
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu();
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete();
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted();
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange();
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange();
+        Result := S_OK;
+      end;
+    1027:
+      begin
+        Doonbeforeeditfocus();
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete();
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage();
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate();
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate();
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove();
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect();
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart();
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend();
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart();
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend();
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter();
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave();
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel();
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate();
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate();
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin();
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout();
+        Result := S_OK;
+      end;
+    1003:
+      begin
+        Doonload();
+        Result := S_OK;
+      end;
+    1002:
+      begin
+        Doonerror();
+        Result := S_OK;
+      end;
+    1000:
+      begin
+        Doonabort();
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLImgEvents.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLImgEvents;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLImgEvents.Doonhelp: WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self);
+end;
+
+function TMSHTMLHTMLImgEvents.Doonclick: WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self);
+end;
+
+function TMSHTMLHTMLImgEvents.Doondblclick: WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self);
+end;
+
+function TMSHTMLHTMLImgEvents.Doonkeypress: WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doonkeydown;
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doonkeyup;
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doonmouseout;
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doonmouseover;
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doonmousemove;
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doonmousedown;
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doonmouseup;
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self);
+end;
+
+function TMSHTMLHTMLImgEvents.Doonselectstart: WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doonfilterchange;
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self);
+end;
+
+function TMSHTMLHTMLImgEvents.Doondragstart: WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self);
+end;
+
+function TMSHTMLHTMLImgEvents.Doonbeforeupdate: WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doonafterupdate;
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self);
+end;
+
+function TMSHTMLHTMLImgEvents.Doonerrorupdate: WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self);
+end;
+
+function TMSHTMLHTMLImgEvents.Doonrowexit: WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doonrowenter;
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doondatasetchanged;
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doondataavailable;
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doondatasetcomplete;
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doonlosecapture;
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doonpropertychange;
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doonscroll;
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doonfocus;
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doonblur;
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doonresize;
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self);
+end;
+
+function TMSHTMLHTMLImgEvents.Doondrag: WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doondragend;
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self);
+end;
+
+function TMSHTMLHTMLImgEvents.Doondragenter: WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self);
+end;
+
+function TMSHTMLHTMLImgEvents.Doondragover: WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doondragleave;
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self);
+end;
+
+function TMSHTMLHTMLImgEvents.Doondrop: WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self);
+end;
+
+function TMSHTMLHTMLImgEvents.Doonbeforecut: WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self);
+end;
+
+function TMSHTMLHTMLImgEvents.Dooncut: WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self);
+end;
+
+function TMSHTMLHTMLImgEvents.Doonbeforecopy: WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self);
+end;
+
+function TMSHTMLHTMLImgEvents.Dooncopy: WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self);
+end;
+
+function TMSHTMLHTMLImgEvents.Doonbeforepaste: WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self);
+end;
+
+function TMSHTMLHTMLImgEvents.Doonpaste: WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self);
+end;
+
+function TMSHTMLHTMLImgEvents.Dooncontextmenu: WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doonrowsdelete;
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doonrowsinserted;
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Dooncellchange;
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doonreadystatechange;
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doonbeforeeditfocus;
+begin
+  if not Assigned(onbeforeeditfocus) then System.Exit;
+  onbeforeeditfocus(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doonlayoutcomplete;
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doonpage;
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self);
+end;
+
+function TMSHTMLHTMLImgEvents.Doonbeforedeactivate: WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self);
+end;
+
+function TMSHTMLHTMLImgEvents.Doonbeforeactivate: WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doonmove;
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self);
+end;
+
+function TMSHTMLHTMLImgEvents.Dooncontrolselect: WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self);
+end;
+
+function TMSHTMLHTMLImgEvents.Doonmovestart: WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doonmoveend;
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self);
+end;
+
+function TMSHTMLHTMLImgEvents.Doonresizestart: WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doonresizeend;
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doonmouseenter;
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doonmouseleave;
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self);
+end;
+
+function TMSHTMLHTMLImgEvents.Doonmousewheel: WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doonactivate;
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doondeactivate;
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doonfocusin;
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doonfocusout;
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doonload;
+begin
+  if not Assigned(onload) then System.Exit;
+  onload(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doonerror;
+begin
+  if not Assigned(onerror) then System.Exit;
+  onerror(Self);
+end;
+
+procedure TMSHTMLHTMLImgEvents.Doonabort;
+begin
+  if not Assigned(onabort) then System.Exit;
+  onabort(Self);
+end;
+
+
+
+function TMSHTMLHTMLImgEvents2.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1003:
+      begin
+        Doonload(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1002:
+      begin
+        Doonerror(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1000:
+      begin
+        Doonabort(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLImgEvents2.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLImgEvents2;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLImgEvents2.Doonhelp(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLImgEvents2.Doonclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLImgEvents2.Doondblclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLImgEvents2.Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doonkeydown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doonkeyup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doonmouseout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doonmouseover(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doonmousemove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doonmousedown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doonmouseup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLImgEvents2.Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doonfilterchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLImgEvents2.Doondragstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLImgEvents2.Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doonafterupdate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLImgEvents2.Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLImgEvents2.Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doonrowenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doondatasetchanged(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doondataavailable(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doondatasetcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doonlosecapture(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doonpropertychange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doonscroll(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doonfocus(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doonblur(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doonresize(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLImgEvents2.Doondrag(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doondragend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLImgEvents2.Doondragenter(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLImgEvents2.Doondragover(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doondragleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLImgEvents2.Doondrop(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLImgEvents2.Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLImgEvents2.Dooncut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLImgEvents2.Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLImgEvents2.Dooncopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLImgEvents2.Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLImgEvents2.Doonpaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLImgEvents2.Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doonrowsdelete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doonrowsinserted(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Dooncellchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doonreadystatechange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doonlayoutcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doonpage(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doonmouseenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doonmouseleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doonactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doondeactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLImgEvents2.Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLImgEvents2.Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doonfocusin(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doonfocusout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doonmove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLImgEvents2.Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLImgEvents2.Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doonmoveend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLImgEvents2.Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doonresizeend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLImgEvents2.Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doonload(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onload) then System.Exit;
+  onload(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doonerror(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onerror) then System.Exit;
+  onerror(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLImgEvents2.Doonabort(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onabort) then System.Exit;
+  onabort(Self, pEvtObj);
+end;
+
+
+
+function TMSHTMLHTMLTextContainerEvents.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp();
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick();
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick();
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress();
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown();
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup();
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout();
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover();
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove();
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown();
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup();
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart();
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange();
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart();
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate();
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate();
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate();
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit();
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter();
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged();
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable();
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete();
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture();
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange();
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll();
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus();
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur();
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize();
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag();
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend();
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter();
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover();
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave();
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop();
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut();
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut();
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy();
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy();
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste();
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste();
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu();
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete();
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted();
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange();
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange();
+        Result := S_OK;
+      end;
+    1027:
+      begin
+        Doonbeforeeditfocus();
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete();
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage();
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate();
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate();
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove();
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect();
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart();
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend();
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart();
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend();
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter();
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave();
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel();
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate();
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate();
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin();
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout();
+        Result := S_OK;
+      end;
+    1001:
+      begin
+        Doonchange();
+        Result := S_OK;
+      end;
+    1006:
+      begin
+        Doonselect();
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLTextContainerEvents.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLTextContainerEvents;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLTextContainerEvents.Doonhelp: WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self);
+end;
+
+function TMSHTMLHTMLTextContainerEvents.Doonclick: WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self);
+end;
+
+function TMSHTMLHTMLTextContainerEvents.Doondblclick: WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self);
+end;
+
+function TMSHTMLHTMLTextContainerEvents.Doonkeypress: WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doonkeydown;
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doonkeyup;
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doonmouseout;
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doonmouseover;
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doonmousemove;
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doonmousedown;
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doonmouseup;
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self);
+end;
+
+function TMSHTMLHTMLTextContainerEvents.Doonselectstart: WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doonfilterchange;
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self);
+end;
+
+function TMSHTMLHTMLTextContainerEvents.Doondragstart: WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self);
+end;
+
+function TMSHTMLHTMLTextContainerEvents.Doonbeforeupdate: WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doonafterupdate;
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self);
+end;
+
+function TMSHTMLHTMLTextContainerEvents.Doonerrorupdate: WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self);
+end;
+
+function TMSHTMLHTMLTextContainerEvents.Doonrowexit: WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doonrowenter;
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doondatasetchanged;
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doondataavailable;
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doondatasetcomplete;
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doonlosecapture;
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doonpropertychange;
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doonscroll;
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doonfocus;
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doonblur;
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doonresize;
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self);
+end;
+
+function TMSHTMLHTMLTextContainerEvents.Doondrag: WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doondragend;
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self);
+end;
+
+function TMSHTMLHTMLTextContainerEvents.Doondragenter: WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self);
+end;
+
+function TMSHTMLHTMLTextContainerEvents.Doondragover: WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doondragleave;
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self);
+end;
+
+function TMSHTMLHTMLTextContainerEvents.Doondrop: WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self);
+end;
+
+function TMSHTMLHTMLTextContainerEvents.Doonbeforecut: WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self);
+end;
+
+function TMSHTMLHTMLTextContainerEvents.Dooncut: WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self);
+end;
+
+function TMSHTMLHTMLTextContainerEvents.Doonbeforecopy: WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self);
+end;
+
+function TMSHTMLHTMLTextContainerEvents.Dooncopy: WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self);
+end;
+
+function TMSHTMLHTMLTextContainerEvents.Doonbeforepaste: WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self);
+end;
+
+function TMSHTMLHTMLTextContainerEvents.Doonpaste: WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self);
+end;
+
+function TMSHTMLHTMLTextContainerEvents.Dooncontextmenu: WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doonrowsdelete;
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doonrowsinserted;
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Dooncellchange;
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doonreadystatechange;
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doonbeforeeditfocus;
+begin
+  if not Assigned(onbeforeeditfocus) then System.Exit;
+  onbeforeeditfocus(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doonlayoutcomplete;
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doonpage;
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self);
+end;
+
+function TMSHTMLHTMLTextContainerEvents.Doonbeforedeactivate: WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self);
+end;
+
+function TMSHTMLHTMLTextContainerEvents.Doonbeforeactivate: WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doonmove;
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self);
+end;
+
+function TMSHTMLHTMLTextContainerEvents.Dooncontrolselect: WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self);
+end;
+
+function TMSHTMLHTMLTextContainerEvents.Doonmovestart: WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doonmoveend;
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self);
+end;
+
+function TMSHTMLHTMLTextContainerEvents.Doonresizestart: WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doonresizeend;
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doonmouseenter;
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doonmouseleave;
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self);
+end;
+
+function TMSHTMLHTMLTextContainerEvents.Doonmousewheel: WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doonactivate;
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doondeactivate;
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doonfocusin;
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doonfocusout;
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doonchange;
+begin
+  if not Assigned(onchange) then System.Exit;
+  onchange(Self);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents.Doonselect;
+begin
+  if not Assigned(onselect) then System.Exit;
+  onselect(Self);
+end;
+
+
+
+function TMSHTMLHTMLTextContainerEvents2.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1001:
+      begin
+        Doonchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1006:
+      begin
+        Doonselect(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLTextContainerEvents2.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLTextContainerEvents2;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLTextContainerEvents2.Doonhelp(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTextContainerEvents2.Doonclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTextContainerEvents2.Doondblclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTextContainerEvents2.Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doonkeydown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doonkeyup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doonmouseout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doonmouseover(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doonmousemove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doonmousedown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doonmouseup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTextContainerEvents2.Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doonfilterchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTextContainerEvents2.Doondragstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTextContainerEvents2.Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doonafterupdate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTextContainerEvents2.Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTextContainerEvents2.Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doonrowenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doondatasetchanged(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doondataavailable(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doondatasetcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doonlosecapture(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doonpropertychange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doonscroll(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doonfocus(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doonblur(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doonresize(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTextContainerEvents2.Doondrag(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doondragend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTextContainerEvents2.Doondragenter(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTextContainerEvents2.Doondragover(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doondragleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTextContainerEvents2.Doondrop(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTextContainerEvents2.Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTextContainerEvents2.Dooncut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTextContainerEvents2.Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTextContainerEvents2.Dooncopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTextContainerEvents2.Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTextContainerEvents2.Doonpaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTextContainerEvents2.Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doonrowsdelete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doonrowsinserted(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Dooncellchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doonreadystatechange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doonlayoutcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doonpage(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doonmouseenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doonmouseleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doonactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doondeactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTextContainerEvents2.Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTextContainerEvents2.Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doonfocusin(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doonfocusout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doonmove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTextContainerEvents2.Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTextContainerEvents2.Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doonmoveend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTextContainerEvents2.Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doonresizeend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTextContainerEvents2.Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doonchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onchange) then System.Exit;
+  onchange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTextContainerEvents2.Doonselect(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onselect) then System.Exit;
+  onselect(Self, pEvtObj);
+end;
+
+
+
+function TMSHTMLHTMLAnchorEvents.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp();
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick();
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick();
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress();
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown();
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup();
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout();
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover();
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove();
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown();
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup();
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart();
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange();
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart();
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate();
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate();
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate();
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit();
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter();
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged();
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable();
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete();
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture();
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange();
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll();
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus();
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur();
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize();
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag();
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend();
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter();
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover();
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave();
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop();
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut();
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut();
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy();
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy();
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste();
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste();
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu();
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete();
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted();
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange();
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange();
+        Result := S_OK;
+      end;
+    1027:
+      begin
+        Doonbeforeeditfocus();
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete();
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage();
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate();
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate();
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove();
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect();
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart();
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend();
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart();
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend();
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter();
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave();
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel();
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate();
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate();
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin();
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout();
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLAnchorEvents.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLAnchorEvents;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLAnchorEvents.Doonhelp: WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self);
+end;
+
+function TMSHTMLHTMLAnchorEvents.Doonclick: WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self);
+end;
+
+function TMSHTMLHTMLAnchorEvents.Doondblclick: WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self);
+end;
+
+function TMSHTMLHTMLAnchorEvents.Doonkeypress: WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doonkeydown;
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doonkeyup;
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doonmouseout;
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doonmouseover;
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doonmousemove;
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doonmousedown;
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doonmouseup;
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self);
+end;
+
+function TMSHTMLHTMLAnchorEvents.Doonselectstart: WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doonfilterchange;
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self);
+end;
+
+function TMSHTMLHTMLAnchorEvents.Doondragstart: WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self);
+end;
+
+function TMSHTMLHTMLAnchorEvents.Doonbeforeupdate: WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doonafterupdate;
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self);
+end;
+
+function TMSHTMLHTMLAnchorEvents.Doonerrorupdate: WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self);
+end;
+
+function TMSHTMLHTMLAnchorEvents.Doonrowexit: WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doonrowenter;
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doondatasetchanged;
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doondataavailable;
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doondatasetcomplete;
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doonlosecapture;
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doonpropertychange;
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doonscroll;
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doonfocus;
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doonblur;
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doonresize;
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self);
+end;
+
+function TMSHTMLHTMLAnchorEvents.Doondrag: WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doondragend;
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self);
+end;
+
+function TMSHTMLHTMLAnchorEvents.Doondragenter: WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self);
+end;
+
+function TMSHTMLHTMLAnchorEvents.Doondragover: WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doondragleave;
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self);
+end;
+
+function TMSHTMLHTMLAnchorEvents.Doondrop: WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self);
+end;
+
+function TMSHTMLHTMLAnchorEvents.Doonbeforecut: WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self);
+end;
+
+function TMSHTMLHTMLAnchorEvents.Dooncut: WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self);
+end;
+
+function TMSHTMLHTMLAnchorEvents.Doonbeforecopy: WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self);
+end;
+
+function TMSHTMLHTMLAnchorEvents.Dooncopy: WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self);
+end;
+
+function TMSHTMLHTMLAnchorEvents.Doonbeforepaste: WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self);
+end;
+
+function TMSHTMLHTMLAnchorEvents.Doonpaste: WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self);
+end;
+
+function TMSHTMLHTMLAnchorEvents.Dooncontextmenu: WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doonrowsdelete;
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doonrowsinserted;
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Dooncellchange;
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doonreadystatechange;
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doonbeforeeditfocus;
+begin
+  if not Assigned(onbeforeeditfocus) then System.Exit;
+  onbeforeeditfocus(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doonlayoutcomplete;
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doonpage;
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self);
+end;
+
+function TMSHTMLHTMLAnchorEvents.Doonbeforedeactivate: WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self);
+end;
+
+function TMSHTMLHTMLAnchorEvents.Doonbeforeactivate: WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doonmove;
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self);
+end;
+
+function TMSHTMLHTMLAnchorEvents.Dooncontrolselect: WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self);
+end;
+
+function TMSHTMLHTMLAnchorEvents.Doonmovestart: WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doonmoveend;
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self);
+end;
+
+function TMSHTMLHTMLAnchorEvents.Doonresizestart: WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doonresizeend;
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doonmouseenter;
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doonmouseleave;
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self);
+end;
+
+function TMSHTMLHTMLAnchorEvents.Doonmousewheel: WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doonactivate;
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doondeactivate;
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doonfocusin;
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents.Doonfocusout;
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self);
+end;
+
+
+
+function TMSHTMLHTMLAnchorEvents2.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLAnchorEvents2.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLAnchorEvents2;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLAnchorEvents2.Doonhelp(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAnchorEvents2.Doonclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAnchorEvents2.Doondblclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAnchorEvents2.Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Doonkeydown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Doonkeyup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Doonmouseout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Doonmouseover(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Doonmousemove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Doonmousedown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Doonmouseup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAnchorEvents2.Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Doonfilterchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAnchorEvents2.Doondragstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAnchorEvents2.Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Doonafterupdate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAnchorEvents2.Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAnchorEvents2.Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Doonrowenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Doondatasetchanged(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Doondataavailable(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Doondatasetcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Doonlosecapture(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Doonpropertychange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Doonscroll(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Doonfocus(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Doonblur(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Doonresize(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAnchorEvents2.Doondrag(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Doondragend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAnchorEvents2.Doondragenter(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAnchorEvents2.Doondragover(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Doondragleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAnchorEvents2.Doondrop(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAnchorEvents2.Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAnchorEvents2.Dooncut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAnchorEvents2.Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAnchorEvents2.Dooncopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAnchorEvents2.Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAnchorEvents2.Doonpaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAnchorEvents2.Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Doonrowsdelete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Doonrowsinserted(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Dooncellchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Doonreadystatechange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Doonlayoutcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Doonpage(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Doonmouseenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Doonmouseleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Doonactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Doondeactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAnchorEvents2.Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAnchorEvents2.Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Doonfocusin(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Doonfocusout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Doonmove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAnchorEvents2.Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAnchorEvents2.Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Doonmoveend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAnchorEvents2.Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAnchorEvents2.Doonresizeend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAnchorEvents2.Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self, pEvtObj);
+end;
+
+
+
+function TMSHTMLHTMLLabelEvents.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp();
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick();
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick();
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress();
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown();
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup();
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout();
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover();
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove();
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown();
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup();
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart();
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange();
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart();
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate();
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate();
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate();
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit();
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter();
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged();
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable();
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete();
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture();
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange();
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll();
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus();
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur();
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize();
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag();
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend();
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter();
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover();
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave();
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop();
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut();
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut();
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy();
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy();
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste();
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste();
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu();
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete();
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted();
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange();
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange();
+        Result := S_OK;
+      end;
+    1027:
+      begin
+        Doonbeforeeditfocus();
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete();
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage();
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate();
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate();
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove();
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect();
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart();
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend();
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart();
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend();
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter();
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave();
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel();
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate();
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate();
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin();
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout();
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLLabelEvents.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLLabelEvents;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLLabelEvents.Doonhelp: WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self);
+end;
+
+function TMSHTMLHTMLLabelEvents.Doonclick: WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self);
+end;
+
+function TMSHTMLHTMLLabelEvents.Doondblclick: WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self);
+end;
+
+function TMSHTMLHTMLLabelEvents.Doonkeypress: WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doonkeydown;
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doonkeyup;
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doonmouseout;
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doonmouseover;
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doonmousemove;
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doonmousedown;
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doonmouseup;
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self);
+end;
+
+function TMSHTMLHTMLLabelEvents.Doonselectstart: WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doonfilterchange;
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self);
+end;
+
+function TMSHTMLHTMLLabelEvents.Doondragstart: WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self);
+end;
+
+function TMSHTMLHTMLLabelEvents.Doonbeforeupdate: WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doonafterupdate;
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self);
+end;
+
+function TMSHTMLHTMLLabelEvents.Doonerrorupdate: WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self);
+end;
+
+function TMSHTMLHTMLLabelEvents.Doonrowexit: WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doonrowenter;
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doondatasetchanged;
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doondataavailable;
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doondatasetcomplete;
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doonlosecapture;
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doonpropertychange;
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doonscroll;
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doonfocus;
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doonblur;
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doonresize;
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self);
+end;
+
+function TMSHTMLHTMLLabelEvents.Doondrag: WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doondragend;
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self);
+end;
+
+function TMSHTMLHTMLLabelEvents.Doondragenter: WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self);
+end;
+
+function TMSHTMLHTMLLabelEvents.Doondragover: WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doondragleave;
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self);
+end;
+
+function TMSHTMLHTMLLabelEvents.Doondrop: WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self);
+end;
+
+function TMSHTMLHTMLLabelEvents.Doonbeforecut: WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self);
+end;
+
+function TMSHTMLHTMLLabelEvents.Dooncut: WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self);
+end;
+
+function TMSHTMLHTMLLabelEvents.Doonbeforecopy: WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self);
+end;
+
+function TMSHTMLHTMLLabelEvents.Dooncopy: WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self);
+end;
+
+function TMSHTMLHTMLLabelEvents.Doonbeforepaste: WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self);
+end;
+
+function TMSHTMLHTMLLabelEvents.Doonpaste: WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self);
+end;
+
+function TMSHTMLHTMLLabelEvents.Dooncontextmenu: WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doonrowsdelete;
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doonrowsinserted;
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Dooncellchange;
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doonreadystatechange;
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doonbeforeeditfocus;
+begin
+  if not Assigned(onbeforeeditfocus) then System.Exit;
+  onbeforeeditfocus(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doonlayoutcomplete;
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doonpage;
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self);
+end;
+
+function TMSHTMLHTMLLabelEvents.Doonbeforedeactivate: WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self);
+end;
+
+function TMSHTMLHTMLLabelEvents.Doonbeforeactivate: WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doonmove;
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self);
+end;
+
+function TMSHTMLHTMLLabelEvents.Dooncontrolselect: WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self);
+end;
+
+function TMSHTMLHTMLLabelEvents.Doonmovestart: WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doonmoveend;
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self);
+end;
+
+function TMSHTMLHTMLLabelEvents.Doonresizestart: WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doonresizeend;
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doonmouseenter;
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doonmouseleave;
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self);
+end;
+
+function TMSHTMLHTMLLabelEvents.Doonmousewheel: WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doonactivate;
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doondeactivate;
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doonfocusin;
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self);
+end;
+
+procedure TMSHTMLHTMLLabelEvents.Doonfocusout;
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self);
+end;
+
+
+
+function TMSHTMLHTMLLabelEvents2.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLLabelEvents2.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLLabelEvents2;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLLabelEvents2.Doonhelp(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLabelEvents2.Doonclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLabelEvents2.Doondblclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLabelEvents2.Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Doonkeydown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Doonkeyup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Doonmouseout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Doonmouseover(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Doonmousemove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Doonmousedown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Doonmouseup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLabelEvents2.Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Doonfilterchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLabelEvents2.Doondragstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLabelEvents2.Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Doonafterupdate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLabelEvents2.Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLabelEvents2.Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Doonrowenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Doondatasetchanged(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Doondataavailable(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Doondatasetcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Doonlosecapture(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Doonpropertychange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Doonscroll(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Doonfocus(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Doonblur(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Doonresize(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLabelEvents2.Doondrag(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Doondragend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLabelEvents2.Doondragenter(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLabelEvents2.Doondragover(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Doondragleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLabelEvents2.Doondrop(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLabelEvents2.Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLabelEvents2.Dooncut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLabelEvents2.Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLabelEvents2.Dooncopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLabelEvents2.Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLabelEvents2.Doonpaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLabelEvents2.Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Doonrowsdelete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Doonrowsinserted(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Dooncellchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Doonreadystatechange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Doonlayoutcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Doonpage(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Doonmouseenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Doonmouseleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Doonactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Doondeactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLabelEvents2.Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLabelEvents2.Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Doonfocusin(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Doonfocusout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Doonmove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLabelEvents2.Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLabelEvents2.Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Doonmoveend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLabelEvents2.Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLLabelEvents2.Doonresizeend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLLabelEvents2.Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self, pEvtObj);
+end;
+
+
+
+function TMSHTMLHTMLSelectElementEvents.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp();
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick();
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick();
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress();
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown();
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup();
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout();
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover();
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove();
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown();
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup();
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart();
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange();
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart();
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate();
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate();
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate();
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit();
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter();
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged();
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable();
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete();
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture();
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange();
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll();
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus();
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur();
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize();
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag();
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend();
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter();
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover();
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave();
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop();
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut();
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut();
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy();
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy();
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste();
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste();
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu();
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete();
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted();
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange();
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange();
+        Result := S_OK;
+      end;
+    1027:
+      begin
+        Doonbeforeeditfocus();
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete();
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage();
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate();
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate();
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove();
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect();
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart();
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend();
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart();
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend();
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter();
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave();
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel();
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate();
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate();
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin();
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout();
+        Result := S_OK;
+      end;
+    1001:
+      begin
+        Doonchange();
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLSelectElementEvents.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLSelectElementEvents;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLSelectElementEvents.Doonhelp: WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self);
+end;
+
+function TMSHTMLHTMLSelectElementEvents.Doonclick: WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self);
+end;
+
+function TMSHTMLHTMLSelectElementEvents.Doondblclick: WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self);
+end;
+
+function TMSHTMLHTMLSelectElementEvents.Doonkeypress: WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doonkeydown;
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doonkeyup;
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doonmouseout;
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doonmouseover;
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doonmousemove;
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doonmousedown;
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doonmouseup;
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self);
+end;
+
+function TMSHTMLHTMLSelectElementEvents.Doonselectstart: WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doonfilterchange;
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self);
+end;
+
+function TMSHTMLHTMLSelectElementEvents.Doondragstart: WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self);
+end;
+
+function TMSHTMLHTMLSelectElementEvents.Doonbeforeupdate: WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doonafterupdate;
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self);
+end;
+
+function TMSHTMLHTMLSelectElementEvents.Doonerrorupdate: WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self);
+end;
+
+function TMSHTMLHTMLSelectElementEvents.Doonrowexit: WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doonrowenter;
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doondatasetchanged;
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doondataavailable;
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doondatasetcomplete;
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doonlosecapture;
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doonpropertychange;
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doonscroll;
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doonfocus;
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doonblur;
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doonresize;
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self);
+end;
+
+function TMSHTMLHTMLSelectElementEvents.Doondrag: WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doondragend;
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self);
+end;
+
+function TMSHTMLHTMLSelectElementEvents.Doondragenter: WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self);
+end;
+
+function TMSHTMLHTMLSelectElementEvents.Doondragover: WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doondragleave;
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self);
+end;
+
+function TMSHTMLHTMLSelectElementEvents.Doondrop: WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self);
+end;
+
+function TMSHTMLHTMLSelectElementEvents.Doonbeforecut: WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self);
+end;
+
+function TMSHTMLHTMLSelectElementEvents.Dooncut: WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self);
+end;
+
+function TMSHTMLHTMLSelectElementEvents.Doonbeforecopy: WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self);
+end;
+
+function TMSHTMLHTMLSelectElementEvents.Dooncopy: WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self);
+end;
+
+function TMSHTMLHTMLSelectElementEvents.Doonbeforepaste: WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self);
+end;
+
+function TMSHTMLHTMLSelectElementEvents.Doonpaste: WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self);
+end;
+
+function TMSHTMLHTMLSelectElementEvents.Dooncontextmenu: WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doonrowsdelete;
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doonrowsinserted;
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Dooncellchange;
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doonreadystatechange;
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doonbeforeeditfocus;
+begin
+  if not Assigned(onbeforeeditfocus) then System.Exit;
+  onbeforeeditfocus(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doonlayoutcomplete;
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doonpage;
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self);
+end;
+
+function TMSHTMLHTMLSelectElementEvents.Doonbeforedeactivate: WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self);
+end;
+
+function TMSHTMLHTMLSelectElementEvents.Doonbeforeactivate: WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doonmove;
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self);
+end;
+
+function TMSHTMLHTMLSelectElementEvents.Dooncontrolselect: WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self);
+end;
+
+function TMSHTMLHTMLSelectElementEvents.Doonmovestart: WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doonmoveend;
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self);
+end;
+
+function TMSHTMLHTMLSelectElementEvents.Doonresizestart: WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doonresizeend;
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doonmouseenter;
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doonmouseleave;
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self);
+end;
+
+function TMSHTMLHTMLSelectElementEvents.Doonmousewheel: WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doonactivate;
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doondeactivate;
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doonfocusin;
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doonfocusout;
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents.Doonchange;
+begin
+  if not Assigned(onchange) then System.Exit;
+  onchange(Self);
+end;
+
+
+
+function TMSHTMLHTMLSelectElementEvents2.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1001:
+      begin
+        Doonchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLSelectElementEvents2.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLSelectElementEvents2;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLSelectElementEvents2.Doonhelp(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLSelectElementEvents2.Doonclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLSelectElementEvents2.Doondblclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLSelectElementEvents2.Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doonkeydown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doonkeyup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doonmouseout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doonmouseover(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doonmousemove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doonmousedown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doonmouseup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLSelectElementEvents2.Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doonfilterchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLSelectElementEvents2.Doondragstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLSelectElementEvents2.Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doonafterupdate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLSelectElementEvents2.Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLSelectElementEvents2.Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doonrowenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doondatasetchanged(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doondataavailable(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doondatasetcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doonlosecapture(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doonpropertychange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doonscroll(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doonfocus(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doonblur(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doonresize(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLSelectElementEvents2.Doondrag(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doondragend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLSelectElementEvents2.Doondragenter(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLSelectElementEvents2.Doondragover(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doondragleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLSelectElementEvents2.Doondrop(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLSelectElementEvents2.Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLSelectElementEvents2.Dooncut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLSelectElementEvents2.Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLSelectElementEvents2.Dooncopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLSelectElementEvents2.Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLSelectElementEvents2.Doonpaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLSelectElementEvents2.Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doonrowsdelete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doonrowsinserted(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Dooncellchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doonreadystatechange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doonlayoutcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doonpage(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doonmouseenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doonmouseleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doonactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doondeactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLSelectElementEvents2.Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLSelectElementEvents2.Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doonfocusin(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doonfocusout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doonmove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLSelectElementEvents2.Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLSelectElementEvents2.Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doonmoveend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLSelectElementEvents2.Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doonresizeend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLSelectElementEvents2.Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLSelectElementEvents2.Doonchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onchange) then System.Exit;
+  onchange(Self, pEvtObj);
+end;
+
+
+
+function TMSHTMLHTMLInputTextElementEvents.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp();
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick();
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick();
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress();
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown();
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup();
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout();
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover();
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove();
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown();
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup();
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart();
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange();
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart();
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate();
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate();
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate();
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit();
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter();
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged();
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable();
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete();
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture();
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange();
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll();
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus();
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur();
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize();
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag();
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend();
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter();
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover();
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave();
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop();
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut();
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut();
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy();
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy();
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste();
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste();
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu();
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete();
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted();
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange();
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange();
+        Result := S_OK;
+      end;
+    1027:
+      begin
+        Doonbeforeeditfocus();
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete();
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage();
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate();
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate();
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove();
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect();
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart();
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend();
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart();
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend();
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter();
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave();
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel();
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate();
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate();
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin();
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout();
+        Result := S_OK;
+      end;
+    1001:
+      begin
+        OleVariant(VarResult^) := Doonchange();
+        Result := S_OK;
+      end;
+    1006:
+      begin
+        Doonselect();
+        Result := S_OK;
+      end;
+    1003:
+      begin
+        Doonload();
+        Result := S_OK;
+      end;
+    1002:
+      begin
+        Doonerror();
+        Result := S_OK;
+      end;
+    1000:
+      begin
+        Doonabort();
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLInputTextElementEvents.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLInputTextElementEvents;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLInputTextElementEvents.Doonhelp: WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents.Doonclick: WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents.Doondblclick: WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents.Doonkeypress: WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doonkeydown;
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doonkeyup;
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doonmouseout;
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doonmouseover;
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doonmousemove;
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doonmousedown;
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doonmouseup;
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents.Doonselectstart: WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doonfilterchange;
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents.Doondragstart: WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents.Doonbeforeupdate: WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doonafterupdate;
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents.Doonerrorupdate: WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents.Doonrowexit: WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doonrowenter;
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doondatasetchanged;
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doondataavailable;
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doondatasetcomplete;
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doonlosecapture;
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doonpropertychange;
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doonscroll;
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doonfocus;
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doonblur;
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doonresize;
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents.Doondrag: WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doondragend;
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents.Doondragenter: WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents.Doondragover: WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doondragleave;
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents.Doondrop: WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents.Doonbeforecut: WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents.Dooncut: WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents.Doonbeforecopy: WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents.Dooncopy: WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents.Doonbeforepaste: WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents.Doonpaste: WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents.Dooncontextmenu: WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doonrowsdelete;
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doonrowsinserted;
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Dooncellchange;
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doonreadystatechange;
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doonbeforeeditfocus;
+begin
+  if not Assigned(onbeforeeditfocus) then System.Exit;
+  onbeforeeditfocus(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doonlayoutcomplete;
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doonpage;
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents.Doonbeforedeactivate: WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents.Doonbeforeactivate: WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doonmove;
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents.Dooncontrolselect: WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents.Doonmovestart: WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doonmoveend;
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents.Doonresizestart: WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doonresizeend;
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doonmouseenter;
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doonmouseleave;
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents.Doonmousewheel: WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doonactivate;
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doondeactivate;
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doonfocusin;
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doonfocusout;
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents.Doonchange: WordBool;
+begin
+  if not Assigned(onchange) then System.Exit;
+  Result := onchange(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doonselect;
+begin
+  if not Assigned(onselect) then System.Exit;
+  onselect(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doonload;
+begin
+  if not Assigned(onload) then System.Exit;
+  onload(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doonerror;
+begin
+  if not Assigned(onerror) then System.Exit;
+  onerror(Self);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents.Doonabort;
+begin
+  if not Assigned(onabort) then System.Exit;
+  onabort(Self);
+end;
+
+
+
+function TMSHTMLHTMLInputTextElementEvents2.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1001:
+      begin
+        OleVariant(VarResult^) := Doonchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1006:
+      begin
+        Doonselect(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1003:
+      begin
+        Doonload(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1002:
+      begin
+        Doonerror(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1000:
+      begin
+        Doonabort(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLInputTextElementEvents2.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLInputTextElementEvents2;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLInputTextElementEvents2.Doonhelp(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents2.Doonclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents2.Doondblclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents2.Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doonkeydown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doonkeyup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doonmouseout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doonmouseover(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doonmousemove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doonmousedown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doonmouseup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents2.Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doonfilterchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents2.Doondragstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents2.Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doonafterupdate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents2.Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents2.Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doonrowenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doondatasetchanged(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doondataavailable(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doondatasetcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doonlosecapture(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doonpropertychange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doonscroll(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doonfocus(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doonblur(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doonresize(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents2.Doondrag(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doondragend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents2.Doondragenter(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents2.Doondragover(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doondragleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents2.Doondrop(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents2.Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents2.Dooncut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents2.Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents2.Dooncopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents2.Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents2.Doonpaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents2.Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doonrowsdelete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doonrowsinserted(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Dooncellchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doonreadystatechange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doonlayoutcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doonpage(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doonmouseenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doonmouseleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doonactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doondeactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents2.Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents2.Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doonfocusin(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doonfocusout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doonmove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents2.Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents2.Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doonmoveend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents2.Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doonresizeend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents2.Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLInputTextElementEvents2.Doonchange(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onchange) then System.Exit;
+  Result := onchange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doonselect(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onselect) then System.Exit;
+  onselect(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doonload(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onload) then System.Exit;
+  onload(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doonerror(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onerror) then System.Exit;
+  onerror(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLInputTextElementEvents2.Doonabort(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onabort) then System.Exit;
+  onabort(Self, pEvtObj);
+end;
+
+
+
+function TMSHTMLHTMLOptionButtonElementEvents.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp();
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick();
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick();
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress();
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown();
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup();
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout();
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover();
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove();
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown();
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup();
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart();
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange();
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart();
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate();
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate();
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate();
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit();
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter();
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged();
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable();
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete();
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture();
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange();
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll();
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus();
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur();
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize();
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag();
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend();
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter();
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover();
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave();
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop();
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut();
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut();
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy();
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy();
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste();
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste();
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu();
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete();
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted();
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange();
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange();
+        Result := S_OK;
+      end;
+    1027:
+      begin
+        Doonbeforeeditfocus();
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete();
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage();
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate();
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate();
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove();
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect();
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart();
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend();
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart();
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend();
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter();
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave();
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel();
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate();
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate();
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin();
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout();
+        Result := S_OK;
+      end;
+    1001:
+      begin
+        OleVariant(VarResult^) := Doonchange();
+        Result := S_OK;
+      end;
+    1006:
+      begin
+        Doonselect();
+        Result := S_OK;
+      end;
+    1003:
+      begin
+        Doonload();
+        Result := S_OK;
+      end;
+    1002:
+      begin
+        Doonerror();
+        Result := S_OK;
+      end;
+    1000:
+      begin
+        Doonabort();
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLOptionButtonElementEvents.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLOptionButtonElementEvents;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLOptionButtonElementEvents.Doonhelp: WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self);
+end;
+
+function TMSHTMLHTMLOptionButtonElementEvents.Doonclick: WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self);
+end;
+
+function TMSHTMLHTMLOptionButtonElementEvents.Doondblclick: WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self);
+end;
+
+function TMSHTMLHTMLOptionButtonElementEvents.Doonkeypress: WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doonkeydown;
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doonkeyup;
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doonmouseout;
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doonmouseover;
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doonmousemove;
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doonmousedown;
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doonmouseup;
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self);
+end;
+
+function TMSHTMLHTMLOptionButtonElementEvents.Doonselectstart: WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doonfilterchange;
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self);
+end;
+
+function TMSHTMLHTMLOptionButtonElementEvents.Doondragstart: WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self);
+end;
+
+function TMSHTMLHTMLOptionButtonElementEvents.Doonbeforeupdate: WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doonafterupdate;
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self);
+end;
+
+function TMSHTMLHTMLOptionButtonElementEvents.Doonerrorupdate: WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self);
+end;
+
+function TMSHTMLHTMLOptionButtonElementEvents.Doonrowexit: WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doonrowenter;
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doondatasetchanged;
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doondataavailable;
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doondatasetcomplete;
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doonlosecapture;
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doonpropertychange;
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doonscroll;
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doonfocus;
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doonblur;
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doonresize;
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self);
+end;
+
+function TMSHTMLHTMLOptionButtonElementEvents.Doondrag: WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doondragend;
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self);
+end;
+
+function TMSHTMLHTMLOptionButtonElementEvents.Doondragenter: WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self);
+end;
+
+function TMSHTMLHTMLOptionButtonElementEvents.Doondragover: WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doondragleave;
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self);
+end;
+
+function TMSHTMLHTMLOptionButtonElementEvents.Doondrop: WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self);
+end;
+
+function TMSHTMLHTMLOptionButtonElementEvents.Doonbeforecut: WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self);
+end;
+
+function TMSHTMLHTMLOptionButtonElementEvents.Dooncut: WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self);
+end;
+
+function TMSHTMLHTMLOptionButtonElementEvents.Doonbeforecopy: WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self);
+end;
+
+function TMSHTMLHTMLOptionButtonElementEvents.Dooncopy: WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self);
+end;
+
+function TMSHTMLHTMLOptionButtonElementEvents.Doonbeforepaste: WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self);
+end;
+
+function TMSHTMLHTMLOptionButtonElementEvents.Doonpaste: WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self);
+end;
+
+function TMSHTMLHTMLOptionButtonElementEvents.Dooncontextmenu: WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doonrowsdelete;
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doonrowsinserted;
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Dooncellchange;
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doonreadystatechange;
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doonbeforeeditfocus;
+begin
+  if not Assigned(onbeforeeditfocus) then System.Exit;
+  onbeforeeditfocus(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doonlayoutcomplete;
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doonpage;
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self);
+end;
+
+function TMSHTMLHTMLOptionButtonElementEvents.Doonbeforedeactivate: WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self);
+end;
+
+function TMSHTMLHTMLOptionButtonElementEvents.Doonbeforeactivate: WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doonmove;
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self);
+end;
+
+function TMSHTMLHTMLOptionButtonElementEvents.Dooncontrolselect: WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self);
+end;
+
+function TMSHTMLHTMLOptionButtonElementEvents.Doonmovestart: WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doonmoveend;
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self);
+end;
+
+function TMSHTMLHTMLOptionButtonElementEvents.Doonresizestart: WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doonresizeend;
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doonmouseenter;
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doonmouseleave;
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self);
+end;
+
+function TMSHTMLHTMLOptionButtonElementEvents.Doonmousewheel: WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doonactivate;
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doondeactivate;
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doonfocusin;
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doonfocusout;
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self);
+end;
+
+function TMSHTMLHTMLOptionButtonElementEvents.Doonchange: WordBool;
+begin
+  if not Assigned(onchange) then System.Exit;
+  Result := onchange(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doonselect;
+begin
+  if not Assigned(onselect) then System.Exit;
+  onselect(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doonload;
+begin
+  if not Assigned(onload) then System.Exit;
+  onload(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doonerror;
+begin
+  if not Assigned(onerror) then System.Exit;
+  onerror(Self);
+end;
+
+procedure TMSHTMLHTMLOptionButtonElementEvents.Doonabort;
+begin
+  if not Assigned(onabort) then System.Exit;
+  onabort(Self);
+end;
+
+
+
+function TMSHTMLHTMLButtonElementEvents.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp();
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick();
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick();
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress();
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown();
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup();
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout();
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover();
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove();
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown();
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup();
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart();
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange();
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart();
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate();
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate();
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate();
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit();
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter();
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged();
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable();
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete();
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture();
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange();
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll();
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus();
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur();
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize();
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag();
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend();
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter();
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover();
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave();
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop();
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut();
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut();
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy();
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy();
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste();
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste();
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu();
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete();
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted();
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange();
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange();
+        Result := S_OK;
+      end;
+    1027:
+      begin
+        Doonbeforeeditfocus();
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete();
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage();
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate();
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate();
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove();
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect();
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart();
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend();
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart();
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend();
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter();
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave();
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel();
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate();
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate();
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin();
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout();
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLButtonElementEvents.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLButtonElementEvents;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLButtonElementEvents.Doonhelp: WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self);
+end;
+
+function TMSHTMLHTMLButtonElementEvents.Doonclick: WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self);
+end;
+
+function TMSHTMLHTMLButtonElementEvents.Doondblclick: WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self);
+end;
+
+function TMSHTMLHTMLButtonElementEvents.Doonkeypress: WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doonkeydown;
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doonkeyup;
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doonmouseout;
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doonmouseover;
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doonmousemove;
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doonmousedown;
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doonmouseup;
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self);
+end;
+
+function TMSHTMLHTMLButtonElementEvents.Doonselectstart: WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doonfilterchange;
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self);
+end;
+
+function TMSHTMLHTMLButtonElementEvents.Doondragstart: WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self);
+end;
+
+function TMSHTMLHTMLButtonElementEvents.Doonbeforeupdate: WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doonafterupdate;
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self);
+end;
+
+function TMSHTMLHTMLButtonElementEvents.Doonerrorupdate: WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self);
+end;
+
+function TMSHTMLHTMLButtonElementEvents.Doonrowexit: WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doonrowenter;
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doondatasetchanged;
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doondataavailable;
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doondatasetcomplete;
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doonlosecapture;
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doonpropertychange;
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doonscroll;
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doonfocus;
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doonblur;
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doonresize;
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self);
+end;
+
+function TMSHTMLHTMLButtonElementEvents.Doondrag: WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doondragend;
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self);
+end;
+
+function TMSHTMLHTMLButtonElementEvents.Doondragenter: WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self);
+end;
+
+function TMSHTMLHTMLButtonElementEvents.Doondragover: WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doondragleave;
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self);
+end;
+
+function TMSHTMLHTMLButtonElementEvents.Doondrop: WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self);
+end;
+
+function TMSHTMLHTMLButtonElementEvents.Doonbeforecut: WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self);
+end;
+
+function TMSHTMLHTMLButtonElementEvents.Dooncut: WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self);
+end;
+
+function TMSHTMLHTMLButtonElementEvents.Doonbeforecopy: WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self);
+end;
+
+function TMSHTMLHTMLButtonElementEvents.Dooncopy: WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self);
+end;
+
+function TMSHTMLHTMLButtonElementEvents.Doonbeforepaste: WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self);
+end;
+
+function TMSHTMLHTMLButtonElementEvents.Doonpaste: WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self);
+end;
+
+function TMSHTMLHTMLButtonElementEvents.Dooncontextmenu: WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doonrowsdelete;
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doonrowsinserted;
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Dooncellchange;
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doonreadystatechange;
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doonbeforeeditfocus;
+begin
+  if not Assigned(onbeforeeditfocus) then System.Exit;
+  onbeforeeditfocus(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doonlayoutcomplete;
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doonpage;
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self);
+end;
+
+function TMSHTMLHTMLButtonElementEvents.Doonbeforedeactivate: WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self);
+end;
+
+function TMSHTMLHTMLButtonElementEvents.Doonbeforeactivate: WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doonmove;
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self);
+end;
+
+function TMSHTMLHTMLButtonElementEvents.Dooncontrolselect: WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self);
+end;
+
+function TMSHTMLHTMLButtonElementEvents.Doonmovestart: WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doonmoveend;
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self);
+end;
+
+function TMSHTMLHTMLButtonElementEvents.Doonresizestart: WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doonresizeend;
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doonmouseenter;
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doonmouseleave;
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self);
+end;
+
+function TMSHTMLHTMLButtonElementEvents.Doonmousewheel: WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doonactivate;
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doondeactivate;
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doonfocusin;
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents.Doonfocusout;
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self);
+end;
+
+
+
+function TMSHTMLHTMLButtonElementEvents2.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLButtonElementEvents2.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLButtonElementEvents2;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLButtonElementEvents2.Doonhelp(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLButtonElementEvents2.Doonclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLButtonElementEvents2.Doondblclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLButtonElementEvents2.Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Doonkeydown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Doonkeyup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Doonmouseout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Doonmouseover(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Doonmousemove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Doonmousedown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Doonmouseup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLButtonElementEvents2.Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Doonfilterchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLButtonElementEvents2.Doondragstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLButtonElementEvents2.Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Doonafterupdate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLButtonElementEvents2.Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLButtonElementEvents2.Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Doonrowenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Doondatasetchanged(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Doondataavailable(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Doondatasetcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Doonlosecapture(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Doonpropertychange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Doonscroll(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Doonfocus(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Doonblur(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Doonresize(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLButtonElementEvents2.Doondrag(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Doondragend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLButtonElementEvents2.Doondragenter(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLButtonElementEvents2.Doondragover(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Doondragleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLButtonElementEvents2.Doondrop(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLButtonElementEvents2.Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLButtonElementEvents2.Dooncut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLButtonElementEvents2.Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLButtonElementEvents2.Dooncopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLButtonElementEvents2.Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLButtonElementEvents2.Doonpaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLButtonElementEvents2.Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Doonrowsdelete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Doonrowsinserted(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Dooncellchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Doonreadystatechange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Doonlayoutcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Doonpage(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Doonmouseenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Doonmouseleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Doonactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Doondeactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLButtonElementEvents2.Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLButtonElementEvents2.Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Doonfocusin(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Doonfocusout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Doonmove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLButtonElementEvents2.Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLButtonElementEvents2.Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Doonmoveend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLButtonElementEvents2.Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLButtonElementEvents2.Doonresizeend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLButtonElementEvents2.Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self, pEvtObj);
+end;
+
+
+
+function TMSHTMLHTMLMarqueeElementEvents.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp();
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick();
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick();
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress();
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown();
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup();
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout();
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover();
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove();
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown();
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup();
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart();
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange();
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart();
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate();
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate();
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate();
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit();
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter();
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged();
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable();
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete();
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture();
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange();
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll();
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus();
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur();
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize();
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag();
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend();
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter();
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover();
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave();
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop();
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut();
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut();
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy();
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy();
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste();
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste();
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu();
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete();
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted();
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange();
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange();
+        Result := S_OK;
+      end;
+    1027:
+      begin
+        Doonbeforeeditfocus();
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete();
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage();
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate();
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate();
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove();
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect();
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart();
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend();
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart();
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend();
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter();
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave();
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel();
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate();
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate();
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin();
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout();
+        Result := S_OK;
+      end;
+    1001:
+      begin
+        Doonchange();
+        Result := S_OK;
+      end;
+    1006:
+      begin
+        Doonselect();
+        Result := S_OK;
+      end;
+    1009:
+      begin
+        Doonbounce();
+        Result := S_OK;
+      end;
+    1010:
+      begin
+        Doonfinish();
+        Result := S_OK;
+      end;
+    1011:
+      begin
+        Doonstart();
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLMarqueeElementEvents.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLMarqueeElementEvents;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLMarqueeElementEvents.Doonhelp: WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents.Doonclick: WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents.Doondblclick: WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents.Doonkeypress: WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doonkeydown;
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doonkeyup;
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doonmouseout;
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doonmouseover;
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doonmousemove;
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doonmousedown;
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doonmouseup;
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents.Doonselectstart: WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doonfilterchange;
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents.Doondragstart: WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents.Doonbeforeupdate: WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doonafterupdate;
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents.Doonerrorupdate: WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents.Doonrowexit: WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doonrowenter;
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doondatasetchanged;
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doondataavailable;
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doondatasetcomplete;
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doonlosecapture;
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doonpropertychange;
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doonscroll;
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doonfocus;
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doonblur;
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doonresize;
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents.Doondrag: WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doondragend;
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents.Doondragenter: WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents.Doondragover: WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doondragleave;
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents.Doondrop: WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents.Doonbeforecut: WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents.Dooncut: WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents.Doonbeforecopy: WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents.Dooncopy: WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents.Doonbeforepaste: WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents.Doonpaste: WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents.Dooncontextmenu: WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doonrowsdelete;
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doonrowsinserted;
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Dooncellchange;
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doonreadystatechange;
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doonbeforeeditfocus;
+begin
+  if not Assigned(onbeforeeditfocus) then System.Exit;
+  onbeforeeditfocus(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doonlayoutcomplete;
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doonpage;
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents.Doonbeforedeactivate: WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents.Doonbeforeactivate: WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doonmove;
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents.Dooncontrolselect: WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents.Doonmovestart: WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doonmoveend;
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents.Doonresizestart: WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doonresizeend;
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doonmouseenter;
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doonmouseleave;
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents.Doonmousewheel: WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doonactivate;
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doondeactivate;
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doonfocusin;
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doonfocusout;
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doonchange;
+begin
+  if not Assigned(onchange) then System.Exit;
+  onchange(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doonselect;
+begin
+  if not Assigned(onselect) then System.Exit;
+  onselect(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doonbounce;
+begin
+  if not Assigned(onbounce) then System.Exit;
+  onbounce(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doonfinish;
+begin
+  if not Assigned(onfinish) then System.Exit;
+  onfinish(Self);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents.Doonstart;
+begin
+  if not Assigned(onstart) then System.Exit;
+  onstart(Self);
+end;
+
+
+
+function TMSHTMLHTMLMarqueeElementEvents2.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1001:
+      begin
+        Doonchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1006:
+      begin
+        Doonselect(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1009:
+      begin
+        Doonbounce(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1010:
+      begin
+        Doonfinish(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1011:
+      begin
+        Doonstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLMarqueeElementEvents2.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLMarqueeElementEvents2;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLMarqueeElementEvents2.Doonhelp(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents2.Doonclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents2.Doondblclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents2.Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doonkeydown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doonkeyup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doonmouseout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doonmouseover(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doonmousemove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doonmousedown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doonmouseup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents2.Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doonfilterchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents2.Doondragstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents2.Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doonafterupdate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents2.Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents2.Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doonrowenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doondatasetchanged(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doondataavailable(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doondatasetcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doonlosecapture(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doonpropertychange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doonscroll(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doonfocus(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doonblur(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doonresize(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents2.Doondrag(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doondragend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents2.Doondragenter(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents2.Doondragover(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doondragleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents2.Doondrop(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents2.Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents2.Dooncut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents2.Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents2.Dooncopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents2.Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents2.Doonpaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents2.Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doonrowsdelete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doonrowsinserted(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Dooncellchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doonreadystatechange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doonlayoutcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doonpage(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doonmouseenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doonmouseleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doonactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doondeactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents2.Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents2.Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doonfocusin(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doonfocusout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doonmove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents2.Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents2.Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doonmoveend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents2.Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doonresizeend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMarqueeElementEvents2.Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doonchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onchange) then System.Exit;
+  onchange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doonselect(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onselect) then System.Exit;
+  onselect(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doonbounce(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onbounce) then System.Exit;
+  onbounce(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doonfinish(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfinish) then System.Exit;
+  onfinish(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMarqueeElementEvents2.Doonstart(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onstart) then System.Exit;
+  onstart(Self, pEvtObj);
+end;
+
+
+
+function TMSHTMLHTMLWindowEvents.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    1003:
+      begin
+        Doonload();
+        Result := S_OK;
+      end;
+    1008:
+      begin
+        Doonunload();
+        Result := S_OK;
+      end;
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp();
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus();
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur();
+        Result := S_OK;
+      end;
+    1002:
+      begin
+        Doonerror(dps.rgvarg^[pDispIds^[0]].bstrval, dps.rgvarg^[pDispIds^[1]].bstrval, dps.rgvarg^[pDispIds^[2]].lval);
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize();
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll();
+        Result := S_OK;
+      end;
+    1017:
+      begin
+        Doonbeforeunload();
+        Result := S_OK;
+      end;
+    1024:
+      begin
+        Doonbeforeprint();
+        Result := S_OK;
+      end;
+    1025:
+      begin
+        Doonafterprint();
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLWindowEvents.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLWindowEvents;
+end;
+
+//SinkImplementation//
+
+procedure TMSHTMLHTMLWindowEvents.Doonload;
+begin
+  if not Assigned(onload) then System.Exit;
+  onload(Self);
+end;
+
+procedure TMSHTMLHTMLWindowEvents.Doonunload;
+begin
+  if not Assigned(onunload) then System.Exit;
+  onunload(Self);
+end;
+
+function TMSHTMLHTMLWindowEvents.Doonhelp: WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self);
+end;
+
+procedure TMSHTMLHTMLWindowEvents.Doonfocus;
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self);
+end;
+
+procedure TMSHTMLHTMLWindowEvents.Doonblur;
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self);
+end;
+
+procedure TMSHTMLHTMLWindowEvents.Doonerror(const description: WideString; const url: WideString; line: Integer);
+begin
+  if not Assigned(onerror) then System.Exit;
+  onerror(Self, description, url, line);
+end;
+
+procedure TMSHTMLHTMLWindowEvents.Doonresize;
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self);
+end;
+
+procedure TMSHTMLHTMLWindowEvents.Doonscroll;
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self);
+end;
+
+procedure TMSHTMLHTMLWindowEvents.Doonbeforeunload;
+begin
+  if not Assigned(onbeforeunload) then System.Exit;
+  onbeforeunload(Self);
+end;
+
+procedure TMSHTMLHTMLWindowEvents.Doonbeforeprint;
+begin
+  if not Assigned(onbeforeprint) then System.Exit;
+  onbeforeprint(Self);
+end;
+
+procedure TMSHTMLHTMLWindowEvents.Doonafterprint;
+begin
+  if not Assigned(onafterprint) then System.Exit;
+  onafterprint(Self);
+end;
+
+
+
+function TMSHTMLHTMLWindowEvents2.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    1003:
+      begin
+        Doonload(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1008:
+      begin
+        Doonunload(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1002:
+      begin
+        Doonerror(dps.rgvarg^[pDispIds^[0]].bstrval, dps.rgvarg^[pDispIds^[1]].bstrval, dps.rgvarg^[pDispIds^[2]].lval);
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1017:
+      begin
+        Doonbeforeunload(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1024:
+      begin
+        Doonbeforeprint(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1025:
+      begin
+        Doonafterprint(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLWindowEvents2.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLWindowEvents2;
+end;
+
+//SinkImplementation//
+
+procedure TMSHTMLHTMLWindowEvents2.Doonload(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onload) then System.Exit;
+  onload(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLWindowEvents2.Doonunload(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onunload) then System.Exit;
+  onunload(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLWindowEvents2.Doonhelp(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLWindowEvents2.Doonfocus(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLWindowEvents2.Doonblur(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLWindowEvents2.Doonerror(const description: WideString; const url: WideString; line: Integer);
+begin
+  if not Assigned(onerror) then System.Exit;
+  onerror(Self, description, url, line);
+end;
+
+procedure TMSHTMLHTMLWindowEvents2.Doonresize(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLWindowEvents2.Doonscroll(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLWindowEvents2.Doonbeforeunload(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onbeforeunload) then System.Exit;
+  onbeforeunload(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLWindowEvents2.Doonbeforeprint(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onbeforeprint) then System.Exit;
+  onbeforeprint(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLWindowEvents2.Doonafterprint(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onafterprint) then System.Exit;
+  onafterprint(Self, pEvtObj);
+end;
+
+
+
+function TMSHTMLHTMLDocumentEvents.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp();
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick();
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick();
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown();
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup();
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress();
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown();
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove();
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup();
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout();
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover();
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange();
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate();
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate();
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit();
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter();
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart();
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart();
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate();
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu();
+        Result := S_OK;
+      end;
+    1026:
+      begin
+        OleVariant(VarResult^) := Doonstop();
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete();
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted();
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange();
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange();
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged();
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable();
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete();
+        Result := S_OK;
+      end;
+    1027:
+      begin
+        Doonbeforeeditfocus();
+        Result := S_OK;
+      end;
+    1037:
+      begin
+        Doonselectionchange();
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect();
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel();
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin();
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout();
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate();
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate();
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate();
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate();
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLDocumentEvents.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLDocumentEvents;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLDocumentEvents.Doonhelp: WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self);
+end;
+
+function TMSHTMLHTMLDocumentEvents.Doonclick: WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self);
+end;
+
+function TMSHTMLHTMLDocumentEvents.Doondblclick: WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents.Doonkeydown;
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents.Doonkeyup;
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self);
+end;
+
+function TMSHTMLHTMLDocumentEvents.Doonkeypress: WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents.Doonmousedown;
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents.Doonmousemove;
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents.Doonmouseup;
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents.Doonmouseout;
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents.Doonmouseover;
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents.Doonreadystatechange;
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self);
+end;
+
+function TMSHTMLHTMLDocumentEvents.Doonbeforeupdate: WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents.Doonafterupdate;
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self);
+end;
+
+function TMSHTMLHTMLDocumentEvents.Doonrowexit: WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents.Doonrowenter;
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self);
+end;
+
+function TMSHTMLHTMLDocumentEvents.Doondragstart: WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self);
+end;
+
+function TMSHTMLHTMLDocumentEvents.Doonselectstart: WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self);
+end;
+
+function TMSHTMLHTMLDocumentEvents.Doonerrorupdate: WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self);
+end;
+
+function TMSHTMLHTMLDocumentEvents.Dooncontextmenu: WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self);
+end;
+
+function TMSHTMLHTMLDocumentEvents.Doonstop: WordBool;
+begin
+  if not Assigned(onstop) then System.Exit;
+  Result := onstop(Self);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents.Doonrowsdelete;
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents.Doonrowsinserted;
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents.Dooncellchange;
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents.Doonpropertychange;
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents.Doondatasetchanged;
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents.Doondataavailable;
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents.Doondatasetcomplete;
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents.Doonbeforeeditfocus;
+begin
+  if not Assigned(onbeforeeditfocus) then System.Exit;
+  onbeforeeditfocus(Self);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents.Doonselectionchange;
+begin
+  if not Assigned(onselectionchange) then System.Exit;
+  onselectionchange(Self);
+end;
+
+function TMSHTMLHTMLDocumentEvents.Dooncontrolselect: WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self);
+end;
+
+function TMSHTMLHTMLDocumentEvents.Doonmousewheel: WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents.Doonfocusin;
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents.Doonfocusout;
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents.Doonactivate;
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents.Doondeactivate;
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self);
+end;
+
+function TMSHTMLHTMLDocumentEvents.Doonbeforeactivate: WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self);
+end;
+
+function TMSHTMLHTMLDocumentEvents.Doonbeforedeactivate: WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self);
+end;
+
+
+
+function TMSHTMLHTMLDocumentEvents2.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1026:
+      begin
+        OleVariant(VarResult^) := Doonstop(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1027:
+      begin
+        Doonbeforeeditfocus(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1037:
+      begin
+        Doonselectionchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLDocumentEvents2.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLDocumentEvents2;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLDocumentEvents2.Doonhelp(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLDocumentEvents2.Doonclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLDocumentEvents2.Doondblclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents2.Doonkeydown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents2.Doonkeyup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLDocumentEvents2.Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents2.Doonmousedown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents2.Doonmousemove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents2.Doonmouseup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents2.Doonmouseout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents2.Doonmouseover(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents2.Doonreadystatechange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLDocumentEvents2.Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents2.Doonafterupdate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLDocumentEvents2.Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents2.Doonrowenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLDocumentEvents2.Doondragstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLDocumentEvents2.Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLDocumentEvents2.Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLDocumentEvents2.Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLDocumentEvents2.Doonstop(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onstop) then System.Exit;
+  Result := onstop(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents2.Doonrowsdelete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents2.Doonrowsinserted(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents2.Dooncellchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents2.Doonpropertychange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents2.Doondatasetchanged(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents2.Doondataavailable(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents2.Doondatasetcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents2.Doonbeforeeditfocus(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onbeforeeditfocus) then System.Exit;
+  onbeforeeditfocus(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents2.Doonselectionchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onselectionchange) then System.Exit;
+  onselectionchange(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLDocumentEvents2.Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLDocumentEvents2.Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents2.Doonfocusin(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents2.Doonfocusout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents2.Doonactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLDocumentEvents2.Doondeactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLDocumentEvents2.Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLDocumentEvents2.Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self, pEvtObj);
+end;
+
+
+
+function TMSHTMLDWebBridgeEvents.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    1:
+      begin
+        Doonscriptletevent(dps.rgvarg^[pDispIds^[0]].bstrval, OleVariant(dps.rgvarg^[pDispIds^[1]]));
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange();
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick();
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick();
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown();
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup();
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress();
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown();
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove();
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup();
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLDWebBridgeEvents.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := DWebBridgeEvents;
+end;
+
+//SinkImplementation//
+
+procedure TMSHTMLDWebBridgeEvents.Doonscriptletevent(const name: WideString; eventData: OleVariant);
+begin
+  if not Assigned(onscriptletevent) then System.Exit;
+  onscriptletevent(Self, name, eventData);
+end;
+
+procedure TMSHTMLDWebBridgeEvents.Doonreadystatechange;
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self);
+end;
+
+function TMSHTMLDWebBridgeEvents.Doonclick: WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self);
+end;
+
+function TMSHTMLDWebBridgeEvents.Doondblclick: WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self);
+end;
+
+procedure TMSHTMLDWebBridgeEvents.Doonkeydown;
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self);
+end;
+
+procedure TMSHTMLDWebBridgeEvents.Doonkeyup;
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self);
+end;
+
+function TMSHTMLDWebBridgeEvents.Doonkeypress: WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self);
+end;
+
+procedure TMSHTMLDWebBridgeEvents.Doonmousedown;
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self);
+end;
+
+procedure TMSHTMLDWebBridgeEvents.Doonmousemove;
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self);
+end;
+
+procedure TMSHTMLDWebBridgeEvents.Doonmouseup;
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self);
+end;
+
+
+
+function TMSHTMLHTMLControlElementEvents.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp();
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick();
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick();
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress();
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown();
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup();
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout();
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover();
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove();
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown();
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup();
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart();
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange();
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart();
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate();
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate();
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate();
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit();
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter();
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged();
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable();
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete();
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture();
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange();
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll();
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus();
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur();
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize();
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag();
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend();
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter();
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover();
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave();
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop();
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut();
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut();
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy();
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy();
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste();
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste();
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu();
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete();
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted();
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange();
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange();
+        Result := S_OK;
+      end;
+    1027:
+      begin
+        Doonbeforeeditfocus();
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete();
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage();
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate();
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate();
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove();
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect();
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart();
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend();
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart();
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend();
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter();
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave();
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel();
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate();
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate();
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin();
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout();
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLControlElementEvents.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLControlElementEvents;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLControlElementEvents.Doonhelp: WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self);
+end;
+
+function TMSHTMLHTMLControlElementEvents.Doonclick: WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self);
+end;
+
+function TMSHTMLHTMLControlElementEvents.Doondblclick: WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self);
+end;
+
+function TMSHTMLHTMLControlElementEvents.Doonkeypress: WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doonkeydown;
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doonkeyup;
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doonmouseout;
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doonmouseover;
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doonmousemove;
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doonmousedown;
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doonmouseup;
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self);
+end;
+
+function TMSHTMLHTMLControlElementEvents.Doonselectstart: WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doonfilterchange;
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self);
+end;
+
+function TMSHTMLHTMLControlElementEvents.Doondragstart: WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self);
+end;
+
+function TMSHTMLHTMLControlElementEvents.Doonbeforeupdate: WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doonafterupdate;
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self);
+end;
+
+function TMSHTMLHTMLControlElementEvents.Doonerrorupdate: WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self);
+end;
+
+function TMSHTMLHTMLControlElementEvents.Doonrowexit: WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doonrowenter;
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doondatasetchanged;
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doondataavailable;
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doondatasetcomplete;
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doonlosecapture;
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doonpropertychange;
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doonscroll;
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doonfocus;
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doonblur;
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doonresize;
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self);
+end;
+
+function TMSHTMLHTMLControlElementEvents.Doondrag: WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doondragend;
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self);
+end;
+
+function TMSHTMLHTMLControlElementEvents.Doondragenter: WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self);
+end;
+
+function TMSHTMLHTMLControlElementEvents.Doondragover: WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doondragleave;
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self);
+end;
+
+function TMSHTMLHTMLControlElementEvents.Doondrop: WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self);
+end;
+
+function TMSHTMLHTMLControlElementEvents.Doonbeforecut: WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self);
+end;
+
+function TMSHTMLHTMLControlElementEvents.Dooncut: WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self);
+end;
+
+function TMSHTMLHTMLControlElementEvents.Doonbeforecopy: WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self);
+end;
+
+function TMSHTMLHTMLControlElementEvents.Dooncopy: WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self);
+end;
+
+function TMSHTMLHTMLControlElementEvents.Doonbeforepaste: WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self);
+end;
+
+function TMSHTMLHTMLControlElementEvents.Doonpaste: WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self);
+end;
+
+function TMSHTMLHTMLControlElementEvents.Dooncontextmenu: WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doonrowsdelete;
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doonrowsinserted;
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Dooncellchange;
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doonreadystatechange;
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doonbeforeeditfocus;
+begin
+  if not Assigned(onbeforeeditfocus) then System.Exit;
+  onbeforeeditfocus(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doonlayoutcomplete;
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doonpage;
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self);
+end;
+
+function TMSHTMLHTMLControlElementEvents.Doonbeforedeactivate: WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self);
+end;
+
+function TMSHTMLHTMLControlElementEvents.Doonbeforeactivate: WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doonmove;
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self);
+end;
+
+function TMSHTMLHTMLControlElementEvents.Dooncontrolselect: WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self);
+end;
+
+function TMSHTMLHTMLControlElementEvents.Doonmovestart: WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doonmoveend;
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self);
+end;
+
+function TMSHTMLHTMLControlElementEvents.Doonresizestart: WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doonresizeend;
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doonmouseenter;
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doonmouseleave;
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self);
+end;
+
+function TMSHTMLHTMLControlElementEvents.Doonmousewheel: WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doonactivate;
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doondeactivate;
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doonfocusin;
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents.Doonfocusout;
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self);
+end;
+
+
+
+function TMSHTMLHTMLControlElementEvents2.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLControlElementEvents2.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLControlElementEvents2;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLControlElementEvents2.Doonhelp(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLControlElementEvents2.Doonclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLControlElementEvents2.Doondblclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLControlElementEvents2.Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Doonkeydown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Doonkeyup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Doonmouseout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Doonmouseover(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Doonmousemove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Doonmousedown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Doonmouseup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLControlElementEvents2.Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Doonfilterchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLControlElementEvents2.Doondragstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLControlElementEvents2.Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Doonafterupdate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLControlElementEvents2.Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLControlElementEvents2.Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Doonrowenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Doondatasetchanged(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Doondataavailable(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Doondatasetcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Doonlosecapture(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Doonpropertychange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Doonscroll(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Doonfocus(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Doonblur(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Doonresize(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLControlElementEvents2.Doondrag(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Doondragend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLControlElementEvents2.Doondragenter(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLControlElementEvents2.Doondragover(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Doondragleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLControlElementEvents2.Doondrop(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLControlElementEvents2.Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLControlElementEvents2.Dooncut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLControlElementEvents2.Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLControlElementEvents2.Dooncopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLControlElementEvents2.Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLControlElementEvents2.Doonpaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLControlElementEvents2.Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Doonrowsdelete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Doonrowsinserted(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Dooncellchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Doonreadystatechange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Doonlayoutcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Doonpage(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Doonmouseenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Doonmouseleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Doonactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Doondeactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLControlElementEvents2.Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLControlElementEvents2.Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Doonfocusin(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Doonfocusout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Doonmove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLControlElementEvents2.Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLControlElementEvents2.Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Doonmoveend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLControlElementEvents2.Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLControlElementEvents2.Doonresizeend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLControlElementEvents2.Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self, pEvtObj);
+end;
+
+
+
+function TMSHTMLHTMLMapEvents.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp();
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick();
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick();
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress();
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown();
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup();
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout();
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover();
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove();
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown();
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup();
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart();
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange();
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart();
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate();
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate();
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate();
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit();
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter();
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged();
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable();
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete();
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture();
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange();
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll();
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus();
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur();
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize();
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag();
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend();
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter();
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover();
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave();
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop();
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut();
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut();
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy();
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy();
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste();
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste();
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu();
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete();
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted();
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange();
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange();
+        Result := S_OK;
+      end;
+    1027:
+      begin
+        Doonbeforeeditfocus();
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete();
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage();
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate();
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate();
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove();
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect();
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart();
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend();
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart();
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend();
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter();
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave();
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel();
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate();
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate();
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin();
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout();
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLMapEvents.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLMapEvents;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLMapEvents.Doonhelp: WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self);
+end;
+
+function TMSHTMLHTMLMapEvents.Doonclick: WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self);
+end;
+
+function TMSHTMLHTMLMapEvents.Doondblclick: WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self);
+end;
+
+function TMSHTMLHTMLMapEvents.Doonkeypress: WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doonkeydown;
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doonkeyup;
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doonmouseout;
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doonmouseover;
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doonmousemove;
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doonmousedown;
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doonmouseup;
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self);
+end;
+
+function TMSHTMLHTMLMapEvents.Doonselectstart: WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doonfilterchange;
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self);
+end;
+
+function TMSHTMLHTMLMapEvents.Doondragstart: WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self);
+end;
+
+function TMSHTMLHTMLMapEvents.Doonbeforeupdate: WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doonafterupdate;
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self);
+end;
+
+function TMSHTMLHTMLMapEvents.Doonerrorupdate: WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self);
+end;
+
+function TMSHTMLHTMLMapEvents.Doonrowexit: WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doonrowenter;
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doondatasetchanged;
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doondataavailable;
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doondatasetcomplete;
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doonlosecapture;
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doonpropertychange;
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doonscroll;
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doonfocus;
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doonblur;
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doonresize;
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self);
+end;
+
+function TMSHTMLHTMLMapEvents.Doondrag: WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doondragend;
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self);
+end;
+
+function TMSHTMLHTMLMapEvents.Doondragenter: WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self);
+end;
+
+function TMSHTMLHTMLMapEvents.Doondragover: WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doondragleave;
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self);
+end;
+
+function TMSHTMLHTMLMapEvents.Doondrop: WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self);
+end;
+
+function TMSHTMLHTMLMapEvents.Doonbeforecut: WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self);
+end;
+
+function TMSHTMLHTMLMapEvents.Dooncut: WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self);
+end;
+
+function TMSHTMLHTMLMapEvents.Doonbeforecopy: WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self);
+end;
+
+function TMSHTMLHTMLMapEvents.Dooncopy: WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self);
+end;
+
+function TMSHTMLHTMLMapEvents.Doonbeforepaste: WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self);
+end;
+
+function TMSHTMLHTMLMapEvents.Doonpaste: WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self);
+end;
+
+function TMSHTMLHTMLMapEvents.Dooncontextmenu: WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doonrowsdelete;
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doonrowsinserted;
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Dooncellchange;
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doonreadystatechange;
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doonbeforeeditfocus;
+begin
+  if not Assigned(onbeforeeditfocus) then System.Exit;
+  onbeforeeditfocus(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doonlayoutcomplete;
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doonpage;
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self);
+end;
+
+function TMSHTMLHTMLMapEvents.Doonbeforedeactivate: WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self);
+end;
+
+function TMSHTMLHTMLMapEvents.Doonbeforeactivate: WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doonmove;
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self);
+end;
+
+function TMSHTMLHTMLMapEvents.Dooncontrolselect: WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self);
+end;
+
+function TMSHTMLHTMLMapEvents.Doonmovestart: WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doonmoveend;
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self);
+end;
+
+function TMSHTMLHTMLMapEvents.Doonresizestart: WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doonresizeend;
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doonmouseenter;
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doonmouseleave;
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self);
+end;
+
+function TMSHTMLHTMLMapEvents.Doonmousewheel: WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doonactivate;
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doondeactivate;
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doonfocusin;
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self);
+end;
+
+procedure TMSHTMLHTMLMapEvents.Doonfocusout;
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self);
+end;
+
+
+
+function TMSHTMLHTMLMapEvents2.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLMapEvents2.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLMapEvents2;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLMapEvents2.Doonhelp(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMapEvents2.Doonclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMapEvents2.Doondblclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMapEvents2.Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Doonkeydown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Doonkeyup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Doonmouseout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Doonmouseover(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Doonmousemove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Doonmousedown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Doonmouseup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMapEvents2.Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Doonfilterchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMapEvents2.Doondragstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMapEvents2.Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Doonafterupdate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMapEvents2.Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMapEvents2.Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Doonrowenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Doondatasetchanged(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Doondataavailable(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Doondatasetcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Doonlosecapture(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Doonpropertychange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Doonscroll(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Doonfocus(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Doonblur(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Doonresize(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMapEvents2.Doondrag(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Doondragend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMapEvents2.Doondragenter(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMapEvents2.Doondragover(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Doondragleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMapEvents2.Doondrop(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMapEvents2.Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMapEvents2.Dooncut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMapEvents2.Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMapEvents2.Dooncopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMapEvents2.Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMapEvents2.Doonpaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMapEvents2.Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Doonrowsdelete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Doonrowsinserted(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Dooncellchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Doonreadystatechange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Doonlayoutcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Doonpage(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Doonmouseenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Doonmouseleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Doonactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Doondeactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMapEvents2.Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMapEvents2.Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Doonfocusin(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Doonfocusout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Doonmove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMapEvents2.Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMapEvents2.Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Doonmoveend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMapEvents2.Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLMapEvents2.Doonresizeend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLMapEvents2.Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self, pEvtObj);
+end;
+
+
+
+function TMSHTMLHTMLAreaEvents.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp();
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick();
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick();
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress();
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown();
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup();
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout();
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover();
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove();
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown();
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup();
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart();
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange();
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart();
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate();
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate();
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate();
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit();
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter();
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged();
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable();
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete();
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture();
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange();
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll();
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus();
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur();
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize();
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag();
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend();
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter();
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover();
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave();
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop();
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut();
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut();
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy();
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy();
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste();
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste();
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu();
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete();
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted();
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange();
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange();
+        Result := S_OK;
+      end;
+    1027:
+      begin
+        Doonbeforeeditfocus();
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete();
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage();
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate();
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate();
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove();
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect();
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart();
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend();
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart();
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend();
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter();
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave();
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel();
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate();
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate();
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin();
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout();
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLAreaEvents.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLAreaEvents;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLAreaEvents.Doonhelp: WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self);
+end;
+
+function TMSHTMLHTMLAreaEvents.Doonclick: WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self);
+end;
+
+function TMSHTMLHTMLAreaEvents.Doondblclick: WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self);
+end;
+
+function TMSHTMLHTMLAreaEvents.Doonkeypress: WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doonkeydown;
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doonkeyup;
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doonmouseout;
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doonmouseover;
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doonmousemove;
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doonmousedown;
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doonmouseup;
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self);
+end;
+
+function TMSHTMLHTMLAreaEvents.Doonselectstart: WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doonfilterchange;
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self);
+end;
+
+function TMSHTMLHTMLAreaEvents.Doondragstart: WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self);
+end;
+
+function TMSHTMLHTMLAreaEvents.Doonbeforeupdate: WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doonafterupdate;
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self);
+end;
+
+function TMSHTMLHTMLAreaEvents.Doonerrorupdate: WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self);
+end;
+
+function TMSHTMLHTMLAreaEvents.Doonrowexit: WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doonrowenter;
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doondatasetchanged;
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doondataavailable;
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doondatasetcomplete;
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doonlosecapture;
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doonpropertychange;
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doonscroll;
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doonfocus;
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doonblur;
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doonresize;
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self);
+end;
+
+function TMSHTMLHTMLAreaEvents.Doondrag: WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doondragend;
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self);
+end;
+
+function TMSHTMLHTMLAreaEvents.Doondragenter: WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self);
+end;
+
+function TMSHTMLHTMLAreaEvents.Doondragover: WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doondragleave;
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self);
+end;
+
+function TMSHTMLHTMLAreaEvents.Doondrop: WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self);
+end;
+
+function TMSHTMLHTMLAreaEvents.Doonbeforecut: WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self);
+end;
+
+function TMSHTMLHTMLAreaEvents.Dooncut: WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self);
+end;
+
+function TMSHTMLHTMLAreaEvents.Doonbeforecopy: WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self);
+end;
+
+function TMSHTMLHTMLAreaEvents.Dooncopy: WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self);
+end;
+
+function TMSHTMLHTMLAreaEvents.Doonbeforepaste: WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self);
+end;
+
+function TMSHTMLHTMLAreaEvents.Doonpaste: WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self);
+end;
+
+function TMSHTMLHTMLAreaEvents.Dooncontextmenu: WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doonrowsdelete;
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doonrowsinserted;
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Dooncellchange;
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doonreadystatechange;
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doonbeforeeditfocus;
+begin
+  if not Assigned(onbeforeeditfocus) then System.Exit;
+  onbeforeeditfocus(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doonlayoutcomplete;
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doonpage;
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self);
+end;
+
+function TMSHTMLHTMLAreaEvents.Doonbeforedeactivate: WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self);
+end;
+
+function TMSHTMLHTMLAreaEvents.Doonbeforeactivate: WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doonmove;
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self);
+end;
+
+function TMSHTMLHTMLAreaEvents.Dooncontrolselect: WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self);
+end;
+
+function TMSHTMLHTMLAreaEvents.Doonmovestart: WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doonmoveend;
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self);
+end;
+
+function TMSHTMLHTMLAreaEvents.Doonresizestart: WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doonresizeend;
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doonmouseenter;
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doonmouseleave;
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self);
+end;
+
+function TMSHTMLHTMLAreaEvents.Doonmousewheel: WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doonactivate;
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doondeactivate;
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doonfocusin;
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self);
+end;
+
+procedure TMSHTMLHTMLAreaEvents.Doonfocusout;
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self);
+end;
+
+
+
+function TMSHTMLHTMLAreaEvents2.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLAreaEvents2.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLAreaEvents2;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLAreaEvents2.Doonhelp(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAreaEvents2.Doonclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAreaEvents2.Doondblclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAreaEvents2.Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Doonkeydown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Doonkeyup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Doonmouseout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Doonmouseover(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Doonmousemove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Doonmousedown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Doonmouseup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAreaEvents2.Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Doonfilterchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAreaEvents2.Doondragstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAreaEvents2.Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Doonafterupdate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAreaEvents2.Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAreaEvents2.Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Doonrowenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Doondatasetchanged(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Doondataavailable(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Doondatasetcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Doonlosecapture(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Doonpropertychange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Doonscroll(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Doonfocus(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Doonblur(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Doonresize(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAreaEvents2.Doondrag(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Doondragend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAreaEvents2.Doondragenter(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAreaEvents2.Doondragover(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Doondragleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAreaEvents2.Doondrop(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAreaEvents2.Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAreaEvents2.Dooncut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAreaEvents2.Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAreaEvents2.Dooncopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAreaEvents2.Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAreaEvents2.Doonpaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAreaEvents2.Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Doonrowsdelete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Doonrowsinserted(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Dooncellchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Doonreadystatechange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Doonlayoutcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Doonpage(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Doonmouseenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Doonmouseleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Doonactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Doondeactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAreaEvents2.Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAreaEvents2.Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Doonfocusin(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Doonfocusout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Doonmove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAreaEvents2.Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAreaEvents2.Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Doonmoveend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAreaEvents2.Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLAreaEvents2.Doonresizeend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLAreaEvents2.Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self, pEvtObj);
+end;
+
+
+
+function TMSHTMLHTMLTableEvents.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp();
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick();
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick();
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress();
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown();
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup();
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout();
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover();
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove();
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown();
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup();
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart();
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange();
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart();
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate();
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate();
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate();
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit();
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter();
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged();
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable();
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete();
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture();
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange();
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll();
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus();
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur();
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize();
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag();
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend();
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter();
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover();
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave();
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop();
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut();
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut();
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy();
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy();
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste();
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste();
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu();
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete();
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted();
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange();
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange();
+        Result := S_OK;
+      end;
+    1027:
+      begin
+        Doonbeforeeditfocus();
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete();
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage();
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate();
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate();
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove();
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect();
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart();
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend();
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart();
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend();
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter();
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave();
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel();
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate();
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate();
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin();
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout();
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLTableEvents.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLTableEvents;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLTableEvents.Doonhelp: WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self);
+end;
+
+function TMSHTMLHTMLTableEvents.Doonclick: WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self);
+end;
+
+function TMSHTMLHTMLTableEvents.Doondblclick: WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self);
+end;
+
+function TMSHTMLHTMLTableEvents.Doonkeypress: WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doonkeydown;
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doonkeyup;
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doonmouseout;
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doonmouseover;
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doonmousemove;
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doonmousedown;
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doonmouseup;
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self);
+end;
+
+function TMSHTMLHTMLTableEvents.Doonselectstart: WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doonfilterchange;
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self);
+end;
+
+function TMSHTMLHTMLTableEvents.Doondragstart: WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self);
+end;
+
+function TMSHTMLHTMLTableEvents.Doonbeforeupdate: WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doonafterupdate;
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self);
+end;
+
+function TMSHTMLHTMLTableEvents.Doonerrorupdate: WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self);
+end;
+
+function TMSHTMLHTMLTableEvents.Doonrowexit: WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doonrowenter;
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doondatasetchanged;
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doondataavailable;
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doondatasetcomplete;
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doonlosecapture;
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doonpropertychange;
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doonscroll;
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doonfocus;
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doonblur;
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doonresize;
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self);
+end;
+
+function TMSHTMLHTMLTableEvents.Doondrag: WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doondragend;
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self);
+end;
+
+function TMSHTMLHTMLTableEvents.Doondragenter: WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self);
+end;
+
+function TMSHTMLHTMLTableEvents.Doondragover: WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doondragleave;
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self);
+end;
+
+function TMSHTMLHTMLTableEvents.Doondrop: WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self);
+end;
+
+function TMSHTMLHTMLTableEvents.Doonbeforecut: WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self);
+end;
+
+function TMSHTMLHTMLTableEvents.Dooncut: WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self);
+end;
+
+function TMSHTMLHTMLTableEvents.Doonbeforecopy: WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self);
+end;
+
+function TMSHTMLHTMLTableEvents.Dooncopy: WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self);
+end;
+
+function TMSHTMLHTMLTableEvents.Doonbeforepaste: WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self);
+end;
+
+function TMSHTMLHTMLTableEvents.Doonpaste: WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self);
+end;
+
+function TMSHTMLHTMLTableEvents.Dooncontextmenu: WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doonrowsdelete;
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doonrowsinserted;
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Dooncellchange;
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doonreadystatechange;
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doonbeforeeditfocus;
+begin
+  if not Assigned(onbeforeeditfocus) then System.Exit;
+  onbeforeeditfocus(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doonlayoutcomplete;
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doonpage;
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self);
+end;
+
+function TMSHTMLHTMLTableEvents.Doonbeforedeactivate: WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self);
+end;
+
+function TMSHTMLHTMLTableEvents.Doonbeforeactivate: WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doonmove;
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self);
+end;
+
+function TMSHTMLHTMLTableEvents.Dooncontrolselect: WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self);
+end;
+
+function TMSHTMLHTMLTableEvents.Doonmovestart: WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doonmoveend;
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self);
+end;
+
+function TMSHTMLHTMLTableEvents.Doonresizestart: WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doonresizeend;
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doonmouseenter;
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doonmouseleave;
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self);
+end;
+
+function TMSHTMLHTMLTableEvents.Doonmousewheel: WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doonactivate;
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doondeactivate;
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doonfocusin;
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self);
+end;
+
+procedure TMSHTMLHTMLTableEvents.Doonfocusout;
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self);
+end;
+
+
+
+function TMSHTMLHTMLTableEvents2.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLTableEvents2.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLTableEvents2;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLTableEvents2.Doonhelp(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTableEvents2.Doonclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTableEvents2.Doondblclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTableEvents2.Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Doonkeydown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Doonkeyup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Doonmouseout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Doonmouseover(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Doonmousemove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Doonmousedown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Doonmouseup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTableEvents2.Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Doonfilterchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTableEvents2.Doondragstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTableEvents2.Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Doonafterupdate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTableEvents2.Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTableEvents2.Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Doonrowenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Doondatasetchanged(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Doondataavailable(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Doondatasetcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Doonlosecapture(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Doonpropertychange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Doonscroll(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Doonfocus(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Doonblur(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Doonresize(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTableEvents2.Doondrag(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Doondragend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTableEvents2.Doondragenter(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTableEvents2.Doondragover(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Doondragleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTableEvents2.Doondrop(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTableEvents2.Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTableEvents2.Dooncut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTableEvents2.Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTableEvents2.Dooncopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTableEvents2.Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTableEvents2.Doonpaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTableEvents2.Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Doonrowsdelete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Doonrowsinserted(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Dooncellchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Doonreadystatechange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Doonlayoutcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Doonpage(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Doonmouseenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Doonmouseleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Doonactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Doondeactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTableEvents2.Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTableEvents2.Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Doonfocusin(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Doonfocusout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Doonmove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTableEvents2.Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTableEvents2.Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Doonmoveend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTableEvents2.Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLTableEvents2.Doonresizeend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLTableEvents2.Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self, pEvtObj);
+end;
+
+
+
+function TMSHTMLHTMLScriptEvents.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp();
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick();
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick();
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress();
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown();
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup();
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout();
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover();
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove();
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown();
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup();
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart();
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange();
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart();
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate();
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate();
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate();
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit();
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter();
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged();
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable();
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete();
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture();
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange();
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll();
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus();
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur();
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize();
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag();
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend();
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter();
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover();
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave();
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop();
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut();
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut();
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy();
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy();
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste();
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste();
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu();
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete();
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted();
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange();
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange();
+        Result := S_OK;
+      end;
+    1027:
+      begin
+        Doonbeforeeditfocus();
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete();
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage();
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate();
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate();
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove();
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect();
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart();
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend();
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart();
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend();
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter();
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave();
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel();
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate();
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate();
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin();
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout();
+        Result := S_OK;
+      end;
+    1002:
+      begin
+        Doonerror();
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLScriptEvents.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLScriptEvents;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLScriptEvents.Doonhelp: WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self);
+end;
+
+function TMSHTMLHTMLScriptEvents.Doonclick: WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self);
+end;
+
+function TMSHTMLHTMLScriptEvents.Doondblclick: WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self);
+end;
+
+function TMSHTMLHTMLScriptEvents.Doonkeypress: WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doonkeydown;
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doonkeyup;
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doonmouseout;
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doonmouseover;
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doonmousemove;
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doonmousedown;
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doonmouseup;
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self);
+end;
+
+function TMSHTMLHTMLScriptEvents.Doonselectstart: WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doonfilterchange;
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self);
+end;
+
+function TMSHTMLHTMLScriptEvents.Doondragstart: WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self);
+end;
+
+function TMSHTMLHTMLScriptEvents.Doonbeforeupdate: WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doonafterupdate;
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self);
+end;
+
+function TMSHTMLHTMLScriptEvents.Doonerrorupdate: WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self);
+end;
+
+function TMSHTMLHTMLScriptEvents.Doonrowexit: WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doonrowenter;
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doondatasetchanged;
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doondataavailable;
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doondatasetcomplete;
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doonlosecapture;
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doonpropertychange;
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doonscroll;
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doonfocus;
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doonblur;
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doonresize;
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self);
+end;
+
+function TMSHTMLHTMLScriptEvents.Doondrag: WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doondragend;
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self);
+end;
+
+function TMSHTMLHTMLScriptEvents.Doondragenter: WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self);
+end;
+
+function TMSHTMLHTMLScriptEvents.Doondragover: WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doondragleave;
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self);
+end;
+
+function TMSHTMLHTMLScriptEvents.Doondrop: WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self);
+end;
+
+function TMSHTMLHTMLScriptEvents.Doonbeforecut: WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self);
+end;
+
+function TMSHTMLHTMLScriptEvents.Dooncut: WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self);
+end;
+
+function TMSHTMLHTMLScriptEvents.Doonbeforecopy: WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self);
+end;
+
+function TMSHTMLHTMLScriptEvents.Dooncopy: WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self);
+end;
+
+function TMSHTMLHTMLScriptEvents.Doonbeforepaste: WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self);
+end;
+
+function TMSHTMLHTMLScriptEvents.Doonpaste: WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self);
+end;
+
+function TMSHTMLHTMLScriptEvents.Dooncontextmenu: WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doonrowsdelete;
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doonrowsinserted;
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Dooncellchange;
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doonreadystatechange;
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doonbeforeeditfocus;
+begin
+  if not Assigned(onbeforeeditfocus) then System.Exit;
+  onbeforeeditfocus(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doonlayoutcomplete;
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doonpage;
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self);
+end;
+
+function TMSHTMLHTMLScriptEvents.Doonbeforedeactivate: WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self);
+end;
+
+function TMSHTMLHTMLScriptEvents.Doonbeforeactivate: WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doonmove;
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self);
+end;
+
+function TMSHTMLHTMLScriptEvents.Dooncontrolselect: WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self);
+end;
+
+function TMSHTMLHTMLScriptEvents.Doonmovestart: WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doonmoveend;
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self);
+end;
+
+function TMSHTMLHTMLScriptEvents.Doonresizestart: WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doonresizeend;
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doonmouseenter;
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doonmouseleave;
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self);
+end;
+
+function TMSHTMLHTMLScriptEvents.Doonmousewheel: WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doonactivate;
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doondeactivate;
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doonfocusin;
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doonfocusout;
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self);
+end;
+
+procedure TMSHTMLHTMLScriptEvents.Doonerror;
+begin
+  if not Assigned(onerror) then System.Exit;
+  onerror(Self);
+end;
+
+
+
+function TMSHTMLHTMLScriptEvents2.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1002:
+      begin
+        Doonerror(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLScriptEvents2.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLScriptEvents2;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLScriptEvents2.Doonhelp(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLScriptEvents2.Doonclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLScriptEvents2.Doondblclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLScriptEvents2.Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doonkeydown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doonkeyup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doonmouseout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doonmouseover(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doonmousemove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doonmousedown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doonmouseup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLScriptEvents2.Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doonfilterchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLScriptEvents2.Doondragstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLScriptEvents2.Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doonafterupdate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLScriptEvents2.Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLScriptEvents2.Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doonrowenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doondatasetchanged(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doondataavailable(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doondatasetcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doonlosecapture(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doonpropertychange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doonscroll(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doonfocus(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doonblur(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doonresize(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLScriptEvents2.Doondrag(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doondragend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLScriptEvents2.Doondragenter(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLScriptEvents2.Doondragover(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doondragleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLScriptEvents2.Doondrop(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLScriptEvents2.Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLScriptEvents2.Dooncut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLScriptEvents2.Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLScriptEvents2.Dooncopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLScriptEvents2.Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLScriptEvents2.Doonpaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLScriptEvents2.Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doonrowsdelete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doonrowsinserted(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Dooncellchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doonreadystatechange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doonlayoutcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doonpage(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doonmouseenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doonmouseleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doonactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doondeactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLScriptEvents2.Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLScriptEvents2.Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doonfocusin(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doonfocusout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doonmove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLScriptEvents2.Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLScriptEvents2.Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doonmoveend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLScriptEvents2.Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doonresizeend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLScriptEvents2.Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLScriptEvents2.Doonerror(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onerror) then System.Exit;
+  onerror(Self, pEvtObj);
+end;
+
+
+
+function TMSHTMLHTMLObjectElementEvents.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate();
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate();
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate();
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit();
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter();
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged();
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable();
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete();
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        OleVariant(VarResult^) := Doonerror();
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete();
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted();
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange();
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        Doonreadystatechange();
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLObjectElementEvents.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLObjectElementEvents;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLObjectElementEvents.Doonbeforeupdate: WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self);
+end;
+
+procedure TMSHTMLHTMLObjectElementEvents.Doonafterupdate;
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self);
+end;
+
+function TMSHTMLHTMLObjectElementEvents.Doonerrorupdate: WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self);
+end;
+
+function TMSHTMLHTMLObjectElementEvents.Doonrowexit: WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self);
+end;
+
+procedure TMSHTMLHTMLObjectElementEvents.Doonrowenter;
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self);
+end;
+
+procedure TMSHTMLHTMLObjectElementEvents.Doondatasetchanged;
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self);
+end;
+
+procedure TMSHTMLHTMLObjectElementEvents.Doondataavailable;
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self);
+end;
+
+procedure TMSHTMLHTMLObjectElementEvents.Doondatasetcomplete;
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self);
+end;
+
+function TMSHTMLHTMLObjectElementEvents.Doonerror: WordBool;
+begin
+  if not Assigned(onerror) then System.Exit;
+  Result := onerror(Self);
+end;
+
+procedure TMSHTMLHTMLObjectElementEvents.Doonrowsdelete;
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self);
+end;
+
+procedure TMSHTMLHTMLObjectElementEvents.Doonrowsinserted;
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self);
+end;
+
+procedure TMSHTMLHTMLObjectElementEvents.Dooncellchange;
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self);
+end;
+
+procedure TMSHTMLHTMLObjectElementEvents.Doonreadystatechange;
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self);
+end;
+
+
+
+function TMSHTMLHTMLObjectElementEvents2.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        OleVariant(VarResult^) := Doonerror(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        Doonreadystatechange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLObjectElementEvents2.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLObjectElementEvents2;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLObjectElementEvents2.Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLObjectElementEvents2.Doonafterupdate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLObjectElementEvents2.Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLObjectElementEvents2.Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLObjectElementEvents2.Doonrowenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLObjectElementEvents2.Doondatasetchanged(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLObjectElementEvents2.Doondataavailable(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLObjectElementEvents2.Doondatasetcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLObjectElementEvents2.Doonerror(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onerror) then System.Exit;
+  Result := onerror(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLObjectElementEvents2.Doonrowsdelete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLObjectElementEvents2.Doonrowsinserted(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLObjectElementEvents2.Dooncellchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLObjectElementEvents2.Doonreadystatechange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self, pEvtObj);
+end;
+
+
+
+function TMSHTMLHTMLFrameSiteEvents.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp();
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick();
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick();
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress();
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown();
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup();
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout();
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover();
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove();
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown();
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup();
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart();
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange();
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart();
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate();
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate();
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate();
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit();
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter();
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged();
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable();
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete();
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture();
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange();
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll();
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus();
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur();
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize();
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag();
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend();
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter();
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover();
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave();
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop();
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut();
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut();
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy();
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy();
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste();
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste();
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu();
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete();
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted();
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange();
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange();
+        Result := S_OK;
+      end;
+    1027:
+      begin
+        Doonbeforeeditfocus();
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete();
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage();
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate();
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate();
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove();
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect();
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart();
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend();
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart();
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend();
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter();
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave();
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel();
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate();
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate();
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin();
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout();
+        Result := S_OK;
+      end;
+    1003:
+      begin
+        Doonload();
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLFrameSiteEvents.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLFrameSiteEvents;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLFrameSiteEvents.Doonhelp: WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents.Doonclick: WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents.Doondblclick: WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents.Doonkeypress: WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doonkeydown;
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doonkeyup;
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doonmouseout;
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doonmouseover;
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doonmousemove;
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doonmousedown;
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doonmouseup;
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents.Doonselectstart: WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doonfilterchange;
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents.Doondragstart: WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents.Doonbeforeupdate: WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doonafterupdate;
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents.Doonerrorupdate: WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents.Doonrowexit: WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doonrowenter;
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doondatasetchanged;
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doondataavailable;
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doondatasetcomplete;
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doonlosecapture;
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doonpropertychange;
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doonscroll;
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doonfocus;
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doonblur;
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doonresize;
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents.Doondrag: WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doondragend;
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents.Doondragenter: WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents.Doondragover: WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doondragleave;
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents.Doondrop: WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents.Doonbeforecut: WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents.Dooncut: WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents.Doonbeforecopy: WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents.Dooncopy: WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents.Doonbeforepaste: WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents.Doonpaste: WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents.Dooncontextmenu: WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doonrowsdelete;
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doonrowsinserted;
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Dooncellchange;
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doonreadystatechange;
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doonbeforeeditfocus;
+begin
+  if not Assigned(onbeforeeditfocus) then System.Exit;
+  onbeforeeditfocus(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doonlayoutcomplete;
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doonpage;
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents.Doonbeforedeactivate: WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents.Doonbeforeactivate: WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doonmove;
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents.Dooncontrolselect: WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents.Doonmovestart: WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doonmoveend;
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents.Doonresizestart: WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doonresizeend;
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doonmouseenter;
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doonmouseleave;
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents.Doonmousewheel: WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doonactivate;
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doondeactivate;
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doonfocusin;
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doonfocusout;
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents.Doonload;
+begin
+  if not Assigned(onload) then System.Exit;
+  onload(Self);
+end;
+
+
+
+function TMSHTMLHTMLFrameSiteEvents2.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1003:
+      begin
+        Doonload(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLFrameSiteEvents2.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLFrameSiteEvents2;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLFrameSiteEvents2.Doonhelp(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents2.Doonclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents2.Doondblclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents2.Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doonkeydown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doonkeyup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doonmouseout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doonmouseover(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doonmousemove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doonmousedown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doonmouseup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents2.Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doonfilterchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents2.Doondragstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents2.Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doonafterupdate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents2.Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents2.Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doonrowenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doondatasetchanged(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doondataavailable(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doondatasetcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doonlosecapture(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doonpropertychange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doonscroll(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doonfocus(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doonblur(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doonresize(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents2.Doondrag(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doondragend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents2.Doondragenter(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents2.Doondragover(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doondragleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents2.Doondrop(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents2.Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents2.Dooncut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents2.Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents2.Dooncopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents2.Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents2.Doonpaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents2.Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doonrowsdelete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doonrowsinserted(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Dooncellchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doonreadystatechange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doonlayoutcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doonpage(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doonmouseenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doonmouseleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doonactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doondeactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents2.Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents2.Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doonfocusin(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doonfocusout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doonmove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents2.Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents2.Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doonmoveend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents2.Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doonresizeend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLFrameSiteEvents2.Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLFrameSiteEvents2.Doonload(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onload) then System.Exit;
+  onload(Self, pEvtObj);
+end;
+
+
+
+function TMSHTMLHTMLStyleElementEvents.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp();
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick();
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick();
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress();
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown();
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup();
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout();
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover();
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove();
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown();
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup();
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart();
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange();
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart();
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate();
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate();
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate();
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit();
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter();
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged();
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable();
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete();
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture();
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange();
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll();
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus();
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur();
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize();
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag();
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend();
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter();
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover();
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave();
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop();
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut();
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut();
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy();
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy();
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste();
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste();
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu();
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete();
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted();
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange();
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange();
+        Result := S_OK;
+      end;
+    1027:
+      begin
+        Doonbeforeeditfocus();
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete();
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage();
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate();
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate();
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove();
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect();
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart();
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend();
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart();
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend();
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter();
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave();
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel();
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate();
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate();
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin();
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout();
+        Result := S_OK;
+      end;
+    1003:
+      begin
+        Doonload();
+        Result := S_OK;
+      end;
+    1002:
+      begin
+        Doonerror();
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLStyleElementEvents.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLStyleElementEvents;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLStyleElementEvents.Doonhelp: WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self);
+end;
+
+function TMSHTMLHTMLStyleElementEvents.Doonclick: WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self);
+end;
+
+function TMSHTMLHTMLStyleElementEvents.Doondblclick: WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self);
+end;
+
+function TMSHTMLHTMLStyleElementEvents.Doonkeypress: WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doonkeydown;
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doonkeyup;
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doonmouseout;
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doonmouseover;
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doonmousemove;
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doonmousedown;
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doonmouseup;
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self);
+end;
+
+function TMSHTMLHTMLStyleElementEvents.Doonselectstart: WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doonfilterchange;
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self);
+end;
+
+function TMSHTMLHTMLStyleElementEvents.Doondragstart: WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self);
+end;
+
+function TMSHTMLHTMLStyleElementEvents.Doonbeforeupdate: WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doonafterupdate;
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self);
+end;
+
+function TMSHTMLHTMLStyleElementEvents.Doonerrorupdate: WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self);
+end;
+
+function TMSHTMLHTMLStyleElementEvents.Doonrowexit: WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doonrowenter;
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doondatasetchanged;
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doondataavailable;
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doondatasetcomplete;
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doonlosecapture;
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doonpropertychange;
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doonscroll;
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doonfocus;
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doonblur;
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doonresize;
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self);
+end;
+
+function TMSHTMLHTMLStyleElementEvents.Doondrag: WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doondragend;
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self);
+end;
+
+function TMSHTMLHTMLStyleElementEvents.Doondragenter: WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self);
+end;
+
+function TMSHTMLHTMLStyleElementEvents.Doondragover: WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doondragleave;
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self);
+end;
+
+function TMSHTMLHTMLStyleElementEvents.Doondrop: WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self);
+end;
+
+function TMSHTMLHTMLStyleElementEvents.Doonbeforecut: WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self);
+end;
+
+function TMSHTMLHTMLStyleElementEvents.Dooncut: WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self);
+end;
+
+function TMSHTMLHTMLStyleElementEvents.Doonbeforecopy: WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self);
+end;
+
+function TMSHTMLHTMLStyleElementEvents.Dooncopy: WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self);
+end;
+
+function TMSHTMLHTMLStyleElementEvents.Doonbeforepaste: WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self);
+end;
+
+function TMSHTMLHTMLStyleElementEvents.Doonpaste: WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self);
+end;
+
+function TMSHTMLHTMLStyleElementEvents.Dooncontextmenu: WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doonrowsdelete;
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doonrowsinserted;
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Dooncellchange;
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doonreadystatechange;
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doonbeforeeditfocus;
+begin
+  if not Assigned(onbeforeeditfocus) then System.Exit;
+  onbeforeeditfocus(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doonlayoutcomplete;
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doonpage;
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self);
+end;
+
+function TMSHTMLHTMLStyleElementEvents.Doonbeforedeactivate: WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self);
+end;
+
+function TMSHTMLHTMLStyleElementEvents.Doonbeforeactivate: WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doonmove;
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self);
+end;
+
+function TMSHTMLHTMLStyleElementEvents.Dooncontrolselect: WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self);
+end;
+
+function TMSHTMLHTMLStyleElementEvents.Doonmovestart: WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doonmoveend;
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self);
+end;
+
+function TMSHTMLHTMLStyleElementEvents.Doonresizestart: WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doonresizeend;
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doonmouseenter;
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doonmouseleave;
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self);
+end;
+
+function TMSHTMLHTMLStyleElementEvents.Doonmousewheel: WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doonactivate;
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doondeactivate;
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doonfocusin;
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doonfocusout;
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doonload;
+begin
+  if not Assigned(onload) then System.Exit;
+  onload(Self);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents.Doonerror;
+begin
+  if not Assigned(onerror) then System.Exit;
+  onerror(Self);
+end;
+
+
+
+function TMSHTMLHTMLStyleElementEvents2.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1003:
+      begin
+        Doonload(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+    1002:
+      begin
+        Doonerror(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLStyleElementEvents2.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLStyleElementEvents2;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLStyleElementEvents2.Doonhelp(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLStyleElementEvents2.Doonclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLStyleElementEvents2.Doondblclick(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLStyleElementEvents2.Doonkeypress(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doonkeydown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doonkeyup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doonmouseout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doonmouseover(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doonmousemove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doonmousedown(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doonmouseup(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLStyleElementEvents2.Doonselectstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doonfilterchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLStyleElementEvents2.Doondragstart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLStyleElementEvents2.Doonbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doonafterupdate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLStyleElementEvents2.Doonerrorupdate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLStyleElementEvents2.Doonrowexit(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doonrowenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doondatasetchanged(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doondataavailable(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doondatasetcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doonlosecapture(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doonpropertychange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doonscroll(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doonfocus(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doonblur(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doonresize(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLStyleElementEvents2.Doondrag(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doondragend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLStyleElementEvents2.Doondragenter(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLStyleElementEvents2.Doondragover(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doondragleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLStyleElementEvents2.Doondrop(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLStyleElementEvents2.Doonbeforecut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLStyleElementEvents2.Dooncut(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLStyleElementEvents2.Doonbeforecopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLStyleElementEvents2.Dooncopy(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLStyleElementEvents2.Doonbeforepaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLStyleElementEvents2.Doonpaste(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLStyleElementEvents2.Dooncontextmenu(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doonrowsdelete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doonrowsinserted(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Dooncellchange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doonreadystatechange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doonlayoutcomplete(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doonpage(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doonmouseenter(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doonmouseleave(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doonactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doondeactivate(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLStyleElementEvents2.Doonbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLStyleElementEvents2.Doonbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doonfocusin(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doonfocusout(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doonmove(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLStyleElementEvents2.Dooncontrolselect(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLStyleElementEvents2.Doonmovestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doonmoveend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLStyleElementEvents2.Doonresizestart(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doonresizeend(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self, pEvtObj);
+end;
+
+function TMSHTMLHTMLStyleElementEvents2.Doonmousewheel(const pEvtObj: IHTMLEventObj): WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doonload(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onload) then System.Exit;
+  onload(Self, pEvtObj);
+end;
+
+procedure TMSHTMLHTMLStyleElementEvents2.Doonerror(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onerror) then System.Exit;
+  onerror(Self, pEvtObj);
+end;
+
+
+
+function TMSHTMLHTMLNamespaceEvents.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -609:
+      begin
+        Doonreadystatechange(IUnknown(dps.rgvarg^[pDispIds^[0]].unkval) as IHTMLEventObj);
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLNamespaceEvents.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLNamespaceEvents;
+end;
+
+//SinkImplementation//
+
+procedure TMSHTMLHTMLNamespaceEvents.Doonreadystatechange(const pEvtObj: IHTMLEventObj);
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self, pEvtObj);
+end;
+
+
+
+function TMSHTMLHTMLInputFileElementEvents.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp();
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick();
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick();
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress();
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown();
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup();
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout();
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover();
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove();
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown();
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup();
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart();
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange();
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart();
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate();
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate();
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate();
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit();
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter();
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged();
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable();
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete();
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture();
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange();
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll();
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus();
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur();
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize();
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag();
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend();
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter();
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover();
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave();
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop();
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut();
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut();
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy();
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy();
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste();
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste();
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu();
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete();
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted();
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange();
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange();
+        Result := S_OK;
+      end;
+    1027:
+      begin
+        Doonbeforeeditfocus();
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete();
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage();
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate();
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate();
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove();
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect();
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart();
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend();
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart();
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend();
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter();
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave();
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel();
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate();
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate();
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin();
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout();
+        Result := S_OK;
+      end;
+    1001:
+      begin
+        OleVariant(VarResult^) := Doonchange();
+        Result := S_OK;
+      end;
+    1006:
+      begin
+        Doonselect();
+        Result := S_OK;
+      end;
+    1003:
+      begin
+        Doonload();
+        Result := S_OK;
+      end;
+    1002:
+      begin
+        Doonerror();
+        Result := S_OK;
+      end;
+    1000:
+      begin
+        Doonabort();
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLInputFileElementEvents.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLInputFileElementEvents;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLInputFileElementEvents.Doonhelp: WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self);
+end;
+
+function TMSHTMLHTMLInputFileElementEvents.Doonclick: WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self);
+end;
+
+function TMSHTMLHTMLInputFileElementEvents.Doondblclick: WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self);
+end;
+
+function TMSHTMLHTMLInputFileElementEvents.Doonkeypress: WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doonkeydown;
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doonkeyup;
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doonmouseout;
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doonmouseover;
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doonmousemove;
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doonmousedown;
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doonmouseup;
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self);
+end;
+
+function TMSHTMLHTMLInputFileElementEvents.Doonselectstart: WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doonfilterchange;
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self);
+end;
+
+function TMSHTMLHTMLInputFileElementEvents.Doondragstart: WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self);
+end;
+
+function TMSHTMLHTMLInputFileElementEvents.Doonbeforeupdate: WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doonafterupdate;
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self);
+end;
+
+function TMSHTMLHTMLInputFileElementEvents.Doonerrorupdate: WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self);
+end;
+
+function TMSHTMLHTMLInputFileElementEvents.Doonrowexit: WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doonrowenter;
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doondatasetchanged;
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doondataavailable;
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doondatasetcomplete;
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doonlosecapture;
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doonpropertychange;
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doonscroll;
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doonfocus;
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doonblur;
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doonresize;
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self);
+end;
+
+function TMSHTMLHTMLInputFileElementEvents.Doondrag: WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doondragend;
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self);
+end;
+
+function TMSHTMLHTMLInputFileElementEvents.Doondragenter: WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self);
+end;
+
+function TMSHTMLHTMLInputFileElementEvents.Doondragover: WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doondragleave;
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self);
+end;
+
+function TMSHTMLHTMLInputFileElementEvents.Doondrop: WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self);
+end;
+
+function TMSHTMLHTMLInputFileElementEvents.Doonbeforecut: WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self);
+end;
+
+function TMSHTMLHTMLInputFileElementEvents.Dooncut: WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self);
+end;
+
+function TMSHTMLHTMLInputFileElementEvents.Doonbeforecopy: WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self);
+end;
+
+function TMSHTMLHTMLInputFileElementEvents.Dooncopy: WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self);
+end;
+
+function TMSHTMLHTMLInputFileElementEvents.Doonbeforepaste: WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self);
+end;
+
+function TMSHTMLHTMLInputFileElementEvents.Doonpaste: WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self);
+end;
+
+function TMSHTMLHTMLInputFileElementEvents.Dooncontextmenu: WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doonrowsdelete;
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doonrowsinserted;
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Dooncellchange;
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doonreadystatechange;
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doonbeforeeditfocus;
+begin
+  if not Assigned(onbeforeeditfocus) then System.Exit;
+  onbeforeeditfocus(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doonlayoutcomplete;
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doonpage;
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self);
+end;
+
+function TMSHTMLHTMLInputFileElementEvents.Doonbeforedeactivate: WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self);
+end;
+
+function TMSHTMLHTMLInputFileElementEvents.Doonbeforeactivate: WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doonmove;
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self);
+end;
+
+function TMSHTMLHTMLInputFileElementEvents.Dooncontrolselect: WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self);
+end;
+
+function TMSHTMLHTMLInputFileElementEvents.Doonmovestart: WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doonmoveend;
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self);
+end;
+
+function TMSHTMLHTMLInputFileElementEvents.Doonresizestart: WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doonresizeend;
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doonmouseenter;
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doonmouseleave;
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self);
+end;
+
+function TMSHTMLHTMLInputFileElementEvents.Doonmousewheel: WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doonactivate;
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doondeactivate;
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doonfocusin;
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doonfocusout;
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self);
+end;
+
+function TMSHTMLHTMLInputFileElementEvents.Doonchange: WordBool;
+begin
+  if not Assigned(onchange) then System.Exit;
+  Result := onchange(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doonselect;
+begin
+  if not Assigned(onselect) then System.Exit;
+  onselect(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doonload;
+begin
+  if not Assigned(onload) then System.Exit;
+  onload(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doonerror;
+begin
+  if not Assigned(onerror) then System.Exit;
+  onerror(Self);
+end;
+
+procedure TMSHTMLHTMLInputFileElementEvents.Doonabort;
+begin
+  if not Assigned(onabort) then System.Exit;
+  onabort(Self);
+end;
+
+
+
+function TMSHTMLHTMLInputImageEvents.DoInvoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+  Flags: Word; var dps: TDispParams; pDispIds: PDispIdList;
+  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
+type
+  POleVariant = ^OleVariant;
+begin
+  Result := DISP_E_MEMBERNOTFOUND;
+
+  //SinkInvoke//
+  case DispId of
+    -2147418102:
+      begin
+        OleVariant(VarResult^) := Doonhelp();
+        Result := S_OK;
+      end;
+    -600:
+      begin
+        OleVariant(VarResult^) := Doonclick();
+        Result := S_OK;
+      end;
+    -601:
+      begin
+        OleVariant(VarResult^) := Doondblclick();
+        Result := S_OK;
+      end;
+    -603:
+      begin
+        OleVariant(VarResult^) := Doonkeypress();
+        Result := S_OK;
+      end;
+    -602:
+      begin
+        Doonkeydown();
+        Result := S_OK;
+      end;
+    -604:
+      begin
+        Doonkeyup();
+        Result := S_OK;
+      end;
+    -2147418103:
+      begin
+        Doonmouseout();
+        Result := S_OK;
+      end;
+    -2147418104:
+      begin
+        Doonmouseover();
+        Result := S_OK;
+      end;
+    -606:
+      begin
+        Doonmousemove();
+        Result := S_OK;
+      end;
+    -605:
+      begin
+        Doonmousedown();
+        Result := S_OK;
+      end;
+    -607:
+      begin
+        Doonmouseup();
+        Result := S_OK;
+      end;
+    -2147418100:
+      begin
+        OleVariant(VarResult^) := Doonselectstart();
+        Result := S_OK;
+      end;
+    -2147418095:
+      begin
+        Doonfilterchange();
+        Result := S_OK;
+      end;
+    -2147418101:
+      begin
+        OleVariant(VarResult^) := Doondragstart();
+        Result := S_OK;
+      end;
+    -2147418108:
+      begin
+        OleVariant(VarResult^) := Doonbeforeupdate();
+        Result := S_OK;
+      end;
+    -2147418107:
+      begin
+        Doonafterupdate();
+        Result := S_OK;
+      end;
+    -2147418099:
+      begin
+        OleVariant(VarResult^) := Doonerrorupdate();
+        Result := S_OK;
+      end;
+    -2147418106:
+      begin
+        OleVariant(VarResult^) := Doonrowexit();
+        Result := S_OK;
+      end;
+    -2147418105:
+      begin
+        Doonrowenter();
+        Result := S_OK;
+      end;
+    -2147418098:
+      begin
+        Doondatasetchanged();
+        Result := S_OK;
+      end;
+    -2147418097:
+      begin
+        Doondataavailable();
+        Result := S_OK;
+      end;
+    -2147418096:
+      begin
+        Doondatasetcomplete();
+        Result := S_OK;
+      end;
+    -2147418094:
+      begin
+        Doonlosecapture();
+        Result := S_OK;
+      end;
+    -2147418093:
+      begin
+        Doonpropertychange();
+        Result := S_OK;
+      end;
+    1014:
+      begin
+        Doonscroll();
+        Result := S_OK;
+      end;
+    -2147418111:
+      begin
+        Doonfocus();
+        Result := S_OK;
+      end;
+    -2147418112:
+      begin
+        Doonblur();
+        Result := S_OK;
+      end;
+    1016:
+      begin
+        Doonresize();
+        Result := S_OK;
+      end;
+    -2147418092:
+      begin
+        OleVariant(VarResult^) := Doondrag();
+        Result := S_OK;
+      end;
+    -2147418091:
+      begin
+        Doondragend();
+        Result := S_OK;
+      end;
+    -2147418090:
+      begin
+        OleVariant(VarResult^) := Doondragenter();
+        Result := S_OK;
+      end;
+    -2147418089:
+      begin
+        OleVariant(VarResult^) := Doondragover();
+        Result := S_OK;
+      end;
+    -2147418088:
+      begin
+        Doondragleave();
+        Result := S_OK;
+      end;
+    -2147418087:
+      begin
+        OleVariant(VarResult^) := Doondrop();
+        Result := S_OK;
+      end;
+    -2147418083:
+      begin
+        OleVariant(VarResult^) := Doonbeforecut();
+        Result := S_OK;
+      end;
+    -2147418086:
+      begin
+        OleVariant(VarResult^) := Dooncut();
+        Result := S_OK;
+      end;
+    -2147418082:
+      begin
+        OleVariant(VarResult^) := Doonbeforecopy();
+        Result := S_OK;
+      end;
+    -2147418085:
+      begin
+        OleVariant(VarResult^) := Dooncopy();
+        Result := S_OK;
+      end;
+    -2147418081:
+      begin
+        OleVariant(VarResult^) := Doonbeforepaste();
+        Result := S_OK;
+      end;
+    -2147418084:
+      begin
+        OleVariant(VarResult^) := Doonpaste();
+        Result := S_OK;
+      end;
+    1023:
+      begin
+        OleVariant(VarResult^) := Dooncontextmenu();
+        Result := S_OK;
+      end;
+    -2147418080:
+      begin
+        Doonrowsdelete();
+        Result := S_OK;
+      end;
+    -2147418079:
+      begin
+        Doonrowsinserted();
+        Result := S_OK;
+      end;
+    -2147418078:
+      begin
+        Dooncellchange();
+        Result := S_OK;
+      end;
+    -609:
+      begin
+        Doonreadystatechange();
+        Result := S_OK;
+      end;
+    1027:
+      begin
+        Doonbeforeeditfocus();
+        Result := S_OK;
+      end;
+    1030:
+      begin
+        Doonlayoutcomplete();
+        Result := S_OK;
+      end;
+    1031:
+      begin
+        Doonpage();
+        Result := S_OK;
+      end;
+    1034:
+      begin
+        OleVariant(VarResult^) := Doonbeforedeactivate();
+        Result := S_OK;
+      end;
+    1047:
+      begin
+        OleVariant(VarResult^) := Doonbeforeactivate();
+        Result := S_OK;
+      end;
+    1035:
+      begin
+        Doonmove();
+        Result := S_OK;
+      end;
+    1036:
+      begin
+        OleVariant(VarResult^) := Dooncontrolselect();
+        Result := S_OK;
+      end;
+    1038:
+      begin
+        OleVariant(VarResult^) := Doonmovestart();
+        Result := S_OK;
+      end;
+    1039:
+      begin
+        Doonmoveend();
+        Result := S_OK;
+      end;
+    1040:
+      begin
+        OleVariant(VarResult^) := Doonresizestart();
+        Result := S_OK;
+      end;
+    1041:
+      begin
+        Doonresizeend();
+        Result := S_OK;
+      end;
+    1042:
+      begin
+        Doonmouseenter();
+        Result := S_OK;
+      end;
+    1043:
+      begin
+        Doonmouseleave();
+        Result := S_OK;
+      end;
+    1033:
+      begin
+        OleVariant(VarResult^) := Doonmousewheel();
+        Result := S_OK;
+      end;
+    1044:
+      begin
+        Doonactivate();
+        Result := S_OK;
+      end;
+    1045:
+      begin
+        Doondeactivate();
+        Result := S_OK;
+      end;
+    1048:
+      begin
+        Doonfocusin();
+        Result := S_OK;
+      end;
+    1049:
+      begin
+        Doonfocusout();
+        Result := S_OK;
+      end;
+    1003:
+      begin
+        Doonload();
+        Result := S_OK;
+      end;
+    1002:
+      begin
+        Doonerror();
+        Result := S_OK;
+      end;
+    1000:
+      begin
+        Doonabort();
+        Result := S_OK;
+      end;
+  end; { case }
+  //SinkInvokeEnd//
+end;
+
+constructor TMSHTMLHTMLInputImageEvents.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  //SinkInit//
+  FSinkIID := HTMLInputImageEvents;
+end;
+
+//SinkImplementation//
+
+function TMSHTMLHTMLInputImageEvents.Doonhelp: WordBool;
+begin
+  if not Assigned(onhelp) then System.Exit;
+  Result := onhelp(Self);
+end;
+
+function TMSHTMLHTMLInputImageEvents.Doonclick: WordBool;
+begin
+  if not Assigned(onclick) then System.Exit;
+  Result := onclick(Self);
+end;
+
+function TMSHTMLHTMLInputImageEvents.Doondblclick: WordBool;
+begin
+  if not Assigned(ondblclick) then System.Exit;
+  Result := ondblclick(Self);
+end;
+
+function TMSHTMLHTMLInputImageEvents.Doonkeypress: WordBool;
+begin
+  if not Assigned(onkeypress) then System.Exit;
+  Result := onkeypress(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doonkeydown;
+begin
+  if not Assigned(onkeydown) then System.Exit;
+  onkeydown(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doonkeyup;
+begin
+  if not Assigned(onkeyup) then System.Exit;
+  onkeyup(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doonmouseout;
+begin
+  if not Assigned(onmouseout) then System.Exit;
+  onmouseout(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doonmouseover;
+begin
+  if not Assigned(onmouseover) then System.Exit;
+  onmouseover(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doonmousemove;
+begin
+  if not Assigned(onmousemove) then System.Exit;
+  onmousemove(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doonmousedown;
+begin
+  if not Assigned(onmousedown) then System.Exit;
+  onmousedown(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doonmouseup;
+begin
+  if not Assigned(onmouseup) then System.Exit;
+  onmouseup(Self);
+end;
+
+function TMSHTMLHTMLInputImageEvents.Doonselectstart: WordBool;
+begin
+  if not Assigned(onselectstart) then System.Exit;
+  Result := onselectstart(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doonfilterchange;
+begin
+  if not Assigned(onfilterchange) then System.Exit;
+  onfilterchange(Self);
+end;
+
+function TMSHTMLHTMLInputImageEvents.Doondragstart: WordBool;
+begin
+  if not Assigned(ondragstart) then System.Exit;
+  Result := ondragstart(Self);
+end;
+
+function TMSHTMLHTMLInputImageEvents.Doonbeforeupdate: WordBool;
+begin
+  if not Assigned(onbeforeupdate) then System.Exit;
+  Result := onbeforeupdate(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doonafterupdate;
+begin
+  if not Assigned(onafterupdate) then System.Exit;
+  onafterupdate(Self);
+end;
+
+function TMSHTMLHTMLInputImageEvents.Doonerrorupdate: WordBool;
+begin
+  if not Assigned(onerrorupdate) then System.Exit;
+  Result := onerrorupdate(Self);
+end;
+
+function TMSHTMLHTMLInputImageEvents.Doonrowexit: WordBool;
+begin
+  if not Assigned(onrowexit) then System.Exit;
+  Result := onrowexit(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doonrowenter;
+begin
+  if not Assigned(onrowenter) then System.Exit;
+  onrowenter(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doondatasetchanged;
+begin
+  if not Assigned(ondatasetchanged) then System.Exit;
+  ondatasetchanged(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doondataavailable;
+begin
+  if not Assigned(ondataavailable) then System.Exit;
+  ondataavailable(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doondatasetcomplete;
+begin
+  if not Assigned(ondatasetcomplete) then System.Exit;
+  ondatasetcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doonlosecapture;
+begin
+  if not Assigned(onlosecapture) then System.Exit;
+  onlosecapture(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doonpropertychange;
+begin
+  if not Assigned(onpropertychange) then System.Exit;
+  onpropertychange(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doonscroll;
+begin
+  if not Assigned(onscroll) then System.Exit;
+  onscroll(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doonfocus;
+begin
+  if not Assigned(onfocus) then System.Exit;
+  onfocus(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doonblur;
+begin
+  if not Assigned(onblur) then System.Exit;
+  onblur(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doonresize;
+begin
+  if not Assigned(onresize) then System.Exit;
+  onresize(Self);
+end;
+
+function TMSHTMLHTMLInputImageEvents.Doondrag: WordBool;
+begin
+  if not Assigned(ondrag) then System.Exit;
+  Result := ondrag(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doondragend;
+begin
+  if not Assigned(ondragend) then System.Exit;
+  ondragend(Self);
+end;
+
+function TMSHTMLHTMLInputImageEvents.Doondragenter: WordBool;
+begin
+  if not Assigned(ondragenter) then System.Exit;
+  Result := ondragenter(Self);
+end;
+
+function TMSHTMLHTMLInputImageEvents.Doondragover: WordBool;
+begin
+  if not Assigned(ondragover) then System.Exit;
+  Result := ondragover(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doondragleave;
+begin
+  if not Assigned(ondragleave) then System.Exit;
+  ondragleave(Self);
+end;
+
+function TMSHTMLHTMLInputImageEvents.Doondrop: WordBool;
+begin
+  if not Assigned(ondrop) then System.Exit;
+  Result := ondrop(Self);
+end;
+
+function TMSHTMLHTMLInputImageEvents.Doonbeforecut: WordBool;
+begin
+  if not Assigned(onbeforecut) then System.Exit;
+  Result := onbeforecut(Self);
+end;
+
+function TMSHTMLHTMLInputImageEvents.Dooncut: WordBool;
+begin
+  if not Assigned(oncut) then System.Exit;
+  Result := oncut(Self);
+end;
+
+function TMSHTMLHTMLInputImageEvents.Doonbeforecopy: WordBool;
+begin
+  if not Assigned(onbeforecopy) then System.Exit;
+  Result := onbeforecopy(Self);
+end;
+
+function TMSHTMLHTMLInputImageEvents.Dooncopy: WordBool;
+begin
+  if not Assigned(oncopy) then System.Exit;
+  Result := oncopy(Self);
+end;
+
+function TMSHTMLHTMLInputImageEvents.Doonbeforepaste: WordBool;
+begin
+  if not Assigned(onbeforepaste) then System.Exit;
+  Result := onbeforepaste(Self);
+end;
+
+function TMSHTMLHTMLInputImageEvents.Doonpaste: WordBool;
+begin
+  if not Assigned(onpaste) then System.Exit;
+  Result := onpaste(Self);
+end;
+
+function TMSHTMLHTMLInputImageEvents.Dooncontextmenu: WordBool;
+begin
+  if not Assigned(oncontextmenu) then System.Exit;
+  Result := oncontextmenu(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doonrowsdelete;
+begin
+  if not Assigned(onrowsdelete) then System.Exit;
+  onrowsdelete(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doonrowsinserted;
+begin
+  if not Assigned(onrowsinserted) then System.Exit;
+  onrowsinserted(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Dooncellchange;
+begin
+  if not Assigned(oncellchange) then System.Exit;
+  oncellchange(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doonreadystatechange;
+begin
+  if not Assigned(onreadystatechange) then System.Exit;
+  onreadystatechange(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doonbeforeeditfocus;
+begin
+  if not Assigned(onbeforeeditfocus) then System.Exit;
+  onbeforeeditfocus(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doonlayoutcomplete;
+begin
+  if not Assigned(onlayoutcomplete) then System.Exit;
+  onlayoutcomplete(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doonpage;
+begin
+  if not Assigned(onpage) then System.Exit;
+  onpage(Self);
+end;
+
+function TMSHTMLHTMLInputImageEvents.Doonbeforedeactivate: WordBool;
+begin
+  if not Assigned(onbeforedeactivate) then System.Exit;
+  Result := onbeforedeactivate(Self);
+end;
+
+function TMSHTMLHTMLInputImageEvents.Doonbeforeactivate: WordBool;
+begin
+  if not Assigned(onbeforeactivate) then System.Exit;
+  Result := onbeforeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doonmove;
+begin
+  if not Assigned(onmove) then System.Exit;
+  onmove(Self);
+end;
+
+function TMSHTMLHTMLInputImageEvents.Dooncontrolselect: WordBool;
+begin
+  if not Assigned(oncontrolselect) then System.Exit;
+  Result := oncontrolselect(Self);
+end;
+
+function TMSHTMLHTMLInputImageEvents.Doonmovestart: WordBool;
+begin
+  if not Assigned(onmovestart) then System.Exit;
+  Result := onmovestart(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doonmoveend;
+begin
+  if not Assigned(onmoveend) then System.Exit;
+  onmoveend(Self);
+end;
+
+function TMSHTMLHTMLInputImageEvents.Doonresizestart: WordBool;
+begin
+  if not Assigned(onresizestart) then System.Exit;
+  Result := onresizestart(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doonresizeend;
+begin
+  if not Assigned(onresizeend) then System.Exit;
+  onresizeend(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doonmouseenter;
+begin
+  if not Assigned(onmouseenter) then System.Exit;
+  onmouseenter(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doonmouseleave;
+begin
+  if not Assigned(onmouseleave) then System.Exit;
+  onmouseleave(Self);
+end;
+
+function TMSHTMLHTMLInputImageEvents.Doonmousewheel: WordBool;
+begin
+  if not Assigned(onmousewheel) then System.Exit;
+  Result := onmousewheel(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doonactivate;
+begin
+  if not Assigned(onactivate) then System.Exit;
+  onactivate(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doondeactivate;
+begin
+  if not Assigned(ondeactivate) then System.Exit;
+  ondeactivate(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doonfocusin;
+begin
+  if not Assigned(onfocusin) then System.Exit;
+  onfocusin(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doonfocusout;
+begin
+  if not Assigned(onfocusout) then System.Exit;
+  onfocusout(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doonload;
+begin
+  if not Assigned(onload) then System.Exit;
+  onload(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doonerror;
+begin
+  if not Assigned(onerror) then System.Exit;
+  onerror(Self);
+end;
+
+procedure TMSHTMLHTMLInputImageEvents.Doonabort;
+begin
+  if not Assigned(onabort) then System.Exit;
+  onabort(Self);
+end;
+
+
+//SinkImplEnd//
+
+procedure Register;
+begin
+  //SinkRegisterStart//
+{  RegisterComponents ('ActiveX', [TMSHTMLHTMLElementEvents]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLElementEvents2]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLLinkElementEvents]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLLinkElementEvents2]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLFormElementEvents]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLFormElementEvents2]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLImgEvents]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLImgEvents2]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLTextContainerEvents]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLTextContainerEvents2]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLAnchorEvents]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLAnchorEvents2]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLLabelEvents]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLLabelEvents2]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLSelectElementEvents]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLSelectElementEvents2]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLInputTextElementEvents]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLInputTextElementEvents2]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLOptionButtonElementEvents]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLButtonElementEvents]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLButtonElementEvents2]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLMarqueeElementEvents]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLMarqueeElementEvents2]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLWindowEvents]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLWindowEvents2]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLDocumentEvents]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLDocumentEvents2]);
+  RegisterComponents ('ActiveX', [TMSHTMLDWebBridgeEvents]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLControlElementEvents]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLControlElementEvents2]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLMapEvents]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLMapEvents2]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLAreaEvents]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLAreaEvents2]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLTableEvents]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLTableEvents2]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLScriptEvents]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLScriptEvents2]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLObjectElementEvents]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLObjectElementEvents2]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLFrameSiteEvents]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLFrameSiteEvents2]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLStyleElementEvents]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLStyleElementEvents2]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLNamespaceEvents]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLInputFileElementEvents]);
+  RegisterComponents ('ActiveX', [TMSHTMLHTMLInputImageEvents]);}
+  //SinkRegisterEnd//
+end;
+
+end.
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/MSHTML_EWB.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/MSHTML_EWB.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/MSHTML_EWB.pas	(revision 541)
@@ -0,0 +1,31739 @@
+//*************************************************************
+//                          EwbBehaviorsComp                  *
+//                                                            *
+//                     Freeware Component                     *
+//                       For Delphi                           *
+//                            by                              *
+//                     Eran Bodankin                          *
+//      Developing Team:                                      *
+//          Serge Voloshenyuk (SergeV@bsalsa.com)             *
+//          Eran Bodankin (bsalsa) -(bsalsa@gmail.com)       *
+//                                                            *
+//       Documentation and updated versions:                  *
+//                                                            *
+//               http://www.bsalsa.com                        *
+//*************************************************************
+{LICENSE:
+THIS SOFTWARE IS PROVIDED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND,
+EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE APPLIED
+WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
+YOU ASSUME THE ENTIRE RISK AS TO THE ACCURACY AND THE USE OF THE SOFTWARE
+AND ALL OTHER RISK ARISING OUT OF THE USE OR PERFORMANCE OF THIS SOFTWARE
+AND DOCUMENTATION. BSALSA PRODUCTIONS DOES NOT WARRANT THAT THE SOFTWARE IS ERROR-FREE
+OR WILL OPERATE WITHOUT INTERRUPTION. THE SOFTWARE IS NOT DESIGNED, INTENDED
+OR LICENSED FOR USE IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE CONTROLS,
+INCLUDING WITHOUT LIMITATION, THE DESIGN, CONSTRUCTION, MAINTENANCE OR
+OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS,
+AIR TRAFFIC CONTROL, AND LIFE SUPPORT OR WEAPONS SYSTEMS. BSALSA PRODUCTIONS SPECIFICALLY
+DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR SUCH PURPOSE.
+
+You may use/ change/ modify the component under 3 conditions:
+1. In your website, add a link to "http://www.bsalsa.com"
+2. In your application, add credits to "Embedded Web Browser"
+3. Mail me  (bsalsa@gmail.com) any code change in the unit  for the benefit
+   of the other users.
+4. Please, consider donation in our web site!
+{*******************************************************************************}
+
+{**********************************
+ ***         IMPORTANT          ***
+ **********************************
+This file has been modified from it's original because TLIBIMP did not
+ import the file correctly.
+ The command line used to import this file was as follows:
+ The installed version of IE for this import was IE 6.0.2600.0000
+ tlibimp -Hs- -Hr- -Fe- \WINNT\SYSTEM32\mshtml.tlb
+ }
+//$Id: Mshtml_Ewb.pas,v 1.2.2.1 2006/11/29 22:13:01 sergev Exp $
+
+unit MSHTML_EWB;
+
+{$I EWB.inc}
+{$IFDEF DELPHI6_UP}
+{$WARN UNIT_PLATFORM OFF}
+{$ENDIF}
+// ************************************************************************ //
+// WARNING
+// -------
+// The types declared in this file were generated from data read from a
+// Type Library. If this type library is explicitly or indirectly (via
+// another type library referring to this type library) re-imported, or the
+// 'Refresh' command of the Type Library Editor activated while editing the
+// Type Library, the contents of this file will be regenerated and all
+// manual modifications will be lost.
+// ************************************************************************ //
+
+// PASTLWTR : 1.2
+// File generated on 8/9/2002 3:26:08 PM from Type Library described below.
+
+// ************************************************************************  //
+// Type Lib: \WINNT\SYSTEM32\mshtml.tlb (1)
+// LIBID: {3050F1C5-98B5-11CF-BB82-00AA00BDCE0B}
+// LCID: 0
+// Helpfile:
+// HelpString: Microsoft HTML Object Library
+// DepndLst:
+//   (1) v2.0 stdole, (C:\WINNT\System32\stdole2.tlb)
+// Errors:
+//   Hint: Member 'type' of 'IHTMLEventObj' changed to 'type_'
+//   Hint: Parameter 'String' of IHTMLElement.toString changed to 'String_'
+//   Hint: Parameter 'String' of IHTMLStyle.toString changed to 'String_'
+//   Hint: Parameter 'String' of IHTMLDOMTextNode.toString changed to 'String_'
+//   Hint: Enum Member 'htmlInputImage' of '_htmlInput' changed to 'htmlInputImage_'
+//   Hint: Parameter 'String' of IHTMLElementCollection.toString changed to 'String_'
+//   Hint: Member 'type' of 'IHTMLStyleSheet' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLStyleSheet' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLLinkElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLLinkElement' changed to 'type_'
+//   Hint: Parameter 'Unit' of IHTMLTxtRange.expand changed to 'Unit_'
+//   Hint: Parameter 'Unit' of IHTMLTxtRange.move changed to 'Unit_'
+//   Hint: Parameter 'Unit' of IHTMLTxtRange.moveStart changed to 'Unit_'
+//   Hint: Parameter 'Unit' of IHTMLTxtRange.moveEnd changed to 'Unit_'
+//   Hint: Parameter 'String' of IHTMLTxtRange.findText changed to 'String_'
+//   Hint: Member 'type' of 'IHTMLAnchorElement2' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLAnchorElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLUListElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLUListElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLOListElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLOListElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLLIElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLLIElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLSelectElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLSelectElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLSelectionObject' changed to 'type_'
+//   Hint: Member 'label' of 'IHTMLOptionElement3' changed to 'label_'
+//   Hint: Member 'label' of 'DispHTMLOptionElement' changed to 'label_'
+//   Hint: Member 'type' of 'IHTMLInputElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLInputButtonElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLInputHiddenElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLInputTextElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLInputFileElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLOptionButtonElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLInputImage' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLInputElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLTextAreaElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLTextAreaElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLRichtextElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLButtonElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLButtonElement' changed to 'type_'
+//   Hint: Parameter 'String' of IOmNavigator.toString changed to 'String_'
+//   Hint: Parameter 'String' of IHTMLLocation.toString changed to 'String_'
+//   Hint: Member 'repeat' of 'IHTMLEventObj2' changed to 'repeat_'
+//   Hint: Member 'type' of 'IHTMLEventObj2' changed to 'type_'
+//   Hint: Member 'repeat' of 'DispCEventObj' changed to 'repeat_'
+//   Hint: Member 'type' of 'DispCEventObj' changed to 'type_'
+//   Hint: Parameter 'String' of IHTMLDocument2.toString changed to 'String_'
+//   Hint: Parameter 'String' of IHTMLWindow2.toString changed to 'String_'
+//   Hint: Member 'implementation' of 'IHTMLDocument5' changed to 'implementation_'
+//   Hint: Member 'implementation' of 'DispHTMLDocument' changed to 'implementation_'
+//   Hint: Member 'type' of 'IHTMLScriptElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLScriptElement' changed to 'type_'
+//   Hint: Member 'object' of 'IHTMLObjectElement' changed to 'object_'
+//   Hint: Member 'type' of 'IHTMLObjectElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLParamElement' changed to 'type_'
+//   Hint: Member 'object' of 'DispHTMLObjectElement' changed to 'object_'
+//   Hint: Member 'type' of 'DispHTMLObjectElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLParamElement' changed to 'type_'
+//   Hint: Parameter 'object' of IHTMLOptionsHolder.isApartmentModel changed to 'object_'
+//   Hint: Member 'type' of 'IHTMLStyleElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLStyleElement' changed to 'type_'
+//   Hint: Parameter 'String' of IHTMLDialog.toString changed to 'String_'
+//   Hint: Member 'type' of 'DispIHTMLInputButtonElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispIHTMLInputTextElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispIHTMLInputFileElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispIHTMLOptionButtonElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispIHTMLInputImage' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLEventObj' changed to 'type_'
+//   Hint: Enum Member 'htmlInputImage' of '_htmlInput' changed to 'htmlInputImage_'
+//   Hint: Member 'type' of 'IHTMLStyleSheet' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLStyleSheet' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLLinkElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLLinkElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLAnchorElement2' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLAnchorElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLUListElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLUListElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLOListElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLOListElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLLIElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLLIElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLSelectElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLSelectElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLSelectionObject' changed to 'type_'
+//   Hint: Member 'label' of 'IHTMLOptionElement3' changed to 'label_'
+//   Hint: Member 'label' of 'DispHTMLOptionElement' changed to 'label_'
+//   Hint: Member 'type' of 'IHTMLInputElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLInputButtonElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLInputHiddenElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLInputTextElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLInputFileElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLOptionButtonElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLInputImage' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLInputElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLTextAreaElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLTextAreaElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLRichtextElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLButtonElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLButtonElement' changed to 'type_'
+//   Hint: Member 'repeat' of 'IHTMLEventObj2' changed to 'repeat_'
+//   Hint: Member 'type' of 'IHTMLEventObj2' changed to 'type_'
+//   Hint: Member 'repeat' of 'DispCEventObj' changed to 'repeat_'
+//   Hint: Member 'type' of 'DispCEventObj' changed to 'type_'
+//   Hint: Member 'implementation' of 'IHTMLDocument5' changed to 'implementation_'
+//   Hint: Member 'implementation' of 'DispHTMLDocument' changed to 'implementation_'
+//   Hint: Member 'type' of 'IHTMLScriptElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLScriptElement' changed to 'type_'
+//   Hint: Member 'object' of 'IHTMLObjectElement' changed to 'object_'
+//   Hint: Member 'type' of 'IHTMLObjectElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLParamElement' changed to 'type_'
+//   Hint: Member 'object' of 'DispHTMLObjectElement' changed to 'object_'
+//   Hint: Member 'type' of 'DispHTMLObjectElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLParamElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLStyleElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLStyleElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispIHTMLInputButtonElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispIHTMLInputTextElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispIHTMLInputFileElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispIHTMLOptionButtonElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispIHTMLInputImage' changed to 'type_'
+//   Error creating palette bitmap of (TScriptlet) : Error reading control bitmap
+// ************************************************************************ //
+{$TYPEDADDRESS OFF} // Unit must be compiled without type-checked pointers.
+
+{$WRITEABLECONST ON}
+
+{$IFDEF DELPHI6_UP}
+{$VARPROPSETTER ON}
+{$WARN SYMBOL_PLATFORM OFF}
+{$ENDIF}
+{ $TYPEDADDRESS OFF}// Unit must be compiled without type-checked pointers.
+{ $WARN UNIT_PLATFORM OFF}
+
+{ $VARPROPSETTER ON}// You need to download and install the second D6 patch in order for this to compile.
+{ $ENDIF}
+{ $TYPEDADDRESS OFF}// Unit must be compiled without type-checked pointers.
+{ $WRITEABLECONST ON}
+
+interface
+
+uses Windows, ActiveX, Imm;
+
+// *********************************************************************//
+// GUIDS declared in the TypeLibrary. Following prefixes are used:
+//   Type Libraries     : LIBID_xxxx
+//   DISPInterfaces     : DIID_xxxx
+//   Non-DISP interfaces: IID_xxxx
+// *********************************************************************//
+const
+  // TypeLibrary Major and minor versions
+  MSHTMLMajorVersion = 4;
+  MSHTMLMinorVersion = 0;
+
+  LIBID_MSHTML: TGUID = '{3050F1C5-98B5-11CF-BB82-00AA00BDCE0B}';
+
+  IID_IHTMLEventObj: TGUID = '{3050F32D-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLElement: TGUID = '{3050F1FF-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLStyle: TGUID = '{3050F25E-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLFiltersCollection: TGUID = '{3050F3EE-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementBehaviorSite: TGUID = '{3050F427-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementBehavior: TGUID = '{3050F425-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementBehaviorFactory: TGUID = '{3050F429-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementBehaviorSiteOM: TGUID = '{3050F489-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementBehaviorRender: TGUID = '{3050F4AA-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementBehaviorSiteRender: TGUID = '{3050F4A7-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLStyle2: TGUID = '{3050F4A2-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLStyle3: TGUID = '{3050F656-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLStyle4: TGUID = '{3050F816-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLRuleStyle: TGUID = '{3050F3CF-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLRuleStyle2: TGUID = '{3050F4AC-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLRuleStyle3: TGUID = '{3050F657-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLRuleStyle4: TGUID = '{3050F817-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLStyle: TGUID = '{3050F55A-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLStyle: TGUID = '{3050F285-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLRuleStyle: TGUID = '{3050F55C-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLRuleStyle: TGUID = '{3050F3D0-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLRenderStyle: TGUID = '{3050F6AE-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLRenderStyle: TGUID = '{3050F58B-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLRenderStyle: TGUID = '{3050F6AA-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLCurrentStyle: TGUID = '{3050F3DB-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLCurrentStyle2: TGUID = '{3050F658-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLCurrentStyle3: TGUID = '{3050F818-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLCurrentStyle: TGUID = '{3050F557-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLCurrentStyle: TGUID = '{3050F3DC-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLRect: TGUID = '{3050F4A3-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLRectCollection: TGUID = '{3050F4A4-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDOMNode: TGUID = '{3050F5DA-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDOMNode2: TGUID = '{3050F80B-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDOMAttribute: TGUID = '{3050F4B0-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDOMAttribute2: TGUID = '{3050F810-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDOMTextNode: TGUID = '{3050F4B1-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDOMTextNode2: TGUID = '{3050F809-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDOMImplementation: TGUID = '{3050F80D-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLDOMAttribute: TGUID = '{3050F564-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLDOMAttribute: TGUID = '{3050F4B2-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLDOMTextNode: TGUID = '{3050F565-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLDOMTextNode: TGUID = '{3050F4BA-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLDOMImplementation: TGUID = '{3050F58F-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLDOMImplementation: TGUID = '{3050F80E-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLAttributeCollection: TGUID = '{3050F4C3-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLAttributeCollection2: TGUID = '{3050F80A-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDOMChildrenCollection: TGUID = '{3050F5AB-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLAttributeCollection: TGUID = '{3050F56C-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLAttributeCollection: TGUID = '{3050F4CC-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispDOMChildrenCollection: TGUID = '{3050F577-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_DOMChildrenCollection: TGUID = '{3050F5AA-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLElementEvents2: TGUID = '{3050F60F-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLElementEvents: TGUID = '{3050F33C-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLElementCollection: TGUID = '{3050F21F-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLElement2: TGUID = '{3050F434-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLElement3: TGUID = '{3050F673-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLElement4: TGUID = '{3050F80F-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLElementRender: TGUID = '{3050F669-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLUniqueName: TGUID = '{3050F4D0-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDatabinding: TGUID = '{3050F3F2-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDocument: TGUID = '{626FC520-A41E-11CF-A731-00A0C9082637}';
+  IID_IHTMLElementDefaults: TGUID = '{3050F6C9-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLDefaults: TGUID = '{3050F58C-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLDefaults: TGUID = '{3050F6C8-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTCDefaultDispatch: TGUID = '{3050F4FD-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTCPropertyBehavior: TGUID = '{3050F5DF-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTCMethodBehavior: TGUID = '{3050F631-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTCEventBehavior: TGUID = '{3050F4FF-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTCAttachBehavior: TGUID = '{3050F5F4-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTCAttachBehavior2: TGUID = '{3050F7EB-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTCDescBehavior: TGUID = '{3050F5DC-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTCDefaultDispatch: TGUID = '{3050F573-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTCDefaultDispatch: TGUID = '{3050F4FC-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTCPropertyBehavior: TGUID = '{3050F57F-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTCPropertyBehavior: TGUID = '{3050F5DE-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTCMethodBehavior: TGUID = '{3050F587-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTCMethodBehavior: TGUID = '{3050F630-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTCEventBehavior: TGUID = '{3050F574-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTCEventBehavior: TGUID = '{3050F4FE-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTCAttachBehavior: TGUID = '{3050F583-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTCAttachBehavior: TGUID = '{3050F5F5-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTCDescBehavior: TGUID = '{3050F57E-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTCDescBehavior: TGUID = '{3050F5DD-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLUrnCollection: TGUID = '{3050F5E2-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLUrnCollection: TGUID = '{3050F580-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLGenericElement: TGUID = '{3050F4B7-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLGenericElement: TGUID = '{3050F563-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLGenericElement: TGUID = '{3050F4B8-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLStyleSheetRule: TGUID = '{3050F357-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLStyleSheetRulesCollection: TGUID = '{3050F2E5-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLStyleSheetRule: TGUID = '{3050F3CE-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLStyleSheetRulesCollection: TGUID = '{3050F3CD-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLStyleSheetPage: TGUID = '{3050F7EE-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLStyleSheetPagesCollection: TGUID = '{3050F7F0-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLStyleSheetPage: TGUID = '{3050F7EF-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLStyleSheetPagesCollection: TGUID = '{3050F7F1-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLStyleSheetsCollection: TGUID = '{3050F37E-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLStyleSheet: TGUID = '{3050F2E3-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLStyleSheet2: TGUID = '{3050F3D1-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLStyleSheet: TGUID = '{3050F58D-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLStyleSheet: TGUID = '{3050F2E4-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLStyleSheetsCollection: TGUID = '{3050F37F-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLLinkElementEvents2: TGUID = '{3050F61D-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLLinkElementEvents: TGUID = '{3050F3CC-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLLinkElement: TGUID = '{3050F205-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLLinkElement2: TGUID = '{3050F4E5-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLLinkElement3: TGUID = '{3050F81E-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLLinkElement: TGUID = '{3050F524-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLLinkElement: TGUID = '{3050F277-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTxtRange: TGUID = '{3050F220-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTextRangeMetrics: TGUID = '{3050F40B-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTextRangeMetrics2: TGUID = '{3050F4A6-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTxtRangeCollection: TGUID = '{3050F7ED-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLFormElementEvents2: TGUID = '{3050F614-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLFormElementEvents: TGUID = '{3050F364-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLFormElement: TGUID = '{3050F1F7-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLFormElement2: TGUID = '{3050F4F6-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLFormElement3: TGUID = '{3050F836-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLSubmitData: TGUID = '{3050F645-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLFormElement: TGUID = '{3050F510-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLFormElement: TGUID = '{3050F251-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLControlElementEvents2: TGUID = '{3050F612-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLControlElementEvents: TGUID = '{3050F4EA-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLControlElement: TGUID = '{3050F4E9-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTextElement: TGUID = '{3050F218-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLTextElement: TGUID = '{3050F537-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLTextElement: TGUID = '{3050F26A-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLTextContainerEvents2: TGUID = '{3050F624-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLTextContainerEvents: TGUID = '{1FF6AA72-5842-11CF-A707-00AA00C0098D}';
+  IID_IHTMLTextContainer: TGUID = '{3050F230-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLControlRange: TGUID = '{3050F29C-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLControlRange2: TGUID = '{3050F65E-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLImgEvents2: TGUID = '{3050F616-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLImgEvents: TGUID = '{3050F25B-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLImgElement: TGUID = '{3050F240-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLImgElement2: TGUID = '{3050F826-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLImageElementFactory: TGUID = '{3050F38E-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLImg: TGUID = '{3050F51C-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLImg: TGUID = '{3050F241-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLImageElementFactory: TGUID = '{3050F38F-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLBodyElement: TGUID = '{3050F1D8-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLBodyElement2: TGUID = '{3050F5C5-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLBody: TGUID = '{3050F507-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLBody: TGUID = '{3050F24A-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLFontElement: TGUID = '{3050F1D9-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLFontElement: TGUID = '{3050F512-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLFontElement: TGUID = '{3050F27B-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLAnchorEvents2: TGUID = '{3050F610-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLAnchorEvents: TGUID = '{3050F29D-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLAnchorElement: TGUID = '{3050F1DA-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLAnchorElement2: TGUID = '{3050F825-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLAnchorElement: TGUID = '{3050F502-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLAnchorElement: TGUID = '{3050F248-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLLabelEvents2: TGUID = '{3050F61C-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLLabelEvents: TGUID = '{3050F329-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLLabelElement: TGUID = '{3050F32A-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLLabelElement2: TGUID = '{3050F832-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLLabelElement: TGUID = '{3050F522-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLLabelElement: TGUID = '{3050F32B-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLListElement: TGUID = '{3050F20E-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLListElement2: TGUID = '{3050F822-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLListElement: TGUID = '{3050F525-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLListElement: TGUID = '{3050F272-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLUListElement: TGUID = '{3050F1DD-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLUListElement: TGUID = '{3050F538-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLUListElement: TGUID = '{3050F269-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLOListElement: TGUID = '{3050F1DE-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLOListElement: TGUID = '{3050F52A-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLOListElement: TGUID = '{3050F270-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLLIElement: TGUID = '{3050F1E0-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLLIElement: TGUID = '{3050F523-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLLIElement: TGUID = '{3050F273-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLBlockElement: TGUID = '{3050F208-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLBlockElement2: TGUID = '{3050F823-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLBlockElement: TGUID = '{3050F506-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLBlockElement: TGUID = '{3050F281-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDivElement: TGUID = '{3050F200-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLDivElement: TGUID = '{3050F50C-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLDivElement: TGUID = '{3050F27E-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDDElement: TGUID = '{3050F1F2-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLDDElement: TGUID = '{3050F50B-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLDDElement: TGUID = '{3050F27F-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDTElement: TGUID = '{3050F1F3-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLDTElement: TGUID = '{3050F50D-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLDTElement: TGUID = '{3050F27C-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLBRElement: TGUID = '{3050F1F0-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLBRElement: TGUID = '{3050F53A-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLBRElement: TGUID = '{3050F280-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDListElement: TGUID = '{3050F1F1-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLDListElement: TGUID = '{3050F53B-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLDListElement: TGUID = '{3050F27D-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLHRElement: TGUID = '{3050F1F4-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLHRElement: TGUID = '{3050F53D-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLHRElement: TGUID = '{3050F252-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLParaElement: TGUID = '{3050F1F5-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLParaElement: TGUID = '{3050F52C-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLParaElement: TGUID = '{3050F26F-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLElementCollection2: TGUID = '{3050F5EE-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLElementCollection3: TGUID = '{3050F835-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLElementCollection: TGUID = '{3050F56B-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLElementCollection: TGUID = '{3050F4CB-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLHeaderElement: TGUID = '{3050F1F6-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLHeaderElement: TGUID = '{3050F515-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLHeaderElement: TGUID = '{3050F27A-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLSelectElementEvents2: TGUID = '{3050F622-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLSelectElementEvents: TGUID = '{3050F302-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLSelectElement: TGUID = '{3050F244-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLSelectElement2: TGUID = '{3050F5ED-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLSelectElement4: TGUID = '{3050F838-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLSelectElement: TGUID = '{3050F531-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLSelectElement: TGUID = '{3050F245-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLSelectionObject: TGUID = '{3050F25A-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLSelectionObject2: TGUID = '{3050F7EC-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLOptionElement: TGUID = '{3050F211-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLOptionElement3: TGUID = '{3050F820-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLOptionElementFactory: TGUID = '{3050F38C-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLOptionElement: TGUID = '{3050F52B-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLOptionElement: TGUID = '{3050F24D-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLOptionElementFactory: TGUID = '{3050F38D-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLButtonElementEvents2: TGUID = '{3050F617-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLButtonElementEvents: TGUID = '{3050F2B3-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLInputTextElementEvents2: TGUID = '{3050F618-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLOptionButtonElementEvents2: TGUID = '{3050F619-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLInputFileElementEvents2: TGUID = '{3050F61A-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLInputImageEvents2: TGUID = '{3050F61B-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLInputTextElementEvents: TGUID = '{3050F2A7-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLOptionButtonElementEvents: TGUID = '{3050F2BD-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLInputFileElementEvents: TGUID = '{3050F2AF-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLInputImageEvents: TGUID = '{3050F2C3-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLInputElement: TGUID = '{3050F5D2-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLInputElement2: TGUID = '{3050F821-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLInputButtonElement: TGUID = '{3050F2B2-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLInputHiddenElement: TGUID = '{3050F2A4-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLInputTextElement: TGUID = '{3050F2A6-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLInputFileElement: TGUID = '{3050F2AD-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLOptionButtonElement: TGUID = '{3050F2BC-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLInputImage: TGUID = '{3050F2C2-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLInputElement: TGUID = '{3050F57D-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLInputElement: TGUID = '{3050F5D8-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTextAreaElement: TGUID = '{3050F2AA-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLTextAreaElement: TGUID = '{3050F521-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLTextAreaElement: TGUID = '{3050F2AC-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLRichtextElement: TGUID = '{3050F54D-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLRichtextElement: TGUID = '{3050F2DF-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLButtonElement: TGUID = '{3050F2BB-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLButtonElement: TGUID = '{3050F51F-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLButtonElement: TGUID = '{3050F2C6-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLMarqueeElementEvents2: TGUID = '{3050F61F-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLMarqueeElementEvents: TGUID = '{3050F2B8-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLMarqueeElement: TGUID = '{3050F2B5-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLMarqueeElement: TGUID = '{3050F527-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLMarqueeElement: TGUID = '{3050F2B9-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLHtmlElement: TGUID = '{3050F81C-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLHeadElement: TGUID = '{3050F81D-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTitleElement: TGUID = '{3050F322-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLMetaElement: TGUID = '{3050F203-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLMetaElement2: TGUID = '{3050F81F-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLBaseElement: TGUID = '{3050F204-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLIsIndexElement: TGUID = '{3050F206-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLIsIndexElement2: TGUID = '{3050F82F-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLNextIdElement: TGUID = '{3050F207-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLHtmlElement: TGUID = '{3050F560-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLHtmlElement: TGUID = '{3050F491-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLHeadElement: TGUID = '{3050F561-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLHeadElement: TGUID = '{3050F493-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLTitleElement: TGUID = '{3050F516-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLTitleElement: TGUID = '{3050F284-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLMetaElement: TGUID = '{3050F517-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLMetaElement: TGUID = '{3050F275-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLBaseElement: TGUID = '{3050F518-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLBaseElement: TGUID = '{3050F276-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLIsIndexElement: TGUID = '{3050F519-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLIsIndexElement: TGUID = '{3050F278-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLNextIdElement: TGUID = '{3050F51A-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLNextIdElement: TGUID = '{3050F279-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLBaseFontElement: TGUID = '{3050F202-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLBaseFontElement: TGUID = '{3050F504-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLBaseFontElement: TGUID = '{3050F282-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLUnknownElement: TGUID = '{3050F209-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLUnknownElement: TGUID = '{3050F539-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLUnknownElement: TGUID = '{3050F268-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IOmHistory: TGUID = '{FECEAAA2-8405-11CF-8BA1-00AA00476DA6}';
+  IID_IHTMLMimeTypesCollection: TGUID = '{3050F3FC-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLPluginsCollection: TGUID = '{3050F3FD-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLOpsProfile: TGUID = '{3050F401-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IOmNavigator: TGUID = '{FECEAAA5-8405-11CF-8BA1-00AA00476DA6}';
+  IID_IHTMLLocation: TGUID = '{163BB1E0-6E00-11CF-837A-48DC04C10000}';
+  CLASS_HTMLHistory: TGUID = '{FECEAAA3-8405-11CF-8BA1-00AA00476DA6}';
+  CLASS_CMimeTypes: TGUID = '{3050F3FE-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_CPlugins: TGUID = '{3050F3FF-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_COpsProfile: TGUID = '{3050F402-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLNavigator: TGUID = '{FECEAAA6-8405-11CF-8BA1-00AA00476DA6}';
+  CLASS_HTMLLocation: TGUID = '{163BB1E1-6E00-11CF-837A-48DC04C10000}';
+  IID_IHTMLBookmarkCollection: TGUID = '{3050F4CE-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDataTransfer: TGUID = '{3050F4B3-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLEventObj2: TGUID = '{3050F48B-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLEventObj3: TGUID = '{3050F680-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLEventObj4: TGUID = '{3050F814-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispCEventObj: TGUID = '{3050F558-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_CEventObj: TGUID = '{3050F48A-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLWindowEvents2: TGUID = '{3050F625-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLWindowEvents: TGUID = '{96A0A4E0-D062-11CF-94B6-00AA0060275C}';
+  IID_IHTMLDocument2: TGUID = '{332C4425-26CB-11D0-B483-00C04FD90119}';
+  IID_IHTMLFramesCollection2: TGUID = '{332C4426-26CB-11D0-B483-00C04FD90119}';
+  IID_IHTMLWindow2: TGUID = '{332C4427-26CB-11D0-B483-00C04FD90119}';
+  IID_IHTMLScreen: TGUID = '{3050F35C-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLWindow3: TGUID = '{3050F4AE-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLFrameBase: TGUID = '{3050F311-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLScreen2: TGUID = '{3050F84A-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLWindow4: TGUID = '{3050F6CF-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_FramesCollection: TGUID = '{3050F7F6-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLScreen: TGUID = '{3050F591-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLScreen: TGUID = '{3050F35D-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLWindow2: TGUID = '{3050F55D-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLWindow2: TGUID = '{D48A6EC6-6A4A-11CF-94A7-444553540000}';
+  DIID_DispHTMLWindowProxy: TGUID = '{3050F55E-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLWindowProxy: TGUID = '{3050F391-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLDocumentEvents2: TGUID = '{3050F613-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLDocumentEvents: TGUID = '{3050F260-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDocument3: TGUID = '{3050F485-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDocument4: TGUID = '{3050F69A-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDocument5: TGUID = '{3050F80C-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLDocument: TGUID = '{3050F55F-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLDocument: TGUID = '{25336920-03F9-11CF-8FD0-00AA00686F13}';
+  DIID_DWebBridgeEvents: TGUID = '{A6D897FF-0A95-11D1-B0BA-006008166E11}';
+  IID_IWebBridge: TGUID = '{AE24FDAD-03C6-11D1-8B76-0080C744F389}';
+  IID_IWBScriptControl: TGUID = '{A5170870-0CF8-11D1-8B91-0080C744F389}';
+  CLASS_Scriptlet: TGUID = '{AE24FDAE-03C6-11D1-8B76-0080C744F389}';
+  IID_IHTMLEmbedElement: TGUID = '{3050F25F-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLEmbed: TGUID = '{3050F52E-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLEmbed: TGUID = '{3050F25D-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLMapEvents2: TGUID = '{3050F61E-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLMapEvents: TGUID = '{3050F3BA-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLAreasCollection: TGUID = '{3050F383-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLAreasCollection2: TGUID = '{3050F5EC-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLAreasCollection3: TGUID = '{3050F837-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLMapElement: TGUID = '{3050F266-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLAreasCollection: TGUID = '{3050F56A-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLAreasCollection: TGUID = '{3050F4CA-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLMapElement: TGUID = '{3050F526-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLMapElement: TGUID = '{3050F271-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLAreaEvents2: TGUID = '{3050F611-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLAreaEvents: TGUID = '{3050F366-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLAreaElement: TGUID = '{3050F265-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLAreaElement: TGUID = '{3050F503-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLAreaElement: TGUID = '{3050F283-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTableCaption: TGUID = '{3050F2EB-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLTableCaption: TGUID = '{3050F508-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLTableCaption: TGUID = '{3050F2EC-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLCommentElement: TGUID = '{3050F20C-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLCommentElement2: TGUID = '{3050F813-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLCommentElement: TGUID = '{3050F50A-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLCommentElement: TGUID = '{3050F317-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLPhraseElement: TGUID = '{3050F20A-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLPhraseElement2: TGUID = '{3050F824-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLSpanElement: TGUID = '{3050F3F3-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLPhraseElement: TGUID = '{3050F52D-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLPhraseElement: TGUID = '{3050F26E-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLSpanElement: TGUID = '{3050F548-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLSpanElement: TGUID = '{3050F3F5-98B4-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLTableEvents2: TGUID = '{3050F623-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLTableEvents: TGUID = '{3050F407-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTableSection: TGUID = '{3050F23B-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTable: TGUID = '{3050F21E-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTable2: TGUID = '{3050F4AD-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTable3: TGUID = '{3050F829-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTableCol: TGUID = '{3050F23A-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTableCol2: TGUID = '{3050F82A-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTableSection2: TGUID = '{3050F5C7-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTableSection3: TGUID = '{3050F82B-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTableRow: TGUID = '{3050F23C-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTableRow2: TGUID = '{3050F4A1-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTableRow3: TGUID = '{3050F82C-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTableRowMetrics: TGUID = '{3050F413-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTableCell: TGUID = '{3050F23D-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTableCell2: TGUID = '{3050F82D-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLTable: TGUID = '{3050F532-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLTable: TGUID = '{3050F26B-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLTableCol: TGUID = '{3050F533-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLTableCol: TGUID = '{3050F26C-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLTableSection: TGUID = '{3050F534-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLTableSection: TGUID = '{3050F2E9-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLTableRow: TGUID = '{3050F535-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLTableRow: TGUID = '{3050F26D-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLTableCell: TGUID = '{3050F536-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLTableCell: TGUID = '{3050F246-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLScriptEvents2: TGUID = '{3050F621-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLScriptEvents: TGUID = '{3050F3E2-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLScriptElement: TGUID = '{3050F28B-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLScriptElement2: TGUID = '{3050F828-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLScriptElement: TGUID = '{3050F530-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLScriptElement: TGUID = '{3050F28C-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLNoShowElement: TGUID = '{3050F38A-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLNoShowElement: TGUID = '{3050F528-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLNoShowElement: TGUID = '{3050F38B-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLObjectElementEvents2: TGUID = '{3050F620-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLObjectElementEvents: TGUID = '{3050F3C4-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLObjectElement: TGUID = '{3050F24F-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLObjectElement2: TGUID = '{3050F4CD-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLObjectElement3: TGUID = '{3050F827-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLParamElement: TGUID = '{3050F83D-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLObjectElement: TGUID = '{3050F529-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLObjectElement: TGUID = '{3050F24E-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLParamElement: TGUID = '{3050F590-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLParamElement: TGUID = '{3050F83E-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLFrameSiteEvents2: TGUID = '{3050F7FF-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLFrameSiteEvents: TGUID = '{3050F800-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLFrameBase2: TGUID = '{3050F6DB-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLFrameBase3: TGUID = '{3050F82E-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLFrameBase: TGUID = '{3050F541-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLFrameBase: TGUID = '{3050F312-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLFrameElement: TGUID = '{3050F313-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLFrameElement2: TGUID = '{3050F7F5-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLFrameElement: TGUID = '{3050F513-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLFrameElement: TGUID = '{3050F314-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLIFrameElement: TGUID = '{3050F315-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLIFrameElement2: TGUID = '{3050F4E6-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLIFrame: TGUID = '{3050F51B-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLIFrame: TGUID = '{3050F316-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDivPosition: TGUID = '{3050F212-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLFieldSetElement: TGUID = '{3050F3E7-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLFieldSetElement2: TGUID = '{3050F833-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLLegendElement: TGUID = '{3050F3EA-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLLegendElement2: TGUID = '{3050F834-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLDivPosition: TGUID = '{3050F50F-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLDivPosition: TGUID = '{3050F249-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLFieldSetElement: TGUID = '{3050F545-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLFieldSetElement: TGUID = '{3050F3E8-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLLegendElement: TGUID = '{3050F546-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLLegendElement: TGUID = '{3050F3E9-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLSpanFlow: TGUID = '{3050F3E5-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLSpanFlow: TGUID = '{3050F544-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLSpanFlow: TGUID = '{3050F3E6-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLFrameSetElement: TGUID = '{3050F319-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLFrameSetElement2: TGUID = '{3050F5C6-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLFrameSetSite: TGUID = '{3050F514-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLFrameSetSite: TGUID = '{3050F31A-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLBGsound: TGUID = '{3050F369-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLBGsound: TGUID = '{3050F53C-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLBGsound: TGUID = '{3050F370-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLFontNamesCollection: TGUID = '{3050F376-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLFontSizesCollection: TGUID = '{3050F377-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLOptionsHolder: TGUID = '{3050F378-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLStyleElementEvents2: TGUID = '{3050F615-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLStyleElementEvents: TGUID = '{3050F3CB-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLStyleElement: TGUID = '{3050F375-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLStyleElement: TGUID = '{3050F511-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLStyleElement: TGUID = '{3050F37D-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLStyleFontFace: TGUID = '{3050F3D5-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLStyleFontFace: TGUID = '{3050F3D4-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_ICSSFilterSite: TGUID = '{3050F3ED-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IMarkupPointer: TGUID = '{3050F49F-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IMarkupContainer: TGUID = '{3050F5F9-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IMarkupContainer2: TGUID = '{3050F648-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLChangeSink: TGUID = '{3050F64A-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLChangeLog: TGUID = '{3050F649-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IActiveIMMApp: TGUID = '{08C0E040-62D1-11D1-9326-0060B067B86E}';
+  IID_IEnumRegisterWordA: TGUID = '{08C03412-F96B-11D0-A475-00AA006BCC59}';
+  IID_IEnumRegisterWordW: TGUID = '{4955DD31-B159-11D0-8FCF-00AA006BCC59}';
+  IID_IEnumInputContext: TGUID = '{09B5EAB0-F997-11D1-93D4-0060B067B86E}';
+  IID_ISegmentList: TGUID = '{3050F605-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_ISegmentListIterator: TGUID = '{3050F692-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_ISegment: TGUID = '{3050F683-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLCaret: TGUID = '{3050F604-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IDisplayPointer: TGUID = '{3050F69E-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_ILineInfo: TGUID = '{3050F7E2-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementSegment: TGUID = '{3050F68F-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHighlightSegment: TGUID = '{3050F690-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHighlightRenderingServices: TGUID = '{3050F606-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IDisplayServices: TGUID = '{3050F69D-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLComputedStyle: TGUID = '{3050F6C3-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHtmlDlgSafeHelper: TGUID = '{3050F81A-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IBlockFormats: TGUID = '{3050F830-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IFontNames: TGUID = '{3050F839-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_ICSSFilter: TGUID = '{3050F3EC-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_ISecureUrlHost: TGUID = '{C81984C4-74C8-11D2-BAA9-00C04FC2040E}';
+  IID_IMarkupServices: TGUID = '{3050F4A0-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IMarkupServices2: TGUID = '{3050F682-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLChangePlayback: TGUID = '{3050F6E0-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IMarkupPointer2: TGUID = '{3050F675-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IMarkupTextFrags: TGUID = '{3050F5FA-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IXMLGenericParse: TGUID = '{E4E23071-4D07-11D2-AE76-0080C73BC199}';
+  IID_IHTMLEditHost: TGUID = '{3050F6A0-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLEditHost2: TGUID = '{3050F848-98B5-11CF-BB82-00AA00BDCE0D}';
+  IID_ISequenceNumber: TGUID = '{3050F6C1-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IIMEServices: TGUID = '{3050F6CA-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_ISelectionServicesListener: TGUID = '{3050F699-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_ISelectionServices: TGUID = '{3050F684-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLEditDesigner: TGUID = '{3050F662-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLEditServices: TGUID = '{3050F663-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLEditServices2: TGUID = '{3050F812-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HtmlDlgSafeHelper: TGUID = '{3050F819-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_BlockFormats: TGUID = '{3050F831-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_FontNames: TGUID = '{3050F83A-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLNamespaceEvents: TGUID = '{3050F6BD-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLNamespace: TGUID = '{3050F6BB-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLNamespaceCollection: TGUID = '{3050F6B8-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLNamespace: TGUID = '{3050F6BC-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLNamespaceCollection: TGUID = '{3050F6B9-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLPainter: TGUID = '{3050F6A6-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLPaintSite: TGUID = '{3050F6A7-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLPainterEventInfo: TGUID = '{3050F6DF-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLPainterOverlay: TGUID = '{3050F7E3-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLIPrintCollection: TGUID = '{3050F6B5-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IEnumPrivacyRecords: TGUID = '{3050F844-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDialog: TGUID = '{3050F216-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDialog2: TGUID = '{3050F5E0-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDialog3: TGUID = '{3050F388-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLModelessInit: TGUID = '{3050F5E4-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_ThreadDialogProcParam: TGUID = '{3050F5EB-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLDialog: TGUID = '{3050F28A-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLPopup: TGUID = '{3050F666-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLPopup: TGUID = '{3050F589-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLPopup: TGUID = '{3050F667-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLAppBehavior: TGUID = '{3050F5CA-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLAppBehavior2: TGUID = '{3050F5C9-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLAppBehavior3: TGUID = '{3050F5CD-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLAppBehavior: TGUID = '{3050F57C-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLAppBehavior: TGUID = '{3050F5CB-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_OldHTMLDocument: TGUID = '{D48A6EC9-6A4A-11CF-94A7-444553540000}';
+  CLASS_OldHTMLFormElement: TGUID = '{0D04D285-6BEC-11CF-8B97-00AA00476DA6}';
+  DIID_DispIHTMLInputButtonElement: TGUID = '{3050F51E-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLInputButtonElement: TGUID = '{3050F2B4-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispIHTMLInputTextElement: TGUID = '{3050F520-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLInputTextElement: TGUID = '{3050F2AB-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispIHTMLInputFileElement: TGUID = '{3050F542-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLInputFileElement: TGUID = '{3050F2AE-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispIHTMLOptionButtonElement: TGUID = '{3050F509-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLOptionButtonElement: TGUID = '{3050F2BE-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispIHTMLInputImage: TGUID = '{3050F51D-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_htmlInputImage: TGUID = '{3050F2C4-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementNamespace: TGUID = '{3050F671-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementNamespaceTable: TGUID = '{3050F670-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementNamespaceFactory: TGUID = '{3050F672-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementNamespaceFactory2: TGUID = '{3050F805-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementNamespaceFactoryCallback: TGUID = '{3050F7FD-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementBehaviorSiteOM2: TGUID = '{3050F659-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementBehaviorCategory: TGUID = '{3050F4ED-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementBehaviorSiteCategory: TGUID = '{3050F4EE-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IEnumUnknown: TGUID = '{00000100-0000-0000-C000-000000000046}';
+  IID_IElementBehaviorSubmit: TGUID = '{3050F646-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementBehaviorFocus: TGUID = '{3050F6B6-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementBehaviorLayout: TGUID = '{3050F6BA-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementBehaviorLayout2: TGUID = '{3050F846-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementBehaviorSiteLayout: TGUID = '{3050F6B7-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementBehaviorSiteLayout2: TGUID = '{3050F847-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHostBehaviorInit: TGUID = '{3050F842-98B5-11CF-BB82-00AA00BDCE0B}';
+
+// *********************************************************************//
+// Declaration of Enumerations defined in Type Library
+// *********************************************************************//
+// Constants for enum _htmlDesignMode
+type
+  _htmlDesignMode = TOleEnum;
+const
+  htmlDesignModeInherit = $FFFFFFFE;
+  htmlDesignModeOn = $FFFFFFFF;
+  htmlDesignModeOff = $00000000;
+  htmlDesignMode_Max = $7FFFFFFF;
+
+// Constants for enum _htmlZOrder
+type
+  _htmlZOrder = TOleEnum;
+const
+  htmlZOrderFront = $00000000;
+  htmlZOrderBack = $00000001;
+  htmlZOrder_Max = $7FFFFFFF;
+
+// Constants for enum _htmlClear
+type
+  _htmlClear = TOleEnum;
+const
+  htmlClearNotSet = $00000000;
+  htmlClearAll = $00000001;
+  htmlClearLeft = $00000002;
+  htmlClearRight = $00000003;
+  htmlClearBoth = $00000004;
+  htmlClearNone = $00000005;
+  htmlClear_Max = $7FFFFFFF;
+
+// Constants for enum _htmlControlAlign
+type
+  _htmlControlAlign = TOleEnum;
+const
+  htmlControlAlignNotSet = $00000000;
+  htmlControlAlignLeft = $00000001;
+  htmlControlAlignCenter = $00000002;
+  htmlControlAlignRight = $00000003;
+  htmlControlAlignTextTop = $00000004;
+  htmlControlAlignAbsMiddle = $00000005;
+  htmlControlAlignBaseline = $00000006;
+  htmlControlAlignAbsBottom = $00000007;
+  htmlControlAlignBottom = $00000008;
+  htmlControlAlignMiddle = $00000009;
+  htmlControlAlignTop = $0000000A;
+  htmlControlAlign_Max = $7FFFFFFF;
+
+// Constants for enum _htmlBlockAlign
+type
+  _htmlBlockAlign = TOleEnum;
+const
+  htmlBlockAlignNotSet = $00000000;
+  htmlBlockAlignLeft = $00000001;
+  htmlBlockAlignCenter = $00000002;
+  htmlBlockAlignRight = $00000003;
+  htmlBlockAlignJustify = $00000004;
+  htmlBlockAlign_Max = $7FFFFFFF;
+
+// Constants for enum _htmlReadyState
+type
+  _htmlReadyState = TOleEnum;
+const
+  htmlReadyStateuninitialized = $00000000;
+  htmlReadyStateloading = $00000001;
+  htmlReadyStateloaded = $00000002;
+  htmlReadyStateinteractive = $00000003;
+  htmlReadyStatecomplete = $00000004;
+  htmlReadyState_Max = $7FFFFFFF;
+
+// Constants for enum _htmlLoop
+type
+  _htmlLoop = TOleEnum;
+const
+  htmlLoopLoopInfinite = $FFFFFFFF;
+  htmlLoop_Max = $7FFFFFFF;
+
+// Constants for enum _mediaType
+type
+  _mediaType = TOleEnum;
+const
+  mediaTypeNotSet = $00000000;
+  mediaTypeAll = $000001FF;
+  mediaTypeAural = $00000001;
+  mediaTypeBraille = $00000002;
+  mediaTypeEmbossed = $00000004;
+  mediaTypeHandheld = $00000008;
+  mediaTypePrint = $00000010;
+  mediaTypeProjection = $00000020;
+  mediaTypeScreen = $00000040;
+  mediaTypeTty = $00000080;
+  mediaTypeTv = $00000100;
+  mediaType_Max = $7FFFFFFF;
+
+// Constants for enum _styleTextTransform
+type
+  _styleTextTransform = TOleEnum;
+const
+  styleTextTransformNotSet = $00000000;
+  styleTextTransformCapitalize = $00000001;
+  styleTextTransformLowercase = $00000002;
+  styleTextTransformUppercase = $00000003;
+  styleTextTransformNone = $00000004;
+  styleTextTransform_Max = $7FFFFFFF;
+
+// Constants for enum _styleDataRepeat
+type
+  _styleDataRepeat = TOleEnum;
+const
+  styleDataRepeatNone = $00000000;
+  styleDataRepeatInner = $00000001;
+  styleDataRepeat_Max = $7FFFFFFF;
+
+// Constants for enum _styleOverflow
+type
+  _styleOverflow = TOleEnum;
+const
+  styleOverflowNotSet = $00000000;
+  styleOverflowAuto = $00000001;
+  styleOverflowHidden = $00000002;
+  styleOverflowVisible = $00000003;
+  styleOverflowScroll = $00000004;
+  styleOverflow_Max = $7FFFFFFF;
+
+// Constants for enum _styleTableLayout
+type
+  _styleTableLayout = TOleEnum;
+const
+  styleTableLayoutNotSet = $00000000;
+  styleTableLayoutAuto = $00000001;
+  styleTableLayoutFixed = $00000002;
+  styleTableLayout_Max = $7FFFFFFF;
+
+// Constants for enum _styleBorderCollapse
+type
+  _styleBorderCollapse = TOleEnum;
+const
+  styleBorderCollapseNotSet = $00000000;
+  styleBorderCollapseSeparate = $00000001;
+  styleBorderCollapseCollapse = $00000002;
+  styleBorderCollapse_Max = $7FFFFFFF;
+
+// Constants for enum _styleFontStyle
+type
+  _styleFontStyle = TOleEnum;
+const
+  styleFontStyleNotSet = $00000000;
+  styleFontStyleItalic = $00000001;
+  styleFontStyleOblique = $00000002;
+  styleFontStyleNormal = $00000003;
+  styleFontStyle_Max = $7FFFFFFF;
+
+// Constants for enum _styleFontVariant
+type
+  _styleFontVariant = TOleEnum;
+const
+  styleFontVariantNotSet = $00000000;
+  styleFontVariantSmallCaps = $00000001;
+  styleFontVariantNormal = $00000002;
+  styleFontVariant_Max = $7FFFFFFF;
+
+// Constants for enum _styleBackgroundRepeat
+type
+  _styleBackgroundRepeat = TOleEnum;
+const
+  styleBackgroundRepeatRepeat = $00000000;
+  styleBackgroundRepeatRepeatX = $00000001;
+  styleBackgroundRepeatRepeatY = $00000002;
+  styleBackgroundRepeatNoRepeat = $00000003;
+  styleBackgroundRepeatNotSet = $00000004;
+  styleBackgroundRepeat_Max = $7FFFFFFF;
+
+// Constants for enum _styleBackgroundAttachment
+type
+  _styleBackgroundAttachment = TOleEnum;
+const
+  styleBackgroundAttachmentFixed = $00000000;
+  styleBackgroundAttachmentScroll = $00000001;
+  styleBackgroundAttachmentNotSet = $00000002;
+  styleBackgroundAttachment_Max = $7FFFFFFF;
+
+// Constants for enum _styleVerticalAlign
+type
+  _styleVerticalAlign = TOleEnum;
+const
+  styleVerticalAlignAuto = $00000000;
+  styleVerticalAlignBaseline = $00000001;
+  styleVerticalAlignSub = $00000002;
+  styleVerticalAlignSuper = $00000003;
+  styleVerticalAlignTop = $00000004;
+  styleVerticalAlignTextTop = $00000005;
+  styleVerticalAlignMiddle = $00000006;
+  styleVerticalAlignBottom = $00000007;
+  styleVerticalAlignTextBottom = $00000008;
+  styleVerticalAlignInherit = $00000009;
+  styleVerticalAlignNotSet = $0000000A;
+  styleVerticalAlign_Max = $7FFFFFFF;
+
+// Constants for enum _styleFontWeight
+type
+  _styleFontWeight = TOleEnum;
+const
+  styleFontWeightNotSet = $00000000;
+  styleFontWeight100 = $00000001;
+  styleFontWeight200 = $00000002;
+  styleFontWeight300 = $00000003;
+  styleFontWeight400 = $00000004;
+  styleFontWeight500 = $00000005;
+  styleFontWeight600 = $00000006;
+  styleFontWeight700 = $00000007;
+  styleFontWeight800 = $00000008;
+  styleFontWeight900 = $00000009;
+  styleFontWeightNormal = $0000000A;
+  styleFontWeightBold = $0000000B;
+  styleFontWeightBolder = $0000000C;
+  styleFontWeightLighter = $0000000D;
+  styleFontWeight_Max = $7FFFFFFF;
+
+// Constants for enum _styleBackgroundPositionX
+type
+  _styleBackgroundPositionX = TOleEnum;
+const
+  styleBackgroundPositionXNotSet = $00000000;
+  styleBackgroundPositionXLeft = $00000001;
+  styleBackgroundPositionXCenter = $00000002;
+  styleBackgroundPositionXRight = $00000003;
+  styleBackgroundPositionX_Max = $7FFFFFFF;
+
+// Constants for enum _styleBackgroundPositionY
+type
+  _styleBackgroundPositionY = TOleEnum;
+const
+  styleBackgroundPositionYNotSet = $00000000;
+  styleBackgroundPositionYTop = $00000001;
+  styleBackgroundPositionYCenter = $00000002;
+  styleBackgroundPositionYBottom = $00000003;
+  styleBackgroundPositionY_Max = $7FFFFFFF;
+
+// Constants for enum _styleFontSize
+type
+  _styleFontSize = TOleEnum;
+const
+  styleFontSizeXXSmall = $00000000;
+  styleFontSizeXSmall = $00000001;
+  styleFontSizeSmall = $00000002;
+  styleFontSizeMedium = $00000003;
+  styleFontSizeLarge = $00000004;
+  styleFontSizeXLarge = $00000005;
+  styleFontSizeXXLarge = $00000006;
+  styleFontSizeSmaller = $00000007;
+  styleFontSizeLarger = $00000008;
+  styleFontSize_Max = $7FFFFFFF;
+
+// Constants for enum _styleAuto
+type
+  _styleAuto = TOleEnum;
+const
+  styleAutoAuto = $00000000;
+  styleAuto_Max = $7FFFFFFF;
+
+// Constants for enum _styleNormal
+type
+  _styleNormal = TOleEnum;
+const
+  styleNormalNormal = $00000000;
+  styleNormal_Max = $7FFFFFFF;
+
+// Constants for enum _styleBorderWidth
+type
+  _styleBorderWidth = TOleEnum;
+const
+  styleBorderWidthThin = $00000000;
+  styleBorderWidthMedium = $00000001;
+  styleBorderWidthThick = $00000002;
+  styleBorderWidth_Max = $7FFFFFFF;
+
+// Constants for enum _stylePosition
+type
+  _stylePosition = TOleEnum;
+const
+  stylePositionNotSet = $00000000;
+  stylePositionstatic = $00000001;
+  stylePositionrelative = $00000002;
+  stylePositionabsolute = $00000003;
+  stylePositionfixed = $00000004;
+  stylePosition_Max = $7FFFFFFF;
+
+// Constants for enum _styleBorderStyle
+type
+  _styleBorderStyle = TOleEnum;
+const
+  styleBorderStyleNotSet = $00000000;
+  styleBorderStyleDotted = $00000001;
+  styleBorderStyleDashed = $00000002;
+  styleBorderStyleSolid = $00000003;
+  styleBorderStyleDouble = $00000004;
+  styleBorderStyleGroove = $00000005;
+  styleBorderStyleRidge = $00000006;
+  styleBorderStyleInset = $00000007;
+  styleBorderStyleOutset = $00000008;
+  styleBorderStyleWindowInset = $00000009;
+  styleBorderStyleNone = $0000000A;
+  styleBorderStyle_Max = $7FFFFFFF;
+
+// Constants for enum _styleStyleFloat
+type
+  _styleStyleFloat = TOleEnum;
+const
+  styleStyleFloatNotSet = $00000000;
+  styleStyleFloatLeft = $00000001;
+  styleStyleFloatRight = $00000002;
+  styleStyleFloatNone = $00000003;
+  styleStyleFloat_Max = $7FFFFFFF;
+
+// Constants for enum _styleDisplay
+type
+  _styleDisplay = TOleEnum;
+const
+  styleDisplayNotSet = $00000000;
+  styleDisplayBlock = $00000001;
+  styleDisplayInline = $00000002;
+  styleDisplayListItem = $00000003;
+  styleDisplayNone = $00000004;
+  styleDisplayTableHeaderGroup = $00000005;
+  styleDisplayTableFooterGroup = $00000006;
+  styleDisplayInlineBlock = $00000007;
+  styleDisplay_Max = $7FFFFFFF;
+
+// Constants for enum _styleVisibility
+type
+  _styleVisibility = TOleEnum;
+const
+  styleVisibilityNotSet = $00000000;
+  styleVisibilityInherit = $00000001;
+  styleVisibilityVisible = $00000002;
+  styleVisibilityHidden = $00000003;
+  styleVisibility_Max = $7FFFFFFF;
+
+// Constants for enum _styleListStyleType
+type
+  _styleListStyleType = TOleEnum;
+const
+  styleListStyleTypeNotSet = $00000000;
+  styleListStyleTypeDisc = $00000001;
+  styleListStyleTypeCircle = $00000002;
+  styleListStyleTypeSquare = $00000003;
+  styleListStyleTypeDecimal = $00000004;
+  styleListStyleTypeLowerRoman = $00000005;
+  styleListStyleTypeUpperRoman = $00000006;
+  styleListStyleTypeLowerAlpha = $00000007;
+  styleListStyleTypeUpperAlpha = $00000008;
+  styleListStyleTypeNone = $00000009;
+  styleListStyleType_Max = $7FFFFFFF;
+
+// Constants for enum _styleListStylePosition
+type
+  _styleListStylePosition = TOleEnum;
+const
+  styleListStylePositionNotSet = $00000000;
+  styleListStylePositionInside = $00000001;
+  styleListStylePositionOutSide = $00000002;
+  styleListStylePosition_Max = $7FFFFFFF;
+
+// Constants for enum _styleWhiteSpace
+type
+  _styleWhiteSpace = TOleEnum;
+const
+  styleWhiteSpaceNotSet = $00000000;
+  styleWhiteSpaceNormal = $00000001;
+  styleWhiteSpacePre = $00000002;
+  styleWhiteSpaceNowrap = $00000003;
+  styleWhiteSpace_Max = $7FFFFFFF;
+
+// Constants for enum _stylePageBreak
+type
+  _stylePageBreak = TOleEnum;
+const
+  stylePageBreakNotSet = $00000000;
+  stylePageBreakAuto = $00000001;
+  stylePageBreakAlways = $00000002;
+  stylePageBreakLeft = $00000003;
+  stylePageBreakRight = $00000004;
+  stylePageBreak_Max = $7FFFFFFF;
+
+// Constants for enum _styleCursor
+type
+  _styleCursor = TOleEnum;
+const
+  styleCursorAuto = $00000000;
+  styleCursorCrosshair = $00000001;
+  styleCursorDefault = $00000002;
+  styleCursorHand = $00000003;
+  styleCursorMove = $00000004;
+  styleCursorE_resize = $00000005;
+  styleCursorNe_resize = $00000006;
+  styleCursorNw_resize = $00000007;
+  styleCursorN_resize = $00000008;
+  styleCursorSe_resize = $00000009;
+  styleCursorSw_resize = $0000000A;
+  styleCursorS_resize = $0000000B;
+  styleCursorW_resize = $0000000C;
+  styleCursorText = $0000000D;
+  styleCursorWait = $0000000E;
+  styleCursorHelp = $0000000F;
+  styleCursorPointer = $00000010;
+  styleCursorProgress = $00000011;
+  styleCursorNot_allowed = $00000012;
+  styleCursorNo_drop = $00000013;
+  styleCursorVertical_text = $00000014;
+  styleCursorall_scroll = $00000015;
+  styleCursorcol_resize = $00000016;
+  styleCursorrow_resize = $00000017;
+  styleCursorcustom = $00000018;
+  styleCursorNotSet = $00000019;
+  styleCursor_Max = $7FFFFFFF;
+
+// Constants for enum _styleDir
+type
+  _styleDir = TOleEnum;
+const
+  styleDirNotSet = $00000000;
+  styleDirLeftToRight = $00000001;
+  styleDirRightToLeft = $00000002;
+  styleDirInherit = $00000003;
+  styleDir_Max = $7FFFFFFF;
+
+// Constants for enum _styleBidi
+type
+  _styleBidi = TOleEnum;
+const
+  styleBidiNotSet = $00000000;
+  styleBidiNormal = $00000001;
+  styleBidiEmbed = $00000002;
+  styleBidiOverride = $00000003;
+  styleBidiInherit = $00000004;
+  styleBidi_Max = $7FFFFFFF;
+
+// Constants for enum _styleImeMode
+type
+  _styleImeMode = TOleEnum;
+const
+  styleImeModeAuto = $00000000;
+  styleImeModeActive = $00000001;
+  styleImeModeInactive = $00000002;
+  styleImeModeDisabled = $00000003;
+  styleImeModeNotSet = $00000004;
+  styleImeMode_Max = $7FFFFFFF;
+
+// Constants for enum _styleRubyAlign
+type
+  _styleRubyAlign = TOleEnum;
+const
+  styleRubyAlignNotSet = $00000000;
+  styleRubyAlignAuto = $00000001;
+  styleRubyAlignLeft = $00000002;
+  styleRubyAlignCenter = $00000003;
+  styleRubyAlignRight = $00000004;
+  styleRubyAlignDistributeLetter = $00000005;
+  styleRubyAlignDistributeSpace = $00000006;
+  styleRubyAlignLineEdge = $00000007;
+  styleRubyAlign_Max = $7FFFFFFF;
+
+// Constants for enum _styleRubyPosition
+type
+  _styleRubyPosition = TOleEnum;
+const
+  styleRubyPositionNotSet = $00000000;
+  styleRubyPositionAbove = $00000001;
+  styleRubyPositionInline = $00000002;
+  styleRubyPosition_Max = $7FFFFFFF;
+
+// Constants for enum _styleRubyOverhang
+type
+  _styleRubyOverhang = TOleEnum;
+const
+  styleRubyOverhangNotSet = $00000000;
+  styleRubyOverhangAuto = $00000001;
+  styleRubyOverhangWhitespace = $00000002;
+  styleRubyOverhangNone = $00000003;
+  styleRubyOverhang_Max = $7FFFFFFF;
+
+// Constants for enum _styleLayoutGridChar
+type
+  _styleLayoutGridChar = TOleEnum;
+const
+  styleLayoutGridCharNotSet = $00000000;
+  styleLayoutGridCharAuto = $00000001;
+  styleLayoutGridCharNone = $00000002;
+  styleLayoutGridChar_Max = $7FFFFFFF;
+
+// Constants for enum _styleLayoutGridLine
+type
+  _styleLayoutGridLine = TOleEnum;
+const
+  styleLayoutGridLineNotSet = $00000000;
+  styleLayoutGridLineAuto = $00000001;
+  styleLayoutGridLineNone = $00000002;
+  styleLayoutGridLine_Max = $7FFFFFFF;
+
+// Constants for enum _styleLayoutGridMode
+type
+  _styleLayoutGridMode = TOleEnum;
+const
+  styleLayoutGridModeNotSet = $00000000;
+  styleLayoutGridModeChar = $00000001;
+  styleLayoutGridModeLine = $00000002;
+  styleLayoutGridModeBoth = $00000003;
+  styleLayoutGridModeNone = $00000004;
+  styleLayoutGridMode_Max = $7FFFFFFF;
+
+// Constants for enum _styleLayoutGridType
+type
+  _styleLayoutGridType = TOleEnum;
+const
+  styleLayoutGridTypeNotSet = $00000000;
+  styleLayoutGridTypeLoose = $00000001;
+  styleLayoutGridTypeStrict = $00000002;
+  styleLayoutGridTypeFixed = $00000003;
+  styleLayoutGridType_Max = $7FFFFFFF;
+
+// Constants for enum _styleLineBreak
+type
+  _styleLineBreak = TOleEnum;
+const
+  styleLineBreakNotSet = $00000000;
+  styleLineBreakNormal = $00000001;
+  styleLineBreakStrict = $00000002;
+  styleLineBreak_Max = $7FFFFFFF;
+
+// Constants for enum _styleWordBreak
+type
+  _styleWordBreak = TOleEnum;
+const
+  styleWordBreakNotSet = $00000000;
+  styleWordBreakNormal = $00000001;
+  styleWordBreakBreakAll = $00000002;
+  styleWordBreakKeepAll = $00000003;
+  styleWordBreak_Max = $7FFFFFFF;
+
+// Constants for enum _styleWordWrap
+type
+  _styleWordWrap = TOleEnum;
+const
+  styleWordWrapNotSet = $00000000;
+  styleWordWrapOff = $00000001;
+  styleWordWrapOn = $00000002;
+  styleWordWrap_Max = $7FFFFFFF;
+
+// Constants for enum _styleTextJustify
+type
+  _styleTextJustify = TOleEnum;
+const
+  styleTextJustifyNotSet = $00000000;
+  styleTextJustifyInterWord = $00000001;
+  styleTextJustifyNewspaper = $00000002;
+  styleTextJustifyDistribute = $00000003;
+  styleTextJustifyDistributeAllLines = $00000004;
+  styleTextJustifyInterIdeograph = $00000005;
+  styleTextJustifyInterCluster = $00000006;
+  styleTextJustifyKashida = $00000007;
+  styleTextJustifyAuto = $00000008;
+  styleTextJustify_Max = $7FFFFFFF;
+
+// Constants for enum _styleTextAlignLast
+type
+  _styleTextAlignLast = TOleEnum;
+const
+  styleTextAlignLastNotSet = $00000000;
+  styleTextAlignLastLeft = $00000001;
+  styleTextAlignLastCenter = $00000002;
+  styleTextAlignLastRight = $00000003;
+  styleTextAlignLastJustify = $00000004;
+  styleTextAlignLastAuto = $00000005;
+  styleTextAlignLast_Max = $7FFFFFFF;
+
+// Constants for enum _styleTextJustifyTrim
+type
+  _styleTextJustifyTrim = TOleEnum;
+const
+  styleTextJustifyTrimNotSet = $00000000;
+  styleTextJustifyTrimNone = $00000001;
+  styleTextJustifyTrimPunctuation = $00000002;
+  styleTextJustifyTrimPunctAndKana = $00000003;
+  styleTextJustifyTrim_Max = $7FFFFFFF;
+
+// Constants for enum _styleAccelerator
+type
+  _styleAccelerator = TOleEnum;
+const
+  styleAcceleratorFalse = $00000000;
+  styleAcceleratorTrue = $00000001;
+  styleAccelerator_Max = $7FFFFFFF;
+
+// Constants for enum _styleLayoutFlow
+type
+  _styleLayoutFlow = TOleEnum;
+const
+  styleLayoutFlowHorizontal = $00000000;
+  styleLayoutFlowVerticalIdeographic = $00000001;
+  styleLayoutFlowNotSet = $00000002;
+  styleLayoutFlow_Max = $7FFFFFFF;
+
+// Constants for enum _styleWritingMode
+type
+  _styleWritingMode = TOleEnum;
+const
+  styleWritingModeLrtb = $00000000;
+  styleWritingModeTbrl = $00000001;
+  styleWritingModeNotSet = $00000002;
+  styleWritingMode_Max = $7FFFFFFF;
+
+// Constants for enum _styleBool
+type
+  _styleBool = TOleEnum;
+const
+  styleBoolFalse = $00000000;
+  styleBoolTrue = $00000001;
+  styleBool_Max = $7FFFFFFF;
+
+// Constants for enum _styleTextUnderlinePosition
+type
+  _styleTextUnderlinePosition = TOleEnum;
+const
+  styleTextUnderlinePositionBelow = $00000000;
+  styleTextUnderlinePositionAbove = $00000001;
+  styleTextUnderlinePositionAuto = $00000002;
+  styleTextUnderlinePositionNotSet = $00000003;
+  styleTextUnderlinePosition_Max = $7FFFFFFF;
+
+// Constants for enum _styleTextOverflow
+type
+  _styleTextOverflow = TOleEnum;
+const
+  styleTextOverflowClip = $00000000;
+  styleTextOverflowEllipsis = $00000001;
+  styleTextOverflowNotSet = $00000002;
+  styleTextOverflow_Max = $7FFFFFFF;
+
+// Constants for enum _styleTextLineThroughStyle
+type
+  _styleTextLineThroughStyle = TOleEnum;
+const
+  styleTextLineThroughStyleUndefined = $00000000;
+  styleTextLineThroughStyleSingle = $00000001;
+  styleTextLineThroughStyleDouble = $00000002;
+  styleTextLineThroughStyle_Max = $7FFFFFFF;
+
+// Constants for enum _styleTextUnderlineStyle
+type
+  _styleTextUnderlineStyle = TOleEnum;
+const
+  styleTextUnderlineStyleUndefined = $00000000;
+  styleTextUnderlineStyleSingle = $00000001;
+  styleTextUnderlineStyleDouble = $00000002;
+  styleTextUnderlineStyleWords = $00000003;
+  styleTextUnderlineStyleDotted = $00000004;
+  styleTextUnderlineStyleThick = $00000005;
+  styleTextUnderlineStyleDash = $00000006;
+  styleTextUnderlineStyleDotDash = $00000007;
+  styleTextUnderlineStyleDotDotDash = $00000008;
+  styleTextUnderlineStyleWave = $00000009;
+  styleTextUnderlineStyleSingleAccounting = $0000000A;
+  styleTextUnderlineStyleDoubleAccounting = $0000000B;
+  styleTextUnderlineStyleThickDash = $0000000C;
+  styleTextUnderlineStyle_Max = $7FFFFFFF;
+
+// Constants for enum _styleTextEffect
+type
+  _styleTextEffect = TOleEnum;
+const
+  styleTextEffectNone = $00000000;
+  styleTextEffectEmboss = $00000001;
+  styleTextEffectEngrave = $00000002;
+  styleTextEffectOutline = $00000003;
+  styleTextEffect_Max = $7FFFFFFF;
+
+// Constants for enum _styleDefaultTextSelection
+type
+  _styleDefaultTextSelection = TOleEnum;
+const
+  styleDefaultTextSelectionFalse = $00000000;
+  styleDefaultTextSelectionTrue = $00000001;
+  styleDefaultTextSelection_Max = $7FFFFFFF;
+
+// Constants for enum _styleTextDecoration
+type
+  _styleTextDecoration = TOleEnum;
+const
+  styleTextDecorationNone = $00000000;
+  styleTextDecorationUnderline = $00000001;
+  styleTextDecorationOverline = $00000002;
+  styleTextDecorationLineThrough = $00000003;
+  styleTextDecorationBlink = $00000004;
+  styleTextDecoration_Max = $7FFFFFFF;
+
+// Constants for enum _textDecoration
+type
+  _textDecoration = TOleEnum;
+const
+  textDecorationNone = $00000000;
+  textDecorationUnderline = $00000001;
+  textDecorationOverline = $00000002;
+  textDecorationLineThrough = $00000003;
+  textDecorationBlink = $00000004;
+  textDecoration_Max = $7FFFFFFF;
+
+// Constants for enum _htmlListType
+type
+  _htmlListType = TOleEnum;
+const
+  htmlListTypeNotSet = $00000000;
+  htmlListTypeLargeAlpha = $00000001;
+  htmlListTypeSmallAlpha = $00000002;
+  htmlListTypeLargeRoman = $00000003;
+  htmlListTypeSmallRoman = $00000004;
+  htmlListTypeNumbers = $00000005;
+  htmlListTypeDisc = $00000006;
+  htmlListTypeCircle = $00000007;
+  htmlListTypeSquare = $00000008;
+  htmlListType_Max = $7FFFFFFF;
+
+// Constants for enum _htmlMethod
+type
+  _htmlMethod = TOleEnum;
+const
+  htmlMethodNotSet = $00000000;
+  htmlMethodGet = $00000001;
+  htmlMethodPost = $00000002;
+  htmlMethod_Max = $7FFFFFFF;
+
+// Constants for enum _htmlWrap
+type
+  _htmlWrap = TOleEnum;
+const
+  htmlWrapOff = $00000001;
+  htmlWrapSoft = $00000002;
+  htmlWrapHard = $00000003;
+  htmlWrap_Max = $7FFFFFFF;
+
+// Constants for enum _htmlDir
+type
+  _htmlDir = TOleEnum;
+const
+  htmlDirNotSet = $00000000;
+  htmlDirLeftToRight = $00000001;
+  htmlDirRightToLeft = $00000002;
+  htmlDir_Max = $7FFFFFFF;
+
+// Constants for enum _htmlEditable
+type
+  _htmlEditable = TOleEnum;
+const
+  htmlEditableInherit = $00000000;
+  htmlEditableTrue = $00000001;
+  htmlEditableFalse = $00000002;
+  htmlEditable_Max = $7FFFFFFF;
+
+// Constants for enum _htmlInput
+type
+  _htmlInput = TOleEnum;
+const
+  htmlInputNotSet = $00000000;
+  htmlInputButton = $00000001;
+  htmlInputCheckbox = $00000002;
+  htmlInputFile = $00000003;
+  htmlInputHidden = $00000004;
+  htmlInputImage_ = $00000005;
+  htmlInputPassword = $00000006;
+  htmlInputRadio = $00000007;
+  htmlInputReset = $00000008;
+  htmlInputSelectOne = $00000009;
+  htmlInputSelectMultiple = $0000000A;
+  htmlInputSubmit = $0000000B;
+  htmlInputText = $0000000C;
+  htmlInputTextarea = $0000000D;
+  htmlInputRichtext = $0000000E;
+  htmlInput_Max = $7FFFFFFF;
+
+// Constants for enum _htmlEncoding
+type
+  _htmlEncoding = TOleEnum;
+const
+  htmlEncodingURL = $00000000;
+  htmlEncodingMultipart = $00000001;
+  htmlEncodingText = $00000002;
+  htmlEncoding_Max = $7FFFFFFF;
+
+// Constants for enum _htmlAdjacency
+type
+  _htmlAdjacency = TOleEnum;
+const
+  htmlAdjacencyBeforeBegin = $00000001;
+  htmlAdjacencyAfterBegin = $00000002;
+  htmlAdjacencyBeforeEnd = $00000003;
+  htmlAdjacencyAfterEnd = $00000004;
+  htmlAdjacency_Max = $7FFFFFFF;
+
+// Constants for enum _htmlTabIndex
+type
+  _htmlTabIndex = TOleEnum;
+const
+  htmlTabIndexNotSet = $FFFF8000;
+  htmlTabIndex_Max = $7FFFFFFF;
+
+// Constants for enum _htmlComponent
+type
+  _htmlComponent = TOleEnum;
+const
+  htmlComponentClient = $00000000;
+  htmlComponentSbLeft = $00000001;
+  htmlComponentSbPageLeft = $00000002;
+  htmlComponentSbHThumb = $00000003;
+  htmlComponentSbPageRight = $00000004;
+  htmlComponentSbRight = $00000005;
+  htmlComponentSbUp = $00000006;
+  htmlComponentSbPageUp = $00000007;
+  htmlComponentSbVThumb = $00000008;
+  htmlComponentSbPageDown = $00000009;
+  htmlComponentSbDown = $0000000A;
+  htmlComponentSbLeft2 = $0000000B;
+  htmlComponentSbPageLeft2 = $0000000C;
+  htmlComponentSbRight2 = $0000000D;
+  htmlComponentSbPageRight2 = $0000000E;
+  htmlComponentSbUp2 = $0000000F;
+  htmlComponentSbPageUp2 = $00000010;
+  htmlComponentSbDown2 = $00000011;
+  htmlComponentSbPageDown2 = $00000012;
+  htmlComponentSbTop = $00000013;
+  htmlComponentSbBottom = $00000014;
+  htmlComponentOutside = $00000015;
+  htmlComponentGHTopLeft = $00000016;
+  htmlComponentGHLeft = $00000017;
+  htmlComponentGHTop = $00000018;
+  htmlComponentGHBottomLeft = $00000019;
+  htmlComponentGHTopRight = $0000001A;
+  htmlComponentGHBottom = $0000001B;
+  htmlComponentGHRight = $0000001C;
+  htmlComponentGHBottomRight = $0000001D;
+  htmlComponent_Max = $7FFFFFFF;
+
+// Constants for enum _htmlApplyLocation
+type
+  _htmlApplyLocation = TOleEnum;
+const
+  htmlApplyLocationInside = $00000000;
+  htmlApplyLocationOutside = $00000001;
+  htmlApplyLocation_Max = $7FFFFFFF;
+
+// Constants for enum _htmlGlyphMode
+type
+  _htmlGlyphMode = TOleEnum;
+const
+  htmlGlyphModeNone = $00000000;
+  htmlGlyphModeBegin = $00000001;
+  htmlGlyphModeEnd = $00000002;
+  htmlGlyphModeBoth = $00000003;
+  htmlGlyphMode_Max = $7FFFFFFF;
+
+// Constants for enum _htmlUnit
+type
+  _htmlUnit = TOleEnum;
+const
+  htmlUnitCharacter = $00000001;
+  htmlUnitWord = $00000002;
+  htmlUnitSentence = $00000003;
+  htmlUnitTextEdit = $00000006;
+  htmlUnit_Max = $7FFFFFFF;
+
+// Constants for enum _htmlEndPoints
+type
+  _htmlEndPoints = TOleEnum;
+const
+  htmlEndPointsStartToStart = $00000001;
+  htmlEndPointsStartToEnd = $00000002;
+  htmlEndPointsEndToStart = $00000003;
+  htmlEndPointsEndToEnd = $00000004;
+  htmlEndPoints_Max = $7FFFFFFF;
+
+// Constants for enum _htmlDirection
+type
+  _htmlDirection = TOleEnum;
+const
+  htmlDirectionForward = $0001869F;
+  htmlDirectionBackward = $FFFE7961;
+  htmlDirection_Max = $7FFFFFFF;
+
+// Constants for enum _htmlStart
+type
+  _htmlStart = TOleEnum;
+const
+  htmlStartfileopen = $00000000;
+  htmlStartmouseover = $00000001;
+  htmlStart_Max = $7FFFFFFF;
+
+// Constants for enum _bodyScroll
+type
+  _bodyScroll = TOleEnum;
+const
+  bodyScrollyes = $00000001;
+  bodyScrollno = $00000002;
+  bodyScrollauto = $00000004;
+  bodyScrolldefault = $00000003;
+  bodyScroll_Max = $7FFFFFFF;
+
+// Constants for enum _htmlSelectType
+type
+  _htmlSelectType = TOleEnum;
+const
+  htmlSelectTypeSelectOne = $00000001;
+  htmlSelectTypeSelectMultiple = $00000002;
+  htmlSelectType_Max = $7FFFFFFF;
+
+// Constants for enum _htmlSelection
+type
+  _htmlSelection = TOleEnum;
+const
+  htmlSelectionNone = $00000000;
+  htmlSelectionText = $00000001;
+  htmlSelectionControl = $00000002;
+  htmlSelectionTable = $00000003;
+  htmlSelection_Max = $7FFFFFFF;
+
+// Constants for enum _htmlMarqueeBehavior
+type
+  _htmlMarqueeBehavior = TOleEnum;
+const
+  htmlMarqueeBehaviorscroll = $00000001;
+  htmlMarqueeBehaviorslide = $00000002;
+  htmlMarqueeBehavioralternate = $00000003;
+  htmlMarqueeBehavior_Max = $7FFFFFFF;
+
+// Constants for enum _htmlMarqueeDirection
+type
+  _htmlMarqueeDirection = TOleEnum;
+const
+  htmlMarqueeDirectionleft = $00000001;
+  htmlMarqueeDirectionright = $00000003;
+  htmlMarqueeDirectionup = $00000005;
+  htmlMarqueeDirectiondown = $00000007;
+  htmlMarqueeDirection_Max = $7FFFFFFF;
+
+// Constants for enum _htmlPersistState
+type
+  _htmlPersistState = TOleEnum;
+const
+  htmlPersistStateNormal = $00000000;
+  htmlPersistStateFavorite = $00000001;
+  htmlPersistStateHistory = $00000002;
+  htmlPersistStateSnapshot = $00000003;
+  htmlPersistStateUserData = $00000004;
+  htmlPersistState_Max = $7FFFFFFF;
+
+// Constants for enum _htmlDropEffect
+type
+  _htmlDropEffect = TOleEnum;
+const
+  htmlDropEffectCopy = $00000000;
+  htmlDropEffectLink = $00000001;
+  htmlDropEffectMove = $00000002;
+  htmlDropEffectNone = $00000003;
+  htmlDropEffect_Max = $7FFFFFFF;
+
+// Constants for enum _htmlEffectAllowed
+type
+  _htmlEffectAllowed = TOleEnum;
+const
+  htmlEffectAllowedCopy = $00000000;
+  htmlEffectAllowedLink = $00000001;
+  htmlEffectAllowedMove = $00000002;
+  htmlEffectAllowedCopyLink = $00000003;
+  htmlEffectAllowedCopyMove = $00000004;
+  htmlEffectAllowedLinkMove = $00000005;
+  htmlEffectAllowedAll = $00000006;
+  htmlEffectAllowedNone = $00000007;
+  htmlEffectAllowedUninitialized = $00000008;
+  htmlEffectAllowed_Max = $7FFFFFFF;
+
+// Constants for enum _htmlCompatMode
+type
+  _htmlCompatMode = TOleEnum;
+const
+  htmlCompatModeBackCompat = $00000000;
+  htmlCompatModeCSS1Compat = $00000001;
+  htmlCompatMode_Max = $7FFFFFFF;
+
+// Constants for enum _BoolValue
+type
+  _BoolValue = TOleEnum;
+const
+//  True = $00000001;
+//  False = $00000000;
+  BoolValue_Max = $7FFFFFFF;
+
+// Constants for enum _htmlCaptionAlign
+type
+  _htmlCaptionAlign = TOleEnum;
+const
+  htmlCaptionAlignNotSet = $00000000;
+  htmlCaptionAlignLeft = $00000001;
+  htmlCaptionAlignCenter = $00000002;
+  htmlCaptionAlignRight = $00000003;
+  htmlCaptionAlignJustify = $00000004;
+  htmlCaptionAlignTop = $00000005;
+  htmlCaptionAlignBottom = $00000006;
+  htmlCaptionAlign_Max = $7FFFFFFF;
+
+// Constants for enum _htmlCaptionVAlign
+type
+  _htmlCaptionVAlign = TOleEnum;
+const
+  htmlCaptionVAlignNotSet = $00000000;
+  htmlCaptionVAlignTop = $00000001;
+  htmlCaptionVAlignBottom = $00000002;
+  htmlCaptionVAlign_Max = $7FFFFFFF;
+
+// Constants for enum _htmlFrame
+type
+  _htmlFrame = TOleEnum;
+const
+  htmlFrameNotSet = $00000000;
+  htmlFramevoid = $00000001;
+  htmlFrameabove = $00000002;
+  htmlFramebelow = $00000003;
+  htmlFramehsides = $00000004;
+  htmlFramelhs = $00000005;
+  htmlFramerhs = $00000006;
+  htmlFramevsides = $00000007;
+  htmlFramebox = $00000008;
+  htmlFrameborder = $00000009;
+  htmlFrame_Max = $7FFFFFFF;
+
+// Constants for enum _htmlRules
+type
+  _htmlRules = TOleEnum;
+const
+  htmlRulesNotSet = $00000000;
+  htmlRulesnone = $00000001;
+  htmlRulesgroups = $00000002;
+  htmlRulesrows = $00000003;
+  htmlRulescols = $00000004;
+  htmlRulesall = $00000005;
+  htmlRules_Max = $7FFFFFFF;
+
+// Constants for enum _htmlCellAlign
+type
+  _htmlCellAlign = TOleEnum;
+const
+  htmlCellAlignNotSet = $00000000;
+  htmlCellAlignLeft = $00000001;
+  htmlCellAlignCenter = $00000002;
+  htmlCellAlignRight = $00000003;
+  htmlCellAlignMiddle = $00000002;
+  htmlCellAlign_Max = $7FFFFFFF;
+
+// Constants for enum _htmlCellVAlign
+type
+  _htmlCellVAlign = TOleEnum;
+const
+  htmlCellVAlignNotSet = $00000000;
+  htmlCellVAlignTop = $00000001;
+  htmlCellVAlignMiddle = $00000002;
+  htmlCellVAlignBottom = $00000003;
+  htmlCellVAlignBaseline = $00000004;
+  htmlCellVAlignCenter = $00000002;
+  htmlCellVAlign_Max = $7FFFFFFF;
+
+// Constants for enum _frameScrolling
+type
+  _frameScrolling = TOleEnum;
+const
+  frameScrollingyes = $00000001;
+  frameScrollingno = $00000002;
+  frameScrollingauto = $00000004;
+  frameScrolling_Max = $7FFFFFFF;
+
+// Constants for enum _ELEMENT_CORNER
+type
+  _ELEMENT_CORNER = TOleEnum;
+const
+  ELEMENT_CORNER_NONE = $00000000;
+  ELEMENT_CORNER_TOP = $00000001;
+  ELEMENT_CORNER_LEFT = $00000002;
+  ELEMENT_CORNER_BOTTOM = $00000003;
+  ELEMENT_CORNER_RIGHT = $00000004;
+  ELEMENT_CORNER_TOPLEFT = $00000005;
+  ELEMENT_CORNER_TOPRIGHT = $00000006;
+  ELEMENT_CORNER_BOTTOMLEFT = $00000007;
+  ELEMENT_CORNER_BOTTOMRIGHT = $00000008;
+  ELEMENT_CORNER_Max = $7FFFFFFF;
+
+// Constants for enum _SECUREURLHOSTVALIDATE_FLAGS
+type
+  _SECUREURLHOSTVALIDATE_FLAGS = TOleEnum;
+const
+  SUHV_PROMPTBEFORENO = $00000001;
+  SUHV_SILENTYES = $00000002;
+  SUHV_UNSECURESOURCE = $00000004;
+  SECUREURLHOSTVALIDATE_FLAGS_Max = $7FFFFFFF;
+
+// Constants for enum _POINTER_GRAVITY
+type
+  _POINTER_GRAVITY = TOleEnum;
+const
+  POINTER_GRAVITY_Left = $00000000;
+  POINTER_GRAVITY_Right = $00000001;
+  POINTER_GRAVITY_Max = $7FFFFFFF;
+
+// Constants for enum _ELEMENT_ADJACENCY
+type
+  _ELEMENT_ADJACENCY = TOleEnum;
+const
+  ELEM_ADJ_BeforeBegin = $00000000;
+  ELEM_ADJ_AfterBegin = $00000001;
+  ELEM_ADJ_BeforeEnd = $00000002;
+  ELEM_ADJ_AfterEnd = $00000003;
+  ELEMENT_ADJACENCY_Max = $7FFFFFFF;
+
+// Constants for enum _MARKUP_CONTEXT_TYPE
+type
+  _MARKUP_CONTEXT_TYPE = TOleEnum;
+const
+  CONTEXT_TYPE_None = $00000000;
+  CONTEXT_TYPE_Text = $00000001;
+  CONTEXT_TYPE_EnterScope = $00000002;
+  CONTEXT_TYPE_ExitScope = $00000003;
+  CONTEXT_TYPE_NoScope = $00000004;
+  MARKUP_CONTEXT_TYPE_Max = $7FFFFFFF;
+
+// Constants for enum _FINDTEXT_FLAGS
+type
+  _FINDTEXT_FLAGS = TOleEnum;
+const
+  FINDTEXT_BACKWARDS = $00000001;
+  FINDTEXT_WHOLEWORD = $00000002;
+  FINDTEXT_MATCHCASE = $00000004;
+  FINDTEXT_RAW = $00020000;
+  FINDTEXT_MATCHDIAC = $20000000;
+  FINDTEXT_MATCHKASHIDA = $40000000;
+  FINDTEXT_MATCHALEFHAMZA = $80000000;
+  FINDTEXT_FLAGS_Max = $7FFFFFFF;
+
+// Constants for enum _MOVEUNIT_ACTION
+type
+  _MOVEUNIT_ACTION = TOleEnum;
+const
+  MOVEUNIT_PREVCHAR = $00000000;
+  MOVEUNIT_NEXTCHAR = $00000001;
+  MOVEUNIT_PREVCLUSTERBEGIN = $00000002;
+  MOVEUNIT_NEXTCLUSTERBEGIN = $00000003;
+  MOVEUNIT_PREVCLUSTEREND = $00000004;
+  MOVEUNIT_NEXTCLUSTEREND = $00000005;
+  MOVEUNIT_PREVWORDBEGIN = $00000006;
+  MOVEUNIT_NEXTWORDBEGIN = $00000007;
+  MOVEUNIT_PREVWORDEND = $00000008;
+  MOVEUNIT_NEXTWORDEND = $00000009;
+  MOVEUNIT_PREVPROOFWORD = $0000000A;
+  MOVEUNIT_NEXTPROOFWORD = $0000000B;
+  MOVEUNIT_NEXTURLBEGIN = $0000000C;
+  MOVEUNIT_PREVURLBEGIN = $0000000D;
+  MOVEUNIT_NEXTURLEND = $0000000E;
+  MOVEUNIT_PREVURLEND = $0000000F;
+  MOVEUNIT_PREVSENTENCE = $00000010;
+  MOVEUNIT_NEXTSENTENCE = $00000011;
+  MOVEUNIT_PREVBLOCK = $00000012;
+  MOVEUNIT_NEXTBLOCK = $00000013;
+  MOVEUNIT_ACTION_Max = $7FFFFFFF;
+
+// Constants for enum _PARSE_FLAGS
+type
+  _PARSE_FLAGS = TOleEnum;
+const
+  PARSE_ABSOLUTIFYIE40URLS = $00000001;
+  PARSE_FLAGS_Max = $7FFFFFFF;
+
+// Constants for enum _ELEMENT_TAG_ID
+type
+  _ELEMENT_TAG_ID = TOleEnum;
+const
+  TAGID_NULL = $00000000;
+  TAGID_UNKNOWN = $00000001;
+  TAGID_A = $00000002;
+  TAGID_ACRONYM = $00000003;
+  TAGID_ADDRESS = $00000004;
+  TAGID_APPLET = $00000005;
+  TAGID_AREA = $00000006;
+  TAGID_B = $00000007;
+  TAGID_BASE = $00000008;
+  TAGID_BASEFONT = $00000009;
+  TAGID_BDO = $0000000A;
+  TAGID_BGSOUND = $0000000B;
+  TAGID_BIG = $0000000C;
+  TAGID_BLINK = $0000000D;
+  TAGID_BLOCKQUOTE = $0000000E;
+  TAGID_BODY = $0000000F;
+  TAGID_BR = $00000010;
+  TAGID_BUTTON = $00000011;
+  TAGID_CAPTION = $00000012;
+  TAGID_CENTER = $00000013;
+  TAGID_CITE = $00000014;
+  TAGID_CODE = $00000015;
+  TAGID_COL = $00000016;
+  TAGID_COLGROUP = $00000017;
+  TAGID_COMMENT = $00000018;
+  TAGID_COMMENT_RAW = $00000019;
+  TAGID_DD = $0000001A;
+  TAGID_DEL = $0000001B;
+  TAGID_DFN = $0000001C;
+  TAGID_DIR = $0000001D;
+  TAGID_DIV = $0000001E;
+  TAGID_DL = $0000001F;
+  TAGID_DT = $00000020;
+  TAGID_EM = $00000021;
+  TAGID_EMBED = $00000022;
+  TAGID_FIELDSET = $00000023;
+  TAGID_FONT = $00000024;
+  TAGID_FORM = $00000025;
+  TAGID_FRAME = $00000026;
+  TAGID_FRAMESET = $00000027;
+  TAGID_GENERIC = $00000028;
+  TAGID_H1 = $00000029;
+  TAGID_H2 = $0000002A;
+  TAGID_H3 = $0000002B;
+  TAGID_H4 = $0000002C;
+  TAGID_H5 = $0000002D;
+  TAGID_H6 = $0000002E;
+  TAGID_HEAD = $0000002F;
+  TAGID_HR = $00000030;
+  TAGID_HTML = $00000031;
+  TAGID_I = $00000032;
+  TAGID_IFRAME = $00000033;
+  TAGID_IMG = $00000034;
+  TAGID_INPUT = $00000035;
+  TAGID_INS = $00000036;
+  TAGID_KBD = $00000037;
+  TAGID_LABEL = $00000038;
+  TAGID_LEGEND = $00000039;
+  TAGID_LI = $0000003A;
+  TAGID_LINK = $0000003B;
+  TAGID_LISTING = $0000003C;
+  TAGID_MAP = $0000003D;
+  TAGID_MARQUEE = $0000003E;
+  TAGID_MENU = $0000003F;
+  TAGID_META = $00000040;
+  TAGID_NEXTID = $00000041;
+  TAGID_NOBR = $00000042;
+  TAGID_NOEMBED = $00000043;
+  TAGID_NOFRAMES = $00000044;
+  TAGID_NOSCRIPT = $00000045;
+  TAGID_OBJECT = $00000046;
+  TAGID_OL = $00000047;
+  TAGID_OPTION = $00000048;
+  TAGID_P = $00000049;
+  TAGID_PARAM = $0000004A;
+  TAGID_PLAINTEXT = $0000004B;
+  TAGID_PRE = $0000004C;
+  TAGID_Q = $0000004D;
+  TAGID_RP = $0000004E;
+  TAGID_RT = $0000004F;
+  TAGID_RUBY = $00000050;
+  TAGID_S = $00000051;
+  TAGID_SAMP = $00000052;
+  TAGID_SCRIPT = $00000053;
+  TAGID_SELECT = $00000054;
+  TAGID_SMALL = $00000055;
+  TAGID_SPAN = $00000056;
+  TAGID_STRIKE = $00000057;
+  TAGID_STRONG = $00000058;
+  TAGID_STYLE = $00000059;
+  TAGID_SUB = $0000005A;
+  TAGID_SUP = $0000005B;
+  TAGID_TABLE = $0000005C;
+  TAGID_TBODY = $0000005D;
+  TAGID_TC = $0000005E;
+  TAGID_TD = $0000005F;
+  TAGID_TEXTAREA = $00000060;
+  TAGID_TFOOT = $00000061;
+  TAGID_TH = $00000062;
+  TAGID_THEAD = $00000063;
+  TAGID_TITLE = $00000064;
+  TAGID_TR = $00000065;
+  TAGID_TT = $00000066;
+  TAGID_U = $00000067;
+  TAGID_UL = $00000068;
+  TAGID_VAR = $00000069;
+  TAGID_WBR = $0000006A;
+  TAGID_XMP = $0000006B;
+  TAGID_ROOT = $0000006C;
+  TAGID_OPTGROUP = $0000006D;
+  TAGID_COUNT = $0000006E;
+  TAGID_LAST_PREDEFINED = $00002710;
+  ELEMENT_TAG_ID_Max = $7FFFFFFF;
+
+// Constants for enum _SELECTION_TYPE
+type
+  _SELECTION_TYPE = TOleEnum;
+const
+  SELECTION_TYPE_None = $00000000;
+  SELECTION_TYPE_Caret = $00000001;
+  SELECTION_TYPE_Text = $00000002;
+  SELECTION_TYPE_Control = $00000003;
+  SELECTION_TYPE_Max = $7FFFFFFF;
+
+// Constants for enum _SAVE_SEGMENTS_FLAGS
+type
+  _SAVE_SEGMENTS_FLAGS = TOleEnum;
+const
+  SAVE_SEGMENTS_NoIE4SelectionCompat = $00000001;
+  SAVE_SEGMENTS_FLAGS_Max = $7FFFFFFF;
+
+// Constants for enum _CARET_DIRECTION
+type
+  _CARET_DIRECTION = TOleEnum;
+const
+  CARET_DIRECTION_INDETERMINATE = $00000000;
+  CARET_DIRECTION_SAME = $00000001;
+  CARET_DIRECTION_BACKWARD = $00000002;
+  CARET_DIRECTION_FORWARD = $00000003;
+  CARET_DIRECTION_Max = $7FFFFFFF;
+
+// Constants for enum _LINE_DIRECTION
+type
+  _LINE_DIRECTION = TOleEnum;
+const
+  LINE_DIRECTION_RightToLeft = $00000001;
+  LINE_DIRECTION_LeftToRight = $00000002;
+  LINE_DIRECTION_Max = $7FFFFFFF;
+
+// Constants for enum _HT_OPTIONS
+type
+  _HT_OPTIONS = TOleEnum;
+const
+  HT_OPT_AllowAfterEOL = $00000001;
+  HT_OPTIONS_Max = $7FFFFFFF;
+
+// Constants for enum _HT_RESULTS
+type
+  _HT_RESULTS = TOleEnum;
+const
+  HT_RESULTS_Glyph = $00000001;
+  HT_RESULTS_Max = $7FFFFFFF;
+
+// Constants for enum _DISPLAY_MOVEUNIT
+type
+  _DISPLAY_MOVEUNIT = TOleEnum;
+const
+  DISPLAY_MOVEUNIT_PreviousLine = $00000001;
+  DISPLAY_MOVEUNIT_NextLine = $00000002;
+  DISPLAY_MOVEUNIT_CurrentLineStart = $00000003;
+  DISPLAY_MOVEUNIT_CurrentLineEnd = $00000004;
+  DISPLAY_MOVEUNIT_TopOfWindow = $00000005;
+  DISPLAY_MOVEUNIT_BottomOfWindow = $00000006;
+  DISPLAY_MOVEUNIT_Max = $7FFFFFFF;
+
+// Constants for enum _DISPLAY_GRAVITY
+type
+  _DISPLAY_GRAVITY = TOleEnum;
+const
+  DISPLAY_GRAVITY_PreviousLine = $00000001;
+  DISPLAY_GRAVITY_NextLine = $00000002;
+  DISPLAY_GRAVITY_Max = $7FFFFFFF;
+
+// Constants for enum _DISPLAY_BREAK
+type
+  _DISPLAY_BREAK = TOleEnum;
+const
+  DISPLAY_BREAK_None = $00000000;
+  DISPLAY_BREAK_Block = $00000001;
+  DISPLAY_BREAK_Break = $00000002;
+  DISPLAY_BREAK_Max = $7FFFFFFF;
+
+// Constants for enum _COORD_SYSTEM
+type
+  _COORD_SYSTEM = TOleEnum;
+const
+  COORD_SYSTEM_GLOBAL = $00000000;
+  COORD_SYSTEM_PARENT = $00000001;
+  COORD_SYSTEM_CONTAINER = $00000002;
+  COORD_SYSTEM_CONTENT = $00000003;
+  COORD_SYSTEM_FRAME = $00000004;
+  COORD_SYSTEM_Max = $7FFFFFFF;
+
+// Constants for enum _HTML_PAINTER
+type
+  _HTML_PAINTER = TOleEnum;
+const
+  HTMLPAINTER_OPAQUE = $00000001;
+  HTMLPAINTER_TRANSPARENT = $00000002;
+  HTMLPAINTER_ALPHA = $00000004;
+  HTMLPAINTER_COMPLEX = $00000008;
+  HTMLPAINTER_OVERLAY = $00000010;
+  HTMLPAINTER_HITTEST = $00000020;
+  HTMLPAINTER_SURFACE = $00000100;
+  HTMLPAINTER_3DSURFACE = $00000200;
+  HTMLPAINTER_NOBAND = $00000400;
+  HTMLPAINTER_NODC = $00001000;
+  HTMLPAINTER_NOPHYSICALCLIP = $00002000;
+  HTMLPAINTER_NOSAVEDC = $00004000;
+  HTMLPAINTER_SUPPORTS_XFORM = $00008000;
+  HTMLPAINTER_EXPAND = $00010000;
+  HTMLPAINTER_NOSCROLLBITS = $00020000;
+  HTML_PAINTER_Max = $7FFFFFFF;
+
+// Constants for enum _HTML_PAINT_ZORDER
+type
+  _HTML_PAINT_ZORDER = TOleEnum;
+const
+  HTMLPAINT_ZORDER_NONE = $00000000;
+  HTMLPAINT_ZORDER_REPLACE_ALL = $00000001;
+  HTMLPAINT_ZORDER_REPLACE_CONTENT = $00000002;
+  HTMLPAINT_ZORDER_REPLACE_BACKGROUND = $00000003;
+  HTMLPAINT_ZORDER_BELOW_CONTENT = $00000004;
+  HTMLPAINT_ZORDER_BELOW_FLOW = $00000005;
+  HTMLPAINT_ZORDER_ABOVE_FLOW = $00000006;
+  HTMLPAINT_ZORDER_ABOVE_CONTENT = $00000007;
+  HTMLPAINT_ZORDER_WINDOW_TOP = $00000008;
+  HTML_PAINT_ZORDER_Max = $7FFFFFFF;
+
+// Constants for enum _HTML_PAINT_DRAW_FLAGS
+type
+  _HTML_PAINT_DRAW_FLAGS = TOleEnum;
+const
+  HTMLPAINT_DRAW_UPDATEREGION = $00000001;
+  HTMLPAINT_DRAW_USE_XFORM = $00000002;
+  HTML_PAINT_DRAW_FLAGS_Max = $7FFFFFFF;
+
+// Constants for enum _HTML_PAINT_EVENT_FLAGS
+type
+  _HTML_PAINT_EVENT_FLAGS = TOleEnum;
+const
+  HTMLPAINT_EVENT_TARGET = $00000001;
+  HTMLPAINT_EVENT_SETCURSOR = $00000002;
+  HTML_PAINT_EVENT_FLAGS_Max = $7FFFFFFF;
+
+// Constants for enum _HTML_PAINT_DRAW_INFO_FLAGS
+type
+  _HTML_PAINT_DRAW_INFO_FLAGS = TOleEnum;
+const
+  HTMLPAINT_DRAWINFO_VIEWPORT = $00000001;
+  HTMLPAINT_DRAWINFO_UPDATEREGION = $00000002;
+  HTMLPAINT_DRAWINFO_XFORM = $00000004;
+  HTML_PAINT_DRAW_INFO_FLAGS_Max = $7FFFFFFF;
+
+// Constants for enum _HTMLDlgFlag
+type
+  _HTMLDlgFlag = TOleEnum;
+const
+  HTMLDlgFlagNo = $00000000;
+  HTMLDlgFlagOff = $00000000;
+  HTMLDlgFlag0 = $00000000;
+  HTMLDlgFlagYes = $00000001;
+  HTMLDlgFlagOn = $00000001;
+  HTMLDlgFlag1 = $00000001;
+  HTMLDlgFlagNotSet = $FFFFFFFF;
+  HTMLDlgFlag_Max = $7FFFFFFF;
+
+// Constants for enum _HTMLDlgBorder
+type
+  _HTMLDlgBorder = TOleEnum;
+const
+  HTMLDlgBorderThin = $00000000;
+  HTMLDlgBorderThick = $00040000;
+  HTMLDlgBorder_Max = $7FFFFFFF;
+
+// Constants for enum _HTMLDlgEdge
+type
+  _HTMLDlgEdge = TOleEnum;
+const
+  HTMLDlgEdgeSunken = $00000000;
+  HTMLDlgEdgeRaised = $00000010;
+  HTMLDlgEdge_Max = $7FFFFFFF;
+
+// Constants for enum _HTMLDlgCenter
+type
+  _HTMLDlgCenter = TOleEnum;
+const
+  HTMLDlgCenterNo = $00000000;
+  HTMLDlgCenterOff = $00000000;
+  HTMLDlgCenter0 = $00000000;
+  HTMLDlgCenterYes = $00000001;
+  HTMLDlgCenterOn = $00000001;
+  HTMLDlgCenter1 = $00000001;
+  HTMLDlgCenterParent = $00000001;
+  HTMLDlgCenterDesktop = $00000002;
+  HTMLDlgCenter_Max = $7FFFFFFF;
+
+// Constants for enum _HTMLAppFlag
+type
+  _HTMLAppFlag = TOleEnum;
+const
+  HTMLAppFlagNo = $00000000;
+  HTMLAppFlagOff = $00000000;
+  HTMLAppFlag0 = $00000000;
+  HTMLAppFlagYes = $00000001;
+  HTMLAppFlagOn = $00000001;
+  HTMLAppFlag1 = $00000001;
+  HTMLAppFlag_Max = $7FFFFFFF;
+
+// Constants for enum _HTMLMinimizeFlag
+type
+  _HTMLMinimizeFlag = TOleEnum;
+const
+  HTMLMinimizeFlagNo = $00000000;
+  HTMLMinimizeFlagYes = $00020000;
+  HTMLMinimizeFlag_Max = $7FFFFFFF;
+
+// Constants for enum _HTMLMaximizeFlag
+type
+  _HTMLMaximizeFlag = TOleEnum;
+const
+  HTMLMaximizeFlagNo = $00000000;
+  HTMLMaximizeFlagYes = $00010000;
+  HTMLMaximizeFlag_Max = $7FFFFFFF;
+
+// Constants for enum _HTMLCaptionFlag
+type
+  _HTMLCaptionFlag = TOleEnum;
+const
+  HTMLCaptionFlagNo = $00000000;
+  HTMLCaptionFlagYes = $00C00000;
+  HTMLCaptionFlag_Max = $7FFFFFFF;
+
+// Constants for enum _HTMLSysMenuFlag
+type
+  _HTMLSysMenuFlag = TOleEnum;
+const
+  HTMLSysMenuFlagNo = $00000000;
+  HTMLSysMenuFlagYes = $00080000;
+  HTMLSysMenuFlag_Max = $7FFFFFFF;
+
+// Constants for enum _HTMLBorder
+type
+  _HTMLBorder = TOleEnum;
+const
+  HTMLBorderNone = $00000000;
+  HTMLBorderThick = $00040000;
+  HTMLBorderDialog = $00400000;
+  HTMLBorderThin = $00800000;
+  HTMLBorder_Max = $7FFFFFFF;
+
+// Constants for enum _HTMLBorderStyle
+type
+  _HTMLBorderStyle = TOleEnum;
+const
+  HTMLBorderStyleNormal = $00000000;
+  HTMLBorderStyleRaised = $00000100;
+  HTMLBorderStyleSunken = $00000200;
+  HTMLBorderStylecombined = $00000300;
+  HTMLBorderStyleStatic = $00020000;
+  HTMLBorderStyle_Max = $7FFFFFFF;
+
+// Constants for enum _HTMLWindowState
+type
+  _HTMLWindowState = TOleEnum;
+const
+  HTMLWindowStateNormal = $00000001;
+  HTMLWindowStateMaximize = $00000003;
+  HTMLWindowStateMinimize = $00000006;
+  HTMLWindowState_Max = $7FFFFFFF;
+
+// Constants for enum _BEHAVIOR_EVENT
+type
+  _BEHAVIOR_EVENT = TOleEnum;
+const
+  BEHAVIOREVENT_FIRST = $00000000;
+  BEHAVIOREVENT_CONTENTREADY = $00000000;
+  BEHAVIOREVENT_DOCUMENTREADY = $00000001;
+  BEHAVIOREVENT_APPLYSTYLE = $00000002;
+  BEHAVIOREVENT_DOCUMENTCONTEXTCHANGE = $00000003;
+  BEHAVIOREVENT_CONTENTSAVE = $00000004;
+  BEHAVIOREVENT_LAST = $00000004;
+  BEHAVIOR_EVENT_Max = $7FFFFFFF;
+
+// Constants for enum _BEHAVIOR_EVENT_FLAGS
+type
+  _BEHAVIOR_EVENT_FLAGS = TOleEnum;
+const
+  BEHAVIOREVENTFLAGS_BUBBLE = $00000001;
+  BEHAVIOREVENTFLAGS_STANDARDADDITIVE = $00000002;
+  BEHAVIOR_EVENT_FLAGS_Max = $7FFFFFFF;
+
+// Constants for enum _BEHAVIOR_RENDER_INFO
+type
+  _BEHAVIOR_RENDER_INFO = TOleEnum;
+const
+  BEHAVIORRENDERINFO_BEFOREBACKGROUND = $00000001;
+  BEHAVIORRENDERINFO_AFTERBACKGROUND = $00000002;
+  BEHAVIORRENDERINFO_BEFORECONTENT = $00000004;
+  BEHAVIORRENDERINFO_AFTERCONTENT = $00000008;
+  BEHAVIORRENDERINFO_AFTERFOREGROUND = $00000020;
+  BEHAVIORRENDERINFO_ABOVECONTENT = $00000028;
+  BEHAVIORRENDERINFO_ALLLAYERS = $000000FF;
+  BEHAVIORRENDERINFO_DISABLEBACKGROUND = $00000100;
+  BEHAVIORRENDERINFO_DISABLENEGATIVEZ = $00000200;
+  BEHAVIORRENDERINFO_DISABLECONTENT = $00000400;
+  BEHAVIORRENDERINFO_DISABLEPOSITIVEZ = $00000800;
+  BEHAVIORRENDERINFO_DISABLEALLLAYERS = $00000F00;
+  BEHAVIORRENDERINFO_HITTESTING = $00001000;
+  BEHAVIORRENDERINFO_SURFACE = $00100000;
+  BEHAVIORRENDERINFO_3DSURFACE = $00200000;
+  BEHAVIOR_RENDER_INFO_Max = $7FFFFFFF;
+
+// Constants for enum _BEHAVIOR_RELATION
+type
+  _BEHAVIOR_RELATION = TOleEnum;
+const
+  BEHAVIOR_FIRSTRELATION = $00000000;
+  BEHAVIOR_SAMEELEMENT = $00000000;
+  BEHAVIOR_PARENT = $00000001;
+  BEHAVIOR_CHILD = $00000002;
+  BEHAVIOR_SIBLING = $00000003;
+  BEHAVIOR_LASTRELATION = $00000003;
+  BEHAVIOR_RELATION_Max = $7FFFFFFF;
+
+// Constants for enum _BEHAVIOR_LAYOUT_INFO
+type
+  _BEHAVIOR_LAYOUT_INFO = TOleEnum;
+const
+  BEHAVIORLAYOUTINFO_FULLDELEGATION = $00000001;
+  BEHAVIORLAYOUTINFO_MODIFYNATURAL = $00000002;
+  BEHAVIORLAYOUTINFO_MAPSIZE = $00000004;
+  BEHAVIOR_LAYOUT_INFO_Max = $7FFFFFFF;
+
+// Constants for enum _BEHAVIOR_LAYOUT_MODE
+type
+  _BEHAVIOR_LAYOUT_MODE = TOleEnum;
+const
+  BEHAVIORLAYOUTMODE_NATURAL = $00000001;
+  BEHAVIORLAYOUTMODE_MINWIDTH = $00000002;
+  BEHAVIORLAYOUTMODE_MAXWIDTH = $00000004;
+  BEHAVIORLAYOUTMODE_MEDIA_RESOLUTION = $00004000;
+  BEHAVIORLAYOUTMODE_FINAL_PERCENT = $00008000;
+  BEHAVIOR_LAYOUT_MODE_Max = $7FFFFFFF;
+
+// Constants for enum _ELEMENTDESCRIPTOR_FLAGS
+type
+  _ELEMENTDESCRIPTOR_FLAGS = TOleEnum;
+const
+  ELEMENTDESCRIPTORFLAGS_LITERAL = $00000001;
+  ELEMENTDESCRIPTORFLAGS_NESTED_LITERAL = $00000002;
+  ELEMENTDESCRIPTOR_FLAGS_Max = $7FFFFFFF;
+
+// Constants for enum _ELEMENTNAMESPACE_FLAGS
+type
+  _ELEMENTNAMESPACE_FLAGS = TOleEnum;
+const
+  ELEMENTNAMESPACEFLAGS_ALLOWANYTAG = $00000001;
+  ELEMENTNAMESPACEFLAGS_QUERYFORUNKNOWNTAGS = $00000002;
+  ELEMENTNAMESPACE_FLAGS_Max = $7FFFFFFF;
+
+type
+// *********************************************************************//
+// Forward declaration of types defined in TypeLibrary
+// *********************************************************************//
+  IHTMLEventObj = interface;
+  IHTMLEventObjDisp = dispinterface;
+  IHTMLElement = interface;
+  IHTMLElementDisp = dispinterface;
+  IHTMLStyle = interface;
+  IHTMLStyleDisp = dispinterface;
+  IHTMLFiltersCollection = interface;
+  IHTMLFiltersCollectionDisp = dispinterface;
+  IElementBehaviorSite = interface;
+  IElementBehavior = interface;
+  IElementBehaviorFactory = interface;
+  IElementBehaviorSiteOM = interface;
+  IElementBehaviorRender = interface;
+  IElementBehaviorSiteRender = interface;
+  IHTMLStyle2 = interface;
+  IHTMLStyle2Disp = dispinterface;
+  IHTMLStyle3 = interface;
+  IHTMLStyle3Disp = dispinterface;
+  IHTMLStyle4 = interface;
+  IHTMLStyle4Disp = dispinterface;
+  IHTMLRuleStyle = interface;
+  IHTMLRuleStyleDisp = dispinterface;
+  IHTMLRuleStyle2 = interface;
+  IHTMLRuleStyle2Disp = dispinterface;
+  IHTMLRuleStyle3 = interface;
+  IHTMLRuleStyle3Disp = dispinterface;
+  IHTMLRuleStyle4 = interface;
+  IHTMLRuleStyle4Disp = dispinterface;
+  DispHTMLStyle = dispinterface;
+  DispHTMLRuleStyle = dispinterface;
+  IHTMLRenderStyle = interface;
+  IHTMLRenderStyleDisp = dispinterface;
+  DispHTMLRenderStyle = dispinterface;
+  IHTMLCurrentStyle = interface;
+  IHTMLCurrentStyleDisp = dispinterface;
+  IHTMLCurrentStyle2 = interface;
+  IHTMLCurrentStyle2Disp = dispinterface;
+  IHTMLCurrentStyle3 = interface;
+  IHTMLCurrentStyle3Disp = dispinterface;
+  DispHTMLCurrentStyle = dispinterface;
+  IHTMLRect = interface;
+  IHTMLRectDisp = dispinterface;
+  IHTMLRectCollection = interface;
+  IHTMLRectCollectionDisp = dispinterface;
+  IHTMLDOMNode = interface;
+  IHTMLDOMNodeDisp = dispinterface;
+  IHTMLDOMNode2 = interface;
+  IHTMLDOMNode2Disp = dispinterface;
+  IHTMLDOMAttribute = interface;
+  IHTMLDOMAttributeDisp = dispinterface;
+  IHTMLDOMAttribute2 = interface;
+  IHTMLDOMAttribute2Disp = dispinterface;
+  IHTMLDOMTextNode = interface;
+  IHTMLDOMTextNodeDisp = dispinterface;
+  IHTMLDOMTextNode2 = interface;
+  IHTMLDOMTextNode2Disp = dispinterface;
+  IHTMLDOMImplementation = interface;
+  IHTMLDOMImplementationDisp = dispinterface;
+  DispHTMLDOMAttribute = dispinterface;
+  DispHTMLDOMTextNode = dispinterface;
+  DispHTMLDOMImplementation = dispinterface;
+  IHTMLAttributeCollection = interface;
+  IHTMLAttributeCollectionDisp = dispinterface;
+  IHTMLAttributeCollection2 = interface;
+  IHTMLAttributeCollection2Disp = dispinterface;
+  IHTMLDOMChildrenCollection = interface;
+  IHTMLDOMChildrenCollectionDisp = dispinterface;
+  DispHTMLAttributeCollection = dispinterface;
+  DispDOMChildrenCollection = dispinterface;
+  HTMLElementEvents2 = dispinterface;
+  HTMLElementEvents = dispinterface;
+  IHTMLElementCollection = interface;
+  IHTMLElementCollectionDisp = dispinterface;
+  IHTMLElement2 = interface;
+  IHTMLElement2Disp = dispinterface;
+  IHTMLElement3 = interface;
+  IHTMLElement3Disp = dispinterface;
+  IHTMLElement4 = interface;
+  IHTMLElement4Disp = dispinterface;
+  IHTMLElementRender = interface;
+  IHTMLUniqueName = interface;
+  IHTMLUniqueNameDisp = dispinterface;
+  IHTMLDatabinding = interface;
+  IHTMLDatabindingDisp = dispinterface;
+  IHTMLDocument = interface;
+  IHTMLDocumentDisp = dispinterface;
+  IHTMLElementDefaults = interface;
+  IHTMLElementDefaultsDisp = dispinterface;
+  DispHTMLDefaults = dispinterface;
+  IHTCDefaultDispatch = interface;
+  IHTCDefaultDispatchDisp = dispinterface;
+  IHTCPropertyBehavior = interface;
+  IHTCPropertyBehaviorDisp = dispinterface;
+  IHTCMethodBehavior = interface;
+  IHTCMethodBehaviorDisp = dispinterface;
+  IHTCEventBehavior = interface;
+  IHTCEventBehaviorDisp = dispinterface;
+  IHTCAttachBehavior = interface;
+  IHTCAttachBehaviorDisp = dispinterface;
+  IHTCAttachBehavior2 = interface;
+  IHTCAttachBehavior2Disp = dispinterface;
+  IHTCDescBehavior = interface;
+  IHTCDescBehaviorDisp = dispinterface;
+  DispHTCDefaultDispatch = dispinterface;
+  DispHTCPropertyBehavior = dispinterface;
+  DispHTCMethodBehavior = dispinterface;
+  DispHTCEventBehavior = dispinterface;
+  DispHTCAttachBehavior = dispinterface;
+  DispHTCDescBehavior = dispinterface;
+  IHTMLUrnCollection = interface;
+  IHTMLUrnCollectionDisp = dispinterface;
+  IHTMLGenericElement = interface;
+  IHTMLGenericElementDisp = dispinterface;
+  DispHTMLGenericElement = dispinterface;
+  IHTMLStyleSheetRule = interface;
+  IHTMLStyleSheetRuleDisp = dispinterface;
+  IHTMLStyleSheetRulesCollection = interface;
+  IHTMLStyleSheetRulesCollectionDisp = dispinterface;
+  IHTMLStyleSheetPage = interface;
+  IHTMLStyleSheetPageDisp = dispinterface;
+  IHTMLStyleSheetPagesCollection = interface;
+  IHTMLStyleSheetPagesCollectionDisp = dispinterface;
+  IHTMLStyleSheetsCollection = interface;
+  IHTMLStyleSheetsCollectionDisp = dispinterface;
+  IHTMLStyleSheet = interface;
+  IHTMLStyleSheetDisp = dispinterface;
+  IHTMLStyleSheet2 = interface;
+  IHTMLStyleSheet2Disp = dispinterface;
+  DispHTMLStyleSheet = dispinterface;
+  HTMLLinkElementEvents2 = dispinterface;
+  HTMLLinkElementEvents = dispinterface;
+  IHTMLLinkElement = interface;
+  IHTMLLinkElementDisp = dispinterface;
+  IHTMLLinkElement2 = interface;
+  IHTMLLinkElement2Disp = dispinterface;
+  IHTMLLinkElement3 = interface;
+  IHTMLLinkElement3Disp = dispinterface;
+  DispHTMLLinkElement = dispinterface;
+  IHTMLTxtRange = interface;
+  IHTMLTxtRangeDisp = dispinterface;
+  IHTMLTextRangeMetrics = interface;
+  IHTMLTextRangeMetricsDisp = dispinterface;
+  IHTMLTextRangeMetrics2 = interface;
+  IHTMLTextRangeMetrics2Disp = dispinterface;
+  IHTMLTxtRangeCollection = interface;
+  IHTMLTxtRangeCollectionDisp = dispinterface;
+  HTMLFormElementEvents2 = dispinterface;
+  HTMLFormElementEvents = dispinterface;
+  IHTMLFormElement = interface;
+  IHTMLFormElementDisp = dispinterface;
+  IHTMLFormElement2 = interface;
+  IHTMLFormElement2Disp = dispinterface;
+  IHTMLFormElement3 = interface;
+  IHTMLFormElement3Disp = dispinterface;
+  IHTMLSubmitData = interface;
+  IHTMLSubmitDataDisp = dispinterface;
+  DispHTMLFormElement = dispinterface;
+  HTMLControlElementEvents2 = dispinterface;
+  HTMLControlElementEvents = dispinterface;
+  IHTMLControlElement = interface;
+  IHTMLControlElementDisp = dispinterface;
+  IHTMLTextElement = interface;
+  IHTMLTextElementDisp = dispinterface;
+  DispHTMLTextElement = dispinterface;
+  HTMLTextContainerEvents2 = dispinterface;
+  HTMLTextContainerEvents = dispinterface;
+  IHTMLTextContainer = interface;
+  IHTMLTextContainerDisp = dispinterface;
+  IHTMLControlRange = interface;
+  IHTMLControlRangeDisp = dispinterface;
+  IHTMLControlRange2 = interface;
+  IHTMLControlRange2Disp = dispinterface;
+  HTMLImgEvents2 = dispinterface;
+  HTMLImgEvents = dispinterface;
+  IHTMLImgElement = interface;
+  IHTMLImgElementDisp = dispinterface;
+  IHTMLImgElement2 = interface;
+  IHTMLImgElement2Disp = dispinterface;
+  IHTMLImageElementFactory = interface;
+  IHTMLImageElementFactoryDisp = dispinterface;
+  DispHTMLImg = dispinterface;
+  IHTMLBodyElement = interface;
+  IHTMLBodyElementDisp = dispinterface;
+  IHTMLBodyElement2 = interface;
+  IHTMLBodyElement2Disp = dispinterface;
+  DispHTMLBody = dispinterface;
+  IHTMLFontElement = interface;
+  IHTMLFontElementDisp = dispinterface;
+  DispHTMLFontElement = dispinterface;
+  HTMLAnchorEvents2 = dispinterface;
+  HTMLAnchorEvents = dispinterface;
+  IHTMLAnchorElement = interface;
+  IHTMLAnchorElementDisp = dispinterface;
+  IHTMLAnchorElement2 = interface;
+  IHTMLAnchorElement2Disp = dispinterface;
+  DispHTMLAnchorElement = dispinterface;
+  HTMLLabelEvents2 = dispinterface;
+  HTMLLabelEvents = dispinterface;
+  IHTMLLabelElement = interface;
+  IHTMLLabelElementDisp = dispinterface;
+  IHTMLLabelElement2 = interface;
+  IHTMLLabelElement2Disp = dispinterface;
+  DispHTMLLabelElement = dispinterface;
+  IHTMLListElement = interface;
+  IHTMLListElementDisp = dispinterface;
+  IHTMLListElement2 = interface;
+  IHTMLListElement2Disp = dispinterface;
+  DispHTMLListElement = dispinterface;
+  IHTMLUListElement = interface;
+  IHTMLUListElementDisp = dispinterface;
+  DispHTMLUListElement = dispinterface;
+  IHTMLOListElement = interface;
+  IHTMLOListElementDisp = dispinterface;
+  DispHTMLOListElement = dispinterface;
+  IHTMLLIElement = interface;
+  IHTMLLIElementDisp = dispinterface;
+  DispHTMLLIElement = dispinterface;
+  IHTMLBlockElement = interface;
+  IHTMLBlockElementDisp = dispinterface;
+  IHTMLBlockElement2 = interface;
+  IHTMLBlockElement2Disp = dispinterface;
+  DispHTMLBlockElement = dispinterface;
+  IHTMLDivElement = interface;
+  IHTMLDivElementDisp = dispinterface;
+  DispHTMLDivElement = dispinterface;
+  IHTMLDDElement = interface;
+  IHTMLDDElementDisp = dispinterface;
+  DispHTMLDDElement = dispinterface;
+  IHTMLDTElement = interface;
+  IHTMLDTElementDisp = dispinterface;
+  DispHTMLDTElement = dispinterface;
+  IHTMLBRElement = interface;
+  IHTMLBRElementDisp = dispinterface;
+  DispHTMLBRElement = dispinterface;
+  IHTMLDListElement = interface;
+  IHTMLDListElementDisp = dispinterface;
+  DispHTMLDListElement = dispinterface;
+  IHTMLHRElement = interface;
+  IHTMLHRElementDisp = dispinterface;
+  DispHTMLHRElement = dispinterface;
+  IHTMLParaElement = interface;
+  IHTMLParaElementDisp = dispinterface;
+  DispHTMLParaElement = dispinterface;
+  IHTMLElementCollection2 = interface;
+  IHTMLElementCollection2Disp = dispinterface;
+  IHTMLElementCollection3 = interface;
+  IHTMLElementCollection3Disp = dispinterface;
+  DispHTMLElementCollection = dispinterface;
+  IHTMLHeaderElement = interface;
+  IHTMLHeaderElementDisp = dispinterface;
+  DispHTMLHeaderElement = dispinterface;
+  HTMLSelectElementEvents2 = dispinterface;
+  HTMLSelectElementEvents = dispinterface;
+  IHTMLSelectElement = interface;
+  IHTMLSelectElementDisp = dispinterface;
+  IHTMLSelectElement2 = interface;
+  IHTMLSelectElement2Disp = dispinterface;
+  IHTMLSelectElement4 = interface;
+  IHTMLSelectElement4Disp = dispinterface;
+  DispHTMLSelectElement = dispinterface;
+  IHTMLSelectionObject = interface;
+  IHTMLSelectionObjectDisp = dispinterface;
+  IHTMLSelectionObject2 = interface;
+  IHTMLSelectionObject2Disp = dispinterface;
+  IHTMLOptionElement = interface;
+  IHTMLOptionElementDisp = dispinterface;
+  IHTMLOptionElement3 = interface;
+  IHTMLOptionElement3Disp = dispinterface;
+  IHTMLOptionElementFactory = interface;
+  IHTMLOptionElementFactoryDisp = dispinterface;
+  DispHTMLOptionElement = dispinterface;
+  HTMLButtonElementEvents2 = dispinterface;
+  HTMLButtonElementEvents = dispinterface;
+  HTMLInputTextElementEvents2 = dispinterface;
+  HTMLOptionButtonElementEvents2 = dispinterface;
+  HTMLInputFileElementEvents2 = dispinterface;
+  HTMLInputImageEvents2 = dispinterface;
+  HTMLInputTextElementEvents = dispinterface;
+  HTMLOptionButtonElementEvents = dispinterface;
+  HTMLInputFileElementEvents = dispinterface;
+  HTMLInputImageEvents = dispinterface;
+  IHTMLInputElement = interface;
+  IHTMLInputElementDisp = dispinterface;
+  IHTMLInputElement2 = interface;
+  IHTMLInputElement2Disp = dispinterface;
+  IHTMLInputButtonElement = interface;
+  IHTMLInputButtonElementDisp = dispinterface;
+  IHTMLInputHiddenElement = interface;
+  IHTMLInputHiddenElementDisp = dispinterface;
+  IHTMLInputTextElement = interface;
+  IHTMLInputTextElementDisp = dispinterface;
+  IHTMLInputFileElement = interface;
+  IHTMLInputFileElementDisp = dispinterface;
+  IHTMLOptionButtonElement = interface;
+  IHTMLOptionButtonElementDisp = dispinterface;
+  IHTMLInputImage = interface;
+  IHTMLInputImageDisp = dispinterface;
+  DispHTMLInputElement = dispinterface;
+  IHTMLTextAreaElement = interface;
+  IHTMLTextAreaElementDisp = dispinterface;
+  DispHTMLTextAreaElement = dispinterface;
+  DispHTMLRichtextElement = dispinterface;
+  IHTMLButtonElement = interface;
+  IHTMLButtonElementDisp = dispinterface;
+  DispHTMLButtonElement = dispinterface;
+  HTMLMarqueeElementEvents2 = dispinterface;
+  HTMLMarqueeElementEvents = dispinterface;
+  IHTMLMarqueeElement = interface;
+  IHTMLMarqueeElementDisp = dispinterface;
+  DispHTMLMarqueeElement = dispinterface;
+  IHTMLHtmlElement = interface;
+  IHTMLHtmlElementDisp = dispinterface;
+  IHTMLHeadElement = interface;
+  IHTMLHeadElementDisp = dispinterface;
+  IHTMLTitleElement = interface;
+  IHTMLTitleElementDisp = dispinterface;
+  IHTMLMetaElement = interface;
+  IHTMLMetaElementDisp = dispinterface;
+  IHTMLMetaElement2 = interface;
+  IHTMLMetaElement2Disp = dispinterface;
+  IHTMLBaseElement = interface;
+  IHTMLBaseElementDisp = dispinterface;
+  IHTMLIsIndexElement = interface;
+  IHTMLIsIndexElementDisp = dispinterface;
+  IHTMLIsIndexElement2 = interface;
+  IHTMLIsIndexElement2Disp = dispinterface;
+  IHTMLNextIdElement = interface;
+  IHTMLNextIdElementDisp = dispinterface;
+  DispHTMLHtmlElement = dispinterface;
+  DispHTMLHeadElement = dispinterface;
+  DispHTMLTitleElement = dispinterface;
+  DispHTMLMetaElement = dispinterface;
+  DispHTMLBaseElement = dispinterface;
+  DispHTMLIsIndexElement = dispinterface;
+  DispHTMLNextIdElement = dispinterface;
+  IHTMLBaseFontElement = interface;
+  IHTMLBaseFontElementDisp = dispinterface;
+  DispHTMLBaseFontElement = dispinterface;
+  IHTMLUnknownElement = interface;
+  IHTMLUnknownElementDisp = dispinterface;
+  DispHTMLUnknownElement = dispinterface;
+  IOmHistory = interface;
+  IOmHistoryDisp = dispinterface;
+  IHTMLMimeTypesCollection = interface;
+  IHTMLMimeTypesCollectionDisp = dispinterface;
+  IHTMLPluginsCollection = interface;
+  IHTMLPluginsCollectionDisp = dispinterface;
+  IHTMLOpsProfile = interface;
+  IHTMLOpsProfileDisp = dispinterface;
+  IOmNavigator = interface;
+  IOmNavigatorDisp = dispinterface;
+  IHTMLLocation = interface;
+  IHTMLLocationDisp = dispinterface;
+  IHTMLBookmarkCollection = interface;
+  IHTMLBookmarkCollectionDisp = dispinterface;
+  IHTMLDataTransfer = interface;
+  IHTMLDataTransferDisp = dispinterface;
+  IHTMLEventObj2 = interface;
+  IHTMLEventObj2Disp = dispinterface;
+  IHTMLEventObj3 = interface;
+  IHTMLEventObj3Disp = dispinterface;
+  IHTMLEventObj4 = interface;
+  IHTMLEventObj4Disp = dispinterface;
+  DispCEventObj = dispinterface;
+  HTMLWindowEvents2 = dispinterface;
+  HTMLWindowEvents = dispinterface;
+  IHTMLDocument2 = interface;
+  IHTMLDocument2Disp = dispinterface;
+  IHTMLFramesCollection2 = interface;
+  IHTMLFramesCollection2Disp = dispinterface;
+  IHTMLWindow2 = interface;
+  IHTMLWindow2Disp = dispinterface;
+  IHTMLScreen = interface;
+  IHTMLScreenDisp = dispinterface;
+  IHTMLWindow3 = interface;
+  IHTMLWindow3Disp = dispinterface;
+  IHTMLFrameBase = interface;
+  IHTMLFrameBaseDisp = dispinterface;
+  IHTMLScreen2 = interface;
+  IHTMLScreen2Disp = dispinterface;
+  IHTMLWindow4 = interface;
+  IHTMLWindow4Disp = dispinterface;
+  DispHTMLScreen = dispinterface;
+  DispHTMLWindow2 = dispinterface;
+  DispHTMLWindowProxy = dispinterface;
+  HTMLDocumentEvents2 = dispinterface;
+  HTMLDocumentEvents = dispinterface;
+  IHTMLDocument3 = interface;
+  IHTMLDocument3Disp = dispinterface;
+  IHTMLDocument4 = interface;
+  IHTMLDocument4Disp = dispinterface;
+  IHTMLDocument5 = interface;
+  IHTMLDocument5Disp = dispinterface;
+  DispHTMLDocument = dispinterface;
+  DWebBridgeEvents = dispinterface;
+  IWebBridge = interface;
+  IWebBridgeDisp = dispinterface;
+  IWBScriptControl = interface;
+  IWBScriptControlDisp = dispinterface;
+  IHTMLEmbedElement = interface;
+  IHTMLEmbedElementDisp = dispinterface;
+  DispHTMLEmbed = dispinterface;
+  HTMLMapEvents2 = dispinterface;
+  HTMLMapEvents = dispinterface;
+  IHTMLAreasCollection = interface;
+  IHTMLAreasCollectionDisp = dispinterface;
+  IHTMLAreasCollection2 = interface;
+  IHTMLAreasCollection2Disp = dispinterface;
+  IHTMLAreasCollection3 = interface;
+  IHTMLAreasCollection3Disp = dispinterface;
+  IHTMLMapElement = interface;
+  IHTMLMapElementDisp = dispinterface;
+  DispHTMLAreasCollection = dispinterface;
+  DispHTMLMapElement = dispinterface;
+  HTMLAreaEvents2 = dispinterface;
+  HTMLAreaEvents = dispinterface;
+  IHTMLAreaElement = interface;
+  IHTMLAreaElementDisp = dispinterface;
+  DispHTMLAreaElement = dispinterface;
+  IHTMLTableCaption = interface;
+  IHTMLTableCaptionDisp = dispinterface;
+  DispHTMLTableCaption = dispinterface;
+  IHTMLCommentElement = interface;
+  IHTMLCommentElementDisp = dispinterface;
+  IHTMLCommentElement2 = interface;
+  IHTMLCommentElement2Disp = dispinterface;
+  DispHTMLCommentElement = dispinterface;
+  IHTMLPhraseElement = interface;
+  IHTMLPhraseElementDisp = dispinterface;
+  IHTMLPhraseElement2 = interface;
+  IHTMLPhraseElement2Disp = dispinterface;
+  IHTMLSpanElement = interface;
+  IHTMLSpanElementDisp = dispinterface;
+  DispHTMLPhraseElement = dispinterface;
+  DispHTMLSpanElement = dispinterface;
+  HTMLTableEvents2 = dispinterface;
+  HTMLTableEvents = dispinterface;
+  IHTMLTableSection = interface;
+  IHTMLTableSectionDisp = dispinterface;
+  IHTMLTable = interface;
+  IHTMLTableDisp = dispinterface;
+  IHTMLTable2 = interface;
+  IHTMLTable2Disp = dispinterface;
+  IHTMLTable3 = interface;
+  IHTMLTable3Disp = dispinterface;
+  IHTMLTableCol = interface;
+  IHTMLTableColDisp = dispinterface;
+  IHTMLTableCol2 = interface;
+  IHTMLTableCol2Disp = dispinterface;
+  IHTMLTableSection2 = interface;
+  IHTMLTableSection2Disp = dispinterface;
+  IHTMLTableSection3 = interface;
+  IHTMLTableSection3Disp = dispinterface;
+  IHTMLTableRow = interface;
+  IHTMLTableRowDisp = dispinterface;
+  IHTMLTableRow2 = interface;
+  IHTMLTableRow2Disp = dispinterface;
+  IHTMLTableRow3 = interface;
+  IHTMLTableRow3Disp = dispinterface;
+  IHTMLTableRowMetrics = interface;
+  IHTMLTableRowMetricsDisp = dispinterface;
+  IHTMLTableCell = interface;
+  IHTMLTableCellDisp = dispinterface;
+  IHTMLTableCell2 = interface;
+  IHTMLTableCell2Disp = dispinterface;
+  DispHTMLTable = dispinterface;
+  DispHTMLTableCol = dispinterface;
+  DispHTMLTableSection = dispinterface;
+  DispHTMLTableRow = dispinterface;
+  DispHTMLTableCell = dispinterface;
+  HTMLScriptEvents2 = dispinterface;
+  HTMLScriptEvents = dispinterface;
+  IHTMLScriptElement = interface;
+  IHTMLScriptElementDisp = dispinterface;
+  IHTMLScriptElement2 = interface;
+  IHTMLScriptElement2Disp = dispinterface;
+  DispHTMLScriptElement = dispinterface;
+  IHTMLNoShowElement = interface;
+  IHTMLNoShowElementDisp = dispinterface;
+  DispHTMLNoShowElement = dispinterface;
+  HTMLObjectElementEvents2 = dispinterface;
+  HTMLObjectElementEvents = dispinterface;
+  IHTMLObjectElement = interface;
+  IHTMLObjectElementDisp = dispinterface;
+  IHTMLObjectElement2 = interface;
+  IHTMLObjectElement2Disp = dispinterface;
+  IHTMLObjectElement3 = interface;
+  IHTMLObjectElement3Disp = dispinterface;
+  IHTMLParamElement = interface;
+  IHTMLParamElementDisp = dispinterface;
+  DispHTMLObjectElement = dispinterface;
+  DispHTMLParamElement = dispinterface;
+  HTMLFrameSiteEvents2 = dispinterface;
+  HTMLFrameSiteEvents = dispinterface;
+  IHTMLFrameBase2 = interface;
+  IHTMLFrameBase2Disp = dispinterface;
+  IHTMLFrameBase3 = interface;
+  IHTMLFrameBase3Disp = dispinterface;
+  DispHTMLFrameBase = dispinterface;
+  IHTMLFrameElement = interface;
+  IHTMLFrameElementDisp = dispinterface;
+  IHTMLFrameElement2 = interface;
+  IHTMLFrameElement2Disp = dispinterface;
+  DispHTMLFrameElement = dispinterface;
+  IHTMLIFrameElement = interface;
+  IHTMLIFrameElementDisp = dispinterface;
+  IHTMLIFrameElement2 = interface;
+  IHTMLIFrameElement2Disp = dispinterface;
+  DispHTMLIFrame = dispinterface;
+  IHTMLDivPosition = interface;
+  IHTMLDivPositionDisp = dispinterface;
+  IHTMLFieldSetElement = interface;
+  IHTMLFieldSetElementDisp = dispinterface;
+  IHTMLFieldSetElement2 = interface;
+  IHTMLFieldSetElement2Disp = dispinterface;
+  IHTMLLegendElement = interface;
+  IHTMLLegendElementDisp = dispinterface;
+  IHTMLLegendElement2 = interface;
+  IHTMLLegendElement2Disp = dispinterface;
+  DispHTMLDivPosition = dispinterface;
+  DispHTMLFieldSetElement = dispinterface;
+  DispHTMLLegendElement = dispinterface;
+  IHTMLSpanFlow = interface;
+  IHTMLSpanFlowDisp = dispinterface;
+  DispHTMLSpanFlow = dispinterface;
+  IHTMLFrameSetElement = interface;
+  IHTMLFrameSetElementDisp = dispinterface;
+  IHTMLFrameSetElement2 = interface;
+  IHTMLFrameSetElement2Disp = dispinterface;
+  DispHTMLFrameSetSite = dispinterface;
+  IHTMLBGsound = interface;
+  IHTMLBGsoundDisp = dispinterface;
+  DispHTMLBGsound = dispinterface;
+  IHTMLFontNamesCollection = interface;
+  IHTMLFontNamesCollectionDisp = dispinterface;
+  IHTMLFontSizesCollection = interface;
+  IHTMLFontSizesCollectionDisp = dispinterface;
+  IHTMLOptionsHolder = interface;
+  IHTMLOptionsHolderDisp = dispinterface;
+  HTMLStyleElementEvents2 = dispinterface;
+  HTMLStyleElementEvents = dispinterface;
+  IHTMLStyleElement = interface;
+  IHTMLStyleElementDisp = dispinterface;
+  DispHTMLStyleElement = dispinterface;
+  IHTMLStyleFontFace = interface;
+  IHTMLStyleFontFaceDisp = dispinterface;
+  ICSSFilterSite = interface;
+  IMarkupPointer = interface;
+  IMarkupContainer = interface;
+  IMarkupContainer2 = interface;
+  IHTMLChangeSink = interface;
+  IHTMLChangeLog = interface;
+  IActiveIMMApp = interface;
+  IEnumRegisterWordA = interface;
+  IEnumRegisterWordW = interface;
+  IEnumInputContext = interface;
+  ISegmentList = interface;
+  ISegmentListIterator = interface;
+  ISegment = interface;
+  IHTMLCaret = interface;
+  IDisplayPointer = interface;
+  ILineInfo = interface;
+  IElementSegment = interface;
+  IHighlightSegment = interface;
+  IHighlightRenderingServices = interface;
+  IDisplayServices = interface;
+  IHTMLComputedStyle = interface;
+  IHtmlDlgSafeHelper = interface;
+  IBlockFormats = interface;
+  IFontNames = interface;
+  ICSSFilter = interface;
+  ISecureUrlHost = interface;
+  IMarkupServices = interface;
+  IMarkupServices2 = interface;
+  IHTMLChangePlayback = interface;
+  IMarkupPointer2 = interface;
+  IMarkupTextFrags = interface;
+  IXMLGenericParse = interface;
+  IHTMLEditHost = interface;
+  IHTMLEditHost2 = interface;
+  ISequenceNumber = interface;
+  IIMEServices = interface;
+  ISelectionServicesListener = interface;
+  ISelectionServices = interface;
+  IHTMLEditDesigner = interface;
+  IHTMLEditServices = interface;
+  IHTMLEditServices2 = interface;
+  HTMLNamespaceEvents = dispinterface;
+  IHTMLNamespace = interface;
+  IHTMLNamespaceDisp = dispinterface;
+  IHTMLNamespaceCollection = interface;
+  IHTMLNamespaceCollectionDisp = dispinterface;
+  IHTMLPainter = interface;
+  IHTMLPaintSite = interface;
+  IHTMLPainterEventInfo = interface;
+  IHTMLPainterOverlay = interface;
+  IHTMLIPrintCollection = interface;
+  IHTMLIPrintCollectionDisp = dispinterface;
+  IEnumPrivacyRecords = interface;
+  IHTMLDialog = interface;
+  IHTMLDialogDisp = dispinterface;
+  IHTMLDialog2 = interface;
+  IHTMLDialog2Disp = dispinterface;
+  IHTMLDialog3 = interface;
+  IHTMLDialog3Disp = dispinterface;
+  IHTMLModelessInit = interface;
+  IHTMLModelessInitDisp = dispinterface;
+  IHTMLPopup = interface;
+  IHTMLPopupDisp = dispinterface;
+  DispHTMLPopup = dispinterface;
+  IHTMLAppBehavior = interface;
+  IHTMLAppBehaviorDisp = dispinterface;
+  IHTMLAppBehavior2 = interface;
+  IHTMLAppBehavior2Disp = dispinterface;
+  IHTMLAppBehavior3 = interface;
+  IHTMLAppBehavior3Disp = dispinterface;
+  DispHTMLAppBehavior = dispinterface;
+  DispIHTMLInputButtonElement = dispinterface;
+  DispIHTMLInputTextElement = dispinterface;
+  DispIHTMLInputFileElement = dispinterface;
+  DispIHTMLOptionButtonElement = dispinterface;
+  DispIHTMLInputImage = dispinterface;
+  IElementNamespace = interface;
+  IElementNamespaceTable = interface;
+  IElementNamespaceFactory = interface;
+  IElementNamespaceFactory2 = interface;
+  IElementNamespaceFactoryCallback = interface;
+  IElementBehaviorSiteOM2 = interface;
+  IElementBehaviorCategory = interface;
+  IElementBehaviorSiteCategory = interface;
+  IEnumUnknown = interface;
+  IElementBehaviorSubmit = interface;
+  IElementBehaviorFocus = interface;
+  IElementBehaviorLayout = interface;
+  IElementBehaviorLayout2 = interface;
+  IElementBehaviorSiteLayout = interface;
+  IElementBehaviorSiteLayout2 = interface;
+  IHostBehaviorInit = interface;
+
+// *********************************************************************//
+// Declaration of CoClasses defined in Type Library
+// (NOTE: Here we map each CoClass to its Default Interface)
+// *********************************************************************//
+  HTMLStyle = DispHTMLStyle;
+  HTMLRuleStyle = DispHTMLRuleStyle;
+  HTMLCurrentStyle = DispHTMLCurrentStyle;
+  HTMLFiltersCollection = IHTMLFiltersCollection;
+  HTMLDOMAttribute = DispHTMLDOMAttribute;
+  HTMLDOMTextNode = DispHTMLDOMTextNode;
+  HTMLAttributeCollection = DispHTMLAttributeCollection;
+  DOMChildrenCollection = DispDOMChildrenCollection;
+  HTCDefaultDispatch = DispHTCDefaultDispatch;
+  HTCPropertyBehavior = DispHTCPropertyBehavior;
+  HTCMethodBehavior = DispHTCMethodBehavior;
+  HTCEventBehavior = DispHTCEventBehavior;
+  HTCAttachBehavior = DispHTCAttachBehavior;
+  HTCDescBehavior = DispHTCDescBehavior;
+  HTMLUrnCollection = IHTMLUrnCollection;
+  HTMLGenericElement = DispHTMLGenericElement;
+  HTMLStyleSheetRule = IHTMLStyleSheetRule;
+  HTMLStyleSheetRulesCollection = IHTMLStyleSheetRulesCollection;
+  HTMLStyleSheet = IHTMLStyleSheet;
+  HTMLStyleSheetsCollection = IHTMLStyleSheetsCollection;
+  HTMLLinkElement = DispHTMLLinkElement;
+  HTMLFormElement = DispHTMLFormElement;
+  HTMLTextElement = DispHTMLTextElement;
+  HTMLImg = DispHTMLImg;
+  HTMLImageElementFactory = IHTMLImageElementFactory;
+  HTMLBody = DispHTMLBody;
+  HTMLFontElement = DispHTMLFontElement;
+  HTMLAnchorElement = DispHTMLAnchorElement;
+  HTMLLabelElement = DispHTMLLabelElement;
+  HTMLListElement = DispHTMLListElement;
+  HTMLUListElement = DispHTMLUListElement;
+  HTMLOListElement = DispHTMLOListElement;
+  HTMLLIElement = DispHTMLLIElement;
+  HTMLBlockElement = DispHTMLBlockElement;
+  HTMLDivElement = DispHTMLDivElement;
+  HTMLDDElement = DispHTMLDDElement;
+  HTMLDTElement = DispHTMLDTElement;
+  HTMLBRElement = DispHTMLBRElement;
+  HTMLDListElement = DispHTMLDListElement;
+  HTMLHRElement = DispHTMLHRElement;
+  HTMLParaElement = DispHTMLParaElement;
+  HTMLElementCollection = DispHTMLElementCollection;
+  HTMLHeaderElement = DispHTMLHeaderElement;
+  HTMLSelectElement = DispHTMLSelectElement;
+  HTMLOptionElement = DispHTMLOptionElement;
+  HTMLOptionElementFactory = IHTMLOptionElementFactory;
+  HTMLInputElement = DispHTMLInputElement;
+  HTMLTextAreaElement = DispHTMLTextAreaElement;
+  HTMLRichtextElement = DispHTMLRichtextElement;
+  HTMLButtonElement = DispHTMLButtonElement;
+  HTMLMarqueeElement = DispHTMLMarqueeElement;
+  HTMLHtmlElement = DispHTMLHtmlElement;
+  HTMLHeadElement = DispHTMLHeadElement;
+  HTMLTitleElement = DispHTMLTitleElement;
+  HTMLMetaElement = DispHTMLMetaElement;
+  HTMLBaseElement = DispHTMLBaseElement;
+  HTMLIsIndexElement = DispHTMLIsIndexElement;
+  HTMLNextIdElement = DispHTMLNextIdElement;
+  HTMLBaseFontElement = DispHTMLBaseFontElement;
+  HTMLUnknownElement = DispHTMLUnknownElement;
+  HTMLHistory = IOmHistory;
+  CMimeTypes = IHTMLMimeTypesCollection;
+  CPlugins = IHTMLPluginsCollection;
+  COpsProfile = IHTMLOpsProfile;
+  HTMLNavigator = IOmNavigator;
+  HTMLLocation = IHTMLLocation;
+  CEventObj = DispCEventObj;
+  HTMLScreen = IHTMLScreen;
+  HTMLWindow2 = DispHTMLWindow2;
+  HTMLWindowProxy = DispHTMLWindowProxy;
+  HTMLDocument = DispHTMLDocument;
+  Scriptlet = IWebBridge;
+  HTMLEmbed = DispHTMLEmbed;
+  HTMLAreasCollection = DispHTMLAreasCollection;
+  HTMLMapElement = DispHTMLMapElement;
+  HTMLAreaElement = DispHTMLAreaElement;
+  HTMLTableCaption = DispHTMLTableCaption;
+  HTMLCommentElement = DispHTMLCommentElement;
+  HTMLPhraseElement = DispHTMLPhraseElement;
+  HTMLSpanElement = DispHTMLSpanElement;
+  HTMLTable = DispHTMLTable;
+  HTMLTableCol = DispHTMLTableCol;
+  HTMLTableSection = DispHTMLTableSection;
+  HTMLTableRow = DispHTMLTableRow;
+  HTMLTableCell = DispHTMLTableCell;
+  HTMLScriptElement = DispHTMLScriptElement;
+  HTMLNoShowElement = DispHTMLNoShowElement;
+  HTMLObjectElement = DispHTMLObjectElement;
+  HTMLFrameBase = DispHTMLFrameBase;
+  HTMLFrameElement = DispHTMLFrameElement;
+  HTMLIFrame = DispHTMLIFrame;
+  HTMLDivPosition = DispHTMLDivPosition;
+  HTMLFieldSetElement = DispHTMLFieldSetElement;
+  HTMLLegendElement = DispHTMLLegendElement;
+  HTMLSpanFlow = DispHTMLSpanFlow;
+  HTMLFrameSetSite = DispHTMLFrameSetSite;
+  HTMLBGsound = DispHTMLBGsound;
+  HTMLStyleElement = DispHTMLStyleElement;
+  HTMLStyleFontFace = IHTMLStyleFontFace;
+  ThreadDialogProcParam = IHTMLModelessInit;
+  HTMLDialog = IHTMLDialog;
+  HTMLAppBehavior = DispHTMLAppBehavior;
+  OldHTMLDocument = DispHTMLDocument;
+  OldHTMLFormElement = DispHTMLFormElement;
+  HTMLInputButtonElement = DispIHTMLInputButtonElement;
+  HTMLInputTextElement = DispIHTMLInputTextElement;
+  HTMLInputFileElement = DispIHTMLInputFileElement;
+  HTMLOptionButtonElement = DispIHTMLOptionButtonElement;
+  htmlInputImage = DispIHTMLInputImage;
+
+// *********************************************************************//
+// Declaration of structures, unions and aliases.
+// *********************************************************************//
+
+  LONG_PTR = LPARAM;
+
+  REGISTERWORDA = packed record
+    lpReading: PAnsiChar;
+    lpWord: PAnsiChar;
+  end;
+
+  REGISTERWORDW = packed record
+    lpReading: PWideChar;
+    lpWord: PWideChar;
+  end;
+
+  CANDIDATELIST = packed record
+    dwSize: LongWord;
+    dwStyle: LongWord;
+    dwCount: LongWord;
+    dwSelection: LongWord;
+    dwPageStart: LongWord;
+    dwPageSize: LongWord;
+    dwOffset: array[0..0] of LongWord;
+  end;
+
+  CANDIDATEFORM = packed record
+    dwIndex: LongWord;
+    dwStyle: LongWord;
+    ptCurrentPos: TPoint;
+    rcArea: TRect;
+  end;
+
+  COMPOSITIONFORM = packed record
+    dwStyle: LongWord;
+    ptCurrentPos: TPoint;
+    rcArea: TRect;
+  end;
+
+  STYLEBUFA = packed record
+    dwStyle: LongWord;
+    szDescription: array[0..31] of Byte;
+  end;
+
+  STYLEBUFW = packed record
+    dwStyle: LongWord;
+    szDescription: array[0..31] of Word;
+  end;
+
+  UINT_PTR = LongWord;
+
+  IMEMENUITEMINFOA = packed record
+    cbSize: SYSUINT;
+    fType: SYSUINT;
+    fState: SYSUINT;
+    wID: SYSUINT;
+    hbmpChecked: HBITMAP;
+    hbmpUnchecked: HBITMAP;
+    dwItemData: LongWord;
+    szString: array[0..79] of Byte;
+    hbmpItem: HBITMAP;
+  end;
+
+  IMEMENUITEMINFOW = packed record
+    cbSize: SYSUINT;
+    fType: SYSUINT;
+    fState: SYSUINT;
+    wID: SYSUINT;
+    hbmpChecked: HBITMAP;
+    hbmpUnchecked: HBITMAP;
+    dwItemData: LongWord;
+    szString: array[0..79] of Word;
+    hbmpItem: HBITMAP;
+  end;
+
+  P_HTML_PAINTER_INFO = ^_HTML_PAINTER_INFO;
+  _HTML_PAINTER_INFO = packed record
+    lFlags: Integer;
+    lZOrder: Integer;
+    iidDrawObject: TGUID;
+    rcExpand: TRect;
+  end;
+
+  _HTML_PAINT_XFORM = packed record
+    eM11: Single;
+    eM12: Single;
+    eM21: Single;
+    eM22: Single;
+    eDx: Single;
+    eDy: Single;
+  end;
+
+  P_HTML_PAINT_DRAW_INFO = ^_HTML_PAINT_DRAW_INFO;
+  _HTML_PAINT_DRAW_INFO = packed record
+    rcViewport: TRect;
+    hrgnUpdate: Pointer;
+    xform: _HTML_PAINT_XFORM;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLEventObj
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F32D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLEventObj = interface(IDispatch)
+    ['{3050F32D-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_srcElement: IHTMLElement; safecall;
+    function Get_altKey: WordBool; safecall;
+    function Get_ctrlKey: WordBool; safecall;
+    function Get_shiftKey: WordBool; safecall;
+    procedure Set_returnValue(p: OleVariant); safecall;
+    function Get_returnValue: OleVariant; safecall;
+    procedure Set_cancelBubble(p: WordBool); safecall;
+    function Get_cancelBubble: WordBool; safecall;
+    function Get_fromElement: IHTMLElement; safecall;
+    function Get_toElement: IHTMLElement; safecall;
+    procedure Set_keyCode(p: Integer); safecall;
+    function Get_keyCode: Integer; safecall;
+    function Get_button: Integer; safecall;
+    function Get_type_: WideString; safecall;
+    function Get_qualifier: WideString; safecall;
+    function Get_reason: Integer; safecall;
+    function Get_x: Integer; safecall;
+    function Get_y: Integer; safecall;
+    function Get_clientX: Integer; safecall;
+    function Get_clientY: Integer; safecall;
+    function Get_offsetX: Integer; safecall;
+    function Get_offsetY: Integer; safecall;
+    function Get_screenX: Integer; safecall;
+    function Get_screenY: Integer; safecall;
+    function Get_srcFilter: IDispatch; safecall;
+    property srcElement: IHTMLElement read Get_srcElement;
+    property altKey: WordBool read Get_altKey;
+    property ctrlKey: WordBool read Get_ctrlKey;
+    property shiftKey: WordBool read Get_shiftKey;
+    property returnValue: OleVariant read Get_returnValue write Set_returnValue;
+    property cancelBubble: WordBool read Get_cancelBubble write Set_cancelBubble;
+    property fromElement: IHTMLElement read Get_fromElement;
+    property toElement: IHTMLElement read Get_toElement;
+    property keyCode: Integer read Get_keyCode write Set_keyCode;
+    property button: Integer read Get_button;
+    property type_: WideString read Get_type_;
+    property qualifier: WideString read Get_qualifier;
+    property reason: Integer read Get_reason;
+    property x: Integer read Get_x;
+    property y: Integer read Get_y;
+    property clientX: Integer read Get_clientX;
+    property clientY: Integer read Get_clientY;
+    property offsetX: Integer read Get_offsetX;
+    property offsetY: Integer read Get_offsetY;
+    property screenX: Integer read Get_screenX;
+    property screenY: Integer read Get_screenY;
+    property srcFilter: IDispatch read Get_srcFilter;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLEventObjDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F32D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLEventObjDisp = dispinterface
+    ['{3050F32D-98B5-11CF-BB82-00AA00BDCE0B}']
+    property srcElement: IHTMLElement readonly dispid 1001;
+    property altKey: WordBool readonly dispid 1002;
+    property ctrlKey: WordBool readonly dispid 1003;
+    property shiftKey: WordBool readonly dispid 1004;
+    property returnValue: OleVariant dispid 1007;
+    property cancelBubble: WordBool dispid 1008;
+    property fromElement: IHTMLElement readonly dispid 1009;
+    property toElement: IHTMLElement readonly dispid 1010;
+    property keyCode: Integer dispid 1011;
+    property button: Integer readonly dispid 1012;
+    property type_: WideString readonly dispid 1013;
+    property qualifier: WideString readonly dispid 1014;
+    property reason: Integer readonly dispid 1015;
+    property x: Integer readonly dispid 1005;
+    property y: Integer readonly dispid 1006;
+    property clientX: Integer readonly dispid 1020;
+    property clientY: Integer readonly dispid 1021;
+    property offsetX: Integer readonly dispid 1022;
+    property offsetY: Integer readonly dispid 1023;
+    property screenX: Integer readonly dispid 1024;
+    property screenY: Integer readonly dispid 1025;
+    property srcFilter: IDispatch readonly dispid 1026;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1FF-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLElement = interface(IDispatch)
+    ['{3050F1FF-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); safecall;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; safecall;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; safecall;
+    procedure Set_className(const p: WideString); safecall;
+    function Get_className: WideString; safecall;
+    procedure Set_id(const p: WideString); safecall;
+    function Get_id: WideString; safecall;
+    function Get_tagName: WideString; safecall;
+    function Get_parentElement: IHTMLElement; safecall;
+    function Get_style: IHTMLStyle; safecall;
+    procedure Set_onhelp(p: OleVariant); safecall;
+    function Get_onhelp: OleVariant; safecall;
+    procedure Set_onclick(p: OleVariant); safecall;
+    function Get_onclick: OleVariant; safecall;
+    procedure Set_ondblclick(p: OleVariant); safecall;
+    function Get_ondblclick: OleVariant; safecall;
+    procedure Set_onkeydown(p: OleVariant); safecall;
+    function Get_onkeydown: OleVariant; safecall;
+    procedure Set_onkeyup(p: OleVariant); safecall;
+    function Get_onkeyup: OleVariant; safecall;
+    procedure Set_onkeypress(p: OleVariant); safecall;
+    function Get_onkeypress: OleVariant; safecall;
+    procedure Set_onmouseout(p: OleVariant); safecall;
+    function Get_onmouseout: OleVariant; safecall;
+    procedure Set_onmouseover(p: OleVariant); safecall;
+    function Get_onmouseover: OleVariant; safecall;
+    procedure Set_onmousemove(p: OleVariant); safecall;
+    function Get_onmousemove: OleVariant; safecall;
+    procedure Set_onmousedown(p: OleVariant); safecall;
+    function Get_onmousedown: OleVariant; safecall;
+    procedure Set_onmouseup(p: OleVariant); safecall;
+    function Get_onmouseup: OleVariant; safecall;
+    function Get_document: IDispatch; safecall;
+    procedure Set_title(const p: WideString); safecall;
+    function Get_title: WideString; safecall;
+    procedure Set_language(const p: WideString); safecall;
+    function Get_language: WideString; safecall;
+    procedure Set_onselectstart(p: OleVariant); safecall;
+    function Get_onselectstart: OleVariant; safecall;
+    procedure scrollIntoView(varargStart: OleVariant); safecall;
+    function contains(const pChild: IHTMLElement): WordBool; safecall;
+    function Get_sourceIndex: Integer; safecall;
+    function Get_recordNumber: OleVariant; safecall;
+    procedure Set_lang(const p: WideString); safecall;
+    function Get_lang: WideString; safecall;
+    function Get_offsetLeft: Integer; safecall;
+    function Get_offsetTop: Integer; safecall;
+    function Get_offsetWidth: Integer; safecall;
+    function Get_offsetHeight: Integer; safecall;
+    function Get_offsetParent: IHTMLElement; safecall;
+    procedure Set_innerHTML(const p: WideString); safecall;
+    function Get_innerHTML: WideString; safecall;
+    procedure Set_innerText(const p: WideString); safecall;
+    function Get_innerText: WideString; safecall;
+    procedure Set_outerHTML(const p: WideString); safecall;
+    function Get_outerHTML: WideString; safecall;
+    procedure Set_outerText(const p: WideString); safecall;
+    function Get_outerText: WideString; safecall;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); safecall;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); safecall;
+    function Get_parentTextEdit: IHTMLElement; safecall;
+    function Get_isTextEdit: WordBool; safecall;
+    procedure click; safecall;
+    function Get_filters: IHTMLFiltersCollection; safecall;
+    procedure Set_ondragstart(p: OleVariant); safecall;
+    function Get_ondragstart: OleVariant; safecall;
+    function toString: WideString; safecall;
+    procedure Set_onbeforeupdate(p: OleVariant); safecall;
+    function Get_onbeforeupdate: OleVariant; safecall;
+    procedure Set_onafterupdate(p: OleVariant); safecall;
+    function Get_onafterupdate: OleVariant; safecall;
+    procedure Set_onerrorupdate(p: OleVariant); safecall;
+    function Get_onerrorupdate: OleVariant; safecall;
+    procedure Set_onrowexit(p: OleVariant); safecall;
+    function Get_onrowexit: OleVariant; safecall;
+    procedure Set_onrowenter(p: OleVariant); safecall;
+    function Get_onrowenter: OleVariant; safecall;
+    procedure Set_ondatasetchanged(p: OleVariant); safecall;
+    function Get_ondatasetchanged: OleVariant; safecall;
+    procedure Set_ondataavailable(p: OleVariant); safecall;
+    function Get_ondataavailable: OleVariant; safecall;
+    procedure Set_ondatasetcomplete(p: OleVariant); safecall;
+    function Get_ondatasetcomplete: OleVariant; safecall;
+    procedure Set_onfilterchange(p: OleVariant); safecall;
+    function Get_onfilterchange: OleVariant; safecall;
+    function Get_children: IDispatch; safecall;
+    function Get_all: IDispatch; safecall;
+    property className: WideString read Get_className write Set_className;
+    property id: WideString read Get_id write Set_id;
+    property tagName: WideString read Get_tagName;
+    property parentElement: IHTMLElement read Get_parentElement;
+    property style: IHTMLStyle read Get_style;
+    property onhelp: OleVariant read Get_onhelp write Set_onhelp;
+    property onclick: OleVariant read Get_onclick write Set_onclick;
+    property ondblclick: OleVariant read Get_ondblclick write Set_ondblclick;
+    property onkeydown: OleVariant read Get_onkeydown write Set_onkeydown;
+    property onkeyup: OleVariant read Get_onkeyup write Set_onkeyup;
+    property onkeypress: OleVariant read Get_onkeypress write Set_onkeypress;
+    property onmouseout: OleVariant read Get_onmouseout write Set_onmouseout;
+    property onmouseover: OleVariant read Get_onmouseover write Set_onmouseover;
+    property onmousemove: OleVariant read Get_onmousemove write Set_onmousemove;
+    property onmousedown: OleVariant read Get_onmousedown write Set_onmousedown;
+    property onmouseup: OleVariant read Get_onmouseup write Set_onmouseup;
+    property document: IDispatch read Get_document;
+    property title: WideString read Get_title write Set_title;
+    property language: WideString read Get_language write Set_language;
+    property onselectstart: OleVariant read Get_onselectstart write Set_onselectstart;
+    property sourceIndex: Integer read Get_sourceIndex;
+    property recordNumber: OleVariant read Get_recordNumber;
+    property lang: WideString read Get_lang write Set_lang;
+    property offsetLeft: Integer read Get_offsetLeft;
+    property offsetTop: Integer read Get_offsetTop;
+    property offsetWidth: Integer read Get_offsetWidth;
+    property offsetHeight: Integer read Get_offsetHeight;
+    property offsetParent: IHTMLElement read Get_offsetParent;
+    property innerHTML: WideString read Get_innerHTML write Set_innerHTML;
+    property innerText: WideString read Get_innerText write Set_innerText;
+    property outerHTML: WideString read Get_outerHTML write Set_outerHTML;
+    property outerText: WideString read Get_outerText write Set_outerText;
+    property parentTextEdit: IHTMLElement read Get_parentTextEdit;
+    property isTextEdit: WordBool read Get_isTextEdit;
+    property filters: IHTMLFiltersCollection read Get_filters;
+    property ondragstart: OleVariant read Get_ondragstart write Set_ondragstart;
+    property onbeforeupdate: OleVariant read Get_onbeforeupdate write Set_onbeforeupdate;
+    property onafterupdate: OleVariant read Get_onafterupdate write Set_onafterupdate;
+    property onerrorupdate: OleVariant read Get_onerrorupdate write Set_onerrorupdate;
+    property onrowexit: OleVariant read Get_onrowexit write Set_onrowexit;
+    property onrowenter: OleVariant read Get_onrowenter write Set_onrowenter;
+    property ondatasetchanged: OleVariant read Get_ondatasetchanged write Set_ondatasetchanged;
+    property ondataavailable: OleVariant read Get_ondataavailable write Set_ondataavailable;
+    property ondatasetcomplete: OleVariant read Get_ondatasetcomplete write Set_ondatasetcomplete;
+    property onfilterchange: OleVariant read Get_onfilterchange write Set_onfilterchange;
+    property children: IDispatch read Get_children;
+    property all: IDispatch read Get_all;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1FF-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLElementDisp = dispinterface
+    ['{3050F1FF-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLStyle
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F25E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyle = interface(IDispatch)
+    ['{3050F25E-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_fontFamily(const p: WideString); safecall;
+    function Get_fontFamily: WideString; safecall;
+    procedure Set_fontStyle(const p: WideString); safecall;
+    function Get_fontStyle: WideString; safecall;
+    procedure Set_fontVariant(const p: WideString); safecall;
+    function Get_fontVariant: WideString; safecall;
+    procedure Set_fontWeight(const p: WideString); safecall;
+    function Get_fontWeight: WideString; safecall;
+    procedure Set_fontSize(p: OleVariant); safecall;
+    function Get_fontSize: OleVariant; safecall;
+    procedure Set_font(const p: WideString); safecall;
+    function Get_font: WideString; safecall;
+    procedure Set_color(p: OleVariant); safecall;
+    function Get_color: OleVariant; safecall;
+    procedure Set_background(const p: WideString); safecall;
+    function Get_background: WideString; safecall;
+    procedure Set_backgroundColor(p: OleVariant); safecall;
+    function Get_backgroundColor: OleVariant; safecall;
+    procedure Set_backgroundImage(const p: WideString); safecall;
+    function Get_backgroundImage: WideString; safecall;
+    procedure Set_backgroundRepeat(const p: WideString); safecall;
+    function Get_backgroundRepeat: WideString; safecall;
+    procedure Set_backgroundAttachment(const p: WideString); safecall;
+    function Get_backgroundAttachment: WideString; safecall;
+    procedure Set_backgroundPosition(const p: WideString); safecall;
+    function Get_backgroundPosition: WideString; safecall;
+    procedure Set_backgroundPositionX(p: OleVariant); safecall;
+    function Get_backgroundPositionX: OleVariant; safecall;
+    procedure Set_backgroundPositionY(p: OleVariant); safecall;
+    function Get_backgroundPositionY: OleVariant; safecall;
+    procedure Set_wordSpacing(p: OleVariant); safecall;
+    function Get_wordSpacing: OleVariant; safecall;
+    procedure Set_letterSpacing(p: OleVariant); safecall;
+    function Get_letterSpacing: OleVariant; safecall;
+    procedure Set_textDecoration(const p: WideString); safecall;
+    function Get_textDecoration: WideString; safecall;
+    procedure Set_textDecorationNone(p: WordBool); safecall;
+    function Get_textDecorationNone: WordBool; safecall;
+    procedure Set_textDecorationUnderline(p: WordBool); safecall;
+    function Get_textDecorationUnderline: WordBool; safecall;
+    procedure Set_textDecorationOverline(p: WordBool); safecall;
+    function Get_textDecorationOverline: WordBool; safecall;
+    procedure Set_textDecorationLineThrough(p: WordBool); safecall;
+    function Get_textDecorationLineThrough: WordBool; safecall;
+    procedure Set_textDecorationBlink(p: WordBool); safecall;
+    function Get_textDecorationBlink: WordBool; safecall;
+    procedure Set_verticalAlign(p: OleVariant); safecall;
+    function Get_verticalAlign: OleVariant; safecall;
+    procedure Set_textTransform(const p: WideString); safecall;
+    function Get_textTransform: WideString; safecall;
+    procedure Set_textAlign(const p: WideString); safecall;
+    function Get_textAlign: WideString; safecall;
+    procedure Set_textIndent(p: OleVariant); safecall;
+    function Get_textIndent: OleVariant; safecall;
+    procedure Set_lineHeight(p: OleVariant); safecall;
+    function Get_lineHeight: OleVariant; safecall;
+    procedure Set_marginTop(p: OleVariant); safecall;
+    function Get_marginTop: OleVariant; safecall;
+    procedure Set_marginRight(p: OleVariant); safecall;
+    function Get_marginRight: OleVariant; safecall;
+    procedure Set_marginBottom(p: OleVariant); safecall;
+    function Get_marginBottom: OleVariant; safecall;
+    procedure Set_marginLeft(p: OleVariant); safecall;
+    function Get_marginLeft: OleVariant; safecall;
+    procedure Set_margin(const p: WideString); safecall;
+    function Get_margin: WideString; safecall;
+    procedure Set_paddingTop(p: OleVariant); safecall;
+    function Get_paddingTop: OleVariant; safecall;
+    procedure Set_paddingRight(p: OleVariant); safecall;
+    function Get_paddingRight: OleVariant; safecall;
+    procedure Set_paddingBottom(p: OleVariant); safecall;
+    function Get_paddingBottom: OleVariant; safecall;
+    procedure Set_paddingLeft(p: OleVariant); safecall;
+    function Get_paddingLeft: OleVariant; safecall;
+    procedure Set_padding(const p: WideString); safecall;
+    function Get_padding: WideString; safecall;
+    procedure Set_border(const p: WideString); safecall;
+    function Get_border: WideString; safecall;
+    procedure Set_borderTop(const p: WideString); safecall;
+    function Get_borderTop: WideString; safecall;
+    procedure Set_borderRight(const p: WideString); safecall;
+    function Get_borderRight: WideString; safecall;
+    procedure Set_borderBottom(const p: WideString); safecall;
+    function Get_borderBottom: WideString; safecall;
+    procedure Set_borderLeft(const p: WideString); safecall;
+    function Get_borderLeft: WideString; safecall;
+    procedure Set_borderColor(const p: WideString); safecall;
+    function Get_borderColor: WideString; safecall;
+    procedure Set_borderTopColor(p: OleVariant); safecall;
+    function Get_borderTopColor: OleVariant; safecall;
+    procedure Set_borderRightColor(p: OleVariant); safecall;
+    function Get_borderRightColor: OleVariant; safecall;
+    procedure Set_borderBottomColor(p: OleVariant); safecall;
+    function Get_borderBottomColor: OleVariant; safecall;
+    procedure Set_borderLeftColor(p: OleVariant); safecall;
+    function Get_borderLeftColor: OleVariant; safecall;
+    procedure Set_borderWidth(const p: WideString); safecall;
+    function Get_borderWidth: WideString; safecall;
+    procedure Set_borderTopWidth(p: OleVariant); safecall;
+    function Get_borderTopWidth: OleVariant; safecall;
+    procedure Set_borderRightWidth(p: OleVariant); safecall;
+    function Get_borderRightWidth: OleVariant; safecall;
+    procedure Set_borderBottomWidth(p: OleVariant); safecall;
+    function Get_borderBottomWidth: OleVariant; safecall;
+    procedure Set_borderLeftWidth(p: OleVariant); safecall;
+    function Get_borderLeftWidth: OleVariant; safecall;
+    procedure Set_borderStyle(const p: WideString); safecall;
+    function Get_borderStyle: WideString; safecall;
+    procedure Set_borderTopStyle(const p: WideString); safecall;
+    function Get_borderTopStyle: WideString; safecall;
+    procedure Set_borderRightStyle(const p: WideString); safecall;
+    function Get_borderRightStyle: WideString; safecall;
+    procedure Set_borderBottomStyle(const p: WideString); safecall;
+    function Get_borderBottomStyle: WideString; safecall;
+    procedure Set_borderLeftStyle(const p: WideString); safecall;
+    function Get_borderLeftStyle: WideString; safecall;
+    procedure Set_width(p: OleVariant); safecall;
+    function Get_width: OleVariant; safecall;
+    procedure Set_height(p: OleVariant); safecall;
+    function Get_height: OleVariant; safecall;
+    procedure Set_styleFloat(const p: WideString); safecall;
+    function Get_styleFloat: WideString; safecall;
+    procedure Set_clear(const p: WideString); safecall;
+    function Get_clear: WideString; safecall;
+    procedure Set_display(const p: WideString); safecall;
+    function Get_display: WideString; safecall;
+    procedure Set_visibility(const p: WideString); safecall;
+    function Get_visibility: WideString; safecall;
+    procedure Set_listStyleType(const p: WideString); safecall;
+    function Get_listStyleType: WideString; safecall;
+    procedure Set_listStylePosition(const p: WideString); safecall;
+    function Get_listStylePosition: WideString; safecall;
+    procedure Set_listStyleImage(const p: WideString); safecall;
+    function Get_listStyleImage: WideString; safecall;
+    procedure Set_listStyle(const p: WideString); safecall;
+    function Get_listStyle: WideString; safecall;
+    procedure Set_whiteSpace(const p: WideString); safecall;
+    function Get_whiteSpace: WideString; safecall;
+    procedure Set_top(p: OleVariant); safecall;
+    function Get_top: OleVariant; safecall;
+    procedure Set_left(p: OleVariant); safecall;
+    function Get_left: OleVariant; safecall;
+    function Get_position: WideString; safecall;
+    procedure Set_zIndex(p: OleVariant); safecall;
+    function Get_zIndex: OleVariant; safecall;
+    procedure Set_overflow(const p: WideString); safecall;
+    function Get_overflow: WideString; safecall;
+    procedure Set_pageBreakBefore(const p: WideString); safecall;
+    function Get_pageBreakBefore: WideString; safecall;
+    procedure Set_pageBreakAfter(const p: WideString); safecall;
+    function Get_pageBreakAfter: WideString; safecall;
+    procedure Set_cssText(const p: WideString); safecall;
+    function Get_cssText: WideString; safecall;
+    procedure Set_pixelTop(p: Integer); safecall;
+    function Get_pixelTop: Integer; safecall;
+    procedure Set_pixelLeft(p: Integer); safecall;
+    function Get_pixelLeft: Integer; safecall;
+    procedure Set_pixelWidth(p: Integer); safecall;
+    function Get_pixelWidth: Integer; safecall;
+    procedure Set_pixelHeight(p: Integer); safecall;
+    function Get_pixelHeight: Integer; safecall;
+    procedure Set_posTop(p: Single); safecall;
+    function Get_posTop: Single; safecall;
+    procedure Set_posLeft(p: Single); safecall;
+    function Get_posLeft: Single; safecall;
+    procedure Set_posWidth(p: Single); safecall;
+    function Get_posWidth: Single; safecall;
+    procedure Set_posHeight(p: Single); safecall;
+    function Get_posHeight: Single; safecall;
+    procedure Set_cursor(const p: WideString); safecall;
+    function Get_cursor: WideString; safecall;
+    procedure Set_clip(const p: WideString); safecall;
+    function Get_clip: WideString; safecall;
+    procedure Set_filter(const p: WideString); safecall;
+    function Get_filter: WideString; safecall;
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); safecall;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; safecall;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; safecall;
+    function toString: WideString; safecall;
+    property fontFamily: WideString read Get_fontFamily write Set_fontFamily;
+    property fontStyle: WideString read Get_fontStyle write Set_fontStyle;
+    property fontVariant: WideString read Get_fontVariant write Set_fontVariant;
+    property fontWeight: WideString read Get_fontWeight write Set_fontWeight;
+    property fontSize: OleVariant read Get_fontSize write Set_fontSize;
+    property font: WideString read Get_font write Set_font;
+    property color: OleVariant read Get_color write Set_color;
+    property background: WideString read Get_background write Set_background;
+    property backgroundColor: OleVariant read Get_backgroundColor write Set_backgroundColor;
+    property backgroundImage: WideString read Get_backgroundImage write Set_backgroundImage;
+    property backgroundRepeat: WideString read Get_backgroundRepeat write Set_backgroundRepeat;
+    property backgroundAttachment: WideString read Get_backgroundAttachment write Set_backgroundAttachment;
+    property backgroundPosition: WideString read Get_backgroundPosition write Set_backgroundPosition;
+    property backgroundPositionX: OleVariant read Get_backgroundPositionX write Set_backgroundPositionX;
+    property backgroundPositionY: OleVariant read Get_backgroundPositionY write Set_backgroundPositionY;
+    property wordSpacing: OleVariant read Get_wordSpacing write Set_wordSpacing;
+    property letterSpacing: OleVariant read Get_letterSpacing write Set_letterSpacing;
+    property textDecoration: WideString read Get_textDecoration write Set_textDecoration;
+    property textDecorationNone: WordBool read Get_textDecorationNone write Set_textDecorationNone;
+    property textDecorationUnderline: WordBool read Get_textDecorationUnderline write Set_textDecorationUnderline;
+    property textDecorationOverline: WordBool read Get_textDecorationOverline write Set_textDecorationOverline;
+    property textDecorationLineThrough: WordBool read Get_textDecorationLineThrough write Set_textDecorationLineThrough;
+    property textDecorationBlink: WordBool read Get_textDecorationBlink write Set_textDecorationBlink;
+    property verticalAlign: OleVariant read Get_verticalAlign write Set_verticalAlign;
+    property textTransform: WideString read Get_textTransform write Set_textTransform;
+    property textAlign: WideString read Get_textAlign write Set_textAlign;
+    property textIndent: OleVariant read Get_textIndent write Set_textIndent;
+    property lineHeight: OleVariant read Get_lineHeight write Set_lineHeight;
+    property marginTop: OleVariant read Get_marginTop write Set_marginTop;
+    property marginRight: OleVariant read Get_marginRight write Set_marginRight;
+    property marginBottom: OleVariant read Get_marginBottom write Set_marginBottom;
+    property marginLeft: OleVariant read Get_marginLeft write Set_marginLeft;
+    property margin: WideString read Get_margin write Set_margin;
+    property paddingTop: OleVariant read Get_paddingTop write Set_paddingTop;
+    property paddingRight: OleVariant read Get_paddingRight write Set_paddingRight;
+    property paddingBottom: OleVariant read Get_paddingBottom write Set_paddingBottom;
+    property paddingLeft: OleVariant read Get_paddingLeft write Set_paddingLeft;
+    property padding: WideString read Get_padding write Set_padding;
+    property border: WideString read Get_border write Set_border;
+    property borderTop: WideString read Get_borderTop write Set_borderTop;
+    property borderRight: WideString read Get_borderRight write Set_borderRight;
+    property borderBottom: WideString read Get_borderBottom write Set_borderBottom;
+    property borderLeft: WideString read Get_borderLeft write Set_borderLeft;
+    property borderColor: WideString read Get_borderColor write Set_borderColor;
+    property borderTopColor: OleVariant read Get_borderTopColor write Set_borderTopColor;
+    property borderRightColor: OleVariant read Get_borderRightColor write Set_borderRightColor;
+    property borderBottomColor: OleVariant read Get_borderBottomColor write Set_borderBottomColor;
+    property borderLeftColor: OleVariant read Get_borderLeftColor write Set_borderLeftColor;
+    property borderWidth: WideString read Get_borderWidth write Set_borderWidth;
+    property borderTopWidth: OleVariant read Get_borderTopWidth write Set_borderTopWidth;
+    property borderRightWidth: OleVariant read Get_borderRightWidth write Set_borderRightWidth;
+    property borderBottomWidth: OleVariant read Get_borderBottomWidth write Set_borderBottomWidth;
+    property borderLeftWidth: OleVariant read Get_borderLeftWidth write Set_borderLeftWidth;
+    property borderStyle: WideString read Get_borderStyle write Set_borderStyle;
+    property borderTopStyle: WideString read Get_borderTopStyle write Set_borderTopStyle;
+    property borderRightStyle: WideString read Get_borderRightStyle write Set_borderRightStyle;
+    property borderBottomStyle: WideString read Get_borderBottomStyle write Set_borderBottomStyle;
+    property borderLeftStyle: WideString read Get_borderLeftStyle write Set_borderLeftStyle;
+    property width: OleVariant read Get_width write Set_width;
+    property height: OleVariant read Get_height write Set_height;
+    property styleFloat: WideString read Get_styleFloat write Set_styleFloat;
+    property clear: WideString read Get_clear write Set_clear;
+    property display: WideString read Get_display write Set_display;
+    property visibility: WideString read Get_visibility write Set_visibility;
+    property listStyleType: WideString read Get_listStyleType write Set_listStyleType;
+    property listStylePosition: WideString read Get_listStylePosition write Set_listStylePosition;
+    property listStyleImage: WideString read Get_listStyleImage write Set_listStyleImage;
+    property listStyle: WideString read Get_listStyle write Set_listStyle;
+    property whiteSpace: WideString read Get_whiteSpace write Set_whiteSpace;
+    property top: OleVariant read Get_top write Set_top;
+    property left: OleVariant read Get_left write Set_left;
+    property position: WideString read Get_position;
+    property zIndex: OleVariant read Get_zIndex write Set_zIndex;
+    property overflow: WideString read Get_overflow write Set_overflow;
+    property pageBreakBefore: WideString read Get_pageBreakBefore write Set_pageBreakBefore;
+    property pageBreakAfter: WideString read Get_pageBreakAfter write Set_pageBreakAfter;
+    property cssText: WideString read Get_cssText write Set_cssText;
+    property pixelTop: Integer read Get_pixelTop write Set_pixelTop;
+    property pixelLeft: Integer read Get_pixelLeft write Set_pixelLeft;
+    property pixelWidth: Integer read Get_pixelWidth write Set_pixelWidth;
+    property pixelHeight: Integer read Get_pixelHeight write Set_pixelHeight;
+    property posTop: Single read Get_posTop write Set_posTop;
+    property posLeft: Single read Get_posLeft write Set_posLeft;
+    property posWidth: Single read Get_posWidth write Set_posWidth;
+    property posHeight: Single read Get_posHeight write Set_posHeight;
+    property cursor: WideString read Get_cursor write Set_cursor;
+    property clip: WideString read Get_clip write Set_clip;
+    property filter: WideString read Get_filter write Set_filter;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLStyleDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F25E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleDisp = dispinterface
+    ['{3050F25E-98B5-11CF-BB82-00AA00BDCE0B}']
+    property fontFamily: WideString dispid - 2147413094;
+    property fontStyle: WideString dispid - 2147413088;
+    property fontVariant: WideString dispid - 2147413087;
+    property fontWeight: WideString dispid - 2147413085;
+    property fontSize: OleVariant dispid - 2147413093;
+    property font: WideString dispid - 2147413071;
+    property color: OleVariant dispid - 2147413110;
+    property background: WideString dispid - 2147413080;
+    property backgroundColor: OleVariant dispid - 501;
+    property backgroundImage: WideString dispid - 2147413111;
+    property backgroundRepeat: WideString dispid - 2147413068;
+    property backgroundAttachment: WideString dispid - 2147413067;
+    property backgroundPosition: WideString dispid - 2147413066;
+    property backgroundPositionX: OleVariant dispid - 2147413079;
+    property backgroundPositionY: OleVariant dispid - 2147413078;
+    property wordSpacing: OleVariant dispid - 2147413065;
+    property letterSpacing: OleVariant dispid - 2147413104;
+    property textDecoration: WideString dispid - 2147413077;
+    property textDecorationNone: WordBool dispid - 2147413089;
+    property textDecorationUnderline: WordBool dispid - 2147413091;
+    property textDecorationOverline: WordBool dispid - 2147413043;
+    property textDecorationLineThrough: WordBool dispid - 2147413092;
+    property textDecorationBlink: WordBool dispid - 2147413090;
+    property verticalAlign: OleVariant dispid - 2147413064;
+    property textTransform: WideString dispid - 2147413108;
+    property textAlign: WideString dispid - 2147418040;
+    property textIndent: OleVariant dispid - 2147413105;
+    property lineHeight: OleVariant dispid - 2147413106;
+    property marginTop: OleVariant dispid - 2147413075;
+    property marginRight: OleVariant dispid - 2147413074;
+    property marginBottom: OleVariant dispid - 2147413073;
+    property marginLeft: OleVariant dispid - 2147413072;
+    property margin: WideString dispid - 2147413076;
+    property paddingTop: OleVariant dispid - 2147413100;
+    property paddingRight: OleVariant dispid - 2147413099;
+    property paddingBottom: OleVariant dispid - 2147413098;
+    property paddingLeft: OleVariant dispid - 2147413097;
+    property padding: WideString dispid - 2147413101;
+    property border: WideString dispid - 2147413063;
+    property borderTop: WideString dispid - 2147413062;
+    property borderRight: WideString dispid - 2147413061;
+    property borderBottom: WideString dispid - 2147413060;
+    property borderLeft: WideString dispid - 2147413059;
+    property borderColor: WideString dispid - 2147413058;
+    property borderTopColor: OleVariant dispid - 2147413057;
+    property borderRightColor: OleVariant dispid - 2147413056;
+    property borderBottomColor: OleVariant dispid - 2147413055;
+    property borderLeftColor: OleVariant dispid - 2147413054;
+    property borderWidth: WideString dispid - 2147413053;
+    property borderTopWidth: OleVariant dispid - 2147413052;
+    property borderRightWidth: OleVariant dispid - 2147413051;
+    property borderBottomWidth: OleVariant dispid - 2147413050;
+    property borderLeftWidth: OleVariant dispid - 2147413049;
+    property borderStyle: WideString dispid - 2147413048;
+    property borderTopStyle: WideString dispid - 2147413047;
+    property borderRightStyle: WideString dispid - 2147413046;
+    property borderBottomStyle: WideString dispid - 2147413045;
+    property borderLeftStyle: WideString dispid - 2147413044;
+    property width: OleVariant dispid - 2147418107;
+    property height: OleVariant dispid - 2147418106;
+    property styleFloat: WideString dispid - 2147413042;
+    property clear: WideString dispid - 2147413096;
+    property display: WideString dispid - 2147413041;
+    property visibility: WideString dispid - 2147413032;
+    property listStyleType: WideString dispid - 2147413040;
+    property listStylePosition: WideString dispid - 2147413039;
+    property listStyleImage: WideString dispid - 2147413038;
+    property listStyle: WideString dispid - 2147413037;
+    property whiteSpace: WideString dispid - 2147413036;
+    property top: OleVariant dispid - 2147418108;
+    property left: OleVariant dispid - 2147418109;
+    property position: WideString readonly dispid - 2147413022;
+    property zIndex: OleVariant dispid - 2147413021;
+    property overflow: WideString dispid - 2147413102;
+    property pageBreakBefore: WideString dispid - 2147413035;
+    property pageBreakAfter: WideString dispid - 2147413034;
+    property cssText: WideString dispid - 2147413013;
+    property pixelTop: Integer dispid - 2147414112;
+    property pixelLeft: Integer dispid - 2147414111;
+    property pixelWidth: Integer dispid - 2147414110;
+    property pixelHeight: Integer dispid - 2147414109;
+    property posTop: Single dispid - 2147414108;
+    property posLeft: Single dispid - 2147414107;
+    property posWidth: Single dispid - 2147414106;
+    property posHeight: Single dispid - 2147414105;
+    property cursor: WideString dispid - 2147413010;
+    property clip: WideString dispid - 2147413020;
+    property filter: WideString dispid - 2147413030;
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    function toString: WideString; dispid - 2147414104;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLFiltersCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3EE-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFiltersCollection = interface(IDispatch)
+    ['{3050F3EE-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_length: Integer; safecall;
+    function Get__newEnum: IUnknown; safecall;
+    // !! API fix decl
+    function item(const pvarIndex: OleVariant): OleVariant; safecall;
+    property length: Integer read Get_length;
+    property _newEnum: IUnknown read Get__newEnum;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLFiltersCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3EE-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFiltersCollectionDisp = dispinterface
+    ['{3050F3EE-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1001;
+    property _newEnum: IUnknown readonly dispid - 4;
+    // !! API fix decl
+    function item(const pvarIndex: OleVariant): OleVariant; dispid 0;
+  end;
+
+// *********************************************************************//
+// Interface: IElementBehaviorSite
+// Flags:     (0)
+// GUID:      {3050F427-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementBehaviorSite = interface(IUnknown)
+    ['{3050F427-98B5-11CF-BB82-00AA00BDCE0B}']
+    function GetElement(out ppElement: IHTMLElement): HRESULT; stdcall;
+    function RegisterNotification(lEvent: Integer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementBehavior
+// Flags:     (0)
+// GUID:      {3050F425-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementBehavior = interface(IUnknown)
+    ['{3050F425-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Init(pBehaviorSite: IElementBehaviorSite): HRESULT; stdcall;
+    function Notify(lEvent: Integer; var pVar: OleVariant): HRESULT; stdcall;
+    function Detach: HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementBehaviorFactory
+// Flags:     (0)
+// GUID:      {3050F429-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementBehaviorFactory = interface(IUnknown)
+    ['{3050F429-98B5-11CF-BB82-00AA00BDCE0B}']
+    function FindBehavior(const bstrBehavior: WideString; const bstrBehaviorUrl: WideString;
+      const pSite: IElementBehaviorSite; out ppBehavior: IElementBehavior): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementBehaviorSiteOM
+// Flags:     (0)
+// GUID:      {3050F489-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementBehaviorSiteOM = interface(IUnknown)
+    ['{3050F489-98B5-11CF-BB82-00AA00BDCE0B}']
+    function RegisterEvent(pchEvent: PWideChar; lFlags: Integer; out plCookie: Integer): HRESULT; stdcall;
+    function GetEventCookie(pchEvent: PWideChar; out plCookie: Integer): HRESULT; stdcall;
+    function FireEvent(lCookie: Integer; const pEventObject: IHTMLEventObj): HRESULT; stdcall;
+    function CreateEventObject(out ppEventObject: IHTMLEventObj): HRESULT; stdcall;
+    function RegisterName(pchName: PWideChar): HRESULT; stdcall;
+    function RegisterUrn(pchUrn: PWideChar): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementBehaviorRender
+// Flags:     (0)
+// GUID:      {3050F4AA-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementBehaviorRender = interface(IUnknown)
+    ['{3050F4AA-98B5-11CF-BB82-00AA00BDCE0B}']
+    // !! API fix decl
+    function Draw(hdc: HDC; lLayer: Integer; var pRect: TRect;
+      const pReserved: IUnknown): HRESULT; stdcall;
+    function GetRenderInfo(out plRenderInfo: Integer): HRESULT; stdcall;
+    function HitTestPoint(var pPoint: TPoint; const pReserved: IUnknown; out pbHit: Integer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementBehaviorSiteRender
+// Flags:     (0)
+// GUID:      {3050F4A7-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementBehaviorSiteRender = interface(IUnknown)
+    ['{3050F4A7-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Invalidate(var pRect: TRect): HRESULT; stdcall;
+    function InvalidateRenderInfo: HRESULT; stdcall;
+    function InvalidateStyle: HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLStyle2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4A2-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyle2 = interface(IDispatch)
+    ['{3050F4A2-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_tableLayout(const p: WideString); safecall;
+    function Get_tableLayout: WideString; safecall;
+    procedure Set_borderCollapse(const p: WideString); safecall;
+    function Get_borderCollapse: WideString; safecall;
+    procedure Set_direction(const p: WideString); safecall;
+    function Get_direction: WideString; safecall;
+    procedure Set_behavior(const p: WideString); safecall;
+    function Get_behavior: WideString; safecall;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); safecall;
+    function getExpression(const propname: WideString): OleVariant; safecall;
+    function removeExpression(const propname: WideString): WordBool; safecall;
+    procedure Set_position(const p: WideString); safecall;
+    function Get_position: WideString; safecall;
+    procedure Set_unicodeBidi(const p: WideString); safecall;
+    function Get_unicodeBidi: WideString; safecall;
+    procedure Set_bottom(p: OleVariant); safecall;
+    function Get_bottom: OleVariant; safecall;
+    procedure Set_right(p: OleVariant); safecall;
+    function Get_right: OleVariant; safecall;
+    procedure Set_pixelBottom(p: Integer); safecall;
+    function Get_pixelBottom: Integer; safecall;
+    procedure Set_pixelRight(p: Integer); safecall;
+    function Get_pixelRight: Integer; safecall;
+    procedure Set_posBottom(p: Single); safecall;
+    function Get_posBottom: Single; safecall;
+    procedure Set_posRight(p: Single); safecall;
+    function Get_posRight: Single; safecall;
+    procedure Set_imeMode(const p: WideString); safecall;
+    function Get_imeMode: WideString; safecall;
+    procedure Set_rubyAlign(const p: WideString); safecall;
+    function Get_rubyAlign: WideString; safecall;
+    procedure Set_rubyPosition(const p: WideString); safecall;
+    function Get_rubyPosition: WideString; safecall;
+    procedure Set_rubyOverhang(const p: WideString); safecall;
+    function Get_rubyOverhang: WideString; safecall;
+    procedure Set_layoutGridChar(p: OleVariant); safecall;
+    function Get_layoutGridChar: OleVariant; safecall;
+    procedure Set_layoutGridLine(p: OleVariant); safecall;
+    function Get_layoutGridLine: OleVariant; safecall;
+    procedure Set_layoutGridMode(const p: WideString); safecall;
+    function Get_layoutGridMode: WideString; safecall;
+    procedure Set_layoutGridType(const p: WideString); safecall;
+    function Get_layoutGridType: WideString; safecall;
+    procedure Set_layoutGrid(const p: WideString); safecall;
+    function Get_layoutGrid: WideString; safecall;
+    procedure Set_wordBreak(const p: WideString); safecall;
+    function Get_wordBreak: WideString; safecall;
+    procedure Set_lineBreak(const p: WideString); safecall;
+    function Get_lineBreak: WideString; safecall;
+    procedure Set_textJustify(const p: WideString); safecall;
+    function Get_textJustify: WideString; safecall;
+    procedure Set_textJustifyTrim(const p: WideString); safecall;
+    function Get_textJustifyTrim: WideString; safecall;
+    procedure Set_textKashida(p: OleVariant); safecall;
+    function Get_textKashida: OleVariant; safecall;
+    procedure Set_textAutospace(const p: WideString); safecall;
+    function Get_textAutospace: WideString; safecall;
+    procedure Set_overflowX(const p: WideString); safecall;
+    function Get_overflowX: WideString; safecall;
+    procedure Set_overflowY(const p: WideString); safecall;
+    function Get_overflowY: WideString; safecall;
+    procedure Set_accelerator(const p: WideString); safecall;
+    function Get_accelerator: WideString; safecall;
+    property tableLayout: WideString read Get_tableLayout write Set_tableLayout;
+    property borderCollapse: WideString read Get_borderCollapse write Set_borderCollapse;
+    property direction: WideString read Get_direction write Set_direction;
+    property behavior: WideString read Get_behavior write Set_behavior;
+    property position: WideString read Get_position write Set_position;
+    property unicodeBidi: WideString read Get_unicodeBidi write Set_unicodeBidi;
+    property bottom: OleVariant read Get_bottom write Set_bottom;
+    property right: OleVariant read Get_right write Set_right;
+    property pixelBottom: Integer read Get_pixelBottom write Set_pixelBottom;
+    property pixelRight: Integer read Get_pixelRight write Set_pixelRight;
+    property posBottom: Single read Get_posBottom write Set_posBottom;
+    property posRight: Single read Get_posRight write Set_posRight;
+    property imeMode: WideString read Get_imeMode write Set_imeMode;
+    property rubyAlign: WideString read Get_rubyAlign write Set_rubyAlign;
+    property rubyPosition: WideString read Get_rubyPosition write Set_rubyPosition;
+    property rubyOverhang: WideString read Get_rubyOverhang write Set_rubyOverhang;
+    property layoutGridChar: OleVariant read Get_layoutGridChar write Set_layoutGridChar;
+    property layoutGridLine: OleVariant read Get_layoutGridLine write Set_layoutGridLine;
+    property layoutGridMode: WideString read Get_layoutGridMode write Set_layoutGridMode;
+    property layoutGridType: WideString read Get_layoutGridType write Set_layoutGridType;
+    property layoutGrid: WideString read Get_layoutGrid write Set_layoutGrid;
+    property wordBreak: WideString read Get_wordBreak write Set_wordBreak;
+    property lineBreak: WideString read Get_lineBreak write Set_lineBreak;
+    property textJustify: WideString read Get_textJustify write Set_textJustify;
+    property textJustifyTrim: WideString read Get_textJustifyTrim write Set_textJustifyTrim;
+    property textKashida: OleVariant read Get_textKashida write Set_textKashida;
+    property textAutospace: WideString read Get_textAutospace write Set_textAutospace;
+    property overflowX: WideString read Get_overflowX write Set_overflowX;
+    property overflowY: WideString read Get_overflowY write Set_overflowY;
+    property accelerator: WideString read Get_accelerator write Set_accelerator;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLStyle2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4A2-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyle2Disp = dispinterface
+    ['{3050F4A2-98B5-11CF-BB82-00AA00BDCE0B}']
+    property tableLayout: WideString dispid - 2147413014;
+    property borderCollapse: WideString dispid - 2147413028;
+    property direction: WideString dispid - 2147412993;
+    property behavior: WideString dispid - 2147412997;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property position: WideString dispid - 2147413022;
+    property unicodeBidi: WideString dispid - 2147412994;
+    property bottom: OleVariant dispid - 2147418034;
+    property right: OleVariant dispid - 2147418035;
+    property pixelBottom: Integer dispid - 2147414103;
+    property pixelRight: Integer dispid - 2147414102;
+    property posBottom: Single dispid - 2147414101;
+    property posRight: Single dispid - 2147414100;
+    property imeMode: WideString dispid - 2147412992;
+    property rubyAlign: WideString dispid - 2147412991;
+    property rubyPosition: WideString dispid - 2147412990;
+    property rubyOverhang: WideString dispid - 2147412989;
+    property layoutGridChar: OleVariant dispid - 2147412985;
+    property layoutGridLine: OleVariant dispid - 2147412984;
+    property layoutGridMode: WideString dispid - 2147412983;
+    property layoutGridType: WideString dispid - 2147412982;
+    property layoutGrid: WideString dispid - 2147412981;
+    property wordBreak: WideString dispid - 2147412978;
+    property lineBreak: WideString dispid - 2147412979;
+    property textJustify: WideString dispid - 2147412977;
+    property textJustifyTrim: WideString dispid - 2147412976;
+    property textKashida: OleVariant dispid - 2147412975;
+    property textAutospace: WideString dispid - 2147412980;
+    property overflowX: WideString dispid - 2147412973;
+    property overflowY: WideString dispid - 2147412972;
+    property accelerator: WideString dispid - 2147412965;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLStyle3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F656-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyle3 = interface(IDispatch)
+    ['{3050F656-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_layoutFlow(const p: WideString); safecall;
+    function Get_layoutFlow: WideString; safecall;
+    procedure Set_zoom(p: OleVariant); safecall;
+    function Get_zoom: OleVariant; safecall;
+    procedure Set_wordWrap(const p: WideString); safecall;
+    function Get_wordWrap: WideString; safecall;
+    procedure Set_textUnderlinePosition(const p: WideString); safecall;
+    function Get_textUnderlinePosition: WideString; safecall;
+    procedure Set_scrollbarBaseColor(p: OleVariant); safecall;
+    function Get_scrollbarBaseColor: OleVariant; safecall;
+    procedure Set_scrollbarFaceColor(p: OleVariant); safecall;
+    function Get_scrollbarFaceColor: OleVariant; safecall;
+    procedure Set_scrollbar3dLightColor(p: OleVariant); safecall;
+    function Get_scrollbar3dLightColor: OleVariant; safecall;
+    procedure Set_scrollbarShadowColor(p: OleVariant); safecall;
+    function Get_scrollbarShadowColor: OleVariant; safecall;
+    procedure Set_scrollbarHighlightColor(p: OleVariant); safecall;
+    function Get_scrollbarHighlightColor: OleVariant; safecall;
+    procedure Set_scrollbarDarkShadowColor(p: OleVariant); safecall;
+    function Get_scrollbarDarkShadowColor: OleVariant; safecall;
+    procedure Set_scrollbarArrowColor(p: OleVariant); safecall;
+    function Get_scrollbarArrowColor: OleVariant; safecall;
+    procedure Set_scrollbarTrackColor(p: OleVariant); safecall;
+    function Get_scrollbarTrackColor: OleVariant; safecall;
+    procedure Set_writingMode(const p: WideString); safecall;
+    function Get_writingMode: WideString; safecall;
+    procedure Set_textAlignLast(const p: WideString); safecall;
+    function Get_textAlignLast: WideString; safecall;
+    procedure Set_textKashidaSpace(p: OleVariant); safecall;
+    function Get_textKashidaSpace: OleVariant; safecall;
+    property layoutFlow: WideString read Get_layoutFlow write Set_layoutFlow;
+    property zoom: OleVariant read Get_zoom write Set_zoom;
+    property wordWrap: WideString read Get_wordWrap write Set_wordWrap;
+    property textUnderlinePosition: WideString read Get_textUnderlinePosition write Set_textUnderlinePosition;
+    property scrollbarBaseColor: OleVariant read Get_scrollbarBaseColor write Set_scrollbarBaseColor;
+    property scrollbarFaceColor: OleVariant read Get_scrollbarFaceColor write Set_scrollbarFaceColor;
+    property scrollbar3dLightColor: OleVariant read Get_scrollbar3dLightColor write Set_scrollbar3dLightColor;
+    property scrollbarShadowColor: OleVariant read Get_scrollbarShadowColor write Set_scrollbarShadowColor;
+    property scrollbarHighlightColor: OleVariant read Get_scrollbarHighlightColor write Set_scrollbarHighlightColor;
+    property scrollbarDarkShadowColor: OleVariant read Get_scrollbarDarkShadowColor write Set_scrollbarDarkShadowColor;
+    property scrollbarArrowColor: OleVariant read Get_scrollbarArrowColor write Set_scrollbarArrowColor;
+    property scrollbarTrackColor: OleVariant read Get_scrollbarTrackColor write Set_scrollbarTrackColor;
+    property writingMode: WideString read Get_writingMode write Set_writingMode;
+    property textAlignLast: WideString read Get_textAlignLast write Set_textAlignLast;
+    property textKashidaSpace: OleVariant read Get_textKashidaSpace write Set_textKashidaSpace;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLStyle3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F656-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyle3Disp = dispinterface
+    ['{3050F656-98B5-11CF-BB82-00AA00BDCE0B}']
+    property layoutFlow: WideString dispid - 2147412957;
+    property zoom: OleVariant dispid - 2147412959;
+    property wordWrap: WideString dispid - 2147412954;
+    property textUnderlinePosition: WideString dispid - 2147412953;
+    property scrollbarBaseColor: OleVariant dispid - 2147412932;
+    property scrollbarFaceColor: OleVariant dispid - 2147412931;
+    property scrollbar3dLightColor: OleVariant dispid - 2147412930;
+    property scrollbarShadowColor: OleVariant dispid - 2147412929;
+    property scrollbarHighlightColor: OleVariant dispid - 2147412928;
+    property scrollbarDarkShadowColor: OleVariant dispid - 2147412927;
+    property scrollbarArrowColor: OleVariant dispid - 2147412926;
+    property scrollbarTrackColor: OleVariant dispid - 2147412916;
+    property writingMode: WideString dispid - 2147412920;
+    property textAlignLast: WideString dispid - 2147412909;
+    property textKashidaSpace: OleVariant dispid - 2147412908;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLStyle4
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F816-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyle4 = interface(IDispatch)
+    ['{3050F816-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_textOverflow(const p: WideString); safecall;
+    function Get_textOverflow: WideString; safecall;
+    procedure Set_minHeight(p: OleVariant); safecall;
+    function Get_minHeight: OleVariant; safecall;
+    property textOverflow: WideString read Get_textOverflow write Set_textOverflow;
+    property minHeight: OleVariant read Get_minHeight write Set_minHeight;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLStyle4Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F816-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyle4Disp = dispinterface
+    ['{3050F816-98B5-11CF-BB82-00AA00BDCE0B}']
+    property textOverflow: WideString dispid - 2147412903;
+    property minHeight: OleVariant dispid - 2147412901;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLRuleStyle
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3CF-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLRuleStyle = interface(IDispatch)
+    ['{3050F3CF-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_fontFamily(const p: WideString); safecall;
+    function Get_fontFamily: WideString; safecall;
+    procedure Set_fontStyle(const p: WideString); safecall;
+    function Get_fontStyle: WideString; safecall;
+    procedure Set_fontVariant(const p: WideString); safecall;
+    function Get_fontVariant: WideString; safecall;
+    procedure Set_fontWeight(const p: WideString); safecall;
+    function Get_fontWeight: WideString; safecall;
+    procedure Set_fontSize(p: OleVariant); safecall;
+    function Get_fontSize: OleVariant; safecall;
+    procedure Set_font(const p: WideString); safecall;
+    function Get_font: WideString; safecall;
+    procedure Set_color(p: OleVariant); safecall;
+    function Get_color: OleVariant; safecall;
+    procedure Set_background(const p: WideString); safecall;
+    function Get_background: WideString; safecall;
+    procedure Set_backgroundColor(p: OleVariant); safecall;
+    function Get_backgroundColor: OleVariant; safecall;
+    procedure Set_backgroundImage(const p: WideString); safecall;
+    function Get_backgroundImage: WideString; safecall;
+    procedure Set_backgroundRepeat(const p: WideString); safecall;
+    function Get_backgroundRepeat: WideString; safecall;
+    procedure Set_backgroundAttachment(const p: WideString); safecall;
+    function Get_backgroundAttachment: WideString; safecall;
+    procedure Set_backgroundPosition(const p: WideString); safecall;
+    function Get_backgroundPosition: WideString; safecall;
+    procedure Set_backgroundPositionX(p: OleVariant); safecall;
+    function Get_backgroundPositionX: OleVariant; safecall;
+    procedure Set_backgroundPositionY(p: OleVariant); safecall;
+    function Get_backgroundPositionY: OleVariant; safecall;
+    procedure Set_wordSpacing(p: OleVariant); safecall;
+    function Get_wordSpacing: OleVariant; safecall;
+    procedure Set_letterSpacing(p: OleVariant); safecall;
+    function Get_letterSpacing: OleVariant; safecall;
+    procedure Set_textDecoration(const p: WideString); safecall;
+    function Get_textDecoration: WideString; safecall;
+    procedure Set_textDecorationNone(p: WordBool); safecall;
+    function Get_textDecorationNone: WordBool; safecall;
+    procedure Set_textDecorationUnderline(p: WordBool); safecall;
+    function Get_textDecorationUnderline: WordBool; safecall;
+    procedure Set_textDecorationOverline(p: WordBool); safecall;
+    function Get_textDecorationOverline: WordBool; safecall;
+    procedure Set_textDecorationLineThrough(p: WordBool); safecall;
+    function Get_textDecorationLineThrough: WordBool; safecall;
+    procedure Set_textDecorationBlink(p: WordBool); safecall;
+    function Get_textDecorationBlink: WordBool; safecall;
+    procedure Set_verticalAlign(p: OleVariant); safecall;
+    function Get_verticalAlign: OleVariant; safecall;
+    procedure Set_textTransform(const p: WideString); safecall;
+    function Get_textTransform: WideString; safecall;
+    procedure Set_textAlign(const p: WideString); safecall;
+    function Get_textAlign: WideString; safecall;
+    procedure Set_textIndent(p: OleVariant); safecall;
+    function Get_textIndent: OleVariant; safecall;
+    procedure Set_lineHeight(p: OleVariant); safecall;
+    function Get_lineHeight: OleVariant; safecall;
+    procedure Set_marginTop(p: OleVariant); safecall;
+    function Get_marginTop: OleVariant; safecall;
+    procedure Set_marginRight(p: OleVariant); safecall;
+    function Get_marginRight: OleVariant; safecall;
+    procedure Set_marginBottom(p: OleVariant); safecall;
+    function Get_marginBottom: OleVariant; safecall;
+    procedure Set_marginLeft(p: OleVariant); safecall;
+    function Get_marginLeft: OleVariant; safecall;
+    procedure Set_margin(const p: WideString); safecall;
+    function Get_margin: WideString; safecall;
+    procedure Set_paddingTop(p: OleVariant); safecall;
+    function Get_paddingTop: OleVariant; safecall;
+    procedure Set_paddingRight(p: OleVariant); safecall;
+    function Get_paddingRight: OleVariant; safecall;
+    procedure Set_paddingBottom(p: OleVariant); safecall;
+    function Get_paddingBottom: OleVariant; safecall;
+    procedure Set_paddingLeft(p: OleVariant); safecall;
+    function Get_paddingLeft: OleVariant; safecall;
+    procedure Set_padding(const p: WideString); safecall;
+    function Get_padding: WideString; safecall;
+    procedure Set_border(const p: WideString); safecall;
+    function Get_border: WideString; safecall;
+    procedure Set_borderTop(const p: WideString); safecall;
+    function Get_borderTop: WideString; safecall;
+    procedure Set_borderRight(const p: WideString); safecall;
+    function Get_borderRight: WideString; safecall;
+    procedure Set_borderBottom(const p: WideString); safecall;
+    function Get_borderBottom: WideString; safecall;
+    procedure Set_borderLeft(const p: WideString); safecall;
+    function Get_borderLeft: WideString; safecall;
+    procedure Set_borderColor(const p: WideString); safecall;
+    function Get_borderColor: WideString; safecall;
+    procedure Set_borderTopColor(p: OleVariant); safecall;
+    function Get_borderTopColor: OleVariant; safecall;
+    procedure Set_borderRightColor(p: OleVariant); safecall;
+    function Get_borderRightColor: OleVariant; safecall;
+    procedure Set_borderBottomColor(p: OleVariant); safecall;
+    function Get_borderBottomColor: OleVariant; safecall;
+    procedure Set_borderLeftColor(p: OleVariant); safecall;
+    function Get_borderLeftColor: OleVariant; safecall;
+    procedure Set_borderWidth(const p: WideString); safecall;
+    function Get_borderWidth: WideString; safecall;
+    procedure Set_borderTopWidth(p: OleVariant); safecall;
+    function Get_borderTopWidth: OleVariant; safecall;
+    procedure Set_borderRightWidth(p: OleVariant); safecall;
+    function Get_borderRightWidth: OleVariant; safecall;
+    procedure Set_borderBottomWidth(p: OleVariant); safecall;
+    function Get_borderBottomWidth: OleVariant; safecall;
+    procedure Set_borderLeftWidth(p: OleVariant); safecall;
+    function Get_borderLeftWidth: OleVariant; safecall;
+    procedure Set_borderStyle(const p: WideString); safecall;
+    function Get_borderStyle: WideString; safecall;
+    procedure Set_borderTopStyle(const p: WideString); safecall;
+    function Get_borderTopStyle: WideString; safecall;
+    procedure Set_borderRightStyle(const p: WideString); safecall;
+    function Get_borderRightStyle: WideString; safecall;
+    procedure Set_borderBottomStyle(const p: WideString); safecall;
+    function Get_borderBottomStyle: WideString; safecall;
+    procedure Set_borderLeftStyle(const p: WideString); safecall;
+    function Get_borderLeftStyle: WideString; safecall;
+    procedure Set_width(p: OleVariant); safecall;
+    function Get_width: OleVariant; safecall;
+    procedure Set_height(p: OleVariant); safecall;
+    function Get_height: OleVariant; safecall;
+    procedure Set_styleFloat(const p: WideString); safecall;
+    function Get_styleFloat: WideString; safecall;
+    procedure Set_clear(const p: WideString); safecall;
+    function Get_clear: WideString; safecall;
+    procedure Set_display(const p: WideString); safecall;
+    function Get_display: WideString; safecall;
+    procedure Set_visibility(const p: WideString); safecall;
+    function Get_visibility: WideString; safecall;
+    procedure Set_listStyleType(const p: WideString); safecall;
+    function Get_listStyleType: WideString; safecall;
+    procedure Set_listStylePosition(const p: WideString); safecall;
+    function Get_listStylePosition: WideString; safecall;
+    procedure Set_listStyleImage(const p: WideString); safecall;
+    function Get_listStyleImage: WideString; safecall;
+    procedure Set_listStyle(const p: WideString); safecall;
+    function Get_listStyle: WideString; safecall;
+    procedure Set_whiteSpace(const p: WideString); safecall;
+    function Get_whiteSpace: WideString; safecall;
+    procedure Set_top(p: OleVariant); safecall;
+    function Get_top: OleVariant; safecall;
+    procedure Set_left(p: OleVariant); safecall;
+    function Get_left: OleVariant; safecall;
+    function Get_position: WideString; safecall;
+    procedure Set_zIndex(p: OleVariant); safecall;
+    function Get_zIndex: OleVariant; safecall;
+    procedure Set_overflow(const p: WideString); safecall;
+    function Get_overflow: WideString; safecall;
+    procedure Set_pageBreakBefore(const p: WideString); safecall;
+    function Get_pageBreakBefore: WideString; safecall;
+    procedure Set_pageBreakAfter(const p: WideString); safecall;
+    function Get_pageBreakAfter: WideString; safecall;
+    procedure Set_cssText(const p: WideString); safecall;
+    function Get_cssText: WideString; safecall;
+    procedure Set_cursor(const p: WideString); safecall;
+    function Get_cursor: WideString; safecall;
+    procedure Set_clip(const p: WideString); safecall;
+    function Get_clip: WideString; safecall;
+    procedure Set_filter(const p: WideString); safecall;
+    function Get_filter: WideString; safecall;
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); safecall;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; safecall;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; safecall;
+    property fontFamily: WideString read Get_fontFamily write Set_fontFamily;
+    property fontStyle: WideString read Get_fontStyle write Set_fontStyle;
+    property fontVariant: WideString read Get_fontVariant write Set_fontVariant;
+    property fontWeight: WideString read Get_fontWeight write Set_fontWeight;
+    property fontSize: OleVariant read Get_fontSize write Set_fontSize;
+    property font: WideString read Get_font write Set_font;
+    property color: OleVariant read Get_color write Set_color;
+    property background: WideString read Get_background write Set_background;
+    property backgroundColor: OleVariant read Get_backgroundColor write Set_backgroundColor;
+    property backgroundImage: WideString read Get_backgroundImage write Set_backgroundImage;
+    property backgroundRepeat: WideString read Get_backgroundRepeat write Set_backgroundRepeat;
+    property backgroundAttachment: WideString read Get_backgroundAttachment write Set_backgroundAttachment;
+    property backgroundPosition: WideString read Get_backgroundPosition write Set_backgroundPosition;
+    property backgroundPositionX: OleVariant read Get_backgroundPositionX write Set_backgroundPositionX;
+    property backgroundPositionY: OleVariant read Get_backgroundPositionY write Set_backgroundPositionY;
+    property wordSpacing: OleVariant read Get_wordSpacing write Set_wordSpacing;
+    property letterSpacing: OleVariant read Get_letterSpacing write Set_letterSpacing;
+    property textDecoration: WideString read Get_textDecoration write Set_textDecoration;
+    property textDecorationNone: WordBool read Get_textDecorationNone write Set_textDecorationNone;
+    property textDecorationUnderline: WordBool read Get_textDecorationUnderline write Set_textDecorationUnderline;
+    property textDecorationOverline: WordBool read Get_textDecorationOverline write Set_textDecorationOverline;
+    property textDecorationLineThrough: WordBool read Get_textDecorationLineThrough write Set_textDecorationLineThrough;
+    property textDecorationBlink: WordBool read Get_textDecorationBlink write Set_textDecorationBlink;
+    property verticalAlign: OleVariant read Get_verticalAlign write Set_verticalAlign;
+    property textTransform: WideString read Get_textTransform write Set_textTransform;
+    property textAlign: WideString read Get_textAlign write Set_textAlign;
+    property textIndent: OleVariant read Get_textIndent write Set_textIndent;
+    property lineHeight: OleVariant read Get_lineHeight write Set_lineHeight;
+    property marginTop: OleVariant read Get_marginTop write Set_marginTop;
+    property marginRight: OleVariant read Get_marginRight write Set_marginRight;
+    property marginBottom: OleVariant read Get_marginBottom write Set_marginBottom;
+    property marginLeft: OleVariant read Get_marginLeft write Set_marginLeft;
+    property margin: WideString read Get_margin write Set_margin;
+    property paddingTop: OleVariant read Get_paddingTop write Set_paddingTop;
+    property paddingRight: OleVariant read Get_paddingRight write Set_paddingRight;
+    property paddingBottom: OleVariant read Get_paddingBottom write Set_paddingBottom;
+    property paddingLeft: OleVariant read Get_paddingLeft write Set_paddingLeft;
+    property padding: WideString read Get_padding write Set_padding;
+    property border: WideString read Get_border write Set_border;
+    property borderTop: WideString read Get_borderTop write Set_borderTop;
+    property borderRight: WideString read Get_borderRight write Set_borderRight;
+    property borderBottom: WideString read Get_borderBottom write Set_borderBottom;
+    property borderLeft: WideString read Get_borderLeft write Set_borderLeft;
+    property borderColor: WideString read Get_borderColor write Set_borderColor;
+    property borderTopColor: OleVariant read Get_borderTopColor write Set_borderTopColor;
+    property borderRightColor: OleVariant read Get_borderRightColor write Set_borderRightColor;
+    property borderBottomColor: OleVariant read Get_borderBottomColor write Set_borderBottomColor;
+    property borderLeftColor: OleVariant read Get_borderLeftColor write Set_borderLeftColor;
+    property borderWidth: WideString read Get_borderWidth write Set_borderWidth;
+    property borderTopWidth: OleVariant read Get_borderTopWidth write Set_borderTopWidth;
+    property borderRightWidth: OleVariant read Get_borderRightWidth write Set_borderRightWidth;
+    property borderBottomWidth: OleVariant read Get_borderBottomWidth write Set_borderBottomWidth;
+    property borderLeftWidth: OleVariant read Get_borderLeftWidth write Set_borderLeftWidth;
+    property borderStyle: WideString read Get_borderStyle write Set_borderStyle;
+    property borderTopStyle: WideString read Get_borderTopStyle write Set_borderTopStyle;
+    property borderRightStyle: WideString read Get_borderRightStyle write Set_borderRightStyle;
+    property borderBottomStyle: WideString read Get_borderBottomStyle write Set_borderBottomStyle;
+    property borderLeftStyle: WideString read Get_borderLeftStyle write Set_borderLeftStyle;
+    property width: OleVariant read Get_width write Set_width;
+    property height: OleVariant read Get_height write Set_height;
+    property styleFloat: WideString read Get_styleFloat write Set_styleFloat;
+    property clear: WideString read Get_clear write Set_clear;
+    property display: WideString read Get_display write Set_display;
+    property visibility: WideString read Get_visibility write Set_visibility;
+    property listStyleType: WideString read Get_listStyleType write Set_listStyleType;
+    property listStylePosition: WideString read Get_listStylePosition write Set_listStylePosition;
+    property listStyleImage: WideString read Get_listStyleImage write Set_listStyleImage;
+    property listStyle: WideString read Get_listStyle write Set_listStyle;
+    property whiteSpace: WideString read Get_whiteSpace write Set_whiteSpace;
+    property top: OleVariant read Get_top write Set_top;
+    property left: OleVariant read Get_left write Set_left;
+    property position: WideString read Get_position;
+    property zIndex: OleVariant read Get_zIndex write Set_zIndex;
+    property overflow: WideString read Get_overflow write Set_overflow;
+    property pageBreakBefore: WideString read Get_pageBreakBefore write Set_pageBreakBefore;
+    property pageBreakAfter: WideString read Get_pageBreakAfter write Set_pageBreakAfter;
+    property cssText: WideString read Get_cssText write Set_cssText;
+    property cursor: WideString read Get_cursor write Set_cursor;
+    property clip: WideString read Get_clip write Set_clip;
+    property filter: WideString read Get_filter write Set_filter;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLRuleStyleDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3CF-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLRuleStyleDisp = dispinterface
+    ['{3050F3CF-98B5-11CF-BB82-00AA00BDCE0B}']
+    property fontFamily: WideString dispid - 2147413094;
+    property fontStyle: WideString dispid - 2147413088;
+    property fontVariant: WideString dispid - 2147413087;
+    property fontWeight: WideString dispid - 2147413085;
+    property fontSize: OleVariant dispid - 2147413093;
+    property font: WideString dispid - 2147413071;
+    property color: OleVariant dispid - 2147413110;
+    property background: WideString dispid - 2147413080;
+    property backgroundColor: OleVariant dispid - 501;
+    property backgroundImage: WideString dispid - 2147413111;
+    property backgroundRepeat: WideString dispid - 2147413068;
+    property backgroundAttachment: WideString dispid - 2147413067;
+    property backgroundPosition: WideString dispid - 2147413066;
+    property backgroundPositionX: OleVariant dispid - 2147413079;
+    property backgroundPositionY: OleVariant dispid - 2147413078;
+    property wordSpacing: OleVariant dispid - 2147413065;
+    property letterSpacing: OleVariant dispid - 2147413104;
+    property textDecoration: WideString dispid - 2147413077;
+    property textDecorationNone: WordBool dispid - 2147413089;
+    property textDecorationUnderline: WordBool dispid - 2147413091;
+    property textDecorationOverline: WordBool dispid - 2147413043;
+    property textDecorationLineThrough: WordBool dispid - 2147413092;
+    property textDecorationBlink: WordBool dispid - 2147413090;
+    property verticalAlign: OleVariant dispid - 2147413064;
+    property textTransform: WideString dispid - 2147413108;
+    property textAlign: WideString dispid - 2147418040;
+    property textIndent: OleVariant dispid - 2147413105;
+    property lineHeight: OleVariant dispid - 2147413106;
+    property marginTop: OleVariant dispid - 2147413075;
+    property marginRight: OleVariant dispid - 2147413074;
+    property marginBottom: OleVariant dispid - 2147413073;
+    property marginLeft: OleVariant dispid - 2147413072;
+    property margin: WideString dispid - 2147413076;
+    property paddingTop: OleVariant dispid - 2147413100;
+    property paddingRight: OleVariant dispid - 2147413099;
+    property paddingBottom: OleVariant dispid - 2147413098;
+    property paddingLeft: OleVariant dispid - 2147413097;
+    property padding: WideString dispid - 2147413101;
+    property border: WideString dispid - 2147413063;
+    property borderTop: WideString dispid - 2147413062;
+    property borderRight: WideString dispid - 2147413061;
+    property borderBottom: WideString dispid - 2147413060;
+    property borderLeft: WideString dispid - 2147413059;
+    property borderColor: WideString dispid - 2147413058;
+    property borderTopColor: OleVariant dispid - 2147413057;
+    property borderRightColor: OleVariant dispid - 2147413056;
+    property borderBottomColor: OleVariant dispid - 2147413055;
+    property borderLeftColor: OleVariant dispid - 2147413054;
+    property borderWidth: WideString dispid - 2147413053;
+    property borderTopWidth: OleVariant dispid - 2147413052;
+    property borderRightWidth: OleVariant dispid - 2147413051;
+    property borderBottomWidth: OleVariant dispid - 2147413050;
+    property borderLeftWidth: OleVariant dispid - 2147413049;
+    property borderStyle: WideString dispid - 2147413048;
+    property borderTopStyle: WideString dispid - 2147413047;
+    property borderRightStyle: WideString dispid - 2147413046;
+    property borderBottomStyle: WideString dispid - 2147413045;
+    property borderLeftStyle: WideString dispid - 2147413044;
+    property width: OleVariant dispid - 2147418107;
+    property height: OleVariant dispid - 2147418106;
+    property styleFloat: WideString dispid - 2147413042;
+    property clear: WideString dispid - 2147413096;
+    property display: WideString dispid - 2147413041;
+    property visibility: WideString dispid - 2147413032;
+    property listStyleType: WideString dispid - 2147413040;
+    property listStylePosition: WideString dispid - 2147413039;
+    property listStyleImage: WideString dispid - 2147413038;
+    property listStyle: WideString dispid - 2147413037;
+    property whiteSpace: WideString dispid - 2147413036;
+    property top: OleVariant dispid - 2147418108;
+    property left: OleVariant dispid - 2147418109;
+    property position: WideString readonly dispid - 2147413022;
+    property zIndex: OleVariant dispid - 2147413021;
+    property overflow: WideString dispid - 2147413102;
+    property pageBreakBefore: WideString dispid - 2147413035;
+    property pageBreakAfter: WideString dispid - 2147413034;
+    property cssText: WideString dispid - 2147413013;
+    property cursor: WideString dispid - 2147413010;
+    property clip: WideString dispid - 2147413020;
+    property filter: WideString dispid - 2147413030;
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLRuleStyle2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4AC-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLRuleStyle2 = interface(IDispatch)
+    ['{3050F4AC-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_tableLayout(const p: WideString); safecall;
+    function Get_tableLayout: WideString; safecall;
+    procedure Set_borderCollapse(const p: WideString); safecall;
+    function Get_borderCollapse: WideString; safecall;
+    procedure Set_direction(const p: WideString); safecall;
+    function Get_direction: WideString; safecall;
+    procedure Set_behavior(const p: WideString); safecall;
+    function Get_behavior: WideString; safecall;
+    procedure Set_position(const p: WideString); safecall;
+    function Get_position: WideString; safecall;
+    procedure Set_unicodeBidi(const p: WideString); safecall;
+    function Get_unicodeBidi: WideString; safecall;
+    procedure Set_bottom(p: OleVariant); safecall;
+    function Get_bottom: OleVariant; safecall;
+    procedure Set_right(p: OleVariant); safecall;
+    function Get_right: OleVariant; safecall;
+    procedure Set_pixelBottom(p: Integer); safecall;
+    function Get_pixelBottom: Integer; safecall;
+    procedure Set_pixelRight(p: Integer); safecall;
+    function Get_pixelRight: Integer; safecall;
+    procedure Set_posBottom(p: Single); safecall;
+    function Get_posBottom: Single; safecall;
+    procedure Set_posRight(p: Single); safecall;
+    function Get_posRight: Single; safecall;
+    procedure Set_imeMode(const p: WideString); safecall;
+    function Get_imeMode: WideString; safecall;
+    procedure Set_rubyAlign(const p: WideString); safecall;
+    function Get_rubyAlign: WideString; safecall;
+    procedure Set_rubyPosition(const p: WideString); safecall;
+    function Get_rubyPosition: WideString; safecall;
+    procedure Set_rubyOverhang(const p: WideString); safecall;
+    function Get_rubyOverhang: WideString; safecall;
+    procedure Set_layoutGridChar(p: OleVariant); safecall;
+    function Get_layoutGridChar: OleVariant; safecall;
+    procedure Set_layoutGridLine(p: OleVariant); safecall;
+    function Get_layoutGridLine: OleVariant; safecall;
+    procedure Set_layoutGridMode(const p: WideString); safecall;
+    function Get_layoutGridMode: WideString; safecall;
+    procedure Set_layoutGridType(const p: WideString); safecall;
+    function Get_layoutGridType: WideString; safecall;
+    procedure Set_layoutGrid(const p: WideString); safecall;
+    function Get_layoutGrid: WideString; safecall;
+    procedure Set_textAutospace(const p: WideString); safecall;
+    function Get_textAutospace: WideString; safecall;
+    procedure Set_wordBreak(const p: WideString); safecall;
+    function Get_wordBreak: WideString; safecall;
+    procedure Set_lineBreak(const p: WideString); safecall;
+    function Get_lineBreak: WideString; safecall;
+    procedure Set_textJustify(const p: WideString); safecall;
+    function Get_textJustify: WideString; safecall;
+    procedure Set_textJustifyTrim(const p: WideString); safecall;
+    function Get_textJustifyTrim: WideString; safecall;
+    procedure Set_textKashida(p: OleVariant); safecall;
+    function Get_textKashida: OleVariant; safecall;
+    procedure Set_overflowX(const p: WideString); safecall;
+    function Get_overflowX: WideString; safecall;
+    procedure Set_overflowY(const p: WideString); safecall;
+    function Get_overflowY: WideString; safecall;
+    procedure Set_accelerator(const p: WideString); safecall;
+    function Get_accelerator: WideString; safecall;
+    property tableLayout: WideString read Get_tableLayout write Set_tableLayout;
+    property borderCollapse: WideString read Get_borderCollapse write Set_borderCollapse;
+    property direction: WideString read Get_direction write Set_direction;
+    property behavior: WideString read Get_behavior write Set_behavior;
+    property position: WideString read Get_position write Set_position;
+    property unicodeBidi: WideString read Get_unicodeBidi write Set_unicodeBidi;
+    property bottom: OleVariant read Get_bottom write Set_bottom;
+    property right: OleVariant read Get_right write Set_right;
+    property pixelBottom: Integer read Get_pixelBottom write Set_pixelBottom;
+    property pixelRight: Integer read Get_pixelRight write Set_pixelRight;
+    property posBottom: Single read Get_posBottom write Set_posBottom;
+    property posRight: Single read Get_posRight write Set_posRight;
+    property imeMode: WideString read Get_imeMode write Set_imeMode;
+    property rubyAlign: WideString read Get_rubyAlign write Set_rubyAlign;
+    property rubyPosition: WideString read Get_rubyPosition write Set_rubyPosition;
+    property rubyOverhang: WideString read Get_rubyOverhang write Set_rubyOverhang;
+    property layoutGridChar: OleVariant read Get_layoutGridChar write Set_layoutGridChar;
+    property layoutGridLine: OleVariant read Get_layoutGridLine write Set_layoutGridLine;
+    property layoutGridMode: WideString read Get_layoutGridMode write Set_layoutGridMode;
+    property layoutGridType: WideString read Get_layoutGridType write Set_layoutGridType;
+    property layoutGrid: WideString read Get_layoutGrid write Set_layoutGrid;
+    property textAutospace: WideString read Get_textAutospace write Set_textAutospace;
+    property wordBreak: WideString read Get_wordBreak write Set_wordBreak;
+    property lineBreak: WideString read Get_lineBreak write Set_lineBreak;
+    property textJustify: WideString read Get_textJustify write Set_textJustify;
+    property textJustifyTrim: WideString read Get_textJustifyTrim write Set_textJustifyTrim;
+    property textKashida: OleVariant read Get_textKashida write Set_textKashida;
+    property overflowX: WideString read Get_overflowX write Set_overflowX;
+    property overflowY: WideString read Get_overflowY write Set_overflowY;
+    property accelerator: WideString read Get_accelerator write Set_accelerator;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLRuleStyle2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4AC-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLRuleStyle2Disp = dispinterface
+    ['{3050F4AC-98B5-11CF-BB82-00AA00BDCE0B}']
+    property tableLayout: WideString dispid - 2147413014;
+    property borderCollapse: WideString dispid - 2147413028;
+    property direction: WideString dispid - 2147412993;
+    property behavior: WideString dispid - 2147412997;
+    property position: WideString dispid - 2147413022;
+    property unicodeBidi: WideString dispid - 2147412994;
+    property bottom: OleVariant dispid - 2147418034;
+    property right: OleVariant dispid - 2147418035;
+    property pixelBottom: Integer dispid - 2147414103;
+    property pixelRight: Integer dispid - 2147414102;
+    property posBottom: Single dispid - 2147414101;
+    property posRight: Single dispid - 2147414100;
+    property imeMode: WideString dispid - 2147412992;
+    property rubyAlign: WideString dispid - 2147412991;
+    property rubyPosition: WideString dispid - 2147412990;
+    property rubyOverhang: WideString dispid - 2147412989;
+    property layoutGridChar: OleVariant dispid - 2147412985;
+    property layoutGridLine: OleVariant dispid - 2147412984;
+    property layoutGridMode: WideString dispid - 2147412983;
+    property layoutGridType: WideString dispid - 2147412982;
+    property layoutGrid: WideString dispid - 2147412981;
+    property textAutospace: WideString dispid - 2147412980;
+    property wordBreak: WideString dispid - 2147412978;
+    property lineBreak: WideString dispid - 2147412979;
+    property textJustify: WideString dispid - 2147412977;
+    property textJustifyTrim: WideString dispid - 2147412976;
+    property textKashida: OleVariant dispid - 2147412975;
+    property overflowX: WideString dispid - 2147412973;
+    property overflowY: WideString dispid - 2147412972;
+    property accelerator: WideString dispid - 2147412965;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLRuleStyle3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F657-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLRuleStyle3 = interface(IDispatch)
+    ['{3050F657-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_layoutFlow(const p: WideString); safecall;
+    function Get_layoutFlow: WideString; safecall;
+    procedure Set_zoom(p: OleVariant); safecall;
+    function Get_zoom: OleVariant; safecall;
+    procedure Set_wordWrap(const p: WideString); safecall;
+    function Get_wordWrap: WideString; safecall;
+    procedure Set_textUnderlinePosition(const p: WideString); safecall;
+    function Get_textUnderlinePosition: WideString; safecall;
+    procedure Set_scrollbarBaseColor(p: OleVariant); safecall;
+    function Get_scrollbarBaseColor: OleVariant; safecall;
+    procedure Set_scrollbarFaceColor(p: OleVariant); safecall;
+    function Get_scrollbarFaceColor: OleVariant; safecall;
+    procedure Set_scrollbar3dLightColor(p: OleVariant); safecall;
+    function Get_scrollbar3dLightColor: OleVariant; safecall;
+    procedure Set_scrollbarShadowColor(p: OleVariant); safecall;
+    function Get_scrollbarShadowColor: OleVariant; safecall;
+    procedure Set_scrollbarHighlightColor(p: OleVariant); safecall;
+    function Get_scrollbarHighlightColor: OleVariant; safecall;
+    procedure Set_scrollbarDarkShadowColor(p: OleVariant); safecall;
+    function Get_scrollbarDarkShadowColor: OleVariant; safecall;
+    procedure Set_scrollbarArrowColor(p: OleVariant); safecall;
+    function Get_scrollbarArrowColor: OleVariant; safecall;
+    procedure Set_scrollbarTrackColor(p: OleVariant); safecall;
+    function Get_scrollbarTrackColor: OleVariant; safecall;
+    procedure Set_writingMode(const p: WideString); safecall;
+    function Get_writingMode: WideString; safecall;
+    procedure Set_textAlignLast(const p: WideString); safecall;
+    function Get_textAlignLast: WideString; safecall;
+    procedure Set_textKashidaSpace(p: OleVariant); safecall;
+    function Get_textKashidaSpace: OleVariant; safecall;
+    property layoutFlow: WideString read Get_layoutFlow write Set_layoutFlow;
+    property zoom: OleVariant read Get_zoom write Set_zoom;
+    property wordWrap: WideString read Get_wordWrap write Set_wordWrap;
+    property textUnderlinePosition: WideString read Get_textUnderlinePosition write Set_textUnderlinePosition;
+    property scrollbarBaseColor: OleVariant read Get_scrollbarBaseColor write Set_scrollbarBaseColor;
+    property scrollbarFaceColor: OleVariant read Get_scrollbarFaceColor write Set_scrollbarFaceColor;
+    property scrollbar3dLightColor: OleVariant read Get_scrollbar3dLightColor write Set_scrollbar3dLightColor;
+    property scrollbarShadowColor: OleVariant read Get_scrollbarShadowColor write Set_scrollbarShadowColor;
+    property scrollbarHighlightColor: OleVariant read Get_scrollbarHighlightColor write Set_scrollbarHighlightColor;
+    property scrollbarDarkShadowColor: OleVariant read Get_scrollbarDarkShadowColor write Set_scrollbarDarkShadowColor;
+    property scrollbarArrowColor: OleVariant read Get_scrollbarArrowColor write Set_scrollbarArrowColor;
+    property scrollbarTrackColor: OleVariant read Get_scrollbarTrackColor write Set_scrollbarTrackColor;
+    property writingMode: WideString read Get_writingMode write Set_writingMode;
+    property textAlignLast: WideString read Get_textAlignLast write Set_textAlignLast;
+    property textKashidaSpace: OleVariant read Get_textKashidaSpace write Set_textKashidaSpace;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLRuleStyle3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F657-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLRuleStyle3Disp = dispinterface
+    ['{3050F657-98B5-11CF-BB82-00AA00BDCE0B}']
+    property layoutFlow: WideString dispid - 2147412957;
+    property zoom: OleVariant dispid - 2147412959;
+    property wordWrap: WideString dispid - 2147412954;
+    property textUnderlinePosition: WideString dispid - 2147412953;
+    property scrollbarBaseColor: OleVariant dispid - 2147412932;
+    property scrollbarFaceColor: OleVariant dispid - 2147412931;
+    property scrollbar3dLightColor: OleVariant dispid - 2147412930;
+    property scrollbarShadowColor: OleVariant dispid - 2147412929;
+    property scrollbarHighlightColor: OleVariant dispid - 2147412928;
+    property scrollbarDarkShadowColor: OleVariant dispid - 2147412927;
+    property scrollbarArrowColor: OleVariant dispid - 2147412926;
+    property scrollbarTrackColor: OleVariant dispid - 2147412916;
+    property writingMode: WideString dispid - 2147412920;
+    property textAlignLast: WideString dispid - 2147412909;
+    property textKashidaSpace: OleVariant dispid - 2147412908;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLRuleStyle4
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F817-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLRuleStyle4 = interface(IDispatch)
+    ['{3050F817-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_textOverflow(const p: WideString); safecall;
+    function Get_textOverflow: WideString; safecall;
+    procedure Set_minHeight(p: OleVariant); safecall;
+    function Get_minHeight: OleVariant; safecall;
+    property textOverflow: WideString read Get_textOverflow write Set_textOverflow;
+    property minHeight: OleVariant read Get_minHeight write Set_minHeight;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLRuleStyle4Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F817-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLRuleStyle4Disp = dispinterface
+    ['{3050F817-98B5-11CF-BB82-00AA00BDCE0B}']
+    property textOverflow: WideString dispid - 2147412903;
+    property minHeight: OleVariant dispid - 2147412901;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLStyle
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F55A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLStyle = dispinterface
+    ['{3050F55A-98B5-11CF-BB82-00AA00BDCE0B}']
+    property fontFamily: WideString dispid - 2147413094;
+    property fontStyle: WideString dispid - 2147413088;
+    property fontVariant: WideString dispid - 2147413087;
+    property fontWeight: WideString dispid - 2147413085;
+    property fontSize: OleVariant dispid - 2147413093;
+    property font: WideString dispid - 2147413071;
+    property color: OleVariant dispid - 2147413110;
+    property background: WideString dispid - 2147413080;
+    property backgroundColor: OleVariant dispid - 501;
+    property backgroundImage: WideString dispid - 2147413111;
+    property backgroundRepeat: WideString dispid - 2147413068;
+    property backgroundAttachment: WideString dispid - 2147413067;
+    property backgroundPosition: WideString dispid - 2147413066;
+    property backgroundPositionX: OleVariant dispid - 2147413079;
+    property backgroundPositionY: OleVariant dispid - 2147413078;
+    property wordSpacing: OleVariant dispid - 2147413065;
+    property letterSpacing: OleVariant dispid - 2147413104;
+    property textDecoration: WideString dispid - 2147413077;
+    property textDecorationNone: WordBool dispid - 2147413089;
+    property textDecorationUnderline: WordBool dispid - 2147413091;
+    property textDecorationOverline: WordBool dispid - 2147413043;
+    property textDecorationLineThrough: WordBool dispid - 2147413092;
+    property textDecorationBlink: WordBool dispid - 2147413090;
+    property verticalAlign: OleVariant dispid - 2147413064;
+    property textTransform: WideString dispid - 2147413108;
+    property textAlign: WideString dispid - 2147418040;
+    property textIndent: OleVariant dispid - 2147413105;
+    property lineHeight: OleVariant dispid - 2147413106;
+    property marginTop: OleVariant dispid - 2147413075;
+    property marginRight: OleVariant dispid - 2147413074;
+    property marginBottom: OleVariant dispid - 2147413073;
+    property marginLeft: OleVariant dispid - 2147413072;
+    property margin: WideString dispid - 2147413076;
+    property paddingTop: OleVariant dispid - 2147413100;
+    property paddingRight: OleVariant dispid - 2147413099;
+    property paddingBottom: OleVariant dispid - 2147413098;
+    property paddingLeft: OleVariant dispid - 2147413097;
+    property padding: WideString dispid - 2147413101;
+    property border: WideString dispid - 2147413063;
+    property borderTop: WideString dispid - 2147413062;
+    property borderRight: WideString dispid - 2147413061;
+    property borderBottom: WideString dispid - 2147413060;
+    property borderLeft: WideString dispid - 2147413059;
+    property borderColor: WideString dispid - 2147413058;
+    property borderTopColor: OleVariant dispid - 2147413057;
+    property borderRightColor: OleVariant dispid - 2147413056;
+    property borderBottomColor: OleVariant dispid - 2147413055;
+    property borderLeftColor: OleVariant dispid - 2147413054;
+    property borderWidth: WideString dispid - 2147413053;
+    property borderTopWidth: OleVariant dispid - 2147413052;
+    property borderRightWidth: OleVariant dispid - 2147413051;
+    property borderBottomWidth: OleVariant dispid - 2147413050;
+    property borderLeftWidth: OleVariant dispid - 2147413049;
+    property borderStyle: WideString dispid - 2147413048;
+    property borderTopStyle: WideString dispid - 2147413047;
+    property borderRightStyle: WideString dispid - 2147413046;
+    property borderBottomStyle: WideString dispid - 2147413045;
+    property borderLeftStyle: WideString dispid - 2147413044;
+    property width: OleVariant dispid - 2147418107;
+    property height: OleVariant dispid - 2147418106;
+    property styleFloat: WideString dispid - 2147413042;
+    property clear: WideString dispid - 2147413096;
+    property display: WideString dispid - 2147413041;
+    property visibility: WideString dispid - 2147413032;
+    property listStyleType: WideString dispid - 2147413040;
+    property listStylePosition: WideString dispid - 2147413039;
+    property listStyleImage: WideString dispid - 2147413038;
+    property listStyle: WideString dispid - 2147413037;
+    property whiteSpace: WideString dispid - 2147413036;
+    property top: OleVariant dispid - 2147418108;
+    property left: OleVariant dispid - 2147418109;
+    property zIndex: OleVariant dispid - 2147413021;
+    property overflow: WideString dispid - 2147413102;
+    property pageBreakBefore: WideString dispid - 2147413035;
+    property pageBreakAfter: WideString dispid - 2147413034;
+    property cssText: WideString dispid - 2147413013;
+    property pixelTop: Integer dispid - 2147414112;
+    property pixelLeft: Integer dispid - 2147414111;
+    property pixelWidth: Integer dispid - 2147414110;
+    property pixelHeight: Integer dispid - 2147414109;
+    property posTop: Single dispid - 2147414108;
+    property posLeft: Single dispid - 2147414107;
+    property posWidth: Single dispid - 2147414106;
+    property posHeight: Single dispid - 2147414105;
+    property cursor: WideString dispid - 2147413010;
+    property clip: WideString dispid - 2147413020;
+    property filter: WideString dispid - 2147413030;
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    function toString: WideString; dispid - 2147414104;
+    property tableLayout: WideString dispid - 2147413014;
+    property borderCollapse: WideString dispid - 2147413028;
+    property direction: WideString dispid - 2147412993;
+    property behavior: WideString dispid - 2147412997;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property position: WideString dispid - 2147413022;
+    property unicodeBidi: WideString dispid - 2147412994;
+    property bottom: OleVariant dispid - 2147418034;
+    property right: OleVariant dispid - 2147418035;
+    property pixelBottom: Integer dispid - 2147414103;
+    property pixelRight: Integer dispid - 2147414102;
+    property posBottom: Single dispid - 2147414101;
+    property posRight: Single dispid - 2147414100;
+    property imeMode: WideString dispid - 2147412992;
+    property rubyAlign: WideString dispid - 2147412991;
+    property rubyPosition: WideString dispid - 2147412990;
+    property rubyOverhang: WideString dispid - 2147412989;
+    property layoutGridChar: OleVariant dispid - 2147412985;
+    property layoutGridLine: OleVariant dispid - 2147412984;
+    property layoutGridMode: WideString dispid - 2147412983;
+    property layoutGridType: WideString dispid - 2147412982;
+    property layoutGrid: WideString dispid - 2147412981;
+    property wordBreak: WideString dispid - 2147412978;
+    property lineBreak: WideString dispid - 2147412979;
+    property textJustify: WideString dispid - 2147412977;
+    property textJustifyTrim: WideString dispid - 2147412976;
+    property textKashida: OleVariant dispid - 2147412975;
+    property textAutospace: WideString dispid - 2147412980;
+    property overflowX: WideString dispid - 2147412973;
+    property overflowY: WideString dispid - 2147412972;
+    property accelerator: WideString dispid - 2147412965;
+    property layoutFlow: WideString dispid - 2147412957;
+    property zoom: OleVariant dispid - 2147412959;
+    property wordWrap: WideString dispid - 2147412954;
+    property textUnderlinePosition: WideString dispid - 2147412953;
+    property scrollbarBaseColor: OleVariant dispid - 2147412932;
+    property scrollbarFaceColor: OleVariant dispid - 2147412931;
+    property scrollbar3dLightColor: OleVariant dispid - 2147412930;
+    property scrollbarShadowColor: OleVariant dispid - 2147412929;
+    property scrollbarHighlightColor: OleVariant dispid - 2147412928;
+    property scrollbarDarkShadowColor: OleVariant dispid - 2147412927;
+    property scrollbarArrowColor: OleVariant dispid - 2147412926;
+    property scrollbarTrackColor: OleVariant dispid - 2147412916;
+    property writingMode: WideString dispid - 2147412920;
+    property textAlignLast: WideString dispid - 2147412909;
+    property textKashidaSpace: OleVariant dispid - 2147412908;
+    property textOverflow: WideString dispid - 2147412903;
+    property minHeight: OleVariant dispid - 2147412901;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLRuleStyle
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F55C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLRuleStyle = dispinterface
+    ['{3050F55C-98B5-11CF-BB82-00AA00BDCE0B}']
+    property fontFamily: WideString dispid - 2147413094;
+    property fontStyle: WideString dispid - 2147413088;
+    property fontVariant: WideString dispid - 2147413087;
+    property fontWeight: WideString dispid - 2147413085;
+    property fontSize: OleVariant dispid - 2147413093;
+    property font: WideString dispid - 2147413071;
+    property color: OleVariant dispid - 2147413110;
+    property background: WideString dispid - 2147413080;
+    property backgroundColor: OleVariant dispid - 501;
+    property backgroundImage: WideString dispid - 2147413111;
+    property backgroundRepeat: WideString dispid - 2147413068;
+    property backgroundAttachment: WideString dispid - 2147413067;
+    property backgroundPosition: WideString dispid - 2147413066;
+    property backgroundPositionX: OleVariant dispid - 2147413079;
+    property backgroundPositionY: OleVariant dispid - 2147413078;
+    property wordSpacing: OleVariant dispid - 2147413065;
+    property letterSpacing: OleVariant dispid - 2147413104;
+    property textDecoration: WideString dispid - 2147413077;
+    property textDecorationNone: WordBool dispid - 2147413089;
+    property textDecorationUnderline: WordBool dispid - 2147413091;
+    property textDecorationOverline: WordBool dispid - 2147413043;
+    property textDecorationLineThrough: WordBool dispid - 2147413092;
+    property textDecorationBlink: WordBool dispid - 2147413090;
+    property verticalAlign: OleVariant dispid - 2147413064;
+    property textTransform: WideString dispid - 2147413108;
+    property textAlign: WideString dispid - 2147418040;
+    property textIndent: OleVariant dispid - 2147413105;
+    property lineHeight: OleVariant dispid - 2147413106;
+    property marginTop: OleVariant dispid - 2147413075;
+    property marginRight: OleVariant dispid - 2147413074;
+    property marginBottom: OleVariant dispid - 2147413073;
+    property marginLeft: OleVariant dispid - 2147413072;
+    property margin: WideString dispid - 2147413076;
+    property paddingTop: OleVariant dispid - 2147413100;
+    property paddingRight: OleVariant dispid - 2147413099;
+    property paddingBottom: OleVariant dispid - 2147413098;
+    property paddingLeft: OleVariant dispid - 2147413097;
+    property padding: WideString dispid - 2147413101;
+    property border: WideString dispid - 2147413063;
+    property borderTop: WideString dispid - 2147413062;
+    property borderRight: WideString dispid - 2147413061;
+    property borderBottom: WideString dispid - 2147413060;
+    property borderLeft: WideString dispid - 2147413059;
+    property borderColor: WideString dispid - 2147413058;
+    property borderTopColor: OleVariant dispid - 2147413057;
+    property borderRightColor: OleVariant dispid - 2147413056;
+    property borderBottomColor: OleVariant dispid - 2147413055;
+    property borderLeftColor: OleVariant dispid - 2147413054;
+    property borderWidth: WideString dispid - 2147413053;
+    property borderTopWidth: OleVariant dispid - 2147413052;
+    property borderRightWidth: OleVariant dispid - 2147413051;
+    property borderBottomWidth: OleVariant dispid - 2147413050;
+    property borderLeftWidth: OleVariant dispid - 2147413049;
+    property borderStyle: WideString dispid - 2147413048;
+    property borderTopStyle: WideString dispid - 2147413047;
+    property borderRightStyle: WideString dispid - 2147413046;
+    property borderBottomStyle: WideString dispid - 2147413045;
+    property borderLeftStyle: WideString dispid - 2147413044;
+    property width: OleVariant dispid - 2147418107;
+    property height: OleVariant dispid - 2147418106;
+    property styleFloat: WideString dispid - 2147413042;
+    property clear: WideString dispid - 2147413096;
+    property display: WideString dispid - 2147413041;
+    property visibility: WideString dispid - 2147413032;
+    property listStyleType: WideString dispid - 2147413040;
+    property listStylePosition: WideString dispid - 2147413039;
+    property listStyleImage: WideString dispid - 2147413038;
+    property listStyle: WideString dispid - 2147413037;
+    property whiteSpace: WideString dispid - 2147413036;
+    property top: OleVariant dispid - 2147418108;
+    property left: OleVariant dispid - 2147418109;
+    property zIndex: OleVariant dispid - 2147413021;
+    property overflow: WideString dispid - 2147413102;
+    property pageBreakBefore: WideString dispid - 2147413035;
+    property pageBreakAfter: WideString dispid - 2147413034;
+    property cssText: WideString dispid - 2147413013;
+    property cursor: WideString dispid - 2147413010;
+    property clip: WideString dispid - 2147413020;
+    property filter: WideString dispid - 2147413030;
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property tableLayout: WideString dispid - 2147413014;
+    property borderCollapse: WideString dispid - 2147413028;
+    property direction: WideString dispid - 2147412993;
+    property behavior: WideString dispid - 2147412997;
+    property position: WideString dispid - 2147413022;
+    property unicodeBidi: WideString dispid - 2147412994;
+    property bottom: OleVariant dispid - 2147418034;
+    property right: OleVariant dispid - 2147418035;
+    property pixelBottom: Integer dispid - 2147414103;
+    property pixelRight: Integer dispid - 2147414102;
+    property posBottom: Single dispid - 2147414101;
+    property posRight: Single dispid - 2147414100;
+    property imeMode: WideString dispid - 2147412992;
+    property rubyAlign: WideString dispid - 2147412991;
+    property rubyPosition: WideString dispid - 2147412990;
+    property rubyOverhang: WideString dispid - 2147412989;
+    property layoutGridChar: OleVariant dispid - 2147412985;
+    property layoutGridLine: OleVariant dispid - 2147412984;
+    property layoutGridMode: WideString dispid - 2147412983;
+    property layoutGridType: WideString dispid - 2147412982;
+    property layoutGrid: WideString dispid - 2147412981;
+    property textAutospace: WideString dispid - 2147412980;
+    property wordBreak: WideString dispid - 2147412978;
+    property lineBreak: WideString dispid - 2147412979;
+    property textJustify: WideString dispid - 2147412977;
+    property textJustifyTrim: WideString dispid - 2147412976;
+    property textKashida: OleVariant dispid - 2147412975;
+    property overflowX: WideString dispid - 2147412973;
+    property overflowY: WideString dispid - 2147412972;
+    property accelerator: WideString dispid - 2147412965;
+    property layoutFlow: WideString dispid - 2147412957;
+    property zoom: OleVariant dispid - 2147412959;
+    property wordWrap: WideString dispid - 2147412954;
+    property textUnderlinePosition: WideString dispid - 2147412953;
+    property scrollbarBaseColor: OleVariant dispid - 2147412932;
+    property scrollbarFaceColor: OleVariant dispid - 2147412931;
+    property scrollbar3dLightColor: OleVariant dispid - 2147412930;
+    property scrollbarShadowColor: OleVariant dispid - 2147412929;
+    property scrollbarHighlightColor: OleVariant dispid - 2147412928;
+    property scrollbarDarkShadowColor: OleVariant dispid - 2147412927;
+    property scrollbarArrowColor: OleVariant dispid - 2147412926;
+    property scrollbarTrackColor: OleVariant dispid - 2147412916;
+    property writingMode: WideString dispid - 2147412920;
+    property textAlignLast: WideString dispid - 2147412909;
+    property textKashidaSpace: OleVariant dispid - 2147412908;
+    property textOverflow: WideString dispid - 2147412903;
+    property minHeight: OleVariant dispid - 2147412901;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLRenderStyle
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F6AE-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLRenderStyle = interface(IDispatch)
+    ['{3050F6AE-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_textLineThroughStyle(const p: WideString); safecall;
+    function Get_textLineThroughStyle: WideString; safecall;
+    procedure Set_textUnderlineStyle(const p: WideString); safecall;
+    function Get_textUnderlineStyle: WideString; safecall;
+    procedure Set_textEffect(const p: WideString); safecall;
+    function Get_textEffect: WideString; safecall;
+    procedure Set_textColor(p: OleVariant); safecall;
+    function Get_textColor: OleVariant; safecall;
+    procedure Set_textBackgroundColor(p: OleVariant); safecall;
+    function Get_textBackgroundColor: OleVariant; safecall;
+    procedure Set_textDecorationColor(p: OleVariant); safecall;
+    function Get_textDecorationColor: OleVariant; safecall;
+    procedure Set_renderingPriority(p: Integer); safecall;
+    function Get_renderingPriority: Integer; safecall;
+    procedure Set_defaultTextSelection(const p: WideString); safecall;
+    function Get_defaultTextSelection: WideString; safecall;
+    procedure Set_textDecoration(const p: WideString); safecall;
+    function Get_textDecoration: WideString; safecall;
+    property textLineThroughStyle: WideString read Get_textLineThroughStyle write Set_textLineThroughStyle;
+    property textUnderlineStyle: WideString read Get_textUnderlineStyle write Set_textUnderlineStyle;
+    property textEffect: WideString read Get_textEffect write Set_textEffect;
+    property textColor: OleVariant read Get_textColor write Set_textColor;
+    property textBackgroundColor: OleVariant read Get_textBackgroundColor write Set_textBackgroundColor;
+    property textDecorationColor: OleVariant read Get_textDecorationColor write Set_textDecorationColor;
+    property renderingPriority: Integer read Get_renderingPriority write Set_renderingPriority;
+    property defaultTextSelection: WideString read Get_defaultTextSelection write Set_defaultTextSelection;
+    property textDecoration: WideString read Get_textDecoration write Set_textDecoration;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLRenderStyleDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F6AE-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLRenderStyleDisp = dispinterface
+    ['{3050F6AE-98B5-11CF-BB82-00AA00BDCE0B}']
+    property textLineThroughStyle: WideString dispid - 2147412946;
+    property textUnderlineStyle: WideString dispid - 2147412945;
+    property textEffect: WideString dispid - 2147412944;
+    property textColor: OleVariant dispid - 2147412922;
+    property textBackgroundColor: OleVariant dispid - 2147412943;
+    property textDecorationColor: OleVariant dispid - 2147412923;
+    property renderingPriority: Integer dispid - 2147412942;
+    property defaultTextSelection: WideString dispid - 2147412924;
+    property textDecoration: WideString dispid - 2147412921;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLRenderStyle
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F58B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLRenderStyle = dispinterface
+    ['{3050F58B-98B5-11CF-BB82-00AA00BDCE0B}']
+    property textLineThroughStyle: WideString dispid - 2147412946;
+    property textUnderlineStyle: WideString dispid - 2147412945;
+    property textEffect: WideString dispid - 2147412944;
+    property textColor: OleVariant dispid - 2147412922;
+    property textBackgroundColor: OleVariant dispid - 2147412943;
+    property textDecorationColor: OleVariant dispid - 2147412923;
+    property renderingPriority: Integer dispid - 2147412942;
+    property defaultTextSelection: WideString dispid - 2147412924;
+    property textDecoration: WideString dispid - 2147412921;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLCurrentStyle
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3DB-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLCurrentStyle = interface(IDispatch)
+    ['{3050F3DB-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_position: WideString; safecall;
+    function Get_styleFloat: WideString; safecall;
+    function Get_color: OleVariant; safecall;
+    function Get_backgroundColor: OleVariant; safecall;
+    function Get_fontFamily: WideString; safecall;
+    function Get_fontStyle: WideString; safecall;
+    function Get_fontVariant: WideString; safecall;
+    function Get_fontWeight: OleVariant; safecall;
+    function Get_fontSize: OleVariant; safecall;
+    function Get_backgroundImage: WideString; safecall;
+    function Get_backgroundPositionX: OleVariant; safecall;
+    function Get_backgroundPositionY: OleVariant; safecall;
+    function Get_backgroundRepeat: WideString; safecall;
+    function Get_borderLeftColor: OleVariant; safecall;
+    function Get_borderTopColor: OleVariant; safecall;
+    function Get_borderRightColor: OleVariant; safecall;
+    function Get_borderBottomColor: OleVariant; safecall;
+    function Get_borderTopStyle: WideString; safecall;
+    function Get_borderRightStyle: WideString; safecall;
+    function Get_borderBottomStyle: WideString; safecall;
+    function Get_borderLeftStyle: WideString; safecall;
+    function Get_borderTopWidth: OleVariant; safecall;
+    function Get_borderRightWidth: OleVariant; safecall;
+    function Get_borderBottomWidth: OleVariant; safecall;
+    function Get_borderLeftWidth: OleVariant; safecall;
+    function Get_left: OleVariant; safecall;
+    function Get_top: OleVariant; safecall;
+    function Get_width: OleVariant; safecall;
+    function Get_height: OleVariant; safecall;
+    function Get_paddingLeft: OleVariant; safecall;
+    function Get_paddingTop: OleVariant; safecall;
+    function Get_paddingRight: OleVariant; safecall;
+    function Get_paddingBottom: OleVariant; safecall;
+    function Get_textAlign: WideString; safecall;
+    function Get_textDecoration: WideString; safecall;
+    function Get_display: WideString; safecall;
+    function Get_visibility: WideString; safecall;
+    function Get_zIndex: OleVariant; safecall;
+    function Get_letterSpacing: OleVariant; safecall;
+    function Get_lineHeight: OleVariant; safecall;
+    function Get_textIndent: OleVariant; safecall;
+    function Get_verticalAlign: OleVariant; safecall;
+    function Get_backgroundAttachment: WideString; safecall;
+    function Get_marginTop: OleVariant; safecall;
+    function Get_marginRight: OleVariant; safecall;
+    function Get_marginBottom: OleVariant; safecall;
+    function Get_marginLeft: OleVariant; safecall;
+    function Get_clear: WideString; safecall;
+    function Get_listStyleType: WideString; safecall;
+    function Get_listStylePosition: WideString; safecall;
+    function Get_listStyleImage: WideString; safecall;
+    function Get_clipTop: OleVariant; safecall;
+    function Get_clipRight: OleVariant; safecall;
+    function Get_clipBottom: OleVariant; safecall;
+    function Get_clipLeft: OleVariant; safecall;
+    function Get_overflow: WideString; safecall;
+    function Get_pageBreakBefore: WideString; safecall;
+    function Get_pageBreakAfter: WideString; safecall;
+    function Get_cursor: WideString; safecall;
+    function Get_tableLayout: WideString; safecall;
+    function Get_borderCollapse: WideString; safecall;
+    function Get_direction: WideString; safecall;
+    function Get_behavior: WideString; safecall;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; safecall;
+    function Get_unicodeBidi: WideString; safecall;
+    function Get_right: OleVariant; safecall;
+    function Get_bottom: OleVariant; safecall;
+    function Get_imeMode: WideString; safecall;
+    function Get_rubyAlign: WideString; safecall;
+    function Get_rubyPosition: WideString; safecall;
+    function Get_rubyOverhang: WideString; safecall;
+    function Get_textAutospace: WideString; safecall;
+    function Get_lineBreak: WideString; safecall;
+    function Get_wordBreak: WideString; safecall;
+    function Get_textJustify: WideString; safecall;
+    function Get_textJustifyTrim: WideString; safecall;
+    function Get_textKashida: OleVariant; safecall;
+    function Get_blockDirection: WideString; safecall;
+    function Get_layoutGridChar: OleVariant; safecall;
+    function Get_layoutGridLine: OleVariant; safecall;
+    function Get_layoutGridMode: WideString; safecall;
+    function Get_layoutGridType: WideString; safecall;
+    function Get_borderStyle: WideString; safecall;
+    function Get_borderColor: WideString; safecall;
+    function Get_borderWidth: WideString; safecall;
+    function Get_padding: WideString; safecall;
+    function Get_margin: WideString; safecall;
+    function Get_accelerator: WideString; safecall;
+    function Get_overflowX: WideString; safecall;
+    function Get_overflowY: WideString; safecall;
+    function Get_textTransform: WideString; safecall;
+    property position: WideString read Get_position;
+    property styleFloat: WideString read Get_styleFloat;
+    property color: OleVariant read Get_color;
+    property backgroundColor: OleVariant read Get_backgroundColor;
+    property fontFamily: WideString read Get_fontFamily;
+    property fontStyle: WideString read Get_fontStyle;
+    property fontVariant: WideString read Get_fontVariant;
+    property fontWeight: OleVariant read Get_fontWeight;
+    property fontSize: OleVariant read Get_fontSize;
+    property backgroundImage: WideString read Get_backgroundImage;
+    property backgroundPositionX: OleVariant read Get_backgroundPositionX;
+    property backgroundPositionY: OleVariant read Get_backgroundPositionY;
+    property backgroundRepeat: WideString read Get_backgroundRepeat;
+    property borderLeftColor: OleVariant read Get_borderLeftColor;
+    property borderTopColor: OleVariant read Get_borderTopColor;
+    property borderRightColor: OleVariant read Get_borderRightColor;
+    property borderBottomColor: OleVariant read Get_borderBottomColor;
+    property borderTopStyle: WideString read Get_borderTopStyle;
+    property borderRightStyle: WideString read Get_borderRightStyle;
+    property borderBottomStyle: WideString read Get_borderBottomStyle;
+    property borderLeftStyle: WideString read Get_borderLeftStyle;
+    property borderTopWidth: OleVariant read Get_borderTopWidth;
+    property borderRightWidth: OleVariant read Get_borderRightWidth;
+    property borderBottomWidth: OleVariant read Get_borderBottomWidth;
+    property borderLeftWidth: OleVariant read Get_borderLeftWidth;
+    property left: OleVariant read Get_left;
+    property top: OleVariant read Get_top;
+    property width: OleVariant read Get_width;
+    property height: OleVariant read Get_height;
+    property paddingLeft: OleVariant read Get_paddingLeft;
+    property paddingTop: OleVariant read Get_paddingTop;
+    property paddingRight: OleVariant read Get_paddingRight;
+    property paddingBottom: OleVariant read Get_paddingBottom;
+    property textAlign: WideString read Get_textAlign;
+    property textDecoration: WideString read Get_textDecoration;
+    property display: WideString read Get_display;
+    property visibility: WideString read Get_visibility;
+    property zIndex: OleVariant read Get_zIndex;
+    property letterSpacing: OleVariant read Get_letterSpacing;
+    property lineHeight: OleVariant read Get_lineHeight;
+    property textIndent: OleVariant read Get_textIndent;
+    property verticalAlign: OleVariant read Get_verticalAlign;
+    property backgroundAttachment: WideString read Get_backgroundAttachment;
+    property marginTop: OleVariant read Get_marginTop;
+    property marginRight: OleVariant read Get_marginRight;
+    property marginBottom: OleVariant read Get_marginBottom;
+    property marginLeft: OleVariant read Get_marginLeft;
+    property clear: WideString read Get_clear;
+    property listStyleType: WideString read Get_listStyleType;
+    property listStylePosition: WideString read Get_listStylePosition;
+    property listStyleImage: WideString read Get_listStyleImage;
+    property clipTop: OleVariant read Get_clipTop;
+    property clipRight: OleVariant read Get_clipRight;
+    property clipBottom: OleVariant read Get_clipBottom;
+    property clipLeft: OleVariant read Get_clipLeft;
+    property overflow: WideString read Get_overflow;
+    property pageBreakBefore: WideString read Get_pageBreakBefore;
+    property pageBreakAfter: WideString read Get_pageBreakAfter;
+    property cursor: WideString read Get_cursor;
+    property tableLayout: WideString read Get_tableLayout;
+    property borderCollapse: WideString read Get_borderCollapse;
+    property direction: WideString read Get_direction;
+    property behavior: WideString read Get_behavior;
+    property unicodeBidi: WideString read Get_unicodeBidi;
+    property right: OleVariant read Get_right;
+    property bottom: OleVariant read Get_bottom;
+    property imeMode: WideString read Get_imeMode;
+    property rubyAlign: WideString read Get_rubyAlign;
+    property rubyPosition: WideString read Get_rubyPosition;
+    property rubyOverhang: WideString read Get_rubyOverhang;
+    property textAutospace: WideString read Get_textAutospace;
+    property lineBreak: WideString read Get_lineBreak;
+    property wordBreak: WideString read Get_wordBreak;
+    property textJustify: WideString read Get_textJustify;
+    property textJustifyTrim: WideString read Get_textJustifyTrim;
+    property textKashida: OleVariant read Get_textKashida;
+    property blockDirection: WideString read Get_blockDirection;
+    property layoutGridChar: OleVariant read Get_layoutGridChar;
+    property layoutGridLine: OleVariant read Get_layoutGridLine;
+    property layoutGridMode: WideString read Get_layoutGridMode;
+    property layoutGridType: WideString read Get_layoutGridType;
+    property borderStyle: WideString read Get_borderStyle;
+    property borderColor: WideString read Get_borderColor;
+    property borderWidth: WideString read Get_borderWidth;
+    property padding: WideString read Get_padding;
+    property margin: WideString read Get_margin;
+    property accelerator: WideString read Get_accelerator;
+    property overflowX: WideString read Get_overflowX;
+    property overflowY: WideString read Get_overflowY;
+    property textTransform: WideString read Get_textTransform;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLCurrentStyleDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3DB-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLCurrentStyleDisp = dispinterface
+    ['{3050F3DB-98B5-11CF-BB82-00AA00BDCE0B}']
+    property position: WideString readonly dispid - 2147413022;
+    property styleFloat: WideString readonly dispid - 2147413042;
+    property color: OleVariant readonly dispid - 2147413110;
+    property backgroundColor: OleVariant readonly dispid - 501;
+    property fontFamily: WideString readonly dispid - 2147413094;
+    property fontStyle: WideString readonly dispid - 2147413088;
+    property fontVariant: WideString readonly dispid - 2147413087;
+    property fontWeight: OleVariant readonly dispid - 2147413085;
+    property fontSize: OleVariant readonly dispid - 2147413093;
+    property backgroundImage: WideString readonly dispid - 2147413111;
+    property backgroundPositionX: OleVariant readonly dispid - 2147413079;
+    property backgroundPositionY: OleVariant readonly dispid - 2147413078;
+    property backgroundRepeat: WideString readonly dispid - 2147413068;
+    property borderLeftColor: OleVariant readonly dispid - 2147413054;
+    property borderTopColor: OleVariant readonly dispid - 2147413057;
+    property borderRightColor: OleVariant readonly dispid - 2147413056;
+    property borderBottomColor: OleVariant readonly dispid - 2147413055;
+    property borderTopStyle: WideString readonly dispid - 2147413047;
+    property borderRightStyle: WideString readonly dispid - 2147413046;
+    property borderBottomStyle: WideString readonly dispid - 2147413045;
+    property borderLeftStyle: WideString readonly dispid - 2147413044;
+    property borderTopWidth: OleVariant readonly dispid - 2147413052;
+    property borderRightWidth: OleVariant readonly dispid - 2147413051;
+    property borderBottomWidth: OleVariant readonly dispid - 2147413050;
+    property borderLeftWidth: OleVariant readonly dispid - 2147413049;
+    property left: OleVariant readonly dispid - 2147418109;
+    property top: OleVariant readonly dispid - 2147418108;
+    property width: OleVariant readonly dispid - 2147418107;
+    property height: OleVariant readonly dispid - 2147418106;
+    property paddingLeft: OleVariant readonly dispid - 2147413097;
+    property paddingTop: OleVariant readonly dispid - 2147413100;
+    property paddingRight: OleVariant readonly dispid - 2147413099;
+    property paddingBottom: OleVariant readonly dispid - 2147413098;
+    property textAlign: WideString readonly dispid - 2147418040;
+    property textDecoration: WideString readonly dispid - 2147413077;
+    property display: WideString readonly dispid - 2147413041;
+    property visibility: WideString readonly dispid - 2147413032;
+    property zIndex: OleVariant readonly dispid - 2147413021;
+    property letterSpacing: OleVariant readonly dispid - 2147413104;
+    property lineHeight: OleVariant readonly dispid - 2147413106;
+    property textIndent: OleVariant readonly dispid - 2147413105;
+    property verticalAlign: OleVariant readonly dispid - 2147413064;
+    property backgroundAttachment: WideString readonly dispid - 2147413067;
+    property marginTop: OleVariant readonly dispid - 2147413075;
+    property marginRight: OleVariant readonly dispid - 2147413074;
+    property marginBottom: OleVariant readonly dispid - 2147413073;
+    property marginLeft: OleVariant readonly dispid - 2147413072;
+    property clear: WideString readonly dispid - 2147413096;
+    property listStyleType: WideString readonly dispid - 2147413040;
+    property listStylePosition: WideString readonly dispid - 2147413039;
+    property listStyleImage: WideString readonly dispid - 2147413038;
+    property clipTop: OleVariant readonly dispid - 2147413019;
+    property clipRight: OleVariant readonly dispid - 2147413018;
+    property clipBottom: OleVariant readonly dispid - 2147413017;
+    property clipLeft: OleVariant readonly dispid - 2147413016;
+    property overflow: WideString readonly dispid - 2147413102;
+    property pageBreakBefore: WideString readonly dispid - 2147413035;
+    property pageBreakAfter: WideString readonly dispid - 2147413034;
+    property cursor: WideString readonly dispid - 2147413010;
+    property tableLayout: WideString readonly dispid - 2147413014;
+    property borderCollapse: WideString readonly dispid - 2147413028;
+    property direction: WideString readonly dispid - 2147412993;
+    property behavior: WideString readonly dispid - 2147412997;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    property unicodeBidi: WideString readonly dispid - 2147412994;
+    property right: OleVariant readonly dispid - 2147418035;
+    property bottom: OleVariant readonly dispid - 2147418034;
+    property imeMode: WideString readonly dispid - 2147412992;
+    property rubyAlign: WideString readonly dispid - 2147412991;
+    property rubyPosition: WideString readonly dispid - 2147412990;
+    property rubyOverhang: WideString readonly dispid - 2147412989;
+    property textAutospace: WideString readonly dispid - 2147412980;
+    property lineBreak: WideString readonly dispid - 2147412979;
+    property wordBreak: WideString readonly dispid - 2147412978;
+    property textJustify: WideString readonly dispid - 2147412977;
+    property textJustifyTrim: WideString readonly dispid - 2147412976;
+    property textKashida: OleVariant readonly dispid - 2147412975;
+    property blockDirection: WideString readonly dispid - 2147412995;
+    property layoutGridChar: OleVariant readonly dispid - 2147412985;
+    property layoutGridLine: OleVariant readonly dispid - 2147412984;
+    property layoutGridMode: WideString readonly dispid - 2147412983;
+    property layoutGridType: WideString readonly dispid - 2147412982;
+    property borderStyle: WideString readonly dispid - 2147413048;
+    property borderColor: WideString readonly dispid - 2147413058;
+    property borderWidth: WideString readonly dispid - 2147413053;
+    property padding: WideString readonly dispid - 2147413101;
+    property margin: WideString readonly dispid - 2147413076;
+    property accelerator: WideString readonly dispid - 2147412965;
+    property overflowX: WideString readonly dispid - 2147412973;
+    property overflowY: WideString readonly dispid - 2147412972;
+    property textTransform: WideString readonly dispid - 2147413108;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLCurrentStyle2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F658-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLCurrentStyle2 = interface(IDispatch)
+    ['{3050F658-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_layoutFlow: WideString; safecall;
+    function Get_wordWrap: WideString; safecall;
+    function Get_textUnderlinePosition: WideString; safecall;
+    function Get_hasLayout: WordBool; safecall;
+    function Get_scrollbarBaseColor: OleVariant; safecall;
+    function Get_scrollbarFaceColor: OleVariant; safecall;
+    function Get_scrollbar3dLightColor: OleVariant; safecall;
+    function Get_scrollbarShadowColor: OleVariant; safecall;
+    function Get_scrollbarHighlightColor: OleVariant; safecall;
+    function Get_scrollbarDarkShadowColor: OleVariant; safecall;
+    function Get_scrollbarArrowColor: OleVariant; safecall;
+    function Get_scrollbarTrackColor: OleVariant; safecall;
+    function Get_writingMode: WideString; safecall;
+    function Get_zoom: OleVariant; safecall;
+    function Get_filter: WideString; safecall;
+    function Get_textAlignLast: WideString; safecall;
+    function Get_textKashidaSpace: OleVariant; safecall;
+    function Get_isBlock: WordBool; safecall;
+    property layoutFlow: WideString read Get_layoutFlow;
+    property wordWrap: WideString read Get_wordWrap;
+    property textUnderlinePosition: WideString read Get_textUnderlinePosition;
+    property hasLayout: WordBool read Get_hasLayout;
+    property scrollbarBaseColor: OleVariant read Get_scrollbarBaseColor;
+    property scrollbarFaceColor: OleVariant read Get_scrollbarFaceColor;
+    property scrollbar3dLightColor: OleVariant read Get_scrollbar3dLightColor;
+    property scrollbarShadowColor: OleVariant read Get_scrollbarShadowColor;
+    property scrollbarHighlightColor: OleVariant read Get_scrollbarHighlightColor;
+    property scrollbarDarkShadowColor: OleVariant read Get_scrollbarDarkShadowColor;
+    property scrollbarArrowColor: OleVariant read Get_scrollbarArrowColor;
+    property scrollbarTrackColor: OleVariant read Get_scrollbarTrackColor;
+    property writingMode: WideString read Get_writingMode;
+    property zoom: OleVariant read Get_zoom;
+    property filter: WideString read Get_filter;
+    property textAlignLast: WideString read Get_textAlignLast;
+    property textKashidaSpace: OleVariant read Get_textKashidaSpace;
+    property isBlock: WordBool read Get_isBlock;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLCurrentStyle2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F658-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLCurrentStyle2Disp = dispinterface
+    ['{3050F658-98B5-11CF-BB82-00AA00BDCE0B}']
+    property layoutFlow: WideString readonly dispid - 2147412957;
+    property wordWrap: WideString readonly dispid - 2147412954;
+    property textUnderlinePosition: WideString readonly dispid - 2147412953;
+    property hasLayout: WordBool readonly dispid - 2147412952;
+    property scrollbarBaseColor: OleVariant readonly dispid - 2147412932;
+    property scrollbarFaceColor: OleVariant readonly dispid - 2147412931;
+    property scrollbar3dLightColor: OleVariant readonly dispid - 2147412930;
+    property scrollbarShadowColor: OleVariant readonly dispid - 2147412929;
+    property scrollbarHighlightColor: OleVariant readonly dispid - 2147412928;
+    property scrollbarDarkShadowColor: OleVariant readonly dispid - 2147412927;
+    property scrollbarArrowColor: OleVariant readonly dispid - 2147412926;
+    property scrollbarTrackColor: OleVariant readonly dispid - 2147412916;
+    property writingMode: WideString readonly dispid - 2147412920;
+    property zoom: OleVariant readonly dispid - 2147412959;
+    property filter: WideString readonly dispid - 2147413030;
+    property textAlignLast: WideString readonly dispid - 2147412909;
+    property textKashidaSpace: OleVariant readonly dispid - 2147412908;
+    property isBlock: WordBool readonly dispid - 2147412904;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLCurrentStyle3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F818-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLCurrentStyle3 = interface(IDispatch)
+    ['{3050F818-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_textOverflow: WideString; safecall;
+    function Get_minHeight: OleVariant; safecall;
+    function Get_wordSpacing: OleVariant; safecall;
+    function Get_whiteSpace: WideString; safecall;
+    property textOverflow: WideString read Get_textOverflow;
+    property minHeight: OleVariant read Get_minHeight;
+    property wordSpacing: OleVariant read Get_wordSpacing;
+    property whiteSpace: WideString read Get_whiteSpace;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLCurrentStyle3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F818-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLCurrentStyle3Disp = dispinterface
+    ['{3050F818-98B5-11CF-BB82-00AA00BDCE0B}']
+    property textOverflow: WideString readonly dispid - 2147412903;
+    property minHeight: OleVariant readonly dispid - 2147412901;
+    property wordSpacing: OleVariant readonly dispid - 2147413065;
+    property whiteSpace: WideString readonly dispid - 2147413036;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLCurrentStyle
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F557-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLCurrentStyle = dispinterface
+    ['{3050F557-98B5-11CF-BB82-00AA00BDCE0B}']
+    property position: WideString readonly dispid - 2147413022;
+    property styleFloat: WideString readonly dispid - 2147413042;
+    property color: OleVariant readonly dispid - 2147413110;
+    property backgroundColor: OleVariant readonly dispid - 501;
+    property fontFamily: WideString readonly dispid - 2147413094;
+    property fontStyle: WideString readonly dispid - 2147413088;
+    property fontVariant: WideString readonly dispid - 2147413087;
+    property fontWeight: OleVariant readonly dispid - 2147413085;
+    property fontSize: OleVariant readonly dispid - 2147413093;
+    property backgroundImage: WideString readonly dispid - 2147413111;
+    property backgroundPositionX: OleVariant readonly dispid - 2147413079;
+    property backgroundPositionY: OleVariant readonly dispid - 2147413078;
+    property backgroundRepeat: WideString readonly dispid - 2147413068;
+    property borderLeftColor: OleVariant readonly dispid - 2147413054;
+    property borderTopColor: OleVariant readonly dispid - 2147413057;
+    property borderRightColor: OleVariant readonly dispid - 2147413056;
+    property borderBottomColor: OleVariant readonly dispid - 2147413055;
+    property borderTopStyle: WideString readonly dispid - 2147413047;
+    property borderRightStyle: WideString readonly dispid - 2147413046;
+    property borderBottomStyle: WideString readonly dispid - 2147413045;
+    property borderLeftStyle: WideString readonly dispid - 2147413044;
+    property borderTopWidth: OleVariant readonly dispid - 2147413052;
+    property borderRightWidth: OleVariant readonly dispid - 2147413051;
+    property borderBottomWidth: OleVariant readonly dispid - 2147413050;
+    property borderLeftWidth: OleVariant readonly dispid - 2147413049;
+    property left: OleVariant readonly dispid - 2147418109;
+    property top: OleVariant readonly dispid - 2147418108;
+    property width: OleVariant readonly dispid - 2147418107;
+    property height: OleVariant readonly dispid - 2147418106;
+    property paddingLeft: OleVariant readonly dispid - 2147413097;
+    property paddingTop: OleVariant readonly dispid - 2147413100;
+    property paddingRight: OleVariant readonly dispid - 2147413099;
+    property paddingBottom: OleVariant readonly dispid - 2147413098;
+    property textAlign: WideString readonly dispid - 2147418040;
+    property textDecoration: WideString readonly dispid - 2147413077;
+    property display: WideString readonly dispid - 2147413041;
+    property visibility: WideString readonly dispid - 2147413032;
+    property zIndex: OleVariant readonly dispid - 2147413021;
+    property letterSpacing: OleVariant readonly dispid - 2147413104;
+    property lineHeight: OleVariant readonly dispid - 2147413106;
+    property textIndent: OleVariant readonly dispid - 2147413105;
+    property verticalAlign: OleVariant readonly dispid - 2147413064;
+    property backgroundAttachment: WideString readonly dispid - 2147413067;
+    property marginTop: OleVariant readonly dispid - 2147413075;
+    property marginRight: OleVariant readonly dispid - 2147413074;
+    property marginBottom: OleVariant readonly dispid - 2147413073;
+    property marginLeft: OleVariant readonly dispid - 2147413072;
+    property clear: WideString readonly dispid - 2147413096;
+    property listStyleType: WideString readonly dispid - 2147413040;
+    property listStylePosition: WideString readonly dispid - 2147413039;
+    property listStyleImage: WideString readonly dispid - 2147413038;
+    property clipTop: OleVariant readonly dispid - 2147413019;
+    property clipRight: OleVariant readonly dispid - 2147413018;
+    property clipBottom: OleVariant readonly dispid - 2147413017;
+    property clipLeft: OleVariant readonly dispid - 2147413016;
+    property overflow: WideString readonly dispid - 2147413102;
+    property pageBreakBefore: WideString readonly dispid - 2147413035;
+    property pageBreakAfter: WideString readonly dispid - 2147413034;
+    property cursor: WideString readonly dispid - 2147413010;
+    property tableLayout: WideString readonly dispid - 2147413014;
+    property borderCollapse: WideString readonly dispid - 2147413028;
+    property direction: WideString readonly dispid - 2147412993;
+    property behavior: WideString readonly dispid - 2147412997;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    property unicodeBidi: WideString readonly dispid - 2147412994;
+    property right: OleVariant readonly dispid - 2147418035;
+    property bottom: OleVariant readonly dispid - 2147418034;
+    property imeMode: WideString readonly dispid - 2147412992;
+    property rubyAlign: WideString readonly dispid - 2147412991;
+    property rubyPosition: WideString readonly dispid - 2147412990;
+    property rubyOverhang: WideString readonly dispid - 2147412989;
+    property textAutospace: WideString readonly dispid - 2147412980;
+    property lineBreak: WideString readonly dispid - 2147412979;
+    property wordBreak: WideString readonly dispid - 2147412978;
+    property textJustify: WideString readonly dispid - 2147412977;
+    property textJustifyTrim: WideString readonly dispid - 2147412976;
+    property textKashida: OleVariant readonly dispid - 2147412975;
+    property blockDirection: WideString readonly dispid - 2147412995;
+    property layoutGridChar: OleVariant readonly dispid - 2147412985;
+    property layoutGridLine: OleVariant readonly dispid - 2147412984;
+    property layoutGridMode: WideString readonly dispid - 2147412983;
+    property layoutGridType: WideString readonly dispid - 2147412982;
+    property borderStyle: WideString readonly dispid - 2147413048;
+    property borderColor: WideString readonly dispid - 2147413058;
+    property borderWidth: WideString readonly dispid - 2147413053;
+    property padding: WideString readonly dispid - 2147413101;
+    property margin: WideString readonly dispid - 2147413076;
+    property accelerator: WideString readonly dispid - 2147412965;
+    property overflowX: WideString readonly dispid - 2147412973;
+    property overflowY: WideString readonly dispid - 2147412972;
+    property textTransform: WideString readonly dispid - 2147413108;
+    property layoutFlow: WideString readonly dispid - 2147412957;
+    property wordWrap: WideString readonly dispid - 2147412954;
+    property textUnderlinePosition: WideString readonly dispid - 2147412953;
+    property hasLayout: WordBool readonly dispid - 2147412952;
+    property scrollbarBaseColor: OleVariant readonly dispid - 2147412932;
+    property scrollbarFaceColor: OleVariant readonly dispid - 2147412931;
+    property scrollbar3dLightColor: OleVariant readonly dispid - 2147412930;
+    property scrollbarShadowColor: OleVariant readonly dispid - 2147412929;
+    property scrollbarHighlightColor: OleVariant readonly dispid - 2147412928;
+    property scrollbarDarkShadowColor: OleVariant readonly dispid - 2147412927;
+    property scrollbarArrowColor: OleVariant readonly dispid - 2147412926;
+    property scrollbarTrackColor: OleVariant readonly dispid - 2147412916;
+    property writingMode: WideString readonly dispid - 2147412920;
+    property zoom: OleVariant readonly dispid - 2147412959;
+    property filter: WideString readonly dispid - 2147413030;
+    property textAlignLast: WideString readonly dispid - 2147412909;
+    property textKashidaSpace: OleVariant readonly dispid - 2147412908;
+    property isBlock: WordBool readonly dispid - 2147412904;
+    property textOverflow: WideString readonly dispid - 2147412903;
+    property minHeight: OleVariant readonly dispid - 2147412901;
+    property wordSpacing: OleVariant readonly dispid - 2147413065;
+    property whiteSpace: WideString readonly dispid - 2147413036;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLRect
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4A3-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLRect = interface(IDispatch)
+    ['{3050F4A3-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_left(p: Integer); safecall;
+    function Get_left: Integer; safecall;
+    procedure Set_top(p: Integer); safecall;
+    function Get_top: Integer; safecall;
+    procedure Set_right(p: Integer); safecall;
+    function Get_right: Integer; safecall;
+    procedure Set_bottom(p: Integer); safecall;
+    function Get_bottom: Integer; safecall;
+    property left: Integer read Get_left write Set_left;
+    property top: Integer read Get_top write Set_top;
+    property right: Integer read Get_right write Set_right;
+    property bottom: Integer read Get_bottom write Set_bottom;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLRectDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4A3-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLRectDisp = dispinterface
+    ['{3050F4A3-98B5-11CF-BB82-00AA00BDCE0B}']
+    property left: Integer dispid 1001;
+    property top: Integer dispid 1002;
+    property right: Integer dispid 1003;
+    property bottom: Integer dispid 1004;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLRectCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4A4-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLRectCollection = interface(IDispatch)
+    ['{3050F4A4-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_length: Integer; safecall;
+    function Get__newEnum: IUnknown; safecall;
+    // !! API fix decl
+    function item(const pvarIndex: OleVariant): OleVariant; safecall;
+    property length: Integer read Get_length;
+    property _newEnum: IUnknown read Get__newEnum;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLRectCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4A4-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLRectCollectionDisp = dispinterface
+    ['{3050F4A4-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1500;
+    property _newEnum: IUnknown readonly dispid - 4;
+    // !! API fix decl
+    function item(const pvarIndex: OleVariant): OleVariant; dispid 0;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDOMNode
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5DA-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDOMNode = interface(IDispatch)
+    ['{3050F5DA-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_nodeType: Integer; safecall;
+    function Get_parentNode: IHTMLDOMNode; safecall;
+    function hasChildNodes: WordBool; safecall;
+    function Get_childNodes: IDispatch; safecall;
+    function Get_attributes: IDispatch; safecall;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; safecall;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; safecall;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; safecall;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; safecall;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; safecall;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; safecall;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; safecall;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; safecall;
+    function Get_nodeName: WideString; safecall;
+    procedure Set_nodeValue(p: OleVariant); safecall;
+    function Get_nodeValue: OleVariant; safecall;
+    function Get_firstChild: IHTMLDOMNode; safecall;
+    function Get_lastChild: IHTMLDOMNode; safecall;
+    function Get_previousSibling: IHTMLDOMNode; safecall;
+    function Get_nextSibling: IHTMLDOMNode; safecall;
+    property nodeType: Integer read Get_nodeType;
+    property parentNode: IHTMLDOMNode read Get_parentNode;
+    property childNodes: IDispatch read Get_childNodes;
+    property attributes: IDispatch read Get_attributes;
+    property nodeName: WideString read Get_nodeName;
+    property nodeValue: OleVariant read Get_nodeValue write Set_nodeValue;
+    property firstChild: IHTMLDOMNode read Get_firstChild;
+    property lastChild: IHTMLDOMNode read Get_lastChild;
+    property previousSibling: IHTMLDOMNode read Get_previousSibling;
+    property nextSibling: IHTMLDOMNode read Get_nextSibling;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDOMNodeDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5DA-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDOMNodeDisp = dispinterface
+    ['{3050F5DA-98B5-11CF-BB82-00AA00BDCE0B}']
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDOMNode2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F80B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDOMNode2 = interface(IDispatch)
+    ['{3050F80B-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_ownerDocument: IDispatch; safecall;
+    property ownerDocument: IDispatch read Get_ownerDocument;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDOMNode2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F80B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDOMNode2Disp = dispinterface
+    ['{3050F80B-98B5-11CF-BB82-00AA00BDCE0B}']
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDOMAttribute
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4B0-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDOMAttribute = interface(IDispatch)
+    ['{3050F4B0-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_nodeName: WideString; safecall;
+    procedure Set_nodeValue(p: OleVariant); safecall;
+    function Get_nodeValue: OleVariant; safecall;
+    function Get_specified: WordBool; safecall;
+    property nodeName: WideString read Get_nodeName;
+    property nodeValue: OleVariant read Get_nodeValue write Set_nodeValue;
+    property specified: WordBool read Get_specified;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDOMAttributeDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4B0-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDOMAttributeDisp = dispinterface
+    ['{3050F4B0-98B5-11CF-BB82-00AA00BDCE0B}']
+    property nodeName: WideString readonly dispid 1000;
+    property nodeValue: OleVariant dispid 1002;
+    property specified: WordBool readonly dispid 1001;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDOMAttribute2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F810-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDOMAttribute2 = interface(IDispatch)
+    ['{3050F810-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_name: WideString; safecall;
+    procedure Set_value(const p: WideString); safecall;
+    function Get_value: WideString; safecall;
+    function Get_expando: WordBool; safecall;
+    function Get_nodeType: Integer; safecall;
+    function Get_parentNode: IHTMLDOMNode; safecall;
+    function Get_childNodes: IDispatch; safecall;
+    function Get_firstChild: IHTMLDOMNode; safecall;
+    function Get_lastChild: IHTMLDOMNode; safecall;
+    function Get_previousSibling: IHTMLDOMNode; safecall;
+    function Get_nextSibling: IHTMLDOMNode; safecall;
+    function Get_attributes: IDispatch; safecall;
+    function Get_ownerDocument: IDispatch; safecall;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; safecall;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; safecall;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; safecall;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; safecall;
+    function hasChildNodes: WordBool; safecall;
+    function cloneNode(fDeep: WordBool): IHTMLDOMAttribute; safecall;
+    property name: WideString read Get_name;
+    property value: WideString read Get_value write Set_value;
+    property expando: WordBool read Get_expando;
+    property nodeType: Integer read Get_nodeType;
+    property parentNode: IHTMLDOMNode read Get_parentNode;
+    property childNodes: IDispatch read Get_childNodes;
+    property firstChild: IHTMLDOMNode read Get_firstChild;
+    property lastChild: IHTMLDOMNode read Get_lastChild;
+    property previousSibling: IHTMLDOMNode read Get_previousSibling;
+    property nextSibling: IHTMLDOMNode read Get_nextSibling;
+    property attributes: IDispatch read Get_attributes;
+    property ownerDocument: IDispatch read Get_ownerDocument;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDOMAttribute2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F810-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDOMAttribute2Disp = dispinterface
+    ['{3050F810-98B5-11CF-BB82-00AA00BDCE0B}']
+    property name: WideString readonly dispid 1003;
+    property value: WideString dispid 1004;
+    property expando: WordBool readonly dispid 1005;
+    property nodeType: Integer readonly dispid 1006;
+    property parentNode: IHTMLDOMNode readonly dispid 1007;
+    property childNodes: IDispatch readonly dispid 1008;
+    property firstChild: IHTMLDOMNode readonly dispid 1009;
+    property lastChild: IHTMLDOMNode readonly dispid 1010;
+    property previousSibling: IHTMLDOMNode readonly dispid 1011;
+    property nextSibling: IHTMLDOMNode readonly dispid 1012;
+    property attributes: IDispatch readonly dispid 1013;
+    property ownerDocument: IDispatch readonly dispid 1014;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid 1015;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid 1016;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid 1017;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid 1018;
+    function hasChildNodes: WordBool; dispid 1019;
+    function cloneNode(fDeep: WordBool): IHTMLDOMAttribute; dispid 1020;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDOMTextNode
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4B1-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDOMTextNode = interface(IDispatch)
+    ['{3050F4B1-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_data(const p: WideString); safecall;
+    function Get_data: WideString; safecall;
+    function toString: WideString; safecall;
+    function Get_length: Integer; safecall;
+    function splitText(offset: Integer): IHTMLDOMNode; safecall;
+    property data: WideString read Get_data write Set_data;
+    property length: Integer read Get_length;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDOMTextNodeDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4B1-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDOMTextNodeDisp = dispinterface
+    ['{3050F4B1-98B5-11CF-BB82-00AA00BDCE0B}']
+    property data: WideString dispid 1000;
+    function toString: WideString; dispid 1001;
+    property length: Integer readonly dispid 1002;
+    function splitText(offset: Integer): IHTMLDOMNode; dispid 1003;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDOMTextNode2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F809-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDOMTextNode2 = interface(IDispatch)
+    ['{3050F809-98B5-11CF-BB82-00AA00BDCE0B}']
+    function substringData(offset: Integer; Count: Integer): WideString; safecall;
+    procedure appendData(const bstrstring: WideString); safecall;
+    procedure insertData(offset: Integer; const bstrstring: WideString); safecall;
+    procedure deleteData(offset: Integer; Count: Integer); safecall;
+    procedure replaceData(offset: Integer; Count: Integer; const bstrstring: WideString); safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDOMTextNode2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F809-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDOMTextNode2Disp = dispinterface
+    ['{3050F809-98B5-11CF-BB82-00AA00BDCE0B}']
+    function substringData(offset: Integer; Count: Integer): WideString; dispid 1004;
+    procedure appendData(const bstrstring: WideString); dispid 1005;
+    procedure insertData(offset: Integer; const bstrstring: WideString); dispid 1006;
+    procedure deleteData(offset: Integer; Count: Integer); dispid 1007;
+    procedure replaceData(offset: Integer; Count: Integer; const bstrstring: WideString); dispid 1008;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDOMImplementation
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F80D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDOMImplementation = interface(IDispatch)
+    ['{3050F80D-98B5-11CF-BB82-00AA00BDCE0B}']
+    function hasFeature(const bstrfeature: WideString; version: OleVariant): WordBool; safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDOMImplementationDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F80D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDOMImplementationDisp = dispinterface
+    ['{3050F80D-98B5-11CF-BB82-00AA00BDCE0B}']
+    function hasFeature(const bstrfeature: WideString; version: OleVariant): WordBool; dispid 1000;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLDOMAttribute
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F564-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLDOMAttribute = dispinterface
+    ['{3050F564-98B5-11CF-BB82-00AA00BDCE0B}']
+    property nodeName: WideString readonly dispid 1000;
+    property nodeValue: OleVariant dispid 1002;
+    property specified: WordBool readonly dispid 1001;
+    property name: WideString readonly dispid 1003;
+    property value: WideString dispid 1004;
+    property expando: WordBool readonly dispid 1005;
+    property nodeType: Integer readonly dispid 1006;
+    property parentNode: IHTMLDOMNode readonly dispid 1007;
+    property childNodes: IDispatch readonly dispid 1008;
+    property firstChild: IHTMLDOMNode readonly dispid 1009;
+    property lastChild: IHTMLDOMNode readonly dispid 1010;
+    property previousSibling: IHTMLDOMNode readonly dispid 1011;
+    property nextSibling: IHTMLDOMNode readonly dispid 1012;
+    property attributes: IDispatch readonly dispid 1013;
+    property ownerDocument: IDispatch readonly dispid 1014;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid 1015;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid 1016;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid 1017;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid 1018;
+    function hasChildNodes: WordBool; dispid 1019;
+    function cloneNode(fDeep: WordBool): IHTMLDOMAttribute; dispid 1020;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLDOMTextNode
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F565-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLDOMTextNode = dispinterface
+    ['{3050F565-98B5-11CF-BB82-00AA00BDCE0B}']
+    property data: WideString dispid 1000;
+    function toString: WideString; dispid 1001;
+    property length: Integer readonly dispid 1002;
+    function splitText(offset: Integer): IHTMLDOMNode; dispid 1003;
+    function substringData(offset: Integer; Count: Integer): WideString; dispid 1004;
+    procedure appendData(const bstrstring: WideString); dispid 1005;
+    procedure insertData(offset: Integer; const bstrstring: WideString); dispid 1006;
+    procedure deleteData(offset: Integer; Count: Integer); dispid 1007;
+    procedure replaceData(offset: Integer; Count: Integer; const bstrstring: WideString); dispid 1008;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLDOMImplementation
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F58F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLDOMImplementation = dispinterface
+    ['{3050F58F-98B5-11CF-BB82-00AA00BDCE0B}']
+    function hasFeature(const bstrfeature: WideString; version: OleVariant): WordBool; dispid 1000;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLAttributeCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4C3-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAttributeCollection = interface(IDispatch)
+    ['{3050F4C3-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_length: Integer; safecall;
+    function Get__newEnum: IUnknown; safecall;
+    // !! API fix decl
+    function item(const name: OleVariant): IDispatch; safecall;
+    property length: Integer read Get_length;
+    property _newEnum: IUnknown read Get__newEnum;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLAttributeCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4C3-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAttributeCollectionDisp = dispinterface
+    ['{3050F4C3-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1500;
+    property _newEnum: IUnknown readonly dispid - 4;
+    // !! API fix decl
+    function item(const name: OleVariant): IDispatch; dispid 0;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLAttributeCollection2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F80A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAttributeCollection2 = interface(IDispatch)
+    ['{3050F80A-98B5-11CF-BB82-00AA00BDCE0B}']
+    function getNamedItem(const bstrName: WideString): IHTMLDOMAttribute; safecall;
+    function setNamedItem(const ppNode: IHTMLDOMAttribute): IHTMLDOMAttribute; safecall;
+    function removeNamedItem(const bstrName: WideString): IHTMLDOMAttribute; safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLAttributeCollection2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F80A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAttributeCollection2Disp = dispinterface
+    ['{3050F80A-98B5-11CF-BB82-00AA00BDCE0B}']
+    function getNamedItem(const bstrName: WideString): IHTMLDOMAttribute; dispid 1501;
+    function setNamedItem(const ppNode: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid 1502;
+    function removeNamedItem(const bstrName: WideString): IHTMLDOMAttribute; dispid 1503;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDOMChildrenCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5AB-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDOMChildrenCollection = interface(IDispatch)
+    ['{3050F5AB-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_length: Integer; safecall;
+    function Get__newEnum: IUnknown; safecall;
+    function item(index: Integer): IDispatch; safecall;
+    property length: Integer read Get_length;
+    property _newEnum: IUnknown read Get__newEnum;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDOMChildrenCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5AB-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDOMChildrenCollectionDisp = dispinterface
+    ['{3050F5AB-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1500;
+    property _newEnum: IUnknown readonly dispid - 4;
+    function item(index: Integer): IDispatch; dispid 0;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLAttributeCollection
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F56C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLAttributeCollection = dispinterface
+    ['{3050F56C-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1500;
+    property _newEnum: IUnknown readonly dispid - 4;
+    function item(var name: OleVariant): IDispatch; dispid 0;
+    function getNamedItem(const bstrName: WideString): IHTMLDOMAttribute; dispid 1501;
+    function setNamedItem(const ppNode: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid 1502;
+    function removeNamedItem(const bstrName: WideString): IHTMLDOMAttribute; dispid 1503;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispDOMChildrenCollection
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F577-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispDOMChildrenCollection = dispinterface
+    ['{3050F577-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1500;
+    property _newEnum: IUnknown readonly dispid - 4;
+    function item(index: Integer): IDispatch; dispid 0;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLElementEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F60F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLElementEvents2 = dispinterface
+    ['{3050F60F-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLElementEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F33C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLElementEvents = dispinterface
+    ['{3050F33C-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLElementCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F21F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLElementCollection = interface(IDispatch)
+    ['{3050F21F-98B5-11CF-BB82-00AA00BDCE0B}']
+    function toString: WideString; safecall;
+    procedure Set_length(p: Integer); safecall;
+    function Get_length: Integer; safecall;
+    function Get__newEnum: IUnknown; safecall;
+    function item(name: OleVariant; index: OleVariant): IDispatch; safecall;
+    function tags(tagName: OleVariant): IDispatch; safecall;
+    property length: Integer read Get_length write Set_length;
+    property _newEnum: IUnknown read Get__newEnum;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLElementCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F21F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLElementCollectionDisp = dispinterface
+    ['{3050F21F-98B5-11CF-BB82-00AA00BDCE0B}']
+    function toString: WideString; dispid 1501;
+    property length: Integer dispid 1500;
+    property _newEnum: IUnknown readonly dispid - 4;
+    function item(name: OleVariant; index: OleVariant): IDispatch; dispid 0;
+    function tags(tagName: OleVariant): IDispatch; dispid 1502;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F434-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLElement2 = interface(IDispatch)
+    ['{3050F434-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_scopeName: WideString; safecall;
+    procedure setCapture(containerCapture: WordBool); safecall;
+    procedure releaseCapture; safecall;
+    procedure Set_onlosecapture(p: OleVariant); safecall;
+    function Get_onlosecapture: OleVariant; safecall;
+    function componentFromPoint(x: Integer; y: Integer): WideString; safecall;
+    procedure doScroll(component: OleVariant); safecall;
+    procedure Set_onscroll(p: OleVariant); safecall;
+    function Get_onscroll: OleVariant; safecall;
+    procedure Set_ondrag(p: OleVariant); safecall;
+    function Get_ondrag: OleVariant; safecall;
+    procedure Set_ondragend(p: OleVariant); safecall;
+    function Get_ondragend: OleVariant; safecall;
+    procedure Set_ondragenter(p: OleVariant); safecall;
+    function Get_ondragenter: OleVariant; safecall;
+    procedure Set_ondragover(p: OleVariant); safecall;
+    function Get_ondragover: OleVariant; safecall;
+    procedure Set_ondragleave(p: OleVariant); safecall;
+    function Get_ondragleave: OleVariant; safecall;
+    procedure Set_ondrop(p: OleVariant); safecall;
+    function Get_ondrop: OleVariant; safecall;
+    procedure Set_onbeforecut(p: OleVariant); safecall;
+    function Get_onbeforecut: OleVariant; safecall;
+    procedure Set_oncut(p: OleVariant); safecall;
+    function Get_oncut: OleVariant; safecall;
+    procedure Set_onbeforecopy(p: OleVariant); safecall;
+    function Get_onbeforecopy: OleVariant; safecall;
+    procedure Set_oncopy(p: OleVariant); safecall;
+    function Get_oncopy: OleVariant; safecall;
+    procedure Set_onbeforepaste(p: OleVariant); safecall;
+    function Get_onbeforepaste: OleVariant; safecall;
+    procedure Set_onpaste(p: OleVariant); safecall;
+    function Get_onpaste: OleVariant; safecall;
+    function Get_currentStyle: IHTMLCurrentStyle; safecall;
+    procedure Set_onpropertychange(p: OleVariant); safecall;
+    function Get_onpropertychange: OleVariant; safecall;
+    function getClientRects: IHTMLRectCollection; safecall;
+    function getBoundingClientRect: IHTMLRect; safecall;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); safecall;
+    function getExpression(const propname: WideString): OleVariant; safecall;
+    function removeExpression(const propname: WideString): WordBool; safecall;
+    procedure Set_tabIndex(p: Smallint); safecall;
+    function Get_tabIndex: Smallint; safecall;
+    procedure focus; safecall;
+    procedure Set_accessKey(const p: WideString); safecall;
+    function Get_accessKey: WideString; safecall;
+    procedure Set_onblur(p: OleVariant); safecall;
+    function Get_onblur: OleVariant; safecall;
+    procedure Set_onfocus(p: OleVariant); safecall;
+    function Get_onfocus: OleVariant; safecall;
+    procedure Set_onresize(p: OleVariant); safecall;
+    function Get_onresize: OleVariant; safecall;
+    procedure blur; safecall;
+    procedure addFilter(const pUnk: IUnknown); safecall;
+    procedure removeFilter(const pUnk: IUnknown); safecall;
+    function Get_clientHeight: Integer; safecall;
+    function Get_clientWidth: Integer; safecall;
+    function Get_clientTop: Integer; safecall;
+    function Get_clientLeft: Integer; safecall;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; safecall;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); safecall;
+    function Get_readyState: OleVariant; safecall;
+    procedure Set_onreadystatechange(p: OleVariant); safecall;
+    function Get_onreadystatechange: OleVariant; safecall;
+    procedure Set_onrowsdelete(p: OleVariant); safecall;
+    function Get_onrowsdelete: OleVariant; safecall;
+    procedure Set_onrowsinserted(p: OleVariant); safecall;
+    function Get_onrowsinserted: OleVariant; safecall;
+    procedure Set_oncellchange(p: OleVariant); safecall;
+    function Get_oncellchange: OleVariant; safecall;
+    procedure Set_dir(const p: WideString); safecall;
+    function Get_dir: WideString; safecall;
+    function createControlRange: IDispatch; safecall;
+    function Get_scrollHeight: Integer; safecall;
+    function Get_scrollWidth: Integer; safecall;
+    procedure Set_scrollTop(p: Integer); safecall;
+    function Get_scrollTop: Integer; safecall;
+    procedure Set_scrollLeft(p: Integer); safecall;
+    function Get_scrollLeft: Integer; safecall;
+    procedure clearAttributes; safecall;
+    procedure mergeAttributes(const mergeThis: IHTMLElement); safecall;
+    procedure Set_oncontextmenu(p: OleVariant); safecall;
+    function Get_oncontextmenu: OleVariant; safecall;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; safecall;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; safecall;
+    function getAdjacentText(const where: WideString): WideString; safecall;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; safecall;
+    function Get_canHaveChildren: WordBool; safecall;
+    function addBehavior(const bstrUrl: WideString; const pvarFactory: OleVariant): Integer; safecall;
+    function removeBehavior(cookie: Integer): WordBool; safecall;
+    function Get_runtimeStyle: IHTMLStyle; safecall;
+    function Get_behaviorUrns: IDispatch; safecall;
+    procedure Set_tagUrn(const p: WideString); safecall;
+    function Get_tagUrn: WideString; safecall;
+    procedure Set_onbeforeeditfocus(p: OleVariant); safecall;
+    function Get_onbeforeeditfocus: OleVariant; safecall;
+    function Get_readyStateValue: Integer; safecall;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; safecall;
+    property scopeName: WideString read Get_scopeName;
+    property onlosecapture: OleVariant read Get_onlosecapture write Set_onlosecapture;
+    property onscroll: OleVariant read Get_onscroll write Set_onscroll;
+    property ondrag: OleVariant read Get_ondrag write Set_ondrag;
+    property ondragend: OleVariant read Get_ondragend write Set_ondragend;
+    property ondragenter: OleVariant read Get_ondragenter write Set_ondragenter;
+    property ondragover: OleVariant read Get_ondragover write Set_ondragover;
+    property ondragleave: OleVariant read Get_ondragleave write Set_ondragleave;
+    property ondrop: OleVariant read Get_ondrop write Set_ondrop;
+    property onbeforecut: OleVariant read Get_onbeforecut write Set_onbeforecut;
+    property oncut: OleVariant read Get_oncut write Set_oncut;
+    property onbeforecopy: OleVariant read Get_onbeforecopy write Set_onbeforecopy;
+    property oncopy: OleVariant read Get_oncopy write Set_oncopy;
+    property onbeforepaste: OleVariant read Get_onbeforepaste write Set_onbeforepaste;
+    property onpaste: OleVariant read Get_onpaste write Set_onpaste;
+    property currentStyle: IHTMLCurrentStyle read Get_currentStyle;
+    property onpropertychange: OleVariant read Get_onpropertychange write Set_onpropertychange;
+    property tabIndex: Smallint read Get_tabIndex write Set_tabIndex;
+    property accessKey: WideString read Get_accessKey write Set_accessKey;
+    property onblur: OleVariant read Get_onblur write Set_onblur;
+    property onfocus: OleVariant read Get_onfocus write Set_onfocus;
+    property onresize: OleVariant read Get_onresize write Set_onresize;
+    property clientHeight: Integer read Get_clientHeight;
+    property clientWidth: Integer read Get_clientWidth;
+    property clientTop: Integer read Get_clientTop;
+    property clientLeft: Integer read Get_clientLeft;
+    property readyState: OleVariant read Get_readyState;
+    property onreadystatechange: OleVariant read Get_onreadystatechange write Set_onreadystatechange;
+    property onrowsdelete: OleVariant read Get_onrowsdelete write Set_onrowsdelete;
+    property onrowsinserted: OleVariant read Get_onrowsinserted write Set_onrowsinserted;
+    property oncellchange: OleVariant read Get_oncellchange write Set_oncellchange;
+    property dir: WideString read Get_dir write Set_dir;
+    property scrollHeight: Integer read Get_scrollHeight;
+    property scrollWidth: Integer read Get_scrollWidth;
+    property scrollTop: Integer read Get_scrollTop write Set_scrollTop;
+    property scrollLeft: Integer read Get_scrollLeft write Set_scrollLeft;
+    property oncontextmenu: OleVariant read Get_oncontextmenu write Set_oncontextmenu;
+    property canHaveChildren: WordBool read Get_canHaveChildren;
+    property runtimeStyle: IHTMLStyle read Get_runtimeStyle;
+    property behaviorUrns: IDispatch read Get_behaviorUrns;
+    property tagUrn: WideString read Get_tagUrn write Set_tagUrn;
+    property onbeforeeditfocus: OleVariant read Get_onbeforeeditfocus write Set_onbeforeeditfocus;
+    property readyStateValue: Integer read Get_readyStateValue;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F434-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLElement2Disp = dispinterface
+    ['{3050F434-98B5-11CF-BB82-00AA00BDCE0B}']
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    procedure mergeAttributes(const mergeThis: IHTMLElement); dispid - 2147417049;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLElement3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F673-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLElement3 = interface(IDispatch)
+    ['{3050F673-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); safecall;
+    function Get_isMultiLine: WordBool; safecall;
+    function Get_canHaveHTML: WordBool; safecall;
+    procedure Set_onlayoutcomplete(p: OleVariant); safecall;
+    function Get_onlayoutcomplete: OleVariant; safecall;
+    procedure Set_onpage(p: OleVariant); safecall;
+    function Get_onpage: OleVariant; safecall;
+    procedure Set_inflateBlock(p: WordBool); safecall;
+    function Get_inflateBlock: WordBool; safecall;
+    procedure Set_onbeforedeactivate(p: OleVariant); safecall;
+    function Get_onbeforedeactivate: OleVariant; safecall;
+    procedure setActive; safecall;
+    procedure Set_contentEditable(const p: WideString); safecall;
+    function Get_contentEditable: WideString; safecall;
+    function Get_isContentEditable: WordBool; safecall;
+    procedure Set_hideFocus(p: WordBool); safecall;
+    function Get_hideFocus: WordBool; safecall;
+    procedure Set_disabled(p: WordBool); safecall;
+    function Get_disabled: WordBool; safecall;
+    function Get_isDisabled: WordBool; safecall;
+    procedure Set_onmove(p: OleVariant); safecall;
+    function Get_onmove: OleVariant; safecall;
+    procedure Set_oncontrolselect(p: OleVariant); safecall;
+    function Get_oncontrolselect: OleVariant; safecall;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; safecall;
+    procedure Set_onresizestart(p: OleVariant); safecall;
+    function Get_onresizestart: OleVariant; safecall;
+    procedure Set_onresizeend(p: OleVariant); safecall;
+    function Get_onresizeend: OleVariant; safecall;
+    procedure Set_onmovestart(p: OleVariant); safecall;
+    function Get_onmovestart: OleVariant; safecall;
+    procedure Set_onmoveend(p: OleVariant); safecall;
+    function Get_onmoveend: OleVariant; safecall;
+    procedure Set_onmouseenter(p: OleVariant); safecall;
+    function Get_onmouseenter: OleVariant; safecall;
+    procedure Set_onmouseleave(p: OleVariant); safecall;
+    function Get_onmouseleave: OleVariant; safecall;
+    procedure Set_onactivate(p: OleVariant); safecall;
+    function Get_onactivate: OleVariant; safecall;
+    procedure Set_ondeactivate(p: OleVariant); safecall;
+    function Get_ondeactivate: OleVariant; safecall;
+    function dragDrop: WordBool; safecall;
+    function Get_glyphMode: Integer; safecall;
+    property isMultiLine: WordBool read Get_isMultiLine;
+    property canHaveHTML: WordBool read Get_canHaveHTML;
+    property onlayoutcomplete: OleVariant read Get_onlayoutcomplete write Set_onlayoutcomplete;
+    property onpage: OleVariant read Get_onpage write Set_onpage;
+    property inflateBlock: WordBool read Get_inflateBlock write Set_inflateBlock;
+    property onbeforedeactivate: OleVariant read Get_onbeforedeactivate write Set_onbeforedeactivate;
+    property contentEditable: WideString read Get_contentEditable write Set_contentEditable;
+    property isContentEditable: WordBool read Get_isContentEditable;
+    property hideFocus: WordBool read Get_hideFocus write Set_hideFocus;
+    property disabled: WordBool read Get_disabled write Set_disabled;
+    property isDisabled: WordBool read Get_isDisabled;
+    property onmove: OleVariant read Get_onmove write Set_onmove;
+    property oncontrolselect: OleVariant read Get_oncontrolselect write Set_oncontrolselect;
+    property onresizestart: OleVariant read Get_onresizestart write Set_onresizestart;
+    property onresizeend: OleVariant read Get_onresizeend write Set_onresizeend;
+    property onmovestart: OleVariant read Get_onmovestart write Set_onmovestart;
+    property onmoveend: OleVariant read Get_onmoveend write Set_onmoveend;
+    property onmouseenter: OleVariant read Get_onmouseenter write Set_onmouseenter;
+    property onmouseleave: OleVariant read Get_onmouseleave write Set_onmouseleave;
+    property onactivate: OleVariant read Get_onactivate write Set_onactivate;
+    property ondeactivate: OleVariant read Get_ondeactivate write Set_ondeactivate;
+    property glyphMode: Integer read Get_glyphMode;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLElement3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F673-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLElement3Disp = dispinterface
+    ['{3050F673-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLElement4
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F80F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLElement4 = interface(IDispatch)
+    ['{3050F80F-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_onmousewheel(p: OleVariant); safecall;
+    function Get_onmousewheel: OleVariant; safecall;
+    procedure normalize; safecall;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; safecall;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; safecall;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; safecall;
+    procedure Set_onbeforeactivate(p: OleVariant); safecall;
+    function Get_onbeforeactivate: OleVariant; safecall;
+    procedure Set_onfocusin(p: OleVariant); safecall;
+    function Get_onfocusin: OleVariant; safecall;
+    procedure Set_onfocusout(p: OleVariant); safecall;
+    function Get_onfocusout: OleVariant; safecall;
+    property onmousewheel: OleVariant read Get_onmousewheel write Set_onmousewheel;
+    property onbeforeactivate: OleVariant read Get_onbeforeactivate write Set_onbeforeactivate;
+    property onfocusin: OleVariant read Get_onfocusin write Set_onfocusin;
+    property onfocusout: OleVariant read Get_onfocusout write Set_onfocusout;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLElement4Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F80F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLElement4Disp = dispinterface
+    ['{3050F80F-98B5-11CF-BB82-00AA00BDCE0B}']
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLElementRender
+// Flags:     (0)
+// GUID:      {3050F669-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLElementRender = interface(IUnknown)
+    ['{3050F669-98B5-11CF-BB82-00AA00BDCE0B}']
+    // !! API fix decl
+    function DrawToDC(hdc: HDC): HRESULT; stdcall;
+    // !! API fix decl
+    function SetDocumentPrinter(const bstrPrinterName: WideString; hdc: HDC): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLUniqueName
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4D0-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLUniqueName = interface(IDispatch)
+    ['{3050F4D0-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_uniqueNumber: Integer; safecall;
+    function Get_uniqueID: WideString; safecall;
+    property uniqueNumber: Integer read Get_uniqueNumber;
+    property uniqueID: WideString read Get_uniqueID;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLUniqueNameDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4D0-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLUniqueNameDisp = dispinterface
+    ['{3050F4D0-98B5-11CF-BB82-00AA00BDCE0B}']
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDatabinding
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3F2-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDatabinding = interface(IDispatch)
+    ['{3050F3F2-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_dataFld(const p: WideString); safecall;
+    function Get_dataFld: WideString; safecall;
+    procedure Set_dataSrc(const p: WideString); safecall;
+    function Get_dataSrc: WideString; safecall;
+    procedure Set_dataFormatAs(const p: WideString); safecall;
+    function Get_dataFormatAs: WideString; safecall;
+    property dataFld: WideString read Get_dataFld write Set_dataFld;
+    property dataSrc: WideString read Get_dataSrc write Set_dataSrc;
+    property dataFormatAs: WideString read Get_dataFormatAs write Set_dataFormatAs;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDatabindingDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3F2-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDatabindingDisp = dispinterface
+    ['{3050F3F2-98B5-11CF-BB82-00AA00BDCE0B}']
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDocument
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {626FC520-A41E-11CF-A731-00A0C9082637}
+// *********************************************************************//
+  IHTMLDocument = interface(IDispatch)
+    ['{626FC520-A41E-11CF-A731-00A0C9082637}']
+    function Get_Script: IDispatch; safecall;
+    property Script: IDispatch read Get_Script;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDocumentDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {626FC520-A41E-11CF-A731-00A0C9082637}
+// *********************************************************************//
+  IHTMLDocumentDisp = dispinterface
+    ['{626FC520-A41E-11CF-A731-00A0C9082637}']
+    property Script: IDispatch readonly dispid 1001;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLElementDefaults
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F6C9-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLElementDefaults = interface(IDispatch)
+    ['{3050F6C9-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_style: IHTMLStyle; safecall;
+    procedure Set_tabStop(p: WordBool); safecall;
+    function Get_tabStop: WordBool; safecall;
+    procedure Set_viewInheritStyle(p: WordBool); safecall;
+    function Get_viewInheritStyle: WordBool; safecall;
+    procedure Set_viewMasterTab(p: WordBool); safecall;
+    function Get_viewMasterTab: WordBool; safecall;
+    procedure Set_scrollSegmentX(p: Integer); safecall;
+    function Get_scrollSegmentX: Integer; safecall;
+    procedure Set_scrollSegmentY(p: Integer); safecall;
+    function Get_scrollSegmentY: Integer; safecall;
+    procedure Set_isMultiLine(p: WordBool); safecall;
+    function Get_isMultiLine: WordBool; safecall;
+    procedure Set_contentEditable(const p: WideString); safecall;
+    function Get_contentEditable: WideString; safecall;
+    procedure Set_canHaveHTML(p: WordBool); safecall;
+    function Get_canHaveHTML: WordBool; safecall;
+    procedure _Set_viewLink(const p: IHTMLDocument); safecall;
+    function Get_viewLink: IHTMLDocument; safecall;
+    procedure Set_frozen(p: WordBool); safecall;
+    function Get_frozen: WordBool; safecall;
+    property style: IHTMLStyle read Get_style;
+    property tabStop: WordBool read Get_tabStop write Set_tabStop;
+    property viewInheritStyle: WordBool read Get_viewInheritStyle write Set_viewInheritStyle;
+    property viewMasterTab: WordBool read Get_viewMasterTab write Set_viewMasterTab;
+    property scrollSegmentX: Integer read Get_scrollSegmentX write Set_scrollSegmentX;
+    property scrollSegmentY: Integer read Get_scrollSegmentY write Set_scrollSegmentY;
+    property isMultiLine: WordBool read Get_isMultiLine write Set_isMultiLine;
+    property contentEditable: WideString read Get_contentEditable write Set_contentEditable;
+    property canHaveHTML: WordBool read Get_canHaveHTML write Set_canHaveHTML;
+    property viewLink: IHTMLDocument read Get_viewLink write _Set_viewLink;
+    property frozen: WordBool read Get_frozen write Set_frozen;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLElementDefaultsDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F6C9-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLElementDefaultsDisp = dispinterface
+    ['{3050F6C9-98B5-11CF-BB82-00AA00BDCE0B}']
+    property style: IHTMLStyle readonly dispid 1001;
+    property tabStop: WordBool dispid 1002;
+    property viewInheritStyle: WordBool dispid - 2147412913;
+    property viewMasterTab: WordBool dispid 1006;
+    property scrollSegmentX: Integer dispid 1003;
+    property scrollSegmentY: Integer dispid 1004;
+    property isMultiLine: WordBool dispid 1008;
+    property contentEditable: WideString dispid - 2147412950;
+    property canHaveHTML: WordBool dispid 1009;
+    property viewLink: IHTMLDocument dispid 1011;
+    property frozen: WordBool dispid - 2147412914;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLDefaults
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F58C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLDefaults = dispinterface
+    ['{3050F58C-98B5-11CF-BB82-00AA00BDCE0B}']
+    property style: IHTMLStyle readonly dispid 1001;
+    property tabStop: WordBool dispid 1002;
+    property viewInheritStyle: WordBool dispid - 2147412913;
+    property viewMasterTab: WordBool dispid 1006;
+    property scrollSegmentX: Integer dispid 1003;
+    property scrollSegmentY: Integer dispid 1004;
+    property isMultiLine: WordBool dispid 1008;
+    property contentEditable: WideString dispid - 2147412950;
+    property canHaveHTML: WordBool dispid 1009;
+    property viewLink: IHTMLDocument dispid 1011;
+    property frozen: WordBool dispid - 2147412914;
+  end;
+
+// *********************************************************************//
+// Interface: IHTCDefaultDispatch
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4FD-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTCDefaultDispatch = interface(IDispatch)
+    ['{3050F4FD-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_element: IHTMLElement; safecall;
+    function CreateEventObject: IHTMLEventObj; safecall;
+    function Get_defaults: IDispatch; safecall;
+    function Get_document: IDispatch; safecall;
+    property element: IHTMLElement read Get_element;
+    property defaults: IDispatch read Get_defaults;
+    property document: IDispatch read Get_document;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTCDefaultDispatchDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4FD-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTCDefaultDispatchDisp = dispinterface
+    ['{3050F4FD-98B5-11CF-BB82-00AA00BDCE0B}']
+    property element: IHTMLElement readonly dispid - 2147412969;
+    function CreateEventObject: IHTMLEventObj; dispid - 2147412968;
+    property defaults: IDispatch readonly dispid - 2147412947;
+    property document: IDispatch readonly dispid - 2147412970;
+  end;
+
+// *********************************************************************//
+// Interface: IHTCPropertyBehavior
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5DF-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTCPropertyBehavior = interface(IDispatch)
+    ['{3050F5DF-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure fireChange; safecall;
+    procedure Set_value(p: OleVariant); safecall;
+    function Get_value: OleVariant; safecall;
+    property value: OleVariant read Get_value write Set_value;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTCPropertyBehaviorDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5DF-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTCPropertyBehaviorDisp = dispinterface
+    ['{3050F5DF-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure fireChange; dispid - 2147417612;
+    property value: OleVariant dispid - 2147412971;
+  end;
+
+// *********************************************************************//
+// Interface: IHTCMethodBehavior
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F631-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTCMethodBehavior = interface(IDispatch)
+    ['{3050F631-98B5-11CF-BB82-00AA00BDCE0B}']
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTCMethodBehaviorDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F631-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTCMethodBehaviorDisp = dispinterface
+    ['{3050F631-98B5-11CF-BB82-00AA00BDCE0B}']
+  end;
+
+// *********************************************************************//
+// Interface: IHTCEventBehavior
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4FF-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTCEventBehavior = interface(IDispatch)
+    ['{3050F4FF-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure fire(const pVar: IHTMLEventObj); safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTCEventBehaviorDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4FF-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTCEventBehaviorDisp = dispinterface
+    ['{3050F4FF-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure fire(const pVar: IHTMLEventObj); dispid - 2147417612;
+  end;
+
+// *********************************************************************//
+// Interface: IHTCAttachBehavior
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5F4-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTCAttachBehavior = interface(IDispatch)
+    ['{3050F5F4-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure FireEvent(const evt: IDispatch); safecall;
+    procedure detachEvent; safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTCAttachBehaviorDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5F4-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTCAttachBehaviorDisp = dispinterface
+    ['{3050F5F4-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure FireEvent(const evt: IDispatch); dispid 0;
+    procedure detachEvent; dispid - 2147417612;
+  end;
+
+// *********************************************************************//
+// Interface: IHTCAttachBehavior2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F7EB-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTCAttachBehavior2 = interface(IDispatch)
+    ['{3050F7EB-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure FireEvent(evt: OleVariant); safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTCAttachBehavior2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F7EB-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTCAttachBehavior2Disp = dispinterface
+    ['{3050F7EB-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure FireEvent(evt: OleVariant); dispid 0;
+  end;
+
+// *********************************************************************//
+// Interface: IHTCDescBehavior
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5DC-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTCDescBehavior = interface(IDispatch)
+    ['{3050F5DC-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_urn: WideString; safecall;
+    function Get_name: WideString; safecall;
+    property urn: WideString read Get_urn;
+    property name: WideString read Get_name;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTCDescBehaviorDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5DC-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTCDescBehaviorDisp = dispinterface
+    ['{3050F5DC-98B5-11CF-BB82-00AA00BDCE0B}']
+    property urn: WideString readonly dispid - 2147417612;
+    property name: WideString readonly dispid - 2147417611;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTCDefaultDispatch
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F573-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTCDefaultDispatch = dispinterface
+    ['{3050F573-98B5-11CF-BB82-00AA00BDCE0B}']
+    property element: IHTMLElement readonly dispid - 2147412969;
+    function CreateEventObject: IHTMLEventObj; dispid - 2147412968;
+    property defaults: IDispatch readonly dispid - 2147412947;
+    property document: IDispatch readonly dispid - 2147412970;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTCPropertyBehavior
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F57F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTCPropertyBehavior = dispinterface
+    ['{3050F57F-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure fireChange; dispid - 2147417612;
+    property value: OleVariant dispid - 2147412971;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTCMethodBehavior
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F587-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTCMethodBehavior = dispinterface
+    ['{3050F587-98B5-11CF-BB82-00AA00BDCE0B}']
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTCEventBehavior
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F574-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTCEventBehavior = dispinterface
+    ['{3050F574-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure fire(const pVar: IHTMLEventObj); dispid - 2147417612;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTCAttachBehavior
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F583-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTCAttachBehavior = dispinterface
+    ['{3050F583-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure FireEvent(evt: OleVariant); dispid 0;
+    procedure detachEvent; dispid - 2147417612;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTCDescBehavior
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F57E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTCDescBehavior = dispinterface
+    ['{3050F57E-98B5-11CF-BB82-00AA00BDCE0B}']
+    property urn: WideString readonly dispid - 2147417612;
+    property name: WideString readonly dispid - 2147417611;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLUrnCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5E2-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLUrnCollection = interface(IDispatch)
+    ['{3050F5E2-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_length: Integer; safecall;
+    function item(index: Integer): WideString; safecall;
+    property length: Integer read Get_length;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLUrnCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5E2-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLUrnCollectionDisp = dispinterface
+    ['{3050F5E2-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1001;
+    function item(index: Integer): WideString; dispid 0;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLGenericElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4B7-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLGenericElement = interface(IDispatch)
+    ['{3050F4B7-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_recordset: IDispatch; safecall;
+    function namedRecordset(const dataMember: WideString; var hierarchy: OleVariant): IDispatch; safecall;
+    property recordset: IDispatch read Get_recordset;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLGenericElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4B7-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLGenericElementDisp = dispinterface
+    ['{3050F4B7-98B5-11CF-BB82-00AA00BDCE0B}']
+    property recordset: IDispatch readonly dispid 1001;
+    function namedRecordset(const dataMember: WideString; var hierarchy: OleVariant): IDispatch; dispid 1002;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLGenericElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F563-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLGenericElement = dispinterface
+    ['{3050F563-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property recordset: IDispatch readonly dispid 1001;
+    function namedRecordset(const dataMember: WideString; var hierarchy: OleVariant): IDispatch; dispid 1002;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLStyleSheetRule
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F357-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleSheetRule = interface(IDispatch)
+    ['{3050F357-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_selectorText(const p: WideString); safecall;
+    function Get_selectorText: WideString; safecall;
+    function Get_style: IHTMLRuleStyle; safecall;
+    function Get_readOnly: WordBool; safecall;
+    property selectorText: WideString read Get_selectorText write Set_selectorText;
+    property style: IHTMLRuleStyle read Get_style;
+    property readOnly: WordBool read Get_readOnly;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLStyleSheetRuleDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F357-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleSheetRuleDisp = dispinterface
+    ['{3050F357-98B5-11CF-BB82-00AA00BDCE0B}']
+    property selectorText: WideString dispid 1001;
+    property style: IHTMLRuleStyle readonly dispid - 2147418038;
+    property readOnly: WordBool readonly dispid 1002;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLStyleSheetRulesCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2E5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleSheetRulesCollection = interface(IDispatch)
+    ['{3050F2E5-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_length: Integer; safecall;
+    function item(index: Integer): IHTMLStyleSheetRule; safecall;
+    property length: Integer read Get_length;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLStyleSheetRulesCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2E5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleSheetRulesCollectionDisp = dispinterface
+    ['{3050F2E5-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1001;
+    function item(index: Integer): IHTMLStyleSheetRule; dispid 0;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLStyleSheetPage
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F7EE-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleSheetPage = interface(IDispatch)
+    ['{3050F7EE-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_selector: WideString; safecall;
+    function Get_pseudoClass: WideString; safecall;
+    property selector: WideString read Get_selector;
+    property pseudoClass: WideString read Get_pseudoClass;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLStyleSheetPageDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F7EE-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleSheetPageDisp = dispinterface
+    ['{3050F7EE-98B5-11CF-BB82-00AA00BDCE0B}']
+    property selector: WideString readonly dispid 1001;
+    property pseudoClass: WideString readonly dispid 1002;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLStyleSheetPagesCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F7F0-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleSheetPagesCollection = interface(IDispatch)
+    ['{3050F7F0-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_length: Integer; safecall;
+    function item(index: Integer): IHTMLStyleSheetPage; safecall;
+    property length: Integer read Get_length;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLStyleSheetPagesCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F7F0-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleSheetPagesCollectionDisp = dispinterface
+    ['{3050F7F0-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1001;
+    function item(index: Integer): IHTMLStyleSheetPage; dispid 0;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLStyleSheetsCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F37E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleSheetsCollection = interface(IDispatch)
+    ['{3050F37E-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_length: Integer; safecall;
+    function Get__newEnum: IUnknown; safecall;
+    // !! API fix decl
+    function item(const pvarIndex: OleVariant): OleVariant; safecall;
+    property length: Integer read Get_length;
+    property _newEnum: IUnknown read Get__newEnum;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLStyleSheetsCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F37E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleSheetsCollectionDisp = dispinterface
+    ['{3050F37E-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1001;
+    property _newEnum: IUnknown readonly dispid - 4;
+    // !! API fix decl
+    function item(const pvarIndex: OleVariant): OleVariant; dispid 0;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLStyleSheet
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2E3-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleSheet = interface(IDispatch)
+    ['{3050F2E3-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_title(const p: WideString); safecall;
+    function Get_title: WideString; safecall;
+    function Get_parentStyleSheet: IHTMLStyleSheet; safecall;
+    function Get_owningElement: IHTMLElement; safecall;
+    procedure Set_disabled(p: WordBool); safecall;
+    function Get_disabled: WordBool; safecall;
+    function Get_readOnly: WordBool; safecall;
+    function Get_imports: IHTMLStyleSheetsCollection; safecall;
+    procedure Set_href(const p: WideString); safecall;
+    function Get_href: WideString; safecall;
+    function Get_type_: WideString; safecall;
+    function Get_id: WideString; safecall;
+    function addImport(const bstrUrl: WideString; lIndex: Integer): Integer; safecall;
+    function addRule(const bstrSelector: WideString; const bstrStyle: WideString; lIndex: Integer): Integer; safecall;
+    procedure removeImport(lIndex: Integer); safecall;
+    procedure removeRule(lIndex: Integer); safecall;
+    procedure Set_media(const p: WideString); safecall;
+    function Get_media: WideString; safecall;
+    procedure Set_cssText(const p: WideString); safecall;
+    function Get_cssText: WideString; safecall;
+    function Get_rules: IHTMLStyleSheetRulesCollection; safecall;
+    property title: WideString read Get_title write Set_title;
+    property parentStyleSheet: IHTMLStyleSheet read Get_parentStyleSheet;
+    property owningElement: IHTMLElement read Get_owningElement;
+    property disabled: WordBool read Get_disabled write Set_disabled;
+    property readOnly: WordBool read Get_readOnly;
+    property imports: IHTMLStyleSheetsCollection read Get_imports;
+    property href: WideString read Get_href write Set_href;
+    property type_: WideString read Get_type_;
+    property id: WideString read Get_id;
+    property media: WideString read Get_media write Set_media;
+    property cssText: WideString read Get_cssText write Set_cssText;
+    property rules: IHTMLStyleSheetRulesCollection read Get_rules;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLStyleSheetDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2E3-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleSheetDisp = dispinterface
+    ['{3050F2E3-98B5-11CF-BB82-00AA00BDCE0B}']
+    property title: WideString dispid 1001;
+    property parentStyleSheet: IHTMLStyleSheet readonly dispid 1002;
+    property owningElement: IHTMLElement readonly dispid 1003;
+    property disabled: WordBool dispid - 2147418036;
+    property readOnly: WordBool readonly dispid 1004;
+    property imports: IHTMLStyleSheetsCollection readonly dispid 1005;
+    property href: WideString dispid 1006;
+    property type_: WideString readonly dispid 1007;
+    property id: WideString readonly dispid 1008;
+    function addImport(const bstrUrl: WideString; lIndex: Integer): Integer; dispid 1009;
+    function addRule(const bstrSelector: WideString; const bstrStyle: WideString; lIndex: Integer): Integer; dispid 1010;
+    procedure removeImport(lIndex: Integer); dispid 1011;
+    procedure removeRule(lIndex: Integer); dispid 1012;
+    property media: WideString dispid 1013;
+    property cssText: WideString dispid 1014;
+    property rules: IHTMLStyleSheetRulesCollection readonly dispid 1015;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLStyleSheet2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3D1-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleSheet2 = interface(IDispatch)
+    ['{3050F3D1-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_pages: IHTMLStyleSheetPagesCollection; safecall;
+    function addPageRule(const bstrSelector: WideString; const bstrStyle: WideString;
+      lIndex: Integer): Integer; safecall;
+    property pages: IHTMLStyleSheetPagesCollection read Get_pages;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLStyleSheet2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3D1-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleSheet2Disp = dispinterface
+    ['{3050F3D1-98B5-11CF-BB82-00AA00BDCE0B}']
+    property pages: IHTMLStyleSheetPagesCollection readonly dispid 1016;
+    function addPageRule(const bstrSelector: WideString; const bstrStyle: WideString;
+      lIndex: Integer): Integer; dispid 1017;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLStyleSheet
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F58D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLStyleSheet = dispinterface
+    ['{3050F58D-98B5-11CF-BB82-00AA00BDCE0B}']
+    property title: WideString dispid 1001;
+    property parentStyleSheet: IHTMLStyleSheet readonly dispid 1002;
+    property owningElement: IHTMLElement readonly dispid 1003;
+    property disabled: WordBool dispid - 2147418036;
+    property readOnly: WordBool readonly dispid 1004;
+    property imports: IHTMLStyleSheetsCollection readonly dispid 1005;
+    property href: WideString dispid 1006;
+    property type_: WideString readonly dispid 1007;
+    property id: WideString readonly dispid 1008;
+    function addImport(const bstrUrl: WideString; lIndex: Integer): Integer; dispid 1009;
+    function addRule(const bstrSelector: WideString; const bstrStyle: WideString; lIndex: Integer): Integer; dispid 1010;
+    procedure removeImport(lIndex: Integer); dispid 1011;
+    procedure removeRule(lIndex: Integer); dispid 1012;
+    property media: WideString dispid 1013;
+    property cssText: WideString dispid 1014;
+    property rules: IHTMLStyleSheetRulesCollection readonly dispid 1015;
+    property pages: IHTMLStyleSheetPagesCollection readonly dispid 1016;
+    function addPageRule(const bstrSelector: WideString; const bstrStyle: WideString;
+      lIndex: Integer): Integer; dispid 1017;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLLinkElementEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F61D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLLinkElementEvents2 = dispinterface
+    ['{3050F61D-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+    procedure onload(const pEvtObj: IHTMLEventObj); dispid 1003;
+    procedure onerror(const pEvtObj: IHTMLEventObj); dispid 1002;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLLinkElementEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F3CC-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLLinkElementEvents = dispinterface
+    ['{3050F3CC-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+    procedure onload; dispid 1003;
+    procedure onerror; dispid 1002;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLLinkElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F205-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLLinkElement = interface(IDispatch)
+    ['{3050F205-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_href(const p: WideString); safecall;
+    function Get_href: WideString; safecall;
+    procedure Set_rel(const p: WideString); safecall;
+    function Get_rel: WideString; safecall;
+    procedure Set_rev(const p: WideString); safecall;
+    function Get_rev: WideString; safecall;
+    procedure Set_type_(const p: WideString); safecall;
+    function Get_type_: WideString; safecall;
+    function Get_readyState: WideString; safecall;
+    procedure Set_onreadystatechange(p: OleVariant); safecall;
+    function Get_onreadystatechange: OleVariant; safecall;
+    procedure Set_onload(p: OleVariant); safecall;
+    function Get_onload: OleVariant; safecall;
+    procedure Set_onerror(p: OleVariant); safecall;
+    function Get_onerror: OleVariant; safecall;
+    function Get_styleSheet: IHTMLStyleSheet; safecall;
+    procedure Set_disabled(p: WordBool); safecall;
+    function Get_disabled: WordBool; safecall;
+    procedure Set_media(const p: WideString); safecall;
+    function Get_media: WideString; safecall;
+    property href: WideString read Get_href write Set_href;
+    property rel: WideString read Get_rel write Set_rel;
+    property rev: WideString read Get_rev write Set_rev;
+    property type_: WideString read Get_type_ write Set_type_;
+    property readyState: WideString read Get_readyState;
+    property onreadystatechange: OleVariant read Get_onreadystatechange write Set_onreadystatechange;
+    property onload: OleVariant read Get_onload write Set_onload;
+    property onerror: OleVariant read Get_onerror write Set_onerror;
+    property styleSheet: IHTMLStyleSheet read Get_styleSheet;
+    property disabled: WordBool read Get_disabled write Set_disabled;
+    property media: WideString read Get_media write Set_media;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLLinkElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F205-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLLinkElementDisp = dispinterface
+    ['{3050F205-98B5-11CF-BB82-00AA00BDCE0B}']
+    property href: WideString dispid 1005;
+    property rel: WideString dispid 1006;
+    property rev: WideString dispid 1007;
+    property type_: WideString dispid 1008;
+    property readyState: WideString readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onload: OleVariant dispid - 2147412080;
+    property onerror: OleVariant dispid - 2147412083;
+    property styleSheet: IHTMLStyleSheet readonly dispid 1014;
+    property disabled: WordBool dispid - 2147418036;
+    property media: WideString dispid 1016;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLLinkElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4E5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLLinkElement2 = interface(IDispatch)
+    ['{3050F4E5-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_target(const p: WideString); safecall;
+    function Get_target: WideString; safecall;
+    property target: WideString read Get_target write Set_target;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLLinkElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4E5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLLinkElement2Disp = dispinterface
+    ['{3050F4E5-98B5-11CF-BB82-00AA00BDCE0B}']
+    property target: WideString dispid 1017;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLLinkElement3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F81E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLLinkElement3 = interface(IDispatch)
+    ['{3050F81E-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_charset(const p: WideString); safecall;
+    function Get_charset: WideString; safecall;
+    procedure Set_hreflang(const p: WideString); safecall;
+    function Get_hreflang: WideString; safecall;
+    property charset: WideString read Get_charset write Set_charset;
+    property hreflang: WideString read Get_hreflang write Set_hreflang;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLLinkElement3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F81E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLLinkElement3Disp = dispinterface
+    ['{3050F81E-98B5-11CF-BB82-00AA00BDCE0B}']
+    property charset: WideString dispid 1018;
+    property hreflang: WideString dispid 1019;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLLinkElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F524-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLLinkElement = dispinterface
+    ['{3050F524-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property href: WideString dispid 1005;
+    property rel: WideString dispid 1006;
+    property rev: WideString dispid 1007;
+    property type_: WideString dispid 1008;
+    property onload: OleVariant dispid - 2147412080;
+    property onerror: OleVariant dispid - 2147412083;
+    property styleSheet: IHTMLStyleSheet readonly dispid 1014;
+    property media: WideString dispid 1016;
+    property target: WideString dispid 1017;
+    property charset: WideString dispid 1018;
+    property hreflang: WideString dispid 1019;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTxtRange
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F220-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTxtRange = interface(IDispatch)
+    ['{3050F220-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_htmlText: WideString; safecall;
+    procedure Set_text(const p: WideString); safecall;
+    function Get_text: WideString; safecall;
+    function parentElement: IHTMLElement; safecall;
+    function duplicate: IHTMLTxtRange; safecall;
+    function inRange(const range: IHTMLTxtRange): WordBool; safecall;
+    function isEqual(const range: IHTMLTxtRange): WordBool; safecall;
+    procedure scrollIntoView(fStart: WordBool); safecall;
+    procedure collapse(Start: WordBool); safecall;
+    function expand(const Unit_: WideString): WordBool; safecall;
+    function move(const Unit_: WideString; Count: Integer): Integer; safecall;
+    function moveStart(const Unit_: WideString; Count: Integer): Integer; safecall;
+    function moveEnd(const Unit_: WideString; Count: Integer): Integer; safecall;
+    procedure select; safecall;
+    procedure pasteHTML(const html: WideString); safecall;
+    procedure moveToElementText(const element: IHTMLElement); safecall;
+    procedure setEndPoint(const how: WideString; const SourceRange: IHTMLTxtRange); safecall;
+    function compareEndPoints(const how: WideString; const SourceRange: IHTMLTxtRange): Integer; safecall;
+    function findText(const String_: WideString; Count: Integer; Flags: Integer): WordBool; safecall;
+    procedure moveToPoint(x: Integer; y: Integer); safecall;
+    function getBookmark: WideString; safecall;
+    function moveToBookmark(const Bookmark: WideString): WordBool; safecall;
+    function queryCommandSupported(const cmdID: WideString): WordBool; safecall;
+    function queryCommandEnabled(const cmdID: WideString): WordBool; safecall;
+    function queryCommandState(const cmdID: WideString): WordBool; safecall;
+    function queryCommandIndeterm(const cmdID: WideString): WordBool; safecall;
+    function queryCommandText(const cmdID: WideString): WideString; safecall;
+    function queryCommandValue(const cmdID: WideString): OleVariant; safecall;
+    function execCommand(const cmdID: WideString; showUI: WordBool; value: OleVariant): WordBool; safecall;
+    function execCommandShowHelp(const cmdID: WideString): WordBool; safecall;
+    property htmlText: WideString read Get_htmlText;
+    property text: WideString read Get_text write Set_text;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTxtRangeDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F220-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTxtRangeDisp = dispinterface
+    ['{3050F220-98B5-11CF-BB82-00AA00BDCE0B}']
+    property htmlText: WideString readonly dispid 1003;
+    property text: WideString dispid 1004;
+    function parentElement: IHTMLElement; dispid 1006;
+    function duplicate: IHTMLTxtRange; dispid 1008;
+    function inRange(const range: IHTMLTxtRange): WordBool; dispid 1010;
+    function isEqual(const range: IHTMLTxtRange): WordBool; dispid 1011;
+    procedure scrollIntoView(fStart: WordBool); dispid 1012;
+    procedure collapse(Start: WordBool); dispid 1013;
+    function expand(const Unit_: WideString): WordBool; dispid 1014;
+    function move(const Unit_: WideString; Count: Integer): Integer; dispid 1015;
+    function moveStart(const Unit_: WideString; Count: Integer): Integer; dispid 1016;
+    function moveEnd(const Unit_: WideString; Count: Integer): Integer; dispid 1017;
+    procedure select; dispid 1024;
+    procedure pasteHTML(const html: WideString); dispid 1026;
+    procedure moveToElementText(const element: IHTMLElement); dispid 1001;
+    procedure setEndPoint(const how: WideString; const SourceRange: IHTMLTxtRange); dispid 1025;
+    function compareEndPoints(const how: WideString; const SourceRange: IHTMLTxtRange): Integer; dispid 1018;
+    function findText(const String_: WideString; Count: Integer; Flags: Integer): WordBool; dispid 1019;
+    procedure moveToPoint(x: Integer; y: Integer); dispid 1020;
+    function getBookmark: WideString; dispid 1021;
+    function moveToBookmark(const Bookmark: WideString): WordBool; dispid 1009;
+    function queryCommandSupported(const cmdID: WideString): WordBool; dispid 1027;
+    function queryCommandEnabled(const cmdID: WideString): WordBool; dispid 1028;
+    function queryCommandState(const cmdID: WideString): WordBool; dispid 1029;
+    function queryCommandIndeterm(const cmdID: WideString): WordBool; dispid 1030;
+    function queryCommandText(const cmdID: WideString): WideString; dispid 1031;
+    function queryCommandValue(const cmdID: WideString): OleVariant; dispid 1032;
+    function execCommand(const cmdID: WideString; showUI: WordBool; value: OleVariant): WordBool; dispid 1033;
+    function execCommandShowHelp(const cmdID: WideString): WordBool; dispid 1034;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTextRangeMetrics
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F40B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTextRangeMetrics = interface(IDispatch)
+    ['{3050F40B-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_offsetTop: Integer; safecall;
+    function Get_offsetLeft: Integer; safecall;
+    function Get_boundingTop: Integer; safecall;
+    function Get_boundingLeft: Integer; safecall;
+    function Get_boundingWidth: Integer; safecall;
+    function Get_boundingHeight: Integer; safecall;
+    property offsetTop: Integer read Get_offsetTop;
+    property offsetLeft: Integer read Get_offsetLeft;
+    property boundingTop: Integer read Get_boundingTop;
+    property boundingLeft: Integer read Get_boundingLeft;
+    property boundingWidth: Integer read Get_boundingWidth;
+    property boundingHeight: Integer read Get_boundingHeight;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTextRangeMetricsDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F40B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTextRangeMetricsDisp = dispinterface
+    ['{3050F40B-98B5-11CF-BB82-00AA00BDCE0B}']
+    property offsetTop: Integer readonly dispid 1035;
+    property offsetLeft: Integer readonly dispid 1036;
+    property boundingTop: Integer readonly dispid 1037;
+    property boundingLeft: Integer readonly dispid 1038;
+    property boundingWidth: Integer readonly dispid 1039;
+    property boundingHeight: Integer readonly dispid 1040;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTextRangeMetrics2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4A6-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTextRangeMetrics2 = interface(IDispatch)
+    ['{3050F4A6-98B5-11CF-BB82-00AA00BDCE0B}']
+    function getClientRects: IHTMLRectCollection; safecall;
+    function getBoundingClientRect: IHTMLRect; safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTextRangeMetrics2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4A6-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTextRangeMetrics2Disp = dispinterface
+    ['{3050F4A6-98B5-11CF-BB82-00AA00BDCE0B}']
+    function getClientRects: IHTMLRectCollection; dispid 1041;
+    function getBoundingClientRect: IHTMLRect; dispid 1042;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTxtRangeCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F7ED-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTxtRangeCollection = interface(IDispatch)
+    ['{3050F7ED-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_length: Integer; safecall;
+    function Get__newEnum: IUnknown; safecall;
+    // !! API fix decl
+    function item(const pvarIndex: OleVariant): OleVariant; safecall;
+    property length: Integer read Get_length;
+    property _newEnum: IUnknown read Get__newEnum;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTxtRangeCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F7ED-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTxtRangeCollectionDisp = dispinterface
+    ['{3050F7ED-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1500;
+    property _newEnum: IUnknown readonly dispid - 4;
+    // !! API fix decl
+    function item(const pvarIndex: OleVariant): OleVariant; dispid 0;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLFormElementEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F614-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLFormElementEvents2 = dispinterface
+    ['{3050F614-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+    function onsubmit(const pEvtObj: IHTMLEventObj): WordBool; dispid 1007;
+    function onreset(const pEvtObj: IHTMLEventObj): WordBool; dispid 1015;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLFormElementEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F364-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLFormElementEvents = dispinterface
+    ['{3050F364-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+    function onsubmit: WordBool; dispid 1007;
+    function onreset: WordBool; dispid 1015;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLFormElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1F7-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFormElement = interface(IDispatch)
+    ['{3050F1F7-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_action(const p: WideString); safecall;
+    function Get_action: WideString; safecall;
+    procedure Set_dir(const p: WideString); safecall;
+    function Get_dir: WideString; safecall;
+    procedure Set_encoding(const p: WideString); safecall;
+    function Get_encoding: WideString; safecall;
+    procedure Set_method(const p: WideString); safecall;
+    function Get_method: WideString; safecall;
+    function Get_elements: IDispatch; safecall;
+    procedure Set_target(const p: WideString); safecall;
+    function Get_target: WideString; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_onsubmit(p: OleVariant); safecall;
+    function Get_onsubmit: OleVariant; safecall;
+    procedure Set_onreset(p: OleVariant); safecall;
+    function Get_onreset: OleVariant; safecall;
+    procedure submit; safecall;
+    procedure reset; safecall;
+    procedure Set_length(p: Integer); safecall;
+    function Get_length: Integer; safecall;
+    function Get__newEnum: IUnknown; safecall;
+    function item(name: OleVariant; index: OleVariant): IDispatch; safecall;
+    function tags(tagName: OleVariant): IDispatch; safecall;
+    property action: WideString read Get_action write Set_action;
+    property dir: WideString read Get_dir write Set_dir;
+    property encoding: WideString read Get_encoding write Set_encoding;
+    property method: WideString read Get_method write Set_method;
+    property elements: IDispatch read Get_elements;
+    property target: WideString read Get_target write Set_target;
+    property name: WideString read Get_name write Set_name;
+    property onsubmit: OleVariant read Get_onsubmit write Set_onsubmit;
+    property onreset: OleVariant read Get_onreset write Set_onreset;
+    property length: Integer read Get_length write Set_length;
+    property _newEnum: IUnknown read Get__newEnum;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLFormElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1F7-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFormElementDisp = dispinterface
+    ['{3050F1F7-98B5-11CF-BB82-00AA00BDCE0B}']
+    property action: WideString dispid 1001;
+    property dir: WideString dispid - 2147412995;
+    property encoding: WideString dispid 1003;
+    property method: WideString dispid 1004;
+    property elements: IDispatch readonly dispid 1005;
+    property target: WideString dispid 1006;
+    property name: WideString dispid - 2147418112;
+    property onsubmit: OleVariant dispid - 2147412101;
+    property onreset: OleVariant dispid - 2147412100;
+    procedure submit; dispid 1009;
+    procedure reset; dispid 1010;
+    property length: Integer dispid 1500;
+    property _newEnum: IUnknown readonly dispid - 4;
+    function item(name: OleVariant; index: OleVariant): IDispatch; dispid 0;
+    function tags(tagName: OleVariant): IDispatch; dispid 1502;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLFormElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4F6-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFormElement2 = interface(IDispatch)
+    ['{3050F4F6-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_acceptCharset(const p: WideString); safecall;
+    function Get_acceptCharset: WideString; safecall;
+    function urns(urn: OleVariant): IDispatch; safecall;
+    property acceptCharset: WideString read Get_acceptCharset write Set_acceptCharset;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLFormElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4F6-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFormElement2Disp = dispinterface
+    ['{3050F4F6-98B5-11CF-BB82-00AA00BDCE0B}']
+    property acceptCharset: WideString dispid 1011;
+    function urns(urn: OleVariant): IDispatch; dispid 1505;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLFormElement3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F836-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFormElement3 = interface(IDispatch)
+    ['{3050F836-98B5-11CF-BB82-00AA00BDCE0B}']
+    function namedItem(const name: WideString): IDispatch; safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLFormElement3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F836-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFormElement3Disp = dispinterface
+    ['{3050F836-98B5-11CF-BB82-00AA00BDCE0B}']
+    function namedItem(const name: WideString): IDispatch; dispid 1506;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLSubmitData
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F645-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLSubmitData = interface(IDispatch)
+    ['{3050F645-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure appendNameValuePair(const name: WideString; const value: WideString); safecall;
+    procedure appendNameFilePair(const name: WideString; const filename: WideString); safecall;
+    procedure appendItemSeparator; safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLSubmitDataDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F645-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLSubmitDataDisp = dispinterface
+    ['{3050F645-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure appendNameValuePair(const name: WideString; const value: WideString); dispid 1012;
+    procedure appendNameFilePair(const name: WideString; const filename: WideString); dispid 1013;
+    procedure appendItemSeparator; dispid 1014;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLFormElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F510-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLFormElement = dispinterface
+    ['{3050F510-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property action: WideString dispid 1001;
+    property encoding: WideString dispid 1003;
+    property method: WideString dispid 1004;
+    property elements: IDispatch readonly dispid 1005;
+    property target: WideString dispid 1006;
+    property name: WideString dispid - 2147418112;
+    property onsubmit: OleVariant dispid - 2147412101;
+    property onreset: OleVariant dispid - 2147412100;
+    procedure submit; dispid 1009;
+    procedure reset; dispid 1010;
+    property length: Integer dispid 1500;
+    property _newEnum: IUnknown readonly dispid - 4;
+    function item(name: OleVariant; index: OleVariant): IDispatch; dispid 0;
+    function tags(tagName: OleVariant): IDispatch; dispid 1502;
+    property acceptCharset: WideString dispid 1011;
+    function urns(urn: OleVariant): IDispatch; dispid 1505;
+    function namedItem(const name: WideString): IDispatch; dispid 1506;
+    procedure appendNameValuePair(const name: WideString; const value: WideString); dispid 1012;
+    procedure appendNameFilePair(const name: WideString; const filename: WideString); dispid 1013;
+    procedure appendItemSeparator; dispid 1014;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLControlElementEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F612-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLControlElementEvents2 = dispinterface
+    ['{3050F612-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLControlElementEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F4EA-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLControlElementEvents = dispinterface
+    ['{3050F4EA-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLControlElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4E9-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLControlElement = interface(IDispatch)
+    ['{3050F4E9-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_tabIndex(p: Smallint); safecall;
+    function Get_tabIndex: Smallint; safecall;
+    procedure focus; safecall;
+    procedure Set_accessKey(const p: WideString); safecall;
+    function Get_accessKey: WideString; safecall;
+    procedure Set_onblur(p: OleVariant); safecall;
+    function Get_onblur: OleVariant; safecall;
+    procedure Set_onfocus(p: OleVariant); safecall;
+    function Get_onfocus: OleVariant; safecall;
+    procedure Set_onresize(p: OleVariant); safecall;
+    function Get_onresize: OleVariant; safecall;
+    procedure blur; safecall;
+    procedure addFilter(const pUnk: IUnknown); safecall;
+    procedure removeFilter(const pUnk: IUnknown); safecall;
+    function Get_clientHeight: Integer; safecall;
+    function Get_clientWidth: Integer; safecall;
+    function Get_clientTop: Integer; safecall;
+    function Get_clientLeft: Integer; safecall;
+    property tabIndex: Smallint read Get_tabIndex write Set_tabIndex;
+    property accessKey: WideString read Get_accessKey write Set_accessKey;
+    property onblur: OleVariant read Get_onblur write Set_onblur;
+    property onfocus: OleVariant read Get_onfocus write Set_onfocus;
+    property onresize: OleVariant read Get_onresize write Set_onresize;
+    property clientHeight: Integer read Get_clientHeight;
+    property clientWidth: Integer read Get_clientWidth;
+    property clientTop: Integer read Get_clientTop;
+    property clientLeft: Integer read Get_clientLeft;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLControlElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4E9-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLControlElementDisp = dispinterface
+    ['{3050F4E9-98B5-11CF-BB82-00AA00BDCE0B}']
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTextElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F218-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTextElement = interface(IDispatch)
+    ['{3050F218-98B5-11CF-BB82-00AA00BDCE0B}']
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTextElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F218-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTextElementDisp = dispinterface
+    ['{3050F218-98B5-11CF-BB82-00AA00BDCE0B}']
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLTextElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F537-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLTextElement = dispinterface
+    ['{3050F537-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLTextContainerEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F624-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLTextContainerEvents2 = dispinterface
+    ['{3050F624-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+    procedure onchange(const pEvtObj: IHTMLEventObj); dispid 1001;
+    procedure onselect(const pEvtObj: IHTMLEventObj); dispid 1006;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLTextContainerEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {1FF6AA72-5842-11CF-A707-00AA00C0098D}
+// *********************************************************************//
+  HTMLTextContainerEvents = dispinterface
+    ['{1FF6AA72-5842-11CF-A707-00AA00C0098D}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+    procedure onchange; dispid 1001;
+    procedure onselect; dispid 1006;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTextContainer
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F230-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTextContainer = interface(IDispatch)
+    ['{3050F230-98B5-11CF-BB82-00AA00BDCE0B}']
+    function createControlRange: IDispatch; safecall;
+    function Get_scrollHeight: Integer; safecall;
+    function Get_scrollWidth: Integer; safecall;
+    procedure Set_scrollTop(p: Integer); safecall;
+    function Get_scrollTop: Integer; safecall;
+    procedure Set_scrollLeft(p: Integer); safecall;
+    function Get_scrollLeft: Integer; safecall;
+    procedure Set_onscroll(p: OleVariant); safecall;
+    function Get_onscroll: OleVariant; safecall;
+    property scrollHeight: Integer read Get_scrollHeight;
+    property scrollWidth: Integer read Get_scrollWidth;
+    property scrollTop: Integer read Get_scrollTop write Set_scrollTop;
+    property scrollLeft: Integer read Get_scrollLeft write Set_scrollLeft;
+    property onscroll: OleVariant read Get_onscroll write Set_onscroll;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTextContainerDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F230-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTextContainerDisp = dispinterface
+    ['{3050F230-98B5-11CF-BB82-00AA00BDCE0B}']
+    function createControlRange: IDispatch; dispid 1001;
+    property scrollHeight: Integer readonly dispid 1002;
+    property scrollWidth: Integer readonly dispid 1003;
+    property scrollTop: Integer dispid 1004;
+    property scrollLeft: Integer dispid 1005;
+    property onscroll: OleVariant dispid - 2147412081;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLControlRange
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F29C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLControlRange = interface(IDispatch)
+    ['{3050F29C-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure select; safecall;
+    procedure add(const item: IHTMLControlElement); safecall;
+    procedure remove(index: Integer); safecall;
+    function item(index: Integer): IHTMLElement; safecall;
+    procedure scrollIntoView(varargStart: OleVariant); safecall;
+    function queryCommandSupported(const cmdID: WideString): WordBool; safecall;
+    function queryCommandEnabled(const cmdID: WideString): WordBool; safecall;
+    function queryCommandState(const cmdID: WideString): WordBool; safecall;
+    function queryCommandIndeterm(const cmdID: WideString): WordBool; safecall;
+    function queryCommandText(const cmdID: WideString): WideString; safecall;
+    function queryCommandValue(const cmdID: WideString): OleVariant; safecall;
+    function execCommand(const cmdID: WideString; showUI: WordBool; value: OleVariant): WordBool; safecall;
+    function execCommandShowHelp(const cmdID: WideString): WordBool; safecall;
+    function commonParentElement: IHTMLElement; safecall;
+    function Get_length: Integer; safecall;
+    property length: Integer read Get_length;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLControlRangeDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F29C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLControlRangeDisp = dispinterface
+    ['{3050F29C-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure select; dispid 1002;
+    procedure add(const item: IHTMLControlElement); dispid 1003;
+    procedure remove(index: Integer); dispid 1004;
+    function item(index: Integer): IHTMLElement; dispid 0;
+    procedure scrollIntoView(varargStart: OleVariant); dispid 1006;
+    function queryCommandSupported(const cmdID: WideString): WordBool; dispid 1007;
+    function queryCommandEnabled(const cmdID: WideString): WordBool; dispid 1008;
+    function queryCommandState(const cmdID: WideString): WordBool; dispid 1009;
+    function queryCommandIndeterm(const cmdID: WideString): WordBool; dispid 1010;
+    function queryCommandText(const cmdID: WideString): WideString; dispid 1011;
+    function queryCommandValue(const cmdID: WideString): OleVariant; dispid 1012;
+    function execCommand(const cmdID: WideString; showUI: WordBool; value: OleVariant): WordBool; dispid 1013;
+    function execCommandShowHelp(const cmdID: WideString): WordBool; dispid 1014;
+    function commonParentElement: IHTMLElement; dispid 1015;
+    property length: Integer readonly dispid 1005;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLControlRange2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F65E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLControlRange2 = interface(IDispatch)
+    ['{3050F65E-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure addElement(const item: IHTMLElement); safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLControlRange2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F65E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLControlRange2Disp = dispinterface
+    ['{3050F65E-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure addElement(const item: IHTMLElement); dispid 1016;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLImgEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F616-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLImgEvents2 = dispinterface
+    ['{3050F616-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+    procedure onload(const pEvtObj: IHTMLEventObj); dispid 1003;
+    procedure onerror(const pEvtObj: IHTMLEventObj); dispid 1002;
+    procedure onabort(const pEvtObj: IHTMLEventObj); dispid 1000;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLImgEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F25B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLImgEvents = dispinterface
+    ['{3050F25B-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+    procedure onload; dispid 1003;
+    procedure onerror; dispid 1002;
+    procedure onabort; dispid 1000;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLImgElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F240-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLImgElement = interface(IDispatch)
+    ['{3050F240-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_isMap(p: WordBool); safecall;
+    function Get_isMap: WordBool; safecall;
+    procedure Set_useMap(const p: WideString); safecall;
+    function Get_useMap: WideString; safecall;
+    function Get_mimeType: WideString; safecall;
+    function Get_fileSize: WideString; safecall;
+    function Get_fileCreatedDate: WideString; safecall;
+    function Get_fileModifiedDate: WideString; safecall;
+    function Get_fileUpdatedDate: WideString; safecall;
+    function Get_protocol: WideString; safecall;
+    function Get_href: WideString; safecall;
+    function Get_nameProp: WideString; safecall;
+    procedure Set_border(p: OleVariant); safecall;
+    function Get_border: OleVariant; safecall;
+    procedure Set_vspace(p: Integer); safecall;
+    function Get_vspace: Integer; safecall;
+    procedure Set_hspace(p: Integer); safecall;
+    function Get_hspace: Integer; safecall;
+    procedure Set_alt(const p: WideString); safecall;
+    function Get_alt: WideString; safecall;
+    procedure Set_src(const p: WideString); safecall;
+    function Get_src: WideString; safecall;
+    procedure Set_lowsrc(const p: WideString); safecall;
+    function Get_lowsrc: WideString; safecall;
+    procedure Set_vrml(const p: WideString); safecall;
+    function Get_vrml: WideString; safecall;
+    procedure Set_dynsrc(const p: WideString); safecall;
+    function Get_dynsrc: WideString; safecall;
+    function Get_readyState: WideString; safecall;
+    function Get_complete: WordBool; safecall;
+    procedure Set_loop(p: OleVariant); safecall;
+    function Get_loop: OleVariant; safecall;
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    procedure Set_onload(p: OleVariant); safecall;
+    function Get_onload: OleVariant; safecall;
+    procedure Set_onerror(p: OleVariant); safecall;
+    function Get_onerror: OleVariant; safecall;
+    procedure Set_onabort(p: OleVariant); safecall;
+    function Get_onabort: OleVariant; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_width(p: Integer); safecall;
+    function Get_width: Integer; safecall;
+    procedure Set_height(p: Integer); safecall;
+    function Get_height: Integer; safecall;
+    procedure Set_Start(const p: WideString); safecall;
+    function Get_Start: WideString; safecall;
+    property isMap: WordBool read Get_isMap write Set_isMap;
+    property useMap: WideString read Get_useMap write Set_useMap;
+    property mimeType: WideString read Get_mimeType;
+    property fileSize: WideString read Get_fileSize;
+    property fileCreatedDate: WideString read Get_fileCreatedDate;
+    property fileModifiedDate: WideString read Get_fileModifiedDate;
+    property fileUpdatedDate: WideString read Get_fileUpdatedDate;
+    property protocol: WideString read Get_protocol;
+    property href: WideString read Get_href;
+    property nameProp: WideString read Get_nameProp;
+    property border: OleVariant read Get_border write Set_border;
+    property vspace: Integer read Get_vspace write Set_vspace;
+    property hspace: Integer read Get_hspace write Set_hspace;
+    property alt: WideString read Get_alt write Set_alt;
+    property src: WideString read Get_src write Set_src;
+    property lowsrc: WideString read Get_lowsrc write Set_lowsrc;
+    property vrml: WideString read Get_vrml write Set_vrml;
+    property dynsrc: WideString read Get_dynsrc write Set_dynsrc;
+    property readyState: WideString read Get_readyState;
+    property complete: WordBool read Get_complete;
+    property loop: OleVariant read Get_loop write Set_loop;
+    property align: WideString read Get_align write Set_align;
+    property onload: OleVariant read Get_onload write Set_onload;
+    property onerror: OleVariant read Get_onerror write Set_onerror;
+    property onabort: OleVariant read Get_onabort write Set_onabort;
+    property name: WideString read Get_name write Set_name;
+    property width: Integer read Get_width write Set_width;
+    property height: Integer read Get_height write Set_height;
+    property Start: WideString read Get_Start write Set_Start;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLImgElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F240-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLImgElementDisp = dispinterface
+    ['{3050F240-98B5-11CF-BB82-00AA00BDCE0B}']
+    property isMap: WordBool dispid 2002;
+    property useMap: WideString dispid 2008;
+    property mimeType: WideString readonly dispid 2010;
+    property fileSize: WideString readonly dispid 2011;
+    property fileCreatedDate: WideString readonly dispid 2012;
+    property fileModifiedDate: WideString readonly dispid 2013;
+    property fileUpdatedDate: WideString readonly dispid 2014;
+    property protocol: WideString readonly dispid 2015;
+    property href: WideString readonly dispid 2016;
+    property nameProp: WideString readonly dispid 2017;
+    property border: OleVariant dispid 1004;
+    property vspace: Integer dispid 1005;
+    property hspace: Integer dispid 1006;
+    property alt: WideString dispid 1002;
+    property src: WideString dispid 1003;
+    property lowsrc: WideString dispid 1007;
+    property vrml: WideString dispid 1008;
+    property dynsrc: WideString dispid 1009;
+    property readyState: WideString readonly dispid - 2147412996;
+    property complete: WordBool readonly dispid 1010;
+    property loop: OleVariant dispid 1011;
+    property align: WideString dispid - 2147418039;
+    property onload: OleVariant dispid - 2147412080;
+    property onerror: OleVariant dispid - 2147412083;
+    property onabort: OleVariant dispid - 2147412084;
+    property name: WideString dispid - 2147418112;
+    property width: Integer dispid - 2147418107;
+    property height: Integer dispid - 2147418106;
+    property Start: WideString dispid 1013;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLImgElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F826-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLImgElement2 = interface(IDispatch)
+    ['{3050F826-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_longDesc(const p: WideString); safecall;
+    function Get_longDesc: WideString; safecall;
+    property longDesc: WideString read Get_longDesc write Set_longDesc;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLImgElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F826-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLImgElement2Disp = dispinterface
+    ['{3050F826-98B5-11CF-BB82-00AA00BDCE0B}']
+    property longDesc: WideString dispid 2019;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLImageElementFactory
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F38E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLImageElementFactory = interface(IDispatch)
+    ['{3050F38E-98B5-11CF-BB82-00AA00BDCE0B}']
+    function create(width: OleVariant; height: OleVariant): IHTMLImgElement; safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLImageElementFactoryDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F38E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLImageElementFactoryDisp = dispinterface
+    ['{3050F38E-98B5-11CF-BB82-00AA00BDCE0B}']
+    function create(width: OleVariant; height: OleVariant): IHTMLImgElement; dispid 0;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLImg
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F51C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLImg = dispinterface
+    ['{3050F51C-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property isMap: WordBool dispid 2002;
+    property useMap: WideString dispid 2008;
+    property mimeType: WideString readonly dispid 2010;
+    property fileSize: WideString readonly dispid 2011;
+    property fileCreatedDate: WideString readonly dispid 2012;
+    property fileModifiedDate: WideString readonly dispid 2013;
+    property fileUpdatedDate: WideString readonly dispid 2014;
+    property protocol: WideString readonly dispid 2015;
+    property href: WideString readonly dispid 2016;
+    property nameProp: WideString readonly dispid 2017;
+    property border: OleVariant dispid 1004;
+    property vspace: Integer dispid 1005;
+    property hspace: Integer dispid 1006;
+    property alt: WideString dispid 1002;
+    property src: WideString dispid 1003;
+    property lowsrc: WideString dispid 1007;
+    property vrml: WideString dispid 1008;
+    property dynsrc: WideString dispid 1009;
+    property complete: WordBool readonly dispid 1010;
+    property loop: OleVariant dispid 1011;
+    property align: WideString dispid - 2147418039;
+    property onload: OleVariant dispid - 2147412080;
+    property onerror: OleVariant dispid - 2147412083;
+    property onabort: OleVariant dispid - 2147412084;
+    property name: WideString dispid - 2147418112;
+    property width: Integer dispid - 2147418107;
+    property height: Integer dispid - 2147418106;
+    property Start: WideString dispid 1013;
+    property longDesc: WideString dispid 2019;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLBodyElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1D8-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBodyElement = interface(IDispatch)
+    ['{3050F1D8-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_background(const p: WideString); safecall;
+    function Get_background: WideString; safecall;
+    procedure Set_bgProperties(const p: WideString); safecall;
+    function Get_bgProperties: WideString; safecall;
+    procedure Set_leftMargin(p: OleVariant); safecall;
+    function Get_leftMargin: OleVariant; safecall;
+    procedure Set_topMargin(p: OleVariant); safecall;
+    function Get_topMargin: OleVariant; safecall;
+    procedure Set_rightMargin(p: OleVariant); safecall;
+    function Get_rightMargin: OleVariant; safecall;
+    procedure Set_bottomMargin(p: OleVariant); safecall;
+    function Get_bottomMargin: OleVariant; safecall;
+    procedure Set_noWrap(p: WordBool); safecall;
+    function Get_noWrap: WordBool; safecall;
+    procedure Set_bgColor(p: OleVariant); safecall;
+    function Get_bgColor: OleVariant; safecall;
+    procedure Set_text(p: OleVariant); safecall;
+    function Get_text: OleVariant; safecall;
+    procedure Set_link(p: OleVariant); safecall;
+    function Get_link: OleVariant; safecall;
+    procedure Set_vLink(p: OleVariant); safecall;
+    function Get_vLink: OleVariant; safecall;
+    procedure Set_aLink(p: OleVariant); safecall;
+    function Get_aLink: OleVariant; safecall;
+    procedure Set_onload(p: OleVariant); safecall;
+    function Get_onload: OleVariant; safecall;
+    procedure Set_onunload(p: OleVariant); safecall;
+    function Get_onunload: OleVariant; safecall;
+    procedure Set_scroll(const p: WideString); safecall;
+    function Get_scroll: WideString; safecall;
+    procedure Set_onselect(p: OleVariant); safecall;
+    function Get_onselect: OleVariant; safecall;
+    procedure Set_onbeforeunload(p: OleVariant); safecall;
+    function Get_onbeforeunload: OleVariant; safecall;
+    function createTextRange: IHTMLTxtRange; safecall;
+    property background: WideString read Get_background write Set_background;
+    property bgProperties: WideString read Get_bgProperties write Set_bgProperties;
+    property leftMargin: OleVariant read Get_leftMargin write Set_leftMargin;
+    property topMargin: OleVariant read Get_topMargin write Set_topMargin;
+    property rightMargin: OleVariant read Get_rightMargin write Set_rightMargin;
+    property bottomMargin: OleVariant read Get_bottomMargin write Set_bottomMargin;
+    property noWrap: WordBool read Get_noWrap write Set_noWrap;
+    property bgColor: OleVariant read Get_bgColor write Set_bgColor;
+    property text: OleVariant read Get_text write Set_text;
+    property link: OleVariant read Get_link write Set_link;
+    property vLink: OleVariant read Get_vLink write Set_vLink;
+    property aLink: OleVariant read Get_aLink write Set_aLink;
+    property onload: OleVariant read Get_onload write Set_onload;
+    property onunload: OleVariant read Get_onunload write Set_onunload;
+    property scroll: WideString read Get_scroll write Set_scroll;
+    property onselect: OleVariant read Get_onselect write Set_onselect;
+    property onbeforeunload: OleVariant read Get_onbeforeunload write Set_onbeforeunload;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLBodyElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1D8-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBodyElementDisp = dispinterface
+    ['{3050F1D8-98B5-11CF-BB82-00AA00BDCE0B}']
+    property background: WideString dispid - 2147413111;
+    property bgProperties: WideString dispid - 2147413067;
+    property leftMargin: OleVariant dispid - 2147413072;
+    property topMargin: OleVariant dispid - 2147413075;
+    property rightMargin: OleVariant dispid - 2147413074;
+    property bottomMargin: OleVariant dispid - 2147413073;
+    property noWrap: WordBool dispid - 2147413107;
+    property bgColor: OleVariant dispid - 501;
+    property text: OleVariant dispid - 2147413110;
+    property link: OleVariant dispid 2010;
+    property vLink: OleVariant dispid 2012;
+    property aLink: OleVariant dispid 2011;
+    property onload: OleVariant dispid - 2147412080;
+    property onunload: OleVariant dispid - 2147412079;
+    property scroll: WideString dispid - 2147413033;
+    property onselect: OleVariant dispid - 2147412102;
+    property onbeforeunload: OleVariant dispid - 2147412073;
+    function createTextRange: IHTMLTxtRange; dispid 2013;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLBodyElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5C5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBodyElement2 = interface(IDispatch)
+    ['{3050F5C5-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_onbeforeprint(p: OleVariant); safecall;
+    function Get_onbeforeprint: OleVariant; safecall;
+    procedure Set_onafterprint(p: OleVariant); safecall;
+    function Get_onafterprint: OleVariant; safecall;
+    property onbeforeprint: OleVariant read Get_onbeforeprint write Set_onbeforeprint;
+    property onafterprint: OleVariant read Get_onafterprint write Set_onafterprint;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLBodyElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5C5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBodyElement2Disp = dispinterface
+    ['{3050F5C5-98B5-11CF-BB82-00AA00BDCE0B}']
+    property onbeforeprint: OleVariant dispid - 2147412046;
+    property onafterprint: OleVariant dispid - 2147412045;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLBody
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F507-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLBody = dispinterface
+    ['{3050F507-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property background: WideString dispid - 2147413111;
+    property bgProperties: WideString dispid - 2147413067;
+    property leftMargin: OleVariant dispid - 2147413072;
+    property topMargin: OleVariant dispid - 2147413075;
+    property rightMargin: OleVariant dispid - 2147413074;
+    property bottomMargin: OleVariant dispid - 2147413073;
+    property noWrap: WordBool dispid - 2147413107;
+    property bgColor: OleVariant dispid - 501;
+    property text: OleVariant dispid - 2147413110;
+    property link: OleVariant dispid 2010;
+    property vLink: OleVariant dispid 2012;
+    property aLink: OleVariant dispid 2011;
+    property onload: OleVariant dispid - 2147412080;
+    property onunload: OleVariant dispid - 2147412079;
+    property scroll: WideString dispid - 2147413033;
+    property onselect: OleVariant dispid - 2147412102;
+    property onbeforeunload: OleVariant dispid - 2147412073;
+    function createTextRange: IHTMLTxtRange; dispid 2013;
+    property onbeforeprint: OleVariant dispid - 2147412046;
+    property onafterprint: OleVariant dispid - 2147412045;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLFontElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1D9-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFontElement = interface(IDispatch)
+    ['{3050F1D9-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_color(p: OleVariant); safecall;
+    function Get_color: OleVariant; safecall;
+    procedure Set_face(const p: WideString); safecall;
+    function Get_face: WideString; safecall;
+    procedure Set_size(p: OleVariant); safecall;
+    function Get_size: OleVariant; safecall;
+    property color: OleVariant read Get_color write Set_color;
+    property face: WideString read Get_face write Set_face;
+    property size: OleVariant read Get_size write Set_size;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLFontElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1D9-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFontElementDisp = dispinterface
+    ['{3050F1D9-98B5-11CF-BB82-00AA00BDCE0B}']
+    property color: OleVariant dispid - 2147413110;
+    property face: WideString dispid - 2147413094;
+    property size: OleVariant dispid - 2147413093;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLFontElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F512-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLFontElement = dispinterface
+    ['{3050F512-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property color: OleVariant dispid - 2147413110;
+    property face: WideString dispid - 2147413094;
+    property size: OleVariant dispid - 2147413093;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLAnchorEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F610-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLAnchorEvents2 = dispinterface
+    ['{3050F610-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLAnchorEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F29D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLAnchorEvents = dispinterface
+    ['{3050F29D-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLAnchorElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1DA-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAnchorElement = interface(IDispatch)
+    ['{3050F1DA-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_href(const p: WideString); safecall;
+    function Get_href: WideString; safecall;
+    procedure Set_target(const p: WideString); safecall;
+    function Get_target: WideString; safecall;
+    procedure Set_rel(const p: WideString); safecall;
+    function Get_rel: WideString; safecall;
+    procedure Set_rev(const p: WideString); safecall;
+    function Get_rev: WideString; safecall;
+    procedure Set_urn(const p: WideString); safecall;
+    function Get_urn: WideString; safecall;
+    procedure Set_Methods(const p: WideString); safecall;
+    function Get_Methods: WideString; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_host(const p: WideString); safecall;
+    function Get_host: WideString; safecall;
+    procedure Set_hostname(const p: WideString); safecall;
+    function Get_hostname: WideString; safecall;
+    procedure Set_pathname(const p: WideString); safecall;
+    function Get_pathname: WideString; safecall;
+    procedure Set_port(const p: WideString); safecall;
+    function Get_port: WideString; safecall;
+    procedure Set_protocol(const p: WideString); safecall;
+    function Get_protocol: WideString; safecall;
+    procedure Set_search(const p: WideString); safecall;
+    function Get_search: WideString; safecall;
+    procedure Set_hash(const p: WideString); safecall;
+    function Get_hash: WideString; safecall;
+    procedure Set_onblur(p: OleVariant); safecall;
+    function Get_onblur: OleVariant; safecall;
+    procedure Set_onfocus(p: OleVariant); safecall;
+    function Get_onfocus: OleVariant; safecall;
+    procedure Set_accessKey(const p: WideString); safecall;
+    function Get_accessKey: WideString; safecall;
+    function Get_protocolLong: WideString; safecall;
+    function Get_mimeType: WideString; safecall;
+    function Get_nameProp: WideString; safecall;
+    procedure Set_tabIndex(p: Smallint); safecall;
+    function Get_tabIndex: Smallint; safecall;
+    procedure focus; safecall;
+    procedure blur; safecall;
+    property href: WideString read Get_href write Set_href;
+    property target: WideString read Get_target write Set_target;
+    property rel: WideString read Get_rel write Set_rel;
+    property rev: WideString read Get_rev write Set_rev;
+    property urn: WideString read Get_urn write Set_urn;
+    property Methods: WideString read Get_Methods write Set_Methods;
+    property name: WideString read Get_name write Set_name;
+    property host: WideString read Get_host write Set_host;
+    property hostname: WideString read Get_hostname write Set_hostname;
+    property pathname: WideString read Get_pathname write Set_pathname;
+    property port: WideString read Get_port write Set_port;
+    property protocol: WideString read Get_protocol write Set_protocol;
+    property search: WideString read Get_search write Set_search;
+    property hash: WideString read Get_hash write Set_hash;
+    property onblur: OleVariant read Get_onblur write Set_onblur;
+    property onfocus: OleVariant read Get_onfocus write Set_onfocus;
+    property accessKey: WideString read Get_accessKey write Set_accessKey;
+    property protocolLong: WideString read Get_protocolLong;
+    property mimeType: WideString read Get_mimeType;
+    property nameProp: WideString read Get_nameProp;
+    property tabIndex: Smallint read Get_tabIndex write Set_tabIndex;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLAnchorElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1DA-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAnchorElementDisp = dispinterface
+    ['{3050F1DA-98B5-11CF-BB82-00AA00BDCE0B}']
+    property href: WideString dispid 0;
+    property target: WideString dispid 1003;
+    property rel: WideString dispid 1005;
+    property rev: WideString dispid 1006;
+    property urn: WideString dispid 1007;
+    property Methods: WideString dispid 1008;
+    property name: WideString dispid - 2147418112;
+    property host: WideString dispid 1012;
+    property hostname: WideString dispid 1013;
+    property pathname: WideString dispid 1014;
+    property port: WideString dispid 1015;
+    property protocol: WideString dispid 1016;
+    property search: WideString dispid 1017;
+    property hash: WideString dispid 1018;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property accessKey: WideString dispid - 2147416107;
+    property protocolLong: WideString readonly dispid 1031;
+    property mimeType: WideString readonly dispid 1030;
+    property nameProp: WideString readonly dispid 1032;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    procedure blur; dispid - 2147416110;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLAnchorElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F825-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAnchorElement2 = interface(IDispatch)
+    ['{3050F825-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_charset(const p: WideString); safecall;
+    function Get_charset: WideString; safecall;
+    procedure Set_coords(const p: WideString); safecall;
+    function Get_coords: WideString; safecall;
+    procedure Set_hreflang(const p: WideString); safecall;
+    function Get_hreflang: WideString; safecall;
+    procedure Set_shape(const p: WideString); safecall;
+    function Get_shape: WideString; safecall;
+    procedure Set_type_(const p: WideString); safecall;
+    function Get_type_: WideString; safecall;
+    property charset: WideString read Get_charset write Set_charset;
+    property coords: WideString read Get_coords write Set_coords;
+    property hreflang: WideString read Get_hreflang write Set_hreflang;
+    property shape: WideString read Get_shape write Set_shape;
+    property type_: WideString read Get_type_ write Set_type_;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLAnchorElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F825-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAnchorElement2Disp = dispinterface
+    ['{3050F825-98B5-11CF-BB82-00AA00BDCE0B}']
+    property charset: WideString dispid 1023;
+    property coords: WideString dispid 1024;
+    property hreflang: WideString dispid 1025;
+    property shape: WideString dispid 1026;
+    property type_: WideString dispid 1027;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLAnchorElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F502-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLAnchorElement = dispinterface
+    ['{3050F502-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property href: WideString dispid 0;
+    property target: WideString dispid 1003;
+    property rel: WideString dispid 1005;
+    property rev: WideString dispid 1006;
+    property urn: WideString dispid 1007;
+    property Methods: WideString dispid 1008;
+    property name: WideString dispid - 2147418112;
+    property host: WideString dispid 1012;
+    property hostname: WideString dispid 1013;
+    property pathname: WideString dispid 1014;
+    property port: WideString dispid 1015;
+    property protocol: WideString dispid 1016;
+    property search: WideString dispid 1017;
+    property hash: WideString dispid 1018;
+    property protocolLong: WideString readonly dispid 1031;
+    property mimeType: WideString readonly dispid 1030;
+    property nameProp: WideString readonly dispid 1032;
+    property charset: WideString dispid 1023;
+    property coords: WideString dispid 1024;
+    property hreflang: WideString dispid 1025;
+    property shape: WideString dispid 1026;
+    property type_: WideString dispid 1027;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLLabelEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F61C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLLabelEvents2 = dispinterface
+    ['{3050F61C-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLLabelEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F329-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLLabelEvents = dispinterface
+    ['{3050F329-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLLabelElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F32A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLLabelElement = interface(IDispatch)
+    ['{3050F32A-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_htmlFor(const p: WideString); safecall;
+    function Get_htmlFor: WideString; safecall;
+    procedure Set_accessKey(const p: WideString); safecall;
+    function Get_accessKey: WideString; safecall;
+    property htmlFor: WideString read Get_htmlFor write Set_htmlFor;
+    property accessKey: WideString read Get_accessKey write Set_accessKey;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLLabelElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F32A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLLabelElementDisp = dispinterface
+    ['{3050F32A-98B5-11CF-BB82-00AA00BDCE0B}']
+    property htmlFor: WideString dispid 1000;
+    property accessKey: WideString dispid - 2147416107;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLLabelElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F832-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLLabelElement2 = interface(IDispatch)
+    ['{3050F832-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_form: IHTMLFormElement; safecall;
+    property form: IHTMLFormElement read Get_form;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLLabelElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F832-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLLabelElement2Disp = dispinterface
+    ['{3050F832-98B5-11CF-BB82-00AA00BDCE0B}']
+    property form: IHTMLFormElement readonly dispid 1002;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLLabelElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F522-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLLabelElement = dispinterface
+    ['{3050F522-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property htmlFor: WideString dispid 1000;
+    property form: IHTMLFormElement readonly dispid 1002;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLListElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F20E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLListElement = interface(IDispatch)
+    ['{3050F20E-98B5-11CF-BB82-00AA00BDCE0B}']
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLListElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F20E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLListElementDisp = dispinterface
+    ['{3050F20E-98B5-11CF-BB82-00AA00BDCE0B}']
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLListElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F822-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLListElement2 = interface(IDispatch)
+    ['{3050F822-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_compact(p: WordBool); safecall;
+    function Get_compact: WordBool; safecall;
+    property compact: WordBool read Get_compact write Set_compact;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLListElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F822-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLListElement2Disp = dispinterface
+    ['{3050F822-98B5-11CF-BB82-00AA00BDCE0B}']
+    property compact: WordBool dispid 1001;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLListElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F525-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLListElement = dispinterface
+    ['{3050F525-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property compact: WordBool dispid 1001;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLUListElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1DD-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLUListElement = interface(IDispatch)
+    ['{3050F1DD-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_compact(p: WordBool); safecall;
+    function Get_compact: WordBool; safecall;
+    procedure Set_type_(const p: WideString); safecall;
+    function Get_type_: WideString; safecall;
+    property compact: WordBool read Get_compact write Set_compact;
+    property type_: WideString read Get_type_ write Set_type_;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLUListElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1DD-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLUListElementDisp = dispinterface
+    ['{3050F1DD-98B5-11CF-BB82-00AA00BDCE0B}']
+    property compact: WordBool dispid 1001;
+    property type_: WideString dispid - 2147413095;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLUListElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F538-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLUListElement = dispinterface
+    ['{3050F538-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property compact: WordBool dispid 1001;
+    property type_: WideString dispid - 2147413095;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLOListElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1DE-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLOListElement = interface(IDispatch)
+    ['{3050F1DE-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_compact(p: WordBool); safecall;
+    function Get_compact: WordBool; safecall;
+    procedure Set_Start(p: Integer); safecall;
+    function Get_Start: Integer; safecall;
+    procedure Set_type_(const p: WideString); safecall;
+    function Get_type_: WideString; safecall;
+    property compact: WordBool read Get_compact write Set_compact;
+    property Start: Integer read Get_Start write Set_Start;
+    property type_: WideString read Get_type_ write Set_type_;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLOListElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1DE-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLOListElementDisp = dispinterface
+    ['{3050F1DE-98B5-11CF-BB82-00AA00BDCE0B}']
+    property compact: WordBool dispid 1001;
+    property Start: Integer dispid 1003;
+    property type_: WideString dispid - 2147413095;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLOListElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F52A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLOListElement = dispinterface
+    ['{3050F52A-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property compact: WordBool dispid 1001;
+    property Start: Integer dispid 1003;
+    property type_: WideString dispid - 2147413095;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLLIElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1E0-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLLIElement = interface(IDispatch)
+    ['{3050F1E0-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_type_(const p: WideString); safecall;
+    function Get_type_: WideString; safecall;
+    procedure Set_value(p: Integer); safecall;
+    function Get_value: Integer; safecall;
+    property type_: WideString read Get_type_ write Set_type_;
+    property value: Integer read Get_value write Set_value;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLLIElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1E0-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLLIElementDisp = dispinterface
+    ['{3050F1E0-98B5-11CF-BB82-00AA00BDCE0B}']
+    property type_: WideString dispid - 2147413095;
+    property value: Integer dispid 1001;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLLIElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F523-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLLIElement = dispinterface
+    ['{3050F523-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property type_: WideString dispid - 2147413095;
+    property value: Integer dispid 1001;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLBlockElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F208-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBlockElement = interface(IDispatch)
+    ['{3050F208-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_clear(const p: WideString); safecall;
+    function Get_clear: WideString; safecall;
+    property clear: WideString read Get_clear write Set_clear;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLBlockElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F208-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBlockElementDisp = dispinterface
+    ['{3050F208-98B5-11CF-BB82-00AA00BDCE0B}']
+    property clear: WideString dispid - 2147413096;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLBlockElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F823-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBlockElement2 = interface(IDispatch)
+    ['{3050F823-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_cite(const p: WideString); safecall;
+    function Get_cite: WideString; safecall;
+    procedure Set_width(const p: WideString); safecall;
+    function Get_width: WideString; safecall;
+    property cite: WideString read Get_cite write Set_cite;
+    property width: WideString read Get_width write Set_width;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLBlockElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F823-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBlockElement2Disp = dispinterface
+    ['{3050F823-98B5-11CF-BB82-00AA00BDCE0B}']
+    property cite: WideString dispid 1001;
+    property width: WideString dispid 1002;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLBlockElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F506-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLBlockElement = dispinterface
+    ['{3050F506-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property clear: WideString dispid - 2147413096;
+    property cite: WideString dispid 1001;
+    property width: WideString dispid 1002;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDivElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F200-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDivElement = interface(IDispatch)
+    ['{3050F200-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    procedure Set_noWrap(p: WordBool); safecall;
+    function Get_noWrap: WordBool; safecall;
+    property align: WideString read Get_align write Set_align;
+    property noWrap: WordBool read Get_noWrap write Set_noWrap;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDivElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F200-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDivElementDisp = dispinterface
+    ['{3050F200-98B5-11CF-BB82-00AA00BDCE0B}']
+    property align: WideString dispid - 2147418040;
+    property noWrap: WordBool dispid - 2147413107;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLDivElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F50C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLDivElement = dispinterface
+    ['{3050F50C-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property align: WideString dispid - 2147418040;
+    property noWrap: WordBool dispid - 2147413107;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDDElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1F2-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDDElement = interface(IDispatch)
+    ['{3050F1F2-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_noWrap(p: WordBool); safecall;
+    function Get_noWrap: WordBool; safecall;
+    property noWrap: WordBool read Get_noWrap write Set_noWrap;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDDElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1F2-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDDElementDisp = dispinterface
+    ['{3050F1F2-98B5-11CF-BB82-00AA00BDCE0B}']
+    property noWrap: WordBool dispid - 2147413107;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLDDElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F50B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLDDElement = dispinterface
+    ['{3050F50B-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property noWrap: WordBool dispid - 2147413107;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDTElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1F3-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDTElement = interface(IDispatch)
+    ['{3050F1F3-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_noWrap(p: WordBool); safecall;
+    function Get_noWrap: WordBool; safecall;
+    property noWrap: WordBool read Get_noWrap write Set_noWrap;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDTElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1F3-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDTElementDisp = dispinterface
+    ['{3050F1F3-98B5-11CF-BB82-00AA00BDCE0B}']
+    property noWrap: WordBool dispid - 2147413107;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLDTElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F50D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLDTElement = dispinterface
+    ['{3050F50D-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property noWrap: WordBool dispid - 2147413107;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLBRElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1F0-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBRElement = interface(IDispatch)
+    ['{3050F1F0-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_clear(const p: WideString); safecall;
+    function Get_clear: WideString; safecall;
+    property clear: WideString read Get_clear write Set_clear;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLBRElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1F0-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBRElementDisp = dispinterface
+    ['{3050F1F0-98B5-11CF-BB82-00AA00BDCE0B}']
+    property clear: WideString dispid - 2147413096;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLBRElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F53A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLBRElement = dispinterface
+    ['{3050F53A-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property clear: WideString dispid - 2147413096;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDListElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1F1-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDListElement = interface(IDispatch)
+    ['{3050F1F1-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_compact(p: WordBool); safecall;
+    function Get_compact: WordBool; safecall;
+    property compact: WordBool read Get_compact write Set_compact;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDListElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1F1-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDListElementDisp = dispinterface
+    ['{3050F1F1-98B5-11CF-BB82-00AA00BDCE0B}']
+    property compact: WordBool dispid 1001;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLDListElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F53B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLDListElement = dispinterface
+    ['{3050F53B-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property compact: WordBool dispid 1001;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLHRElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1F4-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLHRElement = interface(IDispatch)
+    ['{3050F1F4-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    procedure Set_color(p: OleVariant); safecall;
+    function Get_color: OleVariant; safecall;
+    procedure Set_noShade(p: WordBool); safecall;
+    function Get_noShade: WordBool; safecall;
+    procedure Set_width(p: OleVariant); safecall;
+    function Get_width: OleVariant; safecall;
+    procedure Set_size(p: OleVariant); safecall;
+    function Get_size: OleVariant; safecall;
+    property align: WideString read Get_align write Set_align;
+    property color: OleVariant read Get_color write Set_color;
+    property noShade: WordBool read Get_noShade write Set_noShade;
+    property width: OleVariant read Get_width write Set_width;
+    property size: OleVariant read Get_size write Set_size;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLHRElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1F4-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLHRElementDisp = dispinterface
+    ['{3050F1F4-98B5-11CF-BB82-00AA00BDCE0B}']
+    property align: WideString dispid - 2147418040;
+    property color: OleVariant dispid - 2147413110;
+    property noShade: WordBool dispid 1001;
+    property width: OleVariant dispid - 2147418107;
+    property size: OleVariant dispid - 2147418106;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLHRElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F53D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLHRElement = dispinterface
+    ['{3050F53D-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property align: WideString dispid - 2147418040;
+    property color: OleVariant dispid - 2147413110;
+    property noShade: WordBool dispid 1001;
+    property width: OleVariant dispid - 2147418107;
+    property size: OleVariant dispid - 2147418106;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLParaElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1F5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLParaElement = interface(IDispatch)
+    ['{3050F1F5-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    property align: WideString read Get_align write Set_align;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLParaElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1F5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLParaElementDisp = dispinterface
+    ['{3050F1F5-98B5-11CF-BB82-00AA00BDCE0B}']
+    property align: WideString dispid - 2147418040;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLParaElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F52C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLParaElement = dispinterface
+    ['{3050F52C-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property clear: WideString dispid - 2147413096;
+    property align: WideString dispid - 2147418040;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLElementCollection2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5EE-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLElementCollection2 = interface(IDispatch)
+    ['{3050F5EE-98B5-11CF-BB82-00AA00BDCE0B}']
+    function urns(urn: OleVariant): IDispatch; safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLElementCollection2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5EE-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLElementCollection2Disp = dispinterface
+    ['{3050F5EE-98B5-11CF-BB82-00AA00BDCE0B}']
+    function urns(urn: OleVariant): IDispatch; dispid 1505;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLElementCollection3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F835-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLElementCollection3 = interface(IDispatch)
+    ['{3050F835-98B5-11CF-BB82-00AA00BDCE0B}']
+    function namedItem(const name: WideString): IDispatch; safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLElementCollection3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F835-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLElementCollection3Disp = dispinterface
+    ['{3050F835-98B5-11CF-BB82-00AA00BDCE0B}']
+    function namedItem(const name: WideString): IDispatch; dispid 1506;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLElementCollection
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F56B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLElementCollection = dispinterface
+    ['{3050F56B-98B5-11CF-BB82-00AA00BDCE0B}']
+    function toString: WideString; dispid 1501;
+    property length: Integer dispid 1500;
+    property _newEnum: IUnknown readonly dispid - 4;
+    function item(name: OleVariant; index: OleVariant): IDispatch; dispid 0;
+    function tags(tagName: OleVariant): IDispatch; dispid 1502;
+    function urns(urn: OleVariant): IDispatch; dispid 1505;
+    function namedItem(const name: WideString): IDispatch; dispid 1506;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLHeaderElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1F6-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLHeaderElement = interface(IDispatch)
+    ['{3050F1F6-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    property align: WideString read Get_align write Set_align;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLHeaderElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1F6-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLHeaderElementDisp = dispinterface
+    ['{3050F1F6-98B5-11CF-BB82-00AA00BDCE0B}']
+    property align: WideString dispid - 2147418040;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLHeaderElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F515-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLHeaderElement = dispinterface
+    ['{3050F515-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property clear: WideString dispid - 2147413096;
+    property align: WideString dispid - 2147418040;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLSelectElementEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F622-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLSelectElementEvents2 = dispinterface
+    ['{3050F622-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+    procedure onchange(const pEvtObj: IHTMLEventObj); dispid 1001;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLSelectElementEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F302-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLSelectElementEvents = dispinterface
+    ['{3050F302-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+    procedure onchange; dispid 1001;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLSelectElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F244-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLSelectElement = interface(IDispatch)
+    ['{3050F244-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_size(p: Integer); safecall;
+    function Get_size: Integer; safecall;
+    procedure Set_multiple(p: WordBool); safecall;
+    function Get_multiple: WordBool; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    function Get_options: IDispatch; safecall;
+    procedure Set_onchange(p: OleVariant); safecall;
+    function Get_onchange: OleVariant; safecall;
+    procedure Set_selectedIndex(p: Integer); safecall;
+    function Get_selectedIndex: Integer; safecall;
+    function Get_type_: WideString; safecall;
+    procedure Set_value(const p: WideString); safecall;
+    function Get_value: WideString; safecall;
+    procedure Set_disabled(p: WordBool); safecall;
+    function Get_disabled: WordBool; safecall;
+    function Get_form: IHTMLFormElement; safecall;
+    procedure add(const element: IHTMLElement; before: OleVariant); safecall;
+    procedure remove(index: Integer); safecall;
+    procedure Set_length(p: Integer); safecall;
+    function Get_length: Integer; safecall;
+    function Get__newEnum: IUnknown; safecall;
+    function item(name: OleVariant; index: OleVariant): IDispatch; safecall;
+    function tags(tagName: OleVariant): IDispatch; safecall;
+    property size: Integer read Get_size write Set_size;
+    property multiple: WordBool read Get_multiple write Set_multiple;
+    property name: WideString read Get_name write Set_name;
+    property options: IDispatch read Get_options;
+    property onchange: OleVariant read Get_onchange write Set_onchange;
+    property selectedIndex: Integer read Get_selectedIndex write Set_selectedIndex;
+    property type_: WideString read Get_type_;
+    property value: WideString read Get_value write Set_value;
+    property disabled: WordBool read Get_disabled write Set_disabled;
+    property form: IHTMLFormElement read Get_form;
+    property length: Integer read Get_length write Set_length;
+    property _newEnum: IUnknown read Get__newEnum;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLSelectElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F244-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLSelectElementDisp = dispinterface
+    ['{3050F244-98B5-11CF-BB82-00AA00BDCE0B}']
+    property size: Integer dispid 1002;
+    property multiple: WordBool dispid 1003;
+    property name: WideString dispid - 2147418112;
+    property options: IDispatch readonly dispid 1005;
+    property onchange: OleVariant dispid - 2147412082;
+    property selectedIndex: Integer dispid 1010;
+    property type_: WideString readonly dispid 1012;
+    property value: WideString dispid 1011;
+    property disabled: WordBool dispid - 2147418036;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    procedure add(const element: IHTMLElement; before: OleVariant); dispid 1503;
+    procedure remove(index: Integer); dispid 1504;
+    property length: Integer dispid 1500;
+    property _newEnum: IUnknown readonly dispid - 4;
+    function item(name: OleVariant; index: OleVariant): IDispatch; dispid 0;
+    function tags(tagName: OleVariant): IDispatch; dispid 1502;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLSelectElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5ED-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLSelectElement2 = interface(IDispatch)
+    ['{3050F5ED-98B5-11CF-BB82-00AA00BDCE0B}']
+    function urns(urn: OleVariant): IDispatch; safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLSelectElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5ED-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLSelectElement2Disp = dispinterface
+    ['{3050F5ED-98B5-11CF-BB82-00AA00BDCE0B}']
+    function urns(urn: OleVariant): IDispatch; dispid 1505;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLSelectElement4
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F838-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLSelectElement4 = interface(IDispatch)
+    ['{3050F838-98B5-11CF-BB82-00AA00BDCE0B}']
+    function namedItem(const name: WideString): IDispatch; safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLSelectElement4Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F838-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLSelectElement4Disp = dispinterface
+    ['{3050F838-98B5-11CF-BB82-00AA00BDCE0B}']
+    function namedItem(const name: WideString): IDispatch; dispid 1506;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLSelectElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F531-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLSelectElement = dispinterface
+    ['{3050F531-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property size: Integer dispid 1002;
+    property multiple: WordBool dispid 1003;
+    property name: WideString dispid - 2147418112;
+    property options: IDispatch readonly dispid 1005;
+    property onchange: OleVariant dispid - 2147412082;
+    property selectedIndex: Integer dispid 1010;
+    property type_: WideString readonly dispid 1012;
+    property value: WideString dispid 1011;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    procedure add(const element: IHTMLElement; before: OleVariant); dispid 1503;
+    procedure remove(index: Integer); dispid 1504;
+    property length: Integer dispid 1500;
+    property _newEnum: IUnknown readonly dispid - 4;
+    function item(name: OleVariant; index: OleVariant): IDispatch; dispid 0;
+    function tags(tagName: OleVariant): IDispatch; dispid 1502;
+    function urns(urn: OleVariant): IDispatch; dispid 1505;
+    function namedItem(const name: WideString): IDispatch; dispid 1506;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLSelectionObject
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F25A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLSelectionObject = interface(IDispatch)
+    ['{3050F25A-98B5-11CF-BB82-00AA00BDCE0B}']
+    function createRange: IDispatch; safecall;
+    procedure empty; safecall;
+    procedure clear; safecall;
+    function Get_type_: WideString; safecall;
+    property type_: WideString read Get_type_;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLSelectionObjectDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F25A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLSelectionObjectDisp = dispinterface
+    ['{3050F25A-98B5-11CF-BB82-00AA00BDCE0B}']
+    function createRange: IDispatch; dispid 1001;
+    procedure empty; dispid 1002;
+    procedure clear; dispid 1003;
+    property type_: WideString readonly dispid 1004;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLSelectionObject2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F7EC-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLSelectionObject2 = interface(IDispatch)
+    ['{3050F7EC-98B5-11CF-BB82-00AA00BDCE0B}']
+    function createRangeCollection: IDispatch; safecall;
+    function Get_typeDetail: WideString; safecall;
+    property typeDetail: WideString read Get_typeDetail;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLSelectionObject2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F7EC-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLSelectionObject2Disp = dispinterface
+    ['{3050F7EC-98B5-11CF-BB82-00AA00BDCE0B}']
+    function createRangeCollection: IDispatch; dispid 1005;
+    property typeDetail: WideString readonly dispid 1006;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLOptionElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F211-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLOptionElement = interface(IDispatch)
+    ['{3050F211-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_selected(p: WordBool); safecall;
+    function Get_selected: WordBool; safecall;
+    procedure Set_value(const p: WideString); safecall;
+    function Get_value: WideString; safecall;
+    procedure Set_defaultSelected(p: WordBool); safecall;
+    function Get_defaultSelected: WordBool; safecall;
+    procedure Set_index(p: Integer); safecall;
+    function Get_index: Integer; safecall;
+    procedure Set_text(const p: WideString); safecall;
+    function Get_text: WideString; safecall;
+    function Get_form: IHTMLFormElement; safecall;
+    property selected: WordBool read Get_selected write Set_selected;
+    property value: WideString read Get_value write Set_value;
+    property defaultSelected: WordBool read Get_defaultSelected write Set_defaultSelected;
+    property index: Integer read Get_index write Set_index;
+    property text: WideString read Get_text write Set_text;
+    property form: IHTMLFormElement read Get_form;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLOptionElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F211-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLOptionElementDisp = dispinterface
+    ['{3050F211-98B5-11CF-BB82-00AA00BDCE0B}']
+    property selected: WordBool dispid 1001;
+    property value: WideString dispid 1002;
+    property defaultSelected: WordBool dispid 1003;
+    property index: Integer dispid 1005;
+    property text: WideString dispid 1004;
+    property form: IHTMLFormElement readonly dispid 1006;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLOptionElement3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F820-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLOptionElement3 = interface(IDispatch)
+    ['{3050F820-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_label_(const p: WideString); safecall;
+    function Get_label_: WideString; safecall;
+    property label_: WideString read Get_label_ write Set_label_;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLOptionElement3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F820-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLOptionElement3Disp = dispinterface
+    ['{3050F820-98B5-11CF-BB82-00AA00BDCE0B}']
+    property label_: WideString dispid 1007;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLOptionElementFactory
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F38C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLOptionElementFactory = interface(IDispatch)
+    ['{3050F38C-98B5-11CF-BB82-00AA00BDCE0B}']
+    function create(text: OleVariant; value: OleVariant; defaultSelected: OleVariant;
+      selected: OleVariant): IHTMLOptionElement; safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLOptionElementFactoryDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F38C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLOptionElementFactoryDisp = dispinterface
+    ['{3050F38C-98B5-11CF-BB82-00AA00BDCE0B}']
+    function create(text: OleVariant; value: OleVariant; defaultSelected: OleVariant;
+      selected: OleVariant): IHTMLOptionElement; dispid 0;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLOptionElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F52B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLOptionElement = dispinterface
+    ['{3050F52B-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property selected: WordBool dispid 1001;
+    property value: WideString dispid 1002;
+    property defaultSelected: WordBool dispid 1003;
+    property index: Integer dispid 1005;
+    property text: WideString dispid 1004;
+    property form: IHTMLFormElement readonly dispid 1006;
+    property label_: WideString dispid 1007;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLButtonElementEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F617-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLButtonElementEvents2 = dispinterface
+    ['{3050F617-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLButtonElementEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F2B3-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLButtonElementEvents = dispinterface
+    ['{3050F2B3-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLInputTextElementEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F618-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLInputTextElementEvents2 = dispinterface
+    ['{3050F618-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+    function onchange(const pEvtObj: IHTMLEventObj): WordBool; dispid 1001;
+    procedure onselect(const pEvtObj: IHTMLEventObj); dispid 1006;
+    procedure onload(const pEvtObj: IHTMLEventObj); dispid 1003;
+    procedure onerror(const pEvtObj: IHTMLEventObj); dispid 1002;
+    procedure onabort(const pEvtObj: IHTMLEventObj); dispid 1000;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLOptionButtonElementEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F619-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLOptionButtonElementEvents2 = dispinterface
+    ['{3050F619-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+    function onchange(const pEvtObj: IHTMLEventObj): WordBool; dispid 1001;
+    procedure onselect(const pEvtObj: IHTMLEventObj); dispid 1006;
+    procedure onload(const pEvtObj: IHTMLEventObj); dispid 1003;
+    procedure onerror(const pEvtObj: IHTMLEventObj); dispid 1002;
+    procedure onabort(const pEvtObj: IHTMLEventObj); dispid 1000;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLInputFileElementEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F61A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLInputFileElementEvents2 = dispinterface
+    ['{3050F61A-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+    function onchange(const pEvtObj: IHTMLEventObj): WordBool; dispid 1001;
+    procedure onselect(const pEvtObj: IHTMLEventObj); dispid 1006;
+    procedure onload(const pEvtObj: IHTMLEventObj); dispid 1003;
+    procedure onerror(const pEvtObj: IHTMLEventObj); dispid 1002;
+    procedure onabort(const pEvtObj: IHTMLEventObj); dispid 1000;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLInputImageEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F61B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLInputImageEvents2 = dispinterface
+    ['{3050F61B-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+    procedure onload(const pEvtObj: IHTMLEventObj); dispid 1003;
+    procedure onerror(const pEvtObj: IHTMLEventObj); dispid 1002;
+    procedure onabort(const pEvtObj: IHTMLEventObj); dispid 1000;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLInputTextElementEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F2A7-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLInputTextElementEvents = dispinterface
+    ['{3050F2A7-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+    function onchange: WordBool; dispid 1001;
+    procedure onselect; dispid 1006;
+    procedure onload; dispid 1003;
+    procedure onerror; dispid 1002;
+    procedure onabort; dispid 1000;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLOptionButtonElementEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F2BD-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLOptionButtonElementEvents = dispinterface
+    ['{3050F2BD-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+    function onchange: WordBool; dispid 1001;
+    procedure onselect; dispid 1006;
+    procedure onload; dispid 1003;
+    procedure onerror; dispid 1002;
+    procedure onabort; dispid 1000;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLInputFileElementEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F2AF-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLInputFileElementEvents = dispinterface
+    ['{3050F2AF-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+    function onchange: WordBool; dispid 1001;
+    procedure onselect; dispid 1006;
+    procedure onload; dispid 1003;
+    procedure onerror; dispid 1002;
+    procedure onabort; dispid 1000;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLInputImageEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F2C3-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLInputImageEvents = dispinterface
+    ['{3050F2C3-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+    procedure onload; dispid 1003;
+    procedure onerror; dispid 1002;
+    procedure onabort; dispid 1000;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLInputElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5D2-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLInputElement = interface(IDispatch)
+    ['{3050F5D2-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_type_(const p: WideString); safecall;
+    function Get_type_: WideString; safecall;
+    procedure Set_value(const p: WideString); safecall;
+    function Get_value: WideString; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_status(p: WordBool); safecall;
+    function Get_status: WordBool; safecall;
+    procedure Set_disabled(p: WordBool); safecall;
+    function Get_disabled: WordBool; safecall;
+    function Get_form: IHTMLFormElement; safecall;
+    procedure Set_size(p: Integer); safecall;
+    function Get_size: Integer; safecall;
+    procedure Set_maxLength(p: Integer); safecall;
+    function Get_maxLength: Integer; safecall;
+    procedure select; safecall;
+    procedure Set_onchange(p: OleVariant); safecall;
+    function Get_onchange: OleVariant; safecall;
+    procedure Set_onselect(p: OleVariant); safecall;
+    function Get_onselect: OleVariant; safecall;
+    procedure Set_defaultValue(const p: WideString); safecall;
+    function Get_defaultValue: WideString; safecall;
+    procedure Set_readOnly(p: WordBool); safecall;
+    function Get_readOnly: WordBool; safecall;
+    function createTextRange: IHTMLTxtRange; safecall;
+    procedure Set_indeterminate(p: WordBool); safecall;
+    function Get_indeterminate: WordBool; safecall;
+    procedure Set_defaultChecked(p: WordBool); safecall;
+    function Get_defaultChecked: WordBool; safecall;
+    procedure Set_checked(p: WordBool); safecall;
+    function Get_checked: WordBool; safecall;
+    procedure Set_border(p: OleVariant); safecall;
+    function Get_border: OleVariant; safecall;
+    procedure Set_vspace(p: Integer); safecall;
+    function Get_vspace: Integer; safecall;
+    procedure Set_hspace(p: Integer); safecall;
+    function Get_hspace: Integer; safecall;
+    procedure Set_alt(const p: WideString); safecall;
+    function Get_alt: WideString; safecall;
+    procedure Set_src(const p: WideString); safecall;
+    function Get_src: WideString; safecall;
+    procedure Set_lowsrc(const p: WideString); safecall;
+    function Get_lowsrc: WideString; safecall;
+    procedure Set_vrml(const p: WideString); safecall;
+    function Get_vrml: WideString; safecall;
+    procedure Set_dynsrc(const p: WideString); safecall;
+    function Get_dynsrc: WideString; safecall;
+    function Get_readyState: WideString; safecall;
+    function Get_complete: WordBool; safecall;
+    procedure Set_loop(p: OleVariant); safecall;
+    function Get_loop: OleVariant; safecall;
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    procedure Set_onload(p: OleVariant); safecall;
+    function Get_onload: OleVariant; safecall;
+    procedure Set_onerror(p: OleVariant); safecall;
+    function Get_onerror: OleVariant; safecall;
+    procedure Set_onabort(p: OleVariant); safecall;
+    function Get_onabort: OleVariant; safecall;
+    procedure Set_width(p: Integer); safecall;
+    function Get_width: Integer; safecall;
+    procedure Set_height(p: Integer); safecall;
+    function Get_height: Integer; safecall;
+    procedure Set_Start(const p: WideString); safecall;
+    function Get_Start: WideString; safecall;
+    property type_: WideString read Get_type_ write Set_type_;
+    property value: WideString read Get_value write Set_value;
+    property name: WideString read Get_name write Set_name;
+    property status: WordBool read Get_status write Set_status;
+    property disabled: WordBool read Get_disabled write Set_disabled;
+    property form: IHTMLFormElement read Get_form;
+    property size: Integer read Get_size write Set_size;
+    property maxLength: Integer read Get_maxLength write Set_maxLength;
+    property onchange: OleVariant read Get_onchange write Set_onchange;
+    property onselect: OleVariant read Get_onselect write Set_onselect;
+    property defaultValue: WideString read Get_defaultValue write Set_defaultValue;
+    property readOnly: WordBool read Get_readOnly write Set_readOnly;
+    property indeterminate: WordBool read Get_indeterminate write Set_indeterminate;
+    property defaultChecked: WordBool read Get_defaultChecked write Set_defaultChecked;
+    property checked: WordBool read Get_checked write Set_checked;
+    property border: OleVariant read Get_border write Set_border;
+    property vspace: Integer read Get_vspace write Set_vspace;
+    property hspace: Integer read Get_hspace write Set_hspace;
+    property alt: WideString read Get_alt write Set_alt;
+    property src: WideString read Get_src write Set_src;
+    property lowsrc: WideString read Get_lowsrc write Set_lowsrc;
+    property vrml: WideString read Get_vrml write Set_vrml;
+    property dynsrc: WideString read Get_dynsrc write Set_dynsrc;
+    property readyState: WideString read Get_readyState;
+    property complete: WordBool read Get_complete;
+    property loop: OleVariant read Get_loop write Set_loop;
+    property align: WideString read Get_align write Set_align;
+    property onload: OleVariant read Get_onload write Set_onload;
+    property onerror: OleVariant read Get_onerror write Set_onerror;
+    property onabort: OleVariant read Get_onabort write Set_onabort;
+    property width: Integer read Get_width write Set_width;
+    property height: Integer read Get_height write Set_height;
+    property Start: WideString read Get_Start write Set_Start;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLInputElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5D2-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLInputElementDisp = dispinterface
+    ['{3050F5D2-98B5-11CF-BB82-00AA00BDCE0B}']
+    property type_: WideString dispid 2000;
+    property value: WideString dispid - 2147413011;
+    property name: WideString dispid - 2147418112;
+    property status: WordBool dispid 2001;
+    property disabled: WordBool dispid - 2147418036;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    property size: Integer dispid 2002;
+    property maxLength: Integer dispid 2003;
+    procedure select; dispid 2004;
+    property onchange: OleVariant dispid - 2147412082;
+    property onselect: OleVariant dispid - 2147412102;
+    property defaultValue: WideString dispid - 2147413029;
+    property readOnly: WordBool dispid 2005;
+    function createTextRange: IHTMLTxtRange; dispid 2006;
+    property indeterminate: WordBool dispid 2007;
+    property defaultChecked: WordBool dispid 2008;
+    property checked: WordBool dispid 2009;
+    property border: OleVariant dispid 2012;
+    property vspace: Integer dispid 2013;
+    property hspace: Integer dispid 2014;
+    property alt: WideString dispid 2010;
+    property src: WideString dispid 2011;
+    property lowsrc: WideString dispid 2015;
+    property vrml: WideString dispid 2016;
+    property dynsrc: WideString dispid 2017;
+    property readyState: WideString readonly dispid - 2147412996;
+    property complete: WordBool readonly dispid 2018;
+    property loop: OleVariant dispid 2019;
+    property align: WideString dispid - 2147418039;
+    property onload: OleVariant dispid - 2147412080;
+    property onerror: OleVariant dispid - 2147412083;
+    property onabort: OleVariant dispid - 2147412084;
+    property width: Integer dispid - 2147418107;
+    property height: Integer dispid - 2147418106;
+    property Start: WideString dispid 2020;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLInputElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F821-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLInputElement2 = interface(IDispatch)
+    ['{3050F821-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_accept(const p: WideString); safecall;
+    function Get_accept: WideString; safecall;
+    procedure Set_useMap(const p: WideString); safecall;
+    function Get_useMap: WideString; safecall;
+    property accept: WideString read Get_accept write Set_accept;
+    property useMap: WideString read Get_useMap write Set_useMap;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLInputElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F821-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLInputElement2Disp = dispinterface
+    ['{3050F821-98B5-11CF-BB82-00AA00BDCE0B}']
+    property accept: WideString dispid 2022;
+    property useMap: WideString dispid 2023;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLInputButtonElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2B2-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLInputButtonElement = interface(IDispatch)
+    ['{3050F2B2-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_type_: WideString; safecall;
+    procedure Set_value(const p: WideString); safecall;
+    function Get_value: WideString; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_status(p: OleVariant); safecall;
+    function Get_status: OleVariant; safecall;
+    procedure Set_disabled(p: WordBool); safecall;
+    function Get_disabled: WordBool; safecall;
+    function Get_form: IHTMLFormElement; safecall;
+    function createTextRange: IHTMLTxtRange; safecall;
+    property type_: WideString read Get_type_;
+    property value: WideString read Get_value write Set_value;
+    property name: WideString read Get_name write Set_name;
+    property status: OleVariant read Get_status write Set_status;
+    property disabled: WordBool read Get_disabled write Set_disabled;
+    property form: IHTMLFormElement read Get_form;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLInputButtonElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2B2-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLInputButtonElementDisp = dispinterface
+    ['{3050F2B2-98B5-11CF-BB82-00AA00BDCE0B}']
+    property type_: WideString readonly dispid 2000;
+    property value: WideString dispid - 2147413011;
+    property name: WideString dispid - 2147418112;
+    property status: OleVariant dispid 2021;
+    property disabled: WordBool dispid - 2147418036;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    function createTextRange: IHTMLTxtRange; dispid 2006;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLInputHiddenElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2A4-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLInputHiddenElement = interface(IDispatch)
+    ['{3050F2A4-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_type_: WideString; safecall;
+    procedure Set_value(const p: WideString); safecall;
+    function Get_value: WideString; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_status(p: OleVariant); safecall;
+    function Get_status: OleVariant; safecall;
+    procedure Set_disabled(p: WordBool); safecall;
+    function Get_disabled: WordBool; safecall;
+    function Get_form: IHTMLFormElement; safecall;
+    function createTextRange: IHTMLTxtRange; safecall;
+    property type_: WideString read Get_type_;
+    property value: WideString read Get_value write Set_value;
+    property name: WideString read Get_name write Set_name;
+    property status: OleVariant read Get_status write Set_status;
+    property disabled: WordBool read Get_disabled write Set_disabled;
+    property form: IHTMLFormElement read Get_form;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLInputHiddenElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2A4-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLInputHiddenElementDisp = dispinterface
+    ['{3050F2A4-98B5-11CF-BB82-00AA00BDCE0B}']
+    property type_: WideString readonly dispid 2000;
+    property value: WideString dispid - 2147413011;
+    property name: WideString dispid - 2147418112;
+    property status: OleVariant dispid 2021;
+    property disabled: WordBool dispid - 2147418036;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    function createTextRange: IHTMLTxtRange; dispid 2006;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLInputTextElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2A6-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLInputTextElement = interface(IDispatch)
+    ['{3050F2A6-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_type_: WideString; safecall;
+    procedure Set_value(const p: WideString); safecall;
+    function Get_value: WideString; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_status(p: OleVariant); safecall;
+    function Get_status: OleVariant; safecall;
+    procedure Set_disabled(p: WordBool); safecall;
+    function Get_disabled: WordBool; safecall;
+    function Get_form: IHTMLFormElement; safecall;
+    procedure Set_defaultValue(const p: WideString); safecall;
+    function Get_defaultValue: WideString; safecall;
+    procedure Set_size(p: Integer); safecall;
+    function Get_size: Integer; safecall;
+    procedure Set_maxLength(p: Integer); safecall;
+    function Get_maxLength: Integer; safecall;
+    procedure select; safecall;
+    procedure Set_onchange(p: OleVariant); safecall;
+    function Get_onchange: OleVariant; safecall;
+    procedure Set_onselect(p: OleVariant); safecall;
+    function Get_onselect: OleVariant; safecall;
+    procedure Set_readOnly(p: WordBool); safecall;
+    function Get_readOnly: WordBool; safecall;
+    function createTextRange: IHTMLTxtRange; safecall;
+    property type_: WideString read Get_type_;
+    property value: WideString read Get_value write Set_value;
+    property name: WideString read Get_name write Set_name;
+    property status: OleVariant read Get_status write Set_status;
+    property disabled: WordBool read Get_disabled write Set_disabled;
+    property form: IHTMLFormElement read Get_form;
+    property defaultValue: WideString read Get_defaultValue write Set_defaultValue;
+    property size: Integer read Get_size write Set_size;
+    property maxLength: Integer read Get_maxLength write Set_maxLength;
+    property onchange: OleVariant read Get_onchange write Set_onchange;
+    property onselect: OleVariant read Get_onselect write Set_onselect;
+    property readOnly: WordBool read Get_readOnly write Set_readOnly;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLInputTextElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2A6-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLInputTextElementDisp = dispinterface
+    ['{3050F2A6-98B5-11CF-BB82-00AA00BDCE0B}']
+    property type_: WideString readonly dispid 2000;
+    property value: WideString dispid - 2147413011;
+    property name: WideString dispid - 2147418112;
+    property status: OleVariant dispid 2021;
+    property disabled: WordBool dispid - 2147418036;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    property defaultValue: WideString dispid - 2147413029;
+    property size: Integer dispid 2002;
+    property maxLength: Integer dispid 2003;
+    procedure select; dispid 2004;
+    property onchange: OleVariant dispid - 2147412082;
+    property onselect: OleVariant dispid - 2147412102;
+    property readOnly: WordBool dispid 2005;
+    function createTextRange: IHTMLTxtRange; dispid 2006;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLInputFileElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2AD-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLInputFileElement = interface(IDispatch)
+    ['{3050F2AD-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_type_: WideString; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_status(p: OleVariant); safecall;
+    function Get_status: OleVariant; safecall;
+    procedure Set_disabled(p: WordBool); safecall;
+    function Get_disabled: WordBool; safecall;
+    function Get_form: IHTMLFormElement; safecall;
+    procedure Set_size(p: Integer); safecall;
+    function Get_size: Integer; safecall;
+    procedure Set_maxLength(p: Integer); safecall;
+    function Get_maxLength: Integer; safecall;
+    procedure select; safecall;
+    procedure Set_onchange(p: OleVariant); safecall;
+    function Get_onchange: OleVariant; safecall;
+    procedure Set_onselect(p: OleVariant); safecall;
+    function Get_onselect: OleVariant; safecall;
+    procedure Set_value(const p: WideString); safecall;
+    function Get_value: WideString; safecall;
+    property type_: WideString read Get_type_;
+    property name: WideString read Get_name write Set_name;
+    property status: OleVariant read Get_status write Set_status;
+    property disabled: WordBool read Get_disabled write Set_disabled;
+    property form: IHTMLFormElement read Get_form;
+    property size: Integer read Get_size write Set_size;
+    property maxLength: Integer read Get_maxLength write Set_maxLength;
+    property onchange: OleVariant read Get_onchange write Set_onchange;
+    property onselect: OleVariant read Get_onselect write Set_onselect;
+    property value: WideString read Get_value write Set_value;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLInputFileElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2AD-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLInputFileElementDisp = dispinterface
+    ['{3050F2AD-98B5-11CF-BB82-00AA00BDCE0B}']
+    property type_: WideString readonly dispid 2000;
+    property name: WideString dispid - 2147418112;
+    property status: OleVariant dispid 2021;
+    property disabled: WordBool dispid - 2147418036;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    property size: Integer dispid 2002;
+    property maxLength: Integer dispid 2003;
+    procedure select; dispid 2004;
+    property onchange: OleVariant dispid - 2147412082;
+    property onselect: OleVariant dispid - 2147412102;
+    property value: WideString dispid - 2147413011;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLOptionButtonElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2BC-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLOptionButtonElement = interface(IDispatch)
+    ['{3050F2BC-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_value(const p: WideString); safecall;
+    function Get_value: WideString; safecall;
+    function Get_type_: WideString; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_checked(p: WordBool); safecall;
+    function Get_checked: WordBool; safecall;
+    procedure Set_defaultChecked(p: WordBool); safecall;
+    function Get_defaultChecked: WordBool; safecall;
+    procedure Set_onchange(p: OleVariant); safecall;
+    function Get_onchange: OleVariant; safecall;
+    procedure Set_disabled(p: WordBool); safecall;
+    function Get_disabled: WordBool; safecall;
+    procedure Set_status(p: WordBool); safecall;
+    function Get_status: WordBool; safecall;
+    procedure Set_indeterminate(p: WordBool); safecall;
+    function Get_indeterminate: WordBool; safecall;
+    function Get_form: IHTMLFormElement; safecall;
+    property value: WideString read Get_value write Set_value;
+    property type_: WideString read Get_type_;
+    property name: WideString read Get_name write Set_name;
+    property checked: WordBool read Get_checked write Set_checked;
+    property defaultChecked: WordBool read Get_defaultChecked write Set_defaultChecked;
+    property onchange: OleVariant read Get_onchange write Set_onchange;
+    property disabled: WordBool read Get_disabled write Set_disabled;
+    property status: WordBool read Get_status write Set_status;
+    property indeterminate: WordBool read Get_indeterminate write Set_indeterminate;
+    property form: IHTMLFormElement read Get_form;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLOptionButtonElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2BC-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLOptionButtonElementDisp = dispinterface
+    ['{3050F2BC-98B5-11CF-BB82-00AA00BDCE0B}']
+    property value: WideString dispid - 2147413011;
+    property type_: WideString readonly dispid 2000;
+    property name: WideString dispid - 2147418112;
+    property checked: WordBool dispid 2009;
+    property defaultChecked: WordBool dispid 2008;
+    property onchange: OleVariant dispid - 2147412082;
+    property disabled: WordBool dispid - 2147418036;
+    property status: WordBool dispid 2001;
+    property indeterminate: WordBool dispid 2007;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLInputImage
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2C2-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLInputImage = interface(IDispatch)
+    ['{3050F2C2-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_type_: WideString; safecall;
+    procedure Set_disabled(p: WordBool); safecall;
+    function Get_disabled: WordBool; safecall;
+    procedure Set_border(p: OleVariant); safecall;
+    function Get_border: OleVariant; safecall;
+    procedure Set_vspace(p: Integer); safecall;
+    function Get_vspace: Integer; safecall;
+    procedure Set_hspace(p: Integer); safecall;
+    function Get_hspace: Integer; safecall;
+    procedure Set_alt(const p: WideString); safecall;
+    function Get_alt: WideString; safecall;
+    procedure Set_src(const p: WideString); safecall;
+    function Get_src: WideString; safecall;
+    procedure Set_lowsrc(const p: WideString); safecall;
+    function Get_lowsrc: WideString; safecall;
+    procedure Set_vrml(const p: WideString); safecall;
+    function Get_vrml: WideString; safecall;
+    procedure Set_dynsrc(const p: WideString); safecall;
+    function Get_dynsrc: WideString; safecall;
+    function Get_readyState: WideString; safecall;
+    function Get_complete: WordBool; safecall;
+    procedure Set_loop(p: OleVariant); safecall;
+    function Get_loop: OleVariant; safecall;
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    procedure Set_onload(p: OleVariant); safecall;
+    function Get_onload: OleVariant; safecall;
+    procedure Set_onerror(p: OleVariant); safecall;
+    function Get_onerror: OleVariant; safecall;
+    procedure Set_onabort(p: OleVariant); safecall;
+    function Get_onabort: OleVariant; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_width(p: Integer); safecall;
+    function Get_width: Integer; safecall;
+    procedure Set_height(p: Integer); safecall;
+    function Get_height: Integer; safecall;
+    procedure Set_Start(const p: WideString); safecall;
+    function Get_Start: WideString; safecall;
+    property type_: WideString read Get_type_;
+    property disabled: WordBool read Get_disabled write Set_disabled;
+    property border: OleVariant read Get_border write Set_border;
+    property vspace: Integer read Get_vspace write Set_vspace;
+    property hspace: Integer read Get_hspace write Set_hspace;
+    property alt: WideString read Get_alt write Set_alt;
+    property src: WideString read Get_src write Set_src;
+    property lowsrc: WideString read Get_lowsrc write Set_lowsrc;
+    property vrml: WideString read Get_vrml write Set_vrml;
+    property dynsrc: WideString read Get_dynsrc write Set_dynsrc;
+    property readyState: WideString read Get_readyState;
+    property complete: WordBool read Get_complete;
+    property loop: OleVariant read Get_loop write Set_loop;
+    property align: WideString read Get_align write Set_align;
+    property onload: OleVariant read Get_onload write Set_onload;
+    property onerror: OleVariant read Get_onerror write Set_onerror;
+    property onabort: OleVariant read Get_onabort write Set_onabort;
+    property name: WideString read Get_name write Set_name;
+    property width: Integer read Get_width write Set_width;
+    property height: Integer read Get_height write Set_height;
+    property Start: WideString read Get_Start write Set_Start;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLInputImageDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2C2-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLInputImageDisp = dispinterface
+    ['{3050F2C2-98B5-11CF-BB82-00AA00BDCE0B}']
+    property type_: WideString readonly dispid 2000;
+    property disabled: WordBool dispid - 2147418036;
+    property border: OleVariant dispid 2012;
+    property vspace: Integer dispid 2013;
+    property hspace: Integer dispid 2014;
+    property alt: WideString dispid 2010;
+    property src: WideString dispid 2011;
+    property lowsrc: WideString dispid 2015;
+    property vrml: WideString dispid 2016;
+    property dynsrc: WideString dispid 2017;
+    property readyState: WideString readonly dispid - 2147412996;
+    property complete: WordBool readonly dispid 2018;
+    property loop: OleVariant dispid 2019;
+    property align: WideString dispid - 2147418039;
+    property onload: OleVariant dispid - 2147412080;
+    property onerror: OleVariant dispid - 2147412083;
+    property onabort: OleVariant dispid - 2147412084;
+    property name: WideString dispid - 2147418112;
+    property width: Integer dispid - 2147418107;
+    property height: Integer dispid - 2147418106;
+    property Start: WideString dispid 2020;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLInputElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F57D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLInputElement = dispinterface
+    ['{3050F57D-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property type_: WideString dispid 2000;
+    property value: WideString dispid - 2147413011;
+    property name: WideString dispid - 2147418112;
+    property status: WordBool dispid 2001;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    property size: Integer dispid 2002;
+    property maxLength: Integer dispid 2003;
+    procedure select; dispid 2004;
+    property onchange: OleVariant dispid - 2147412082;
+    property onselect: OleVariant dispid - 2147412102;
+    property defaultValue: WideString dispid - 2147413029;
+    property readOnly: WordBool dispid 2005;
+    function createTextRange: IHTMLTxtRange; dispid 2006;
+    property indeterminate: WordBool dispid 2007;
+    property defaultChecked: WordBool dispid 2008;
+    property checked: WordBool dispid 2009;
+    property border: OleVariant dispid 2012;
+    property vspace: Integer dispid 2013;
+    property hspace: Integer dispid 2014;
+    property alt: WideString dispid 2010;
+    property src: WideString dispid 2011;
+    property lowsrc: WideString dispid 2015;
+    property vrml: WideString dispid 2016;
+    property dynsrc: WideString dispid 2017;
+    property complete: WordBool readonly dispid 2018;
+    property loop: OleVariant dispid 2019;
+    property align: WideString dispid - 2147418039;
+    property onload: OleVariant dispid - 2147412080;
+    property onerror: OleVariant dispid - 2147412083;
+    property onabort: OleVariant dispid - 2147412084;
+    property width: Integer dispid - 2147418107;
+    property height: Integer dispid - 2147418106;
+    property Start: WideString dispid 2020;
+    property accept: WideString dispid 2022;
+    property useMap: WideString dispid 2023;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTextAreaElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2AA-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTextAreaElement = interface(IDispatch)
+    ['{3050F2AA-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_type_: WideString; safecall;
+    procedure Set_value(const p: WideString); safecall;
+    function Get_value: WideString; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_status(p: OleVariant); safecall;
+    function Get_status: OleVariant; safecall;
+    procedure Set_disabled(p: WordBool); safecall;
+    function Get_disabled: WordBool; safecall;
+    function Get_form: IHTMLFormElement; safecall;
+    procedure Set_defaultValue(const p: WideString); safecall;
+    function Get_defaultValue: WideString; safecall;
+    procedure select; safecall;
+    procedure Set_onchange(p: OleVariant); safecall;
+    function Get_onchange: OleVariant; safecall;
+    procedure Set_onselect(p: OleVariant); safecall;
+    function Get_onselect: OleVariant; safecall;
+    procedure Set_readOnly(p: WordBool); safecall;
+    function Get_readOnly: WordBool; safecall;
+    procedure Set_rows(p: Integer); safecall;
+    function Get_rows: Integer; safecall;
+    procedure Set_cols(p: Integer); safecall;
+    function Get_cols: Integer; safecall;
+    procedure Set_wrap(const p: WideString); safecall;
+    function Get_wrap: WideString; safecall;
+    function createTextRange: IHTMLTxtRange; safecall;
+    property type_: WideString read Get_type_;
+    property value: WideString read Get_value write Set_value;
+    property name: WideString read Get_name write Set_name;
+    property status: OleVariant read Get_status write Set_status;
+    property disabled: WordBool read Get_disabled write Set_disabled;
+    property form: IHTMLFormElement read Get_form;
+    property defaultValue: WideString read Get_defaultValue write Set_defaultValue;
+    property onchange: OleVariant read Get_onchange write Set_onchange;
+    property onselect: OleVariant read Get_onselect write Set_onselect;
+    property readOnly: WordBool read Get_readOnly write Set_readOnly;
+    property rows: Integer read Get_rows write Set_rows;
+    property cols: Integer read Get_cols write Set_cols;
+    property wrap: WideString read Get_wrap write Set_wrap;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTextAreaElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2AA-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTextAreaElementDisp = dispinterface
+    ['{3050F2AA-98B5-11CF-BB82-00AA00BDCE0B}']
+    property type_: WideString readonly dispid 2000;
+    property value: WideString dispid - 2147413011;
+    property name: WideString dispid - 2147418112;
+    property status: OleVariant dispid 2001;
+    property disabled: WordBool dispid - 2147418036;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    property defaultValue: WideString dispid - 2147413029;
+    procedure select; dispid 7005;
+    property onchange: OleVariant dispid - 2147412082;
+    property onselect: OleVariant dispid - 2147412102;
+    property readOnly: WordBool dispid 7004;
+    property rows: Integer dispid 7001;
+    property cols: Integer dispid 7002;
+    property wrap: WideString dispid 7003;
+    function createTextRange: IHTMLTxtRange; dispid 7006;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLTextAreaElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F521-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLTextAreaElement = dispinterface
+    ['{3050F521-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property type_: WideString readonly dispid 2000;
+    property value: WideString dispid - 2147413011;
+    property name: WideString dispid - 2147418112;
+    property status: OleVariant dispid 2001;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    property defaultValue: WideString dispid - 2147413029;
+    procedure select; dispid 7005;
+    property onchange: OleVariant dispid - 2147412082;
+    property onselect: OleVariant dispid - 2147412102;
+    property readOnly: WordBool dispid 7004;
+    property rows: Integer dispid 7001;
+    property cols: Integer dispid 7002;
+    property wrap: WideString dispid 7003;
+    function createTextRange: IHTMLTxtRange; dispid 7006;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLRichtextElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F54D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLRichtextElement = dispinterface
+    ['{3050F54D-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property type_: WideString readonly dispid 2000;
+    property value: WideString dispid - 2147413011;
+    property name: WideString dispid - 2147418112;
+    property status: OleVariant dispid 2001;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    property defaultValue: WideString dispid - 2147413029;
+    procedure select; dispid 7005;
+    property onchange: OleVariant dispid - 2147412082;
+    property onselect: OleVariant dispid - 2147412102;
+    property readOnly: WordBool dispid 7004;
+    property rows: Integer dispid 7001;
+    property cols: Integer dispid 7002;
+    property wrap: WideString dispid 7003;
+    function createTextRange: IHTMLTxtRange; dispid 7006;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLButtonElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2BB-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLButtonElement = interface(IDispatch)
+    ['{3050F2BB-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_type_: WideString; safecall;
+    procedure Set_value(const p: WideString); safecall;
+    function Get_value: WideString; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_status(p: OleVariant); safecall;
+    function Get_status: OleVariant; safecall;
+    procedure Set_disabled(p: WordBool); safecall;
+    function Get_disabled: WordBool; safecall;
+    function Get_form: IHTMLFormElement; safecall;
+    function createTextRange: IHTMLTxtRange; safecall;
+    property type_: WideString read Get_type_;
+    property value: WideString read Get_value write Set_value;
+    property name: WideString read Get_name write Set_name;
+    property status: OleVariant read Get_status write Set_status;
+    property disabled: WordBool read Get_disabled write Set_disabled;
+    property form: IHTMLFormElement read Get_form;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLButtonElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2BB-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLButtonElementDisp = dispinterface
+    ['{3050F2BB-98B5-11CF-BB82-00AA00BDCE0B}']
+    property type_: WideString readonly dispid 2000;
+    property value: WideString dispid - 2147413011;
+    property name: WideString dispid - 2147418112;
+    property status: OleVariant dispid 8001;
+    property disabled: WordBool dispid - 2147418036;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    function createTextRange: IHTMLTxtRange; dispid 8002;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLButtonElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F51F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLButtonElement = dispinterface
+    ['{3050F51F-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property type_: WideString readonly dispid 2000;
+    property value: WideString dispid - 2147413011;
+    property name: WideString dispid - 2147418112;
+    property status: OleVariant dispid 8001;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    function createTextRange: IHTMLTxtRange; dispid 8002;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLMarqueeElementEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F61F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLMarqueeElementEvents2 = dispinterface
+    ['{3050F61F-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+    procedure onchange(const pEvtObj: IHTMLEventObj); dispid 1001;
+    procedure onselect(const pEvtObj: IHTMLEventObj); dispid 1006;
+    procedure onbounce(const pEvtObj: IHTMLEventObj); dispid 1009;
+    procedure onfinish(const pEvtObj: IHTMLEventObj); dispid 1010;
+    procedure onstart(const pEvtObj: IHTMLEventObj); dispid 1011;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLMarqueeElementEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F2B8-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLMarqueeElementEvents = dispinterface
+    ['{3050F2B8-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+    procedure onchange; dispid 1001;
+    procedure onselect; dispid 1006;
+    procedure onbounce; dispid 1009;
+    procedure onfinish; dispid 1010;
+    procedure onstart; dispid 1011;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLMarqueeElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2B5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLMarqueeElement = interface(IDispatch)
+    ['{3050F2B5-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_bgColor(p: OleVariant); safecall;
+    function Get_bgColor: OleVariant; safecall;
+    procedure Set_scrollDelay(p: Integer); safecall;
+    function Get_scrollDelay: Integer; safecall;
+    procedure Set_direction(const p: WideString); safecall;
+    function Get_direction: WideString; safecall;
+    procedure Set_behavior(const p: WideString); safecall;
+    function Get_behavior: WideString; safecall;
+    procedure Set_scrollAmount(p: Integer); safecall;
+    function Get_scrollAmount: Integer; safecall;
+    procedure Set_loop(p: Integer); safecall;
+    function Get_loop: Integer; safecall;
+    procedure Set_vspace(p: Integer); safecall;
+    function Get_vspace: Integer; safecall;
+    procedure Set_hspace(p: Integer); safecall;
+    function Get_hspace: Integer; safecall;
+    procedure Set_onfinish(p: OleVariant); safecall;
+    function Get_onfinish: OleVariant; safecall;
+    procedure Set_onstart(p: OleVariant); safecall;
+    function Get_onstart: OleVariant; safecall;
+    procedure Set_onbounce(p: OleVariant); safecall;
+    function Get_onbounce: OleVariant; safecall;
+    procedure Set_width(p: OleVariant); safecall;
+    function Get_width: OleVariant; safecall;
+    procedure Set_height(p: OleVariant); safecall;
+    function Get_height: OleVariant; safecall;
+    procedure Set_trueSpeed(p: WordBool); safecall;
+    function Get_trueSpeed: WordBool; safecall;
+    procedure Start; safecall;
+    procedure stop; safecall;
+    property bgColor: OleVariant read Get_bgColor write Set_bgColor;
+    property scrollDelay: Integer read Get_scrollDelay write Set_scrollDelay;
+    property direction: WideString read Get_direction write Set_direction;
+    property behavior: WideString read Get_behavior write Set_behavior;
+    property scrollAmount: Integer read Get_scrollAmount write Set_scrollAmount;
+    property loop: Integer read Get_loop write Set_loop;
+    property vspace: Integer read Get_vspace write Set_vspace;
+    property hspace: Integer read Get_hspace write Set_hspace;
+    property onfinish: OleVariant read Get_onfinish write Set_onfinish;
+    property onstart: OleVariant read Get_onstart write Set_onstart;
+    property onbounce: OleVariant read Get_onbounce write Set_onbounce;
+    property width: OleVariant read Get_width write Set_width;
+    property height: OleVariant read Get_height write Set_height;
+    property trueSpeed: WordBool read Get_trueSpeed write Set_trueSpeed;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLMarqueeElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2B5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLMarqueeElementDisp = dispinterface
+    ['{3050F2B5-98B5-11CF-BB82-00AA00BDCE0B}']
+    property bgColor: OleVariant dispid - 501;
+    property scrollDelay: Integer dispid 6000;
+    property direction: WideString dispid 6001;
+    property behavior: WideString dispid 6002;
+    property scrollAmount: Integer dispid 6003;
+    property loop: Integer dispid 6004;
+    property vspace: Integer dispid 6005;
+    property hspace: Integer dispid 6006;
+    property onfinish: OleVariant dispid - 2147412086;
+    property onstart: OleVariant dispid - 2147412085;
+    property onbounce: OleVariant dispid - 2147412092;
+    property width: OleVariant dispid - 2147418107;
+    property height: OleVariant dispid - 2147418106;
+    property trueSpeed: WordBool dispid 6007;
+    procedure Start; dispid 6010;
+    procedure stop; dispid 6011;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLMarqueeElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F527-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLMarqueeElement = dispinterface
+    ['{3050F527-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property bgColor: OleVariant dispid - 501;
+    property scrollDelay: Integer dispid 6000;
+    property direction: WideString dispid 6001;
+    property behavior: WideString dispid 6002;
+    property scrollAmount: Integer dispid 6003;
+    property loop: Integer dispid 6004;
+    property vspace: Integer dispid 6005;
+    property hspace: Integer dispid 6006;
+    property onfinish: OleVariant dispid - 2147412086;
+    property onstart: OleVariant dispid - 2147412085;
+    property onbounce: OleVariant dispid - 2147412092;
+    property width: OleVariant dispid - 2147418107;
+    property height: OleVariant dispid - 2147418106;
+    property trueSpeed: WordBool dispid 6007;
+    procedure Start; dispid 6010;
+    procedure stop; dispid 6011;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLHtmlElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F81C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLHtmlElement = interface(IDispatch)
+    ['{3050F81C-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_version(const p: WideString); safecall;
+    function Get_version: WideString; safecall;
+    property version: WideString read Get_version write Set_version;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLHtmlElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F81C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLHtmlElementDisp = dispinterface
+    ['{3050F81C-98B5-11CF-BB82-00AA00BDCE0B}']
+    property version: WideString dispid 1001;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLHeadElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F81D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLHeadElement = interface(IDispatch)
+    ['{3050F81D-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_profile(const p: WideString); safecall;
+    function Get_profile: WideString; safecall;
+    property profile: WideString read Get_profile write Set_profile;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLHeadElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F81D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLHeadElementDisp = dispinterface
+    ['{3050F81D-98B5-11CF-BB82-00AA00BDCE0B}']
+    property profile: WideString dispid 1001;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTitleElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F322-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTitleElement = interface(IDispatch)
+    ['{3050F322-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_text(const p: WideString); safecall;
+    function Get_text: WideString; safecall;
+    property text: WideString read Get_text write Set_text;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTitleElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F322-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTitleElementDisp = dispinterface
+    ['{3050F322-98B5-11CF-BB82-00AA00BDCE0B}']
+    property text: WideString dispid - 2147413011;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLMetaElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F203-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLMetaElement = interface(IDispatch)
+    ['{3050F203-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_httpEquiv(const p: WideString); safecall;
+    function Get_httpEquiv: WideString; safecall;
+    procedure Set_content(const p: WideString); safecall;
+    function Get_content: WideString; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_url(const p: WideString); safecall;
+    function Get_url: WideString; safecall;
+    procedure Set_charset(const p: WideString); safecall;
+    function Get_charset: WideString; safecall;
+    property httpEquiv: WideString read Get_httpEquiv write Set_httpEquiv;
+    property content: WideString read Get_content write Set_content;
+    property name: WideString read Get_name write Set_name;
+    property url: WideString read Get_url write Set_url;
+    property charset: WideString read Get_charset write Set_charset;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLMetaElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F203-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLMetaElementDisp = dispinterface
+    ['{3050F203-98B5-11CF-BB82-00AA00BDCE0B}']
+    property httpEquiv: WideString dispid 1001;
+    property content: WideString dispid 1002;
+    property name: WideString dispid - 2147418112;
+    property url: WideString dispid 1003;
+    property charset: WideString dispid 1013;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLMetaElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F81F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLMetaElement2 = interface(IDispatch)
+    ['{3050F81F-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_scheme(const p: WideString); safecall;
+    function Get_scheme: WideString; safecall;
+    property scheme: WideString read Get_scheme write Set_scheme;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLMetaElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F81F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLMetaElement2Disp = dispinterface
+    ['{3050F81F-98B5-11CF-BB82-00AA00BDCE0B}']
+    property scheme: WideString dispid 1020;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLBaseElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F204-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBaseElement = interface(IDispatch)
+    ['{3050F204-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_href(const p: WideString); safecall;
+    function Get_href: WideString; safecall;
+    procedure Set_target(const p: WideString); safecall;
+    function Get_target: WideString; safecall;
+    property href: WideString read Get_href write Set_href;
+    property target: WideString read Get_target write Set_target;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLBaseElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F204-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBaseElementDisp = dispinterface
+    ['{3050F204-98B5-11CF-BB82-00AA00BDCE0B}']
+    property href: WideString dispid 1003;
+    property target: WideString dispid 1004;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLIsIndexElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F206-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLIsIndexElement = interface(IDispatch)
+    ['{3050F206-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_prompt(const p: WideString); safecall;
+    function Get_prompt: WideString; safecall;
+    procedure Set_action(const p: WideString); safecall;
+    function Get_action: WideString; safecall;
+    property prompt: WideString read Get_prompt write Set_prompt;
+    property action: WideString read Get_action write Set_action;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLIsIndexElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F206-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLIsIndexElementDisp = dispinterface
+    ['{3050F206-98B5-11CF-BB82-00AA00BDCE0B}']
+    property prompt: WideString dispid 1010;
+    property action: WideString dispid 1011;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLIsIndexElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F82F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLIsIndexElement2 = interface(IDispatch)
+    ['{3050F82F-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_form: IHTMLFormElement; safecall;
+    property form: IHTMLFormElement read Get_form;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLIsIndexElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F82F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLIsIndexElement2Disp = dispinterface
+    ['{3050F82F-98B5-11CF-BB82-00AA00BDCE0B}']
+    property form: IHTMLFormElement readonly dispid 1012;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLNextIdElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F207-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLNextIdElement = interface(IDispatch)
+    ['{3050F207-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_n(const p: WideString); safecall;
+    function Get_n: WideString; safecall;
+    property n: WideString read Get_n write Set_n;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLNextIdElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F207-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLNextIdElementDisp = dispinterface
+    ['{3050F207-98B5-11CF-BB82-00AA00BDCE0B}']
+    property n: WideString dispid 1012;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLHtmlElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F560-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLHtmlElement = dispinterface
+    ['{3050F560-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property version: WideString dispid 1001;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLHeadElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F561-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLHeadElement = dispinterface
+    ['{3050F561-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property profile: WideString dispid 1001;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLTitleElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F516-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLTitleElement = dispinterface
+    ['{3050F516-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property text: WideString dispid - 2147413011;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLMetaElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F517-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLMetaElement = dispinterface
+    ['{3050F517-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property httpEquiv: WideString dispid 1001;
+    property content: WideString dispid 1002;
+    property name: WideString dispid - 2147418112;
+    property url: WideString dispid 1003;
+    property charset: WideString dispid 1013;
+    property scheme: WideString dispid 1020;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLBaseElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F518-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLBaseElement = dispinterface
+    ['{3050F518-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property href: WideString dispid 1003;
+    property target: WideString dispid 1004;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLIsIndexElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F519-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLIsIndexElement = dispinterface
+    ['{3050F519-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property prompt: WideString dispid 1010;
+    property action: WideString dispid 1011;
+    property form: IHTMLFormElement readonly dispid 1012;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLNextIdElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F51A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLNextIdElement = dispinterface
+    ['{3050F51A-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property n: WideString dispid 1012;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLBaseFontElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F202-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBaseFontElement = interface(IDispatch)
+    ['{3050F202-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_color(p: OleVariant); safecall;
+    function Get_color: OleVariant; safecall;
+    procedure Set_face(const p: WideString); safecall;
+    function Get_face: WideString; safecall;
+    procedure Set_size(p: Integer); safecall;
+    function Get_size: Integer; safecall;
+    property color: OleVariant read Get_color write Set_color;
+    property face: WideString read Get_face write Set_face;
+    property size: Integer read Get_size write Set_size;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLBaseFontElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F202-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBaseFontElementDisp = dispinterface
+    ['{3050F202-98B5-11CF-BB82-00AA00BDCE0B}']
+    property color: OleVariant dispid - 2147413110;
+    property face: WideString dispid - 2147413094;
+    property size: Integer dispid - 2147413086;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLBaseFontElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F504-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLBaseFontElement = dispinterface
+    ['{3050F504-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property color: OleVariant dispid - 2147413110;
+    property face: WideString dispid - 2147413094;
+    property size: Integer dispid - 2147413086;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLUnknownElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F209-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLUnknownElement = interface(IDispatch)
+    ['{3050F209-98B5-11CF-BB82-00AA00BDCE0B}']
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLUnknownElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F209-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLUnknownElementDisp = dispinterface
+    ['{3050F209-98B5-11CF-BB82-00AA00BDCE0B}']
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLUnknownElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F539-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLUnknownElement = dispinterface
+    ['{3050F539-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+  end;
+
+// *********************************************************************//
+// Interface: IOmHistory
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {FECEAAA2-8405-11CF-8BA1-00AA00476DA6}
+// *********************************************************************//
+  IOmHistory = interface(IDispatch)
+    ['{FECEAAA2-8405-11CF-8BA1-00AA00476DA6}']
+    function Get_length: Smallint; safecall;
+    procedure back(var pvargdistance: OleVariant); safecall;
+    procedure forward(var pvargdistance: OleVariant); safecall;
+    procedure go(var pvargdistance: OleVariant); safecall;
+    property length: Smallint read Get_length;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IOmHistoryDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {FECEAAA2-8405-11CF-8BA1-00AA00476DA6}
+// *********************************************************************//
+  IOmHistoryDisp = dispinterface
+    ['{FECEAAA2-8405-11CF-8BA1-00AA00476DA6}']
+    property length: Smallint readonly dispid 1;
+    procedure back(var pvargdistance: OleVariant); dispid 2;
+    procedure forward(var pvargdistance: OleVariant); dispid 3;
+    procedure go(var pvargdistance: OleVariant); dispid 4;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLMimeTypesCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3FC-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLMimeTypesCollection = interface(IDispatch)
+    ['{3050F3FC-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_length: Integer; safecall;
+    property length: Integer read Get_length;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLMimeTypesCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3FC-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLMimeTypesCollectionDisp = dispinterface
+    ['{3050F3FC-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLPluginsCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3FD-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLPluginsCollection = interface(IDispatch)
+    ['{3050F3FD-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_length: Integer; safecall;
+    procedure refresh(reload: WordBool); safecall;
+    property length: Integer read Get_length;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLPluginsCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3FD-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLPluginsCollectionDisp = dispinterface
+    ['{3050F3FD-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1;
+    procedure refresh(reload: WordBool); dispid 2;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLOpsProfile
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F401-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLOpsProfile = interface(IDispatch)
+    ['{3050F401-98B5-11CF-BB82-00AA00BDCE0B}']
+    function addRequest(const name: WideString; reserved: OleVariant): WordBool; safecall;
+    procedure clearRequest; safecall;
+    procedure doRequest(usage: OleVariant; fname: OleVariant; domain: OleVariant; path: OleVariant;
+      expire: OleVariant; reserved: OleVariant); safecall;
+    function getAttribute(const name: WideString): WideString; safecall;
+    function setAttribute(const name: WideString; const value: WideString; prefs: OleVariant): WordBool; safecall;
+    function commitChanges: WordBool; safecall;
+    function addReadRequest(const name: WideString; reserved: OleVariant): WordBool; safecall;
+    procedure doReadRequest(usage: OleVariant; fname: OleVariant; domain: OleVariant;
+      path: OleVariant; expire: OleVariant; reserved: OleVariant); safecall;
+    function doWriteRequest: WordBool; safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLOpsProfileDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F401-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLOpsProfileDisp = dispinterface
+    ['{3050F401-98B5-11CF-BB82-00AA00BDCE0B}']
+    function addRequest(const name: WideString; reserved: OleVariant): WordBool; dispid 1;
+    procedure clearRequest; dispid 2;
+    procedure doRequest(usage: OleVariant; fname: OleVariant; domain: OleVariant; path: OleVariant;
+      expire: OleVariant; reserved: OleVariant); dispid 3;
+    function getAttribute(const name: WideString): WideString; dispid 4;
+    function setAttribute(const name: WideString; const value: WideString; prefs: OleVariant): WordBool; dispid 5;
+    function commitChanges: WordBool; dispid 6;
+    function addReadRequest(const name: WideString; reserved: OleVariant): WordBool; dispid 7;
+    procedure doReadRequest(usage: OleVariant; fname: OleVariant; domain: OleVariant;
+      path: OleVariant; expire: OleVariant; reserved: OleVariant); dispid 8;
+    function doWriteRequest: WordBool; dispid 9;
+  end;
+
+// *********************************************************************//
+// Interface: IOmNavigator
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {FECEAAA5-8405-11CF-8BA1-00AA00476DA6}
+// *********************************************************************//
+  IOmNavigator = interface(IDispatch)
+    ['{FECEAAA5-8405-11CF-8BA1-00AA00476DA6}']
+    function Get_appCodeName: WideString; safecall;
+    function Get_appName: WideString; safecall;
+    function Get_appVersion: WideString; safecall;
+    function Get_userAgent: WideString; safecall;
+    function javaEnabled: WordBool; safecall;
+    function taintEnabled: WordBool; safecall;
+    function Get_mimeTypes: IHTMLMimeTypesCollection; safecall;
+    function Get_plugins: IHTMLPluginsCollection; safecall;
+    function Get_cookieEnabled: WordBool; safecall;
+    function Get_opsProfile: IHTMLOpsProfile; safecall;
+    function toString: WideString; safecall;
+    function Get_cpuClass: WideString; safecall;
+    function Get_systemLanguage: WideString; safecall;
+    function Get_browserLanguage: WideString; safecall;
+    function Get_userLanguage: WideString; safecall;
+    function Get_platform: WideString; safecall;
+    function Get_appMinorVersion: WideString; safecall;
+    function Get_connectionSpeed: Integer; safecall;
+    function Get_onLine: WordBool; safecall;
+    function Get_userProfile: IHTMLOpsProfile; safecall;
+    property appCodeName: WideString read Get_appCodeName;
+    property appName: WideString read Get_appName;
+    property appVersion: WideString read Get_appVersion;
+    property userAgent: WideString read Get_userAgent;
+    property mimeTypes: IHTMLMimeTypesCollection read Get_mimeTypes;
+    property plugins: IHTMLPluginsCollection read Get_plugins;
+    property cookieEnabled: WordBool read Get_cookieEnabled;
+    property opsProfile: IHTMLOpsProfile read Get_opsProfile;
+    property cpuClass: WideString read Get_cpuClass;
+    property systemLanguage: WideString read Get_systemLanguage;
+    property browserLanguage: WideString read Get_browserLanguage;
+    property userLanguage: WideString read Get_userLanguage;
+    property platform: WideString read Get_platform;
+    property appMinorVersion: WideString read Get_appMinorVersion;
+    property connectionSpeed: Integer read Get_connectionSpeed;
+    property onLine: WordBool read Get_onLine;
+    property userProfile: IHTMLOpsProfile read Get_userProfile;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IOmNavigatorDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {FECEAAA5-8405-11CF-8BA1-00AA00476DA6}
+// *********************************************************************//
+  IOmNavigatorDisp = dispinterface
+    ['{FECEAAA5-8405-11CF-8BA1-00AA00476DA6}']
+    property appCodeName: WideString readonly dispid 1;
+    property appName: WideString readonly dispid 2;
+    property appVersion: WideString readonly dispid 3;
+    property userAgent: WideString readonly dispid 4;
+    function javaEnabled: WordBool; dispid 5;
+    function taintEnabled: WordBool; dispid 6;
+    property mimeTypes: IHTMLMimeTypesCollection readonly dispid 7;
+    property plugins: IHTMLPluginsCollection readonly dispid 8;
+    property cookieEnabled: WordBool readonly dispid 9;
+    property opsProfile: IHTMLOpsProfile readonly dispid 10;
+    function toString: WideString; dispid 11;
+    property cpuClass: WideString readonly dispid 12;
+    property systemLanguage: WideString readonly dispid 13;
+    property browserLanguage: WideString readonly dispid 14;
+    property userLanguage: WideString readonly dispid 15;
+    property platform: WideString readonly dispid 16;
+    property appMinorVersion: WideString readonly dispid 17;
+    property connectionSpeed: Integer readonly dispid 18;
+    property onLine: WordBool readonly dispid 19;
+    property userProfile: IHTMLOpsProfile readonly dispid 20;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLLocation
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {163BB1E0-6E00-11CF-837A-48DC04C10000}
+// *********************************************************************//
+  IHTMLLocation = interface(IDispatch)
+    ['{163BB1E0-6E00-11CF-837A-48DC04C10000}']
+    procedure Set_href(const p: WideString); safecall;
+    function Get_href: WideString; safecall;
+    procedure Set_protocol(const p: WideString); safecall;
+    function Get_protocol: WideString; safecall;
+    procedure Set_host(const p: WideString); safecall;
+    function Get_host: WideString; safecall;
+    procedure Set_hostname(const p: WideString); safecall;
+    function Get_hostname: WideString; safecall;
+    procedure Set_port(const p: WideString); safecall;
+    function Get_port: WideString; safecall;
+    procedure Set_pathname(const p: WideString); safecall;
+    function Get_pathname: WideString; safecall;
+    procedure Set_search(const p: WideString); safecall;
+    function Get_search: WideString; safecall;
+    procedure Set_hash(const p: WideString); safecall;
+    function Get_hash: WideString; safecall;
+    procedure reload(flag: WordBool); safecall;
+    procedure replace(const bstr: WideString); safecall;
+    procedure assign(const bstr: WideString); safecall;
+    function toString: WideString; safecall;
+    property href: WideString read Get_href write Set_href;
+    property protocol: WideString read Get_protocol write Set_protocol;
+    property host: WideString read Get_host write Set_host;
+    property hostname: WideString read Get_hostname write Set_hostname;
+    property port: WideString read Get_port write Set_port;
+    property pathname: WideString read Get_pathname write Set_pathname;
+    property search: WideString read Get_search write Set_search;
+    property hash: WideString read Get_hash write Set_hash;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLLocationDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {163BB1E0-6E00-11CF-837A-48DC04C10000}
+// *********************************************************************//
+  IHTMLLocationDisp = dispinterface
+    ['{163BB1E0-6E00-11CF-837A-48DC04C10000}']
+    property href: WideString dispid 0;
+    property protocol: WideString dispid 1;
+    property host: WideString dispid 2;
+    property hostname: WideString dispid 3;
+    property port: WideString dispid 4;
+    property pathname: WideString dispid 5;
+    property search: WideString dispid 6;
+    property hash: WideString dispid 7;
+    procedure reload(flag: WordBool); dispid 8;
+    procedure replace(const bstr: WideString); dispid 9;
+    procedure assign(const bstr: WideString); dispid 10;
+    function toString: WideString; dispid 11;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLBookmarkCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4CE-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBookmarkCollection = interface(IDispatch)
+    ['{3050F4CE-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_length: Integer; safecall;
+    function Get__newEnum: IUnknown; safecall;
+    function item(index: Integer): OleVariant; safecall;
+    property length: Integer read Get_length;
+    property _newEnum: IUnknown read Get__newEnum;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLBookmarkCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4CE-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBookmarkCollectionDisp = dispinterface
+    ['{3050F4CE-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1501;
+    property _newEnum: IUnknown readonly dispid - 4;
+    function item(index: Integer): OleVariant; dispid 0;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDataTransfer
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4B3-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDataTransfer = interface(IDispatch)
+    ['{3050F4B3-98B5-11CF-BB82-00AA00BDCE0B}']
+    function setData(const format: WideString; var data: OleVariant): WordBool; safecall;
+    function getData(const format: WideString): OleVariant; safecall;
+    function clearData(const format: WideString): WordBool; safecall;
+    procedure Set_dropEffect(const p: WideString); safecall;
+    function Get_dropEffect: WideString; safecall;
+    procedure Set_effectAllowed(const p: WideString); safecall;
+    function Get_effectAllowed: WideString; safecall;
+    property dropEffect: WideString read Get_dropEffect write Set_dropEffect;
+    property effectAllowed: WideString read Get_effectAllowed write Set_effectAllowed;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDataTransferDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4B3-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDataTransferDisp = dispinterface
+    ['{3050F4B3-98B5-11CF-BB82-00AA00BDCE0B}']
+    function setData(const format: WideString; var data: OleVariant): WordBool; dispid 1001;
+    function getData(const format: WideString): OleVariant; dispid 1002;
+    function clearData(const format: WideString): WordBool; dispid 1003;
+    property dropEffect: WideString dispid 1004;
+    property effectAllowed: WideString dispid 1005;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLEventObj2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F48B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLEventObj2 = interface(IDispatch)
+    ['{3050F48B-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); safecall;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; safecall;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; safecall;
+    procedure Set_propertyName(const p: WideString); safecall;
+    function Get_propertyName: WideString; safecall;
+    procedure _Set_bookmarks(const p: IHTMLBookmarkCollection); safecall;
+    function Get_bookmarks: IHTMLBookmarkCollection; safecall;
+    procedure _Set_recordset(const p: IDispatch); safecall;
+    function Get_recordset: IDispatch; safecall;
+    procedure Set_dataFld(const p: WideString); safecall;
+    function Get_dataFld: WideString; safecall;
+    procedure _Set_boundElements(const p: IHTMLElementCollection); safecall;
+    function Get_boundElements: IHTMLElementCollection; safecall;
+    procedure Set_repeat_(p: WordBool); safecall;
+    function Get_repeat_: WordBool; safecall;
+    procedure Set_srcUrn(const p: WideString); safecall;
+    function Get_srcUrn: WideString; safecall;
+    procedure _Set_srcElement(const p: IHTMLElement); safecall;
+    function Get_srcElement: IHTMLElement; safecall;
+    procedure Set_altKey(p: WordBool); safecall;
+    function Get_altKey: WordBool; safecall;
+    procedure Set_ctrlKey(p: WordBool); safecall;
+    function Get_ctrlKey: WordBool; safecall;
+    procedure Set_shiftKey(p: WordBool); safecall;
+    function Get_shiftKey: WordBool; safecall;
+    procedure _Set_fromElement(const p: IHTMLElement); safecall;
+    function Get_fromElement: IHTMLElement; safecall;
+    procedure _Set_toElement(const p: IHTMLElement); safecall;
+    function Get_toElement: IHTMLElement; safecall;
+    procedure Set_button(p: Integer); safecall;
+    function Get_button: Integer; safecall;
+    procedure Set_type_(const p: WideString); safecall;
+    function Get_type_: WideString; safecall;
+    procedure Set_qualifier(const p: WideString); safecall;
+    function Get_qualifier: WideString; safecall;
+    procedure Set_reason(p: Integer); safecall;
+    function Get_reason: Integer; safecall;
+    procedure Set_x(p: Integer); safecall;
+    function Get_x: Integer; safecall;
+    procedure Set_y(p: Integer); safecall;
+    function Get_y: Integer; safecall;
+    procedure Set_clientX(p: Integer); safecall;
+    function Get_clientX: Integer; safecall;
+    procedure Set_clientY(p: Integer); safecall;
+    function Get_clientY: Integer; safecall;
+    procedure Set_offsetX(p: Integer); safecall;
+    function Get_offsetX: Integer; safecall;
+    procedure Set_offsetY(p: Integer); safecall;
+    function Get_offsetY: Integer; safecall;
+    procedure Set_screenX(p: Integer); safecall;
+    function Get_screenX: Integer; safecall;
+    procedure Set_screenY(p: Integer); safecall;
+    function Get_screenY: Integer; safecall;
+    procedure _Set_srcFilter(const p: IDispatch); safecall;
+    function Get_srcFilter: IDispatch; safecall;
+    function Get_dataTransfer: IHTMLDataTransfer; safecall;
+    property propertyName: WideString read Get_propertyName write Set_propertyName;
+    property bookmarks: IHTMLBookmarkCollection read Get_bookmarks write _Set_bookmarks;
+    property recordset: IDispatch read Get_recordset write _Set_recordset;
+    property dataFld: WideString read Get_dataFld write Set_dataFld;
+    property boundElements: IHTMLElementCollection read Get_boundElements write _Set_boundElements;
+    property repeat_: WordBool read Get_repeat_ write Set_repeat_;
+    property srcUrn: WideString read Get_srcUrn write Set_srcUrn;
+    property srcElement: IHTMLElement read Get_srcElement write _Set_srcElement;
+    property altKey: WordBool read Get_altKey write Set_altKey;
+    property ctrlKey: WordBool read Get_ctrlKey write Set_ctrlKey;
+    property shiftKey: WordBool read Get_shiftKey write Set_shiftKey;
+    property fromElement: IHTMLElement read Get_fromElement write _Set_fromElement;
+    property toElement: IHTMLElement read Get_toElement write _Set_toElement;
+    property button: Integer read Get_button write Set_button;
+    property type_: WideString read Get_type_ write Set_type_;
+    property qualifier: WideString read Get_qualifier write Set_qualifier;
+    property reason: Integer read Get_reason write Set_reason;
+    property x: Integer read Get_x write Set_x;
+    property y: Integer read Get_y write Set_y;
+    property clientX: Integer read Get_clientX write Set_clientX;
+    property clientY: Integer read Get_clientY write Set_clientY;
+    property offsetX: Integer read Get_offsetX write Set_offsetX;
+    property offsetY: Integer read Get_offsetY write Set_offsetY;
+    property screenX: Integer read Get_screenX write Set_screenX;
+    property screenY: Integer read Get_screenY write Set_screenY;
+    property srcFilter: IDispatch read Get_srcFilter write _Set_srcFilter;
+    property dataTransfer: IHTMLDataTransfer read Get_dataTransfer;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLEventObj2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F48B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLEventObj2Disp = dispinterface
+    ['{3050F48B-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property propertyName: WideString dispid 1027;
+    property bookmarks: IHTMLBookmarkCollection dispid 1031;
+    property recordset: IDispatch dispid 1032;
+    property dataFld: WideString dispid 1033;
+    property boundElements: IHTMLElementCollection dispid 1034;
+    property repeat_: WordBool dispid 1035;
+    property srcUrn: WideString dispid 1036;
+    property srcElement: IHTMLElement dispid 1001;
+    property altKey: WordBool dispid 1002;
+    property ctrlKey: WordBool dispid 1003;
+    property shiftKey: WordBool dispid 1004;
+    property fromElement: IHTMLElement dispid 1009;
+    property toElement: IHTMLElement dispid 1010;
+    property button: Integer dispid 1012;
+    property type_: WideString dispid 1013;
+    property qualifier: WideString dispid 1014;
+    property reason: Integer dispid 1015;
+    property x: Integer dispid 1005;
+    property y: Integer dispid 1006;
+    property clientX: Integer dispid 1020;
+    property clientY: Integer dispid 1021;
+    property offsetX: Integer dispid 1022;
+    property offsetY: Integer dispid 1023;
+    property screenX: Integer dispid 1024;
+    property screenY: Integer dispid 1025;
+    property srcFilter: IDispatch dispid 1026;
+    property dataTransfer: IHTMLDataTransfer readonly dispid 1037;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLEventObj3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F680-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLEventObj3 = interface(IDispatch)
+    ['{3050F680-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_contentOverflow: WordBool; safecall;
+    procedure Set_shiftLeft(p: WordBool); safecall;
+    function Get_shiftLeft: WordBool; safecall;
+    procedure Set_altLeft(p: WordBool); safecall;
+    function Get_altLeft: WordBool; safecall;
+    procedure Set_ctrlLeft(p: WordBool); safecall;
+    function Get_ctrlLeft: WordBool; safecall;
+    function Get_imeCompositionChange: LONG_PTR; safecall;
+    function Get_imeNotifyCommand: LONG_PTR; safecall;
+    function Get_imeNotifyData: LONG_PTR; safecall;
+    function Get_imeRequest: LONG_PTR; safecall;
+    function Get_imeRequestData: LONG_PTR; safecall;
+    function Get_keyboardLayout: LONG_PTR; safecall;
+    function Get_behaviorCookie: Integer; safecall;
+    function Get_behaviorPart: Integer; safecall;
+    function Get_nextPage: WideString; safecall;
+    property contentOverflow: WordBool read Get_contentOverflow;
+    property shiftLeft: WordBool read Get_shiftLeft write Set_shiftLeft;
+    property altLeft: WordBool read Get_altLeft write Set_altLeft;
+    property ctrlLeft: WordBool read Get_ctrlLeft write Set_ctrlLeft;
+    property imeCompositionChange: LONG_PTR read Get_imeCompositionChange;
+    property imeNotifyCommand: LONG_PTR read Get_imeNotifyCommand;
+    property imeNotifyData: LONG_PTR read Get_imeNotifyData;
+    property imeRequest: LONG_PTR read Get_imeRequest;
+    property imeRequestData: LONG_PTR read Get_imeRequestData;
+    property keyboardLayout: LONG_PTR read Get_keyboardLayout;
+    property behaviorCookie: Integer read Get_behaviorCookie;
+    property behaviorPart: Integer read Get_behaviorPart;
+    property nextPage: WideString read Get_nextPage;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLEventObj3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F680-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLEventObj3Disp = dispinterface
+    ['{3050F680-98B5-11CF-BB82-00AA00BDCE0B}']
+    property contentOverflow: WordBool readonly dispid 1038;
+    property shiftLeft: WordBool dispid 1039;
+    property altLeft: WordBool dispid 1040;
+    property ctrlLeft: WordBool dispid 1041;
+    property imeCompositionChange: LONG_PTR readonly dispid 1042;
+    property imeNotifyCommand: LONG_PTR readonly dispid 1043;
+    property imeNotifyData: LONG_PTR readonly dispid 1044;
+    property imeRequest: LONG_PTR readonly dispid 1046;
+    property imeRequestData: LONG_PTR readonly dispid 1047;
+    property keyboardLayout: LONG_PTR readonly dispid 1045;
+    property behaviorCookie: Integer readonly dispid 1048;
+    property behaviorPart: Integer readonly dispid 1049;
+    property nextPage: WideString readonly dispid 1050;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLEventObj4
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F814-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLEventObj4 = interface(IDispatch)
+    ['{3050F814-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_wheelDelta: Integer; safecall;
+    property wheelDelta: Integer read Get_wheelDelta;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLEventObj4Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F814-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLEventObj4Disp = dispinterface
+    ['{3050F814-98B5-11CF-BB82-00AA00BDCE0B}']
+    property wheelDelta: Integer readonly dispid 1051;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispCEventObj
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F558-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispCEventObj = dispinterface
+    ['{3050F558-98B5-11CF-BB82-00AA00BDCE0B}']
+    property returnValue: OleVariant dispid 1007;
+    property cancelBubble: WordBool dispid 1008;
+    property keyCode: Integer dispid 1011;
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property propertyName: WideString dispid 1027;
+    property bookmarks: IHTMLBookmarkCollection dispid 1031;
+    property recordset: IDispatch dispid 1032;
+    property dataFld: WideString dispid 1033;
+    property boundElements: IHTMLElementCollection dispid 1034;
+    property repeat_: WordBool dispid 1035;
+    property srcUrn: WideString dispid 1036;
+    property srcElement: IHTMLElement dispid 1001;
+    property altKey: WordBool dispid 1002;
+    property ctrlKey: WordBool dispid 1003;
+    property shiftKey: WordBool dispid 1004;
+    property fromElement: IHTMLElement dispid 1009;
+    property toElement: IHTMLElement dispid 1010;
+    property button: Integer dispid 1012;
+    property type_: WideString dispid 1013;
+    property qualifier: WideString dispid 1014;
+    property reason: Integer dispid 1015;
+    property x: Integer dispid 1005;
+    property y: Integer dispid 1006;
+    property clientX: Integer dispid 1020;
+    property clientY: Integer dispid 1021;
+    property offsetX: Integer dispid 1022;
+    property offsetY: Integer dispid 1023;
+    property screenX: Integer dispid 1024;
+    property screenY: Integer dispid 1025;
+    property srcFilter: IDispatch dispid 1026;
+    property dataTransfer: IHTMLDataTransfer readonly dispid 1037;
+    property contentOverflow: WordBool readonly dispid 1038;
+    property shiftLeft: WordBool dispid 1039;
+    property altLeft: WordBool dispid 1040;
+    property ctrlLeft: WordBool dispid 1041;
+    property imeCompositionChange: LONG_PTR readonly dispid 1042;
+    property imeNotifyCommand: LONG_PTR readonly dispid 1043;
+    property imeNotifyData: LONG_PTR readonly dispid 1044;
+    property imeRequest: LONG_PTR readonly dispid 1046;
+    property imeRequestData: LONG_PTR readonly dispid 1047;
+    property keyboardLayout: LONG_PTR readonly dispid 1045;
+    property behaviorCookie: Integer readonly dispid 1048;
+    property behaviorPart: Integer readonly dispid 1049;
+    property nextPage: WideString readonly dispid 1050;
+    property wheelDelta: Integer readonly dispid 1051;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLWindowEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F625-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLWindowEvents2 = dispinterface
+    ['{3050F625-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure onload(const pEvtObj: IHTMLEventObj); dispid 1003;
+    procedure onunload(const pEvtObj: IHTMLEventObj); dispid 1008;
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onerror(const description: WideString; const url: WideString; line: Integer); dispid 1002;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onbeforeunload(const pEvtObj: IHTMLEventObj); dispid 1017;
+    procedure onbeforeprint(const pEvtObj: IHTMLEventObj); dispid 1024;
+    procedure onafterprint(const pEvtObj: IHTMLEventObj); dispid 1025;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLWindowEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {96A0A4E0-D062-11CF-94B6-00AA0060275C}
+// *********************************************************************//
+  HTMLWindowEvents = dispinterface
+    ['{96A0A4E0-D062-11CF-94B6-00AA0060275C}']
+    procedure onload; dispid 1003;
+    procedure onunload; dispid 1008;
+    function onhelp: WordBool; dispid - 2147418102;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onerror(const description: WideString; const url: WideString; line: Integer); dispid 1002;
+    procedure onresize; dispid 1016;
+    procedure onscroll; dispid 1014;
+    procedure onbeforeunload; dispid 1017;
+    procedure onbeforeprint; dispid 1024;
+    procedure onafterprint; dispid 1025;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDocument2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {332C4425-26CB-11D0-B483-00C04FD90119}
+// *********************************************************************//
+  IHTMLDocument2 = interface(IHTMLDocument)
+    ['{332C4425-26CB-11D0-B483-00C04FD90119}']
+    function Get_all: IHTMLElementCollection; safecall;
+    function Get_body: IHTMLElement; safecall;
+    function Get_activeElement: IHTMLElement; safecall;
+    function Get_images: IHTMLElementCollection; safecall;
+    function Get_applets: IHTMLElementCollection; safecall;
+    function Get_links: IHTMLElementCollection; safecall;
+    function Get_forms: IHTMLElementCollection; safecall;
+    function Get_anchors: IHTMLElementCollection; safecall;
+    procedure Set_title(const p: WideString); safecall;
+    function Get_title: WideString; safecall;
+    function Get_scripts: IHTMLElementCollection; safecall;
+    procedure Set_designMode(const p: WideString); safecall;
+    function Get_designMode: WideString; safecall;
+    function Get_selection: IHTMLSelectionObject; safecall;
+    function Get_readyState: WideString; safecall;
+    function Get_frames: IHTMLFramesCollection2; safecall;
+    function Get_embeds: IHTMLElementCollection; safecall;
+    function Get_plugins: IHTMLElementCollection; safecall;
+    procedure Set_alinkColor(p: OleVariant); safecall;
+    function Get_alinkColor: OleVariant; safecall;
+    procedure Set_bgColor(p: OleVariant); safecall;
+    function Get_bgColor: OleVariant; safecall;
+    procedure Set_fgColor(p: OleVariant); safecall;
+    function Get_fgColor: OleVariant; safecall;
+    procedure Set_linkColor(p: OleVariant); safecall;
+    function Get_linkColor: OleVariant; safecall;
+    procedure Set_vlinkColor(p: OleVariant); safecall;
+    function Get_vlinkColor: OleVariant; safecall;
+    function Get_referrer: WideString; safecall;
+    function Get_location: IHTMLLocation; safecall;
+    function Get_lastModified: WideString; safecall;
+    procedure Set_url(const p: WideString); safecall;
+    function Get_url: WideString; safecall;
+    procedure Set_domain(const p: WideString); safecall;
+    function Get_domain: WideString; safecall;
+    procedure Set_cookie(const p: WideString); safecall;
+    function Get_cookie: WideString; safecall;
+    procedure Set_expando(p: WordBool); safecall;
+    function Get_expando: WordBool; safecall;
+    procedure Set_charset(const p: WideString); safecall;
+    function Get_charset: WideString; safecall;
+    procedure Set_defaultCharset(const p: WideString); safecall;
+    function Get_defaultCharset: WideString; safecall;
+    function Get_mimeType: WideString; safecall;
+    function Get_fileSize: WideString; safecall;
+    function Get_fileCreatedDate: WideString; safecall;
+    function Get_fileModifiedDate: WideString; safecall;
+    function Get_fileUpdatedDate: WideString; safecall;
+    function Get_security: WideString; safecall;
+    function Get_protocol: WideString; safecall;
+    function Get_nameProp: WideString; safecall;
+    procedure write(psarray: PSafeArray); safecall;
+    procedure writeln(psarray: PSafeArray); safecall;
+    function open(const url: WideString; name: OleVariant; features: OleVariant; replace: OleVariant): IDispatch; safecall;
+    procedure close; safecall;
+    procedure clear; safecall;
+    function queryCommandSupported(const cmdID: WideString): WordBool; safecall;
+    function queryCommandEnabled(const cmdID: WideString): WordBool; safecall;
+    function queryCommandState(const cmdID: WideString): WordBool; safecall;
+    function queryCommandIndeterm(const cmdID: WideString): WordBool; safecall;
+    function queryCommandText(const cmdID: WideString): WideString; safecall;
+    function queryCommandValue(const cmdID: WideString): OleVariant; safecall;
+    function execCommand(const cmdID: WideString; showUI: WordBool; value: OleVariant): WordBool; safecall;
+    function execCommandShowHelp(const cmdID: WideString): WordBool; safecall;
+    function createElement(const eTag: WideString): IHTMLElement; safecall;
+    procedure Set_onhelp(p: OleVariant); safecall;
+    function Get_onhelp: OleVariant; safecall;
+    procedure Set_onclick(p: OleVariant); safecall;
+    function Get_onclick: OleVariant; safecall;
+    procedure Set_ondblclick(p: OleVariant); safecall;
+    function Get_ondblclick: OleVariant; safecall;
+    procedure Set_onkeyup(p: OleVariant); safecall;
+    function Get_onkeyup: OleVariant; safecall;
+    procedure Set_onkeydown(p: OleVariant); safecall;
+    function Get_onkeydown: OleVariant; safecall;
+    procedure Set_onkeypress(p: OleVariant); safecall;
+    function Get_onkeypress: OleVariant; safecall;
+    procedure Set_onmouseup(p: OleVariant); safecall;
+    function Get_onmouseup: OleVariant; safecall;
+    procedure Set_onmousedown(p: OleVariant); safecall;
+    function Get_onmousedown: OleVariant; safecall;
+    procedure Set_onmousemove(p: OleVariant); safecall;
+    function Get_onmousemove: OleVariant; safecall;
+    procedure Set_onmouseout(p: OleVariant); safecall;
+    function Get_onmouseout: OleVariant; safecall;
+    procedure Set_onmouseover(p: OleVariant); safecall;
+    function Get_onmouseover: OleVariant; safecall;
+    procedure Set_onreadystatechange(p: OleVariant); safecall;
+    function Get_onreadystatechange: OleVariant; safecall;
+    procedure Set_onafterupdate(p: OleVariant); safecall;
+    function Get_onafterupdate: OleVariant; safecall;
+    procedure Set_onrowexit(p: OleVariant); safecall;
+    function Get_onrowexit: OleVariant; safecall;
+    procedure Set_onrowenter(p: OleVariant); safecall;
+    function Get_onrowenter: OleVariant; safecall;
+    procedure Set_ondragstart(p: OleVariant); safecall;
+    function Get_ondragstart: OleVariant; safecall;
+    procedure Set_onselectstart(p: OleVariant); safecall;
+    function Get_onselectstart: OleVariant; safecall;
+    function elementFromPoint(x: Integer; y: Integer): IHTMLElement; safecall;
+    function Get_parentWindow: IHTMLWindow2; safecall;
+    function Get_styleSheets: IHTMLStyleSheetsCollection; safecall;
+    procedure Set_onbeforeupdate(p: OleVariant); safecall;
+    function Get_onbeforeupdate: OleVariant; safecall;
+    procedure Set_onerrorupdate(p: OleVariant); safecall;
+    function Get_onerrorupdate: OleVariant; safecall;
+    function toString: WideString; safecall;
+    function createStyleSheet(const bstrHref: WideString; lIndex: Integer): IHTMLStyleSheet; safecall;
+    property all: IHTMLElementCollection read Get_all;
+    property body: IHTMLElement read Get_body;
+    property activeElement: IHTMLElement read Get_activeElement;
+    property images: IHTMLElementCollection read Get_images;
+    property applets: IHTMLElementCollection read Get_applets;
+    property links: IHTMLElementCollection read Get_links;
+    property forms: IHTMLElementCollection read Get_forms;
+    property anchors: IHTMLElementCollection read Get_anchors;
+    property title: WideString read Get_title write Set_title;
+    property scripts: IHTMLElementCollection read Get_scripts;
+    property designMode: WideString read Get_designMode write Set_designMode;
+    property selection: IHTMLSelectionObject read Get_selection;
+    property readyState: WideString read Get_readyState;
+    property frames: IHTMLFramesCollection2 read Get_frames;
+    property embeds: IHTMLElementCollection read Get_embeds;
+    property plugins: IHTMLElementCollection read Get_plugins;
+    property alinkColor: OleVariant read Get_alinkColor write Set_alinkColor;
+    property bgColor: OleVariant read Get_bgColor write Set_bgColor;
+    property fgColor: OleVariant read Get_fgColor write Set_fgColor;
+    property linkColor: OleVariant read Get_linkColor write Set_linkColor;
+    property vlinkColor: OleVariant read Get_vlinkColor write Set_vlinkColor;
+    property referrer: WideString read Get_referrer;
+    property location: IHTMLLocation read Get_location;
+    property lastModified: WideString read Get_lastModified;
+    property url: WideString read Get_url write Set_url;
+    property domain: WideString read Get_domain write Set_domain;
+    property cookie: WideString read Get_cookie write Set_cookie;
+    property expando: WordBool read Get_expando write Set_expando;
+    property charset: WideString read Get_charset write Set_charset;
+    property defaultCharset: WideString read Get_defaultCharset write Set_defaultCharset;
+    property mimeType: WideString read Get_mimeType;
+    property fileSize: WideString read Get_fileSize;
+    property fileCreatedDate: WideString read Get_fileCreatedDate;
+    property fileModifiedDate: WideString read Get_fileModifiedDate;
+    property fileUpdatedDate: WideString read Get_fileUpdatedDate;
+    property security: WideString read Get_security;
+    property protocol: WideString read Get_protocol;
+    property nameProp: WideString read Get_nameProp;
+    property onhelp: OleVariant read Get_onhelp write Set_onhelp;
+    property onclick: OleVariant read Get_onclick write Set_onclick;
+    property ondblclick: OleVariant read Get_ondblclick write Set_ondblclick;
+    property onkeyup: OleVariant read Get_onkeyup write Set_onkeyup;
+    property onkeydown: OleVariant read Get_onkeydown write Set_onkeydown;
+    property onkeypress: OleVariant read Get_onkeypress write Set_onkeypress;
+    property onmouseup: OleVariant read Get_onmouseup write Set_onmouseup;
+    property onmousedown: OleVariant read Get_onmousedown write Set_onmousedown;
+    property onmousemove: OleVariant read Get_onmousemove write Set_onmousemove;
+    property onmouseout: OleVariant read Get_onmouseout write Set_onmouseout;
+    property onmouseover: OleVariant read Get_onmouseover write Set_onmouseover;
+    property onreadystatechange: OleVariant read Get_onreadystatechange write Set_onreadystatechange;
+    property onafterupdate: OleVariant read Get_onafterupdate write Set_onafterupdate;
+    property onrowexit: OleVariant read Get_onrowexit write Set_onrowexit;
+    property onrowenter: OleVariant read Get_onrowenter write Set_onrowenter;
+    property ondragstart: OleVariant read Get_ondragstart write Set_ondragstart;
+    property onselectstart: OleVariant read Get_onselectstart write Set_onselectstart;
+    property parentWindow: IHTMLWindow2 read Get_parentWindow;
+    property styleSheets: IHTMLStyleSheetsCollection read Get_styleSheets;
+    property onbeforeupdate: OleVariant read Get_onbeforeupdate write Set_onbeforeupdate;
+    property onerrorupdate: OleVariant read Get_onerrorupdate write Set_onerrorupdate;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDocument2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {332C4425-26CB-11D0-B483-00C04FD90119}
+// *********************************************************************//
+  IHTMLDocument2Disp = dispinterface
+    ['{332C4425-26CB-11D0-B483-00C04FD90119}']
+    property all: IHTMLElementCollection readonly dispid 1003;
+    property body: IHTMLElement readonly dispid 1004;
+    property activeElement: IHTMLElement readonly dispid 1005;
+    property images: IHTMLElementCollection readonly dispid 1011;
+    property applets: IHTMLElementCollection readonly dispid 1008;
+    property links: IHTMLElementCollection readonly dispid 1009;
+    property forms: IHTMLElementCollection readonly dispid 1010;
+    property anchors: IHTMLElementCollection readonly dispid 1007;
+    property title: WideString dispid 1012;
+    property scripts: IHTMLElementCollection readonly dispid 1013;
+    property designMode: WideString dispid 1014;
+    property selection: IHTMLSelectionObject readonly dispid 1017;
+    property readyState: WideString readonly dispid 1018;
+    property frames: IHTMLFramesCollection2 readonly dispid 1019;
+    property embeds: IHTMLElementCollection readonly dispid 1015;
+    property plugins: IHTMLElementCollection readonly dispid 1021;
+    property alinkColor: OleVariant dispid 1022;
+    property bgColor: OleVariant dispid - 501;
+    property fgColor: OleVariant dispid - 2147413110;
+    property linkColor: OleVariant dispid 1024;
+    property vlinkColor: OleVariant dispid 1023;
+    property referrer: WideString readonly dispid 1027;
+    property location: IHTMLLocation readonly dispid 1026;
+    property lastModified: WideString readonly dispid 1028;
+    property url: WideString dispid 1025;
+    property domain: WideString dispid 1029;
+    property cookie: WideString dispid 1030;
+    property expando: WordBool dispid 1031;
+    property charset: WideString dispid 1032;
+    property defaultCharset: WideString dispid 1033;
+    property mimeType: WideString readonly dispid 1041;
+    property fileSize: WideString readonly dispid 1042;
+    property fileCreatedDate: WideString readonly dispid 1043;
+    property fileModifiedDate: WideString readonly dispid 1044;
+    property fileUpdatedDate: WideString readonly dispid 1045;
+    property security: WideString readonly dispid 1046;
+    property protocol: WideString readonly dispid 1047;
+    property nameProp: WideString readonly dispid 1048;
+    procedure write(psarray: {??PSafeArray} OleVariant); dispid 1054;
+    procedure writeln(psarray: {??PSafeArray} OleVariant); dispid 1055;
+    function open(const url: WideString; name: OleVariant; features: OleVariant; replace: OleVariant): IDispatch; dispid 1056;
+    procedure close; dispid 1057;
+    procedure clear; dispid 1058;
+    function queryCommandSupported(const cmdID: WideString): WordBool; dispid 1059;
+    function queryCommandEnabled(const cmdID: WideString): WordBool; dispid 1060;
+    function queryCommandState(const cmdID: WideString): WordBool; dispid 1061;
+    function queryCommandIndeterm(const cmdID: WideString): WordBool; dispid 1062;
+    function queryCommandText(const cmdID: WideString): WideString; dispid 1063;
+    function queryCommandValue(const cmdID: WideString): OleVariant; dispid 1064;
+    function execCommand(const cmdID: WideString; showUI: WordBool; value: OleVariant): WordBool; dispid 1065;
+    function execCommandShowHelp(const cmdID: WideString): WordBool; dispid 1066;
+    function createElement(const eTag: WideString): IHTMLElement; dispid 1067;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondragstart: OleVariant dispid - 2147412077;
+    property onselectstart: OleVariant dispid - 2147412075;
+    function elementFromPoint(x: Integer; y: Integer): IHTMLElement; dispid 1068;
+    property parentWindow: IHTMLWindow2 readonly dispid 1034;
+    property styleSheets: IHTMLStyleSheetsCollection readonly dispid 1069;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    function toString: WideString; dispid 1070;
+    function createStyleSheet(const bstrHref: WideString; lIndex: Integer): IHTMLStyleSheet; dispid 1071;
+    property Script: IDispatch readonly dispid 1001;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLFramesCollection2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {332C4426-26CB-11D0-B483-00C04FD90119}
+// *********************************************************************//
+  IHTMLFramesCollection2 = interface(IDispatch)
+    ['{332C4426-26CB-11D0-B483-00C04FD90119}']
+    // !! API fix decl
+    function item(const pvarIndex: OleVariant): OleVariant; safecall;
+    function Get_length: Integer; safecall;
+    property length: Integer read Get_length;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLFramesCollection2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {332C4426-26CB-11D0-B483-00C04FD90119}
+// *********************************************************************//
+  IHTMLFramesCollection2Disp = dispinterface
+    ['{332C4426-26CB-11D0-B483-00C04FD90119}']
+    // !! API fix decl
+    function item(const pvarIndex: OleVariant): OleVariant; dispid 0;
+    property length: Integer readonly dispid 1001;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLWindow2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {332C4427-26CB-11D0-B483-00C04FD90119}
+// *********************************************************************//
+  IHTMLWindow2 = interface(IHTMLFramesCollection2)
+    ['{332C4427-26CB-11D0-B483-00C04FD90119}']
+    function Get_frames: IHTMLFramesCollection2; safecall;
+    procedure Set_defaultStatus(const p: WideString); safecall;
+    function Get_defaultStatus: WideString; safecall;
+    procedure Set_status(const p: WideString); safecall;
+    function Get_status: WideString; safecall;
+    function setTimeout(const expression: WideString; msec: Integer; var language: OleVariant): Integer; safecall;
+    procedure clearTimeout(timerID: Integer); safecall;
+    procedure alert(const message: WideString); safecall;
+    function confirm(const message: WideString): WordBool; safecall;
+    function prompt(const message: WideString; const defstr: WideString): OleVariant; safecall;
+    function Get_Image: IHTMLImageElementFactory; safecall;
+    function Get_location: IHTMLLocation; safecall;
+    function Get_history: IOmHistory; safecall;
+    procedure close; safecall;
+    procedure Set_opener(p: OleVariant); safecall;
+    function Get_opener: OleVariant; safecall;
+    function Get_navigator: IOmNavigator; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    function Get_parent: IHTMLWindow2; safecall;
+    function open(const url: WideString; const name: WideString; const features: WideString;
+      replace: WordBool): IHTMLWindow2; safecall;
+    function Get_self: IHTMLWindow2; safecall;
+    function Get_top: IHTMLWindow2; safecall;
+    function Get_window: IHTMLWindow2; safecall;
+    procedure navigate(const url: WideString); safecall;
+    procedure Set_onfocus(p: OleVariant); safecall;
+    function Get_onfocus: OleVariant; safecall;
+    procedure Set_onblur(p: OleVariant); safecall;
+    function Get_onblur: OleVariant; safecall;
+    procedure Set_onload(p: OleVariant); safecall;
+    function Get_onload: OleVariant; safecall;
+    procedure Set_onbeforeunload(p: OleVariant); safecall;
+    function Get_onbeforeunload: OleVariant; safecall;
+    procedure Set_onunload(p: OleVariant); safecall;
+    function Get_onunload: OleVariant; safecall;
+    procedure Set_onhelp(p: OleVariant); safecall;
+    function Get_onhelp: OleVariant; safecall;
+    procedure Set_onerror(p: OleVariant); safecall;
+    function Get_onerror: OleVariant; safecall;
+    procedure Set_onresize(p: OleVariant); safecall;
+    function Get_onresize: OleVariant; safecall;
+    procedure Set_onscroll(p: OleVariant); safecall;
+    function Get_onscroll: OleVariant; safecall;
+    function Get_document: IHTMLDocument2; safecall;
+    function Get_event: IHTMLEventObj; safecall;
+    function Get__newEnum: IUnknown; safecall;
+    function showModalDialog(const dialog: WideString; var varArgIn: OleVariant;
+      var varOptions: OleVariant): OleVariant; safecall;
+    procedure showHelp(const helpURL: WideString; helpArg: OleVariant; const features: WideString); safecall;
+    function Get_screen: IHTMLScreen; safecall;
+    function Get_Option: IHTMLOptionElementFactory; safecall;
+    procedure focus; safecall;
+    function Get_closed: WordBool; safecall;
+    procedure blur; safecall;
+    procedure scroll(x: Integer; y: Integer); safecall;
+    function Get_clientInformation: IOmNavigator; safecall;
+    function setInterval(const expression: WideString; msec: Integer; var language: OleVariant): Integer; safecall;
+    procedure clearInterval(timerID: Integer); safecall;
+    procedure Set_offscreenBuffering(p: OleVariant); safecall;
+    function Get_offscreenBuffering: OleVariant; safecall;
+    function execScript(const code: WideString; const language: WideString): OleVariant; safecall;
+    function toString: WideString; safecall;
+    procedure scrollBy(x: Integer; y: Integer); safecall;
+    procedure scrollTo(x: Integer; y: Integer); safecall;
+    procedure moveTo(x: Integer; y: Integer); safecall;
+    procedure moveBy(x: Integer; y: Integer); safecall;
+    procedure resizeTo(x: Integer; y: Integer); safecall;
+    procedure resizeBy(x: Integer; y: Integer); safecall;
+    function Get_external: IDispatch; safecall;
+    property frames: IHTMLFramesCollection2 read Get_frames;
+    property defaultStatus: WideString read Get_defaultStatus write Set_defaultStatus;
+    property status: WideString read Get_status write Set_status;
+    property Image: IHTMLImageElementFactory read Get_Image;
+    property location: IHTMLLocation read Get_location;
+    property history: IOmHistory read Get_history;
+    property opener: OleVariant read Get_opener write Set_opener;
+    property navigator: IOmNavigator read Get_navigator;
+    property name: WideString read Get_name write Set_name;
+    property parent: IHTMLWindow2 read Get_parent;
+    property self: IHTMLWindow2 read Get_self;
+    property top: IHTMLWindow2 read Get_top;
+    property window: IHTMLWindow2 read Get_window;
+    property onfocus: OleVariant read Get_onfocus write Set_onfocus;
+    property onblur: OleVariant read Get_onblur write Set_onblur;
+    property onload: OleVariant read Get_onload write Set_onload;
+    property onbeforeunload: OleVariant read Get_onbeforeunload write Set_onbeforeunload;
+    property onunload: OleVariant read Get_onunload write Set_onunload;
+    property onhelp: OleVariant read Get_onhelp write Set_onhelp;
+    property onerror: OleVariant read Get_onerror write Set_onerror;
+    property onresize: OleVariant read Get_onresize write Set_onresize;
+    property onscroll: OleVariant read Get_onscroll write Set_onscroll;
+    property document: IHTMLDocument2 read Get_document;
+    property event: IHTMLEventObj read Get_event;
+    property _newEnum: IUnknown read Get__newEnum;
+    property screen: IHTMLScreen read Get_screen;
+    property Option: IHTMLOptionElementFactory read Get_Option;
+    property closed: WordBool read Get_closed;
+    property clientInformation: IOmNavigator read Get_clientInformation;
+    property offscreenBuffering: OleVariant read Get_offscreenBuffering write Set_offscreenBuffering;
+    property external: IDispatch read Get_external;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLWindow2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {332C4427-26CB-11D0-B483-00C04FD90119}
+// *********************************************************************//
+  IHTMLWindow2Disp = dispinterface
+    ['{332C4427-26CB-11D0-B483-00C04FD90119}']
+    property frames: IHTMLFramesCollection2 readonly dispid 1100;
+    property defaultStatus: WideString dispid 1101;
+    property status: WideString dispid 1102;
+    function setTimeout(const expression: WideString; msec: Integer; var language: OleVariant): Integer; dispid 1172;
+    procedure clearTimeout(timerID: Integer); dispid 1104;
+    procedure alert(const message: WideString); dispid 1105;
+    function confirm(const message: WideString): WordBool; dispid 1110;
+    function prompt(const message: WideString; const defstr: WideString): OleVariant; dispid 1111;
+    property Image: IHTMLImageElementFactory readonly dispid 1125;
+    property location: IHTMLLocation readonly dispid 14;
+    property history: IOmHistory readonly dispid 2;
+    procedure close; dispid 3;
+    property opener: OleVariant dispid 4;
+    property navigator: IOmNavigator readonly dispid 5;
+    property name: WideString dispid 11;
+    property parent: IHTMLWindow2 readonly dispid 12;
+    function open(const url: WideString; const name: WideString; const features: WideString;
+      replace: WordBool): IHTMLWindow2; dispid 13;
+    property self: IHTMLWindow2 readonly dispid 20;
+    property top: IHTMLWindow2 readonly dispid 21;
+    property window: IHTMLWindow2 readonly dispid 22;
+    procedure navigate(const url: WideString); dispid 25;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onblur: OleVariant dispid - 2147412097;
+    property onload: OleVariant dispid - 2147412080;
+    property onbeforeunload: OleVariant dispid - 2147412073;
+    property onunload: OleVariant dispid - 2147412079;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onerror: OleVariant dispid - 2147412083;
+    property onresize: OleVariant dispid - 2147412076;
+    property onscroll: OleVariant dispid - 2147412081;
+    property document: IHTMLDocument2 readonly dispid 1151;
+    property event: IHTMLEventObj readonly dispid 1152;
+    property _newEnum: IUnknown readonly dispid 1153;
+    function showModalDialog(const dialog: WideString; var varArgIn: OleVariant;
+      var varOptions: OleVariant): OleVariant; dispid 1154;
+    procedure showHelp(const helpURL: WideString; helpArg: OleVariant; const features: WideString); dispid 1155;
+    property screen: IHTMLScreen readonly dispid 1156;
+    property Option: IHTMLOptionElementFactory readonly dispid 1157;
+    procedure focus; dispid 1158;
+    property closed: WordBool readonly dispid 23;
+    procedure blur; dispid 1159;
+    procedure scroll(x: Integer; y: Integer); dispid 1160;
+    property clientInformation: IOmNavigator readonly dispid 1161;
+    function setInterval(const expression: WideString; msec: Integer; var language: OleVariant): Integer; dispid 1173;
+    procedure clearInterval(timerID: Integer); dispid 1163;
+    property offscreenBuffering: OleVariant dispid 1164;
+    function execScript(const code: WideString; const language: WideString): OleVariant; dispid 1165;
+    function toString: WideString; dispid 1166;
+    procedure scrollBy(x: Integer; y: Integer); dispid 1167;
+    procedure scrollTo(x: Integer; y: Integer); dispid 1168;
+    procedure moveTo(x: Integer; y: Integer); dispid 6;
+    procedure moveBy(x: Integer; y: Integer); dispid 7;
+    procedure resizeTo(x: Integer; y: Integer); dispid 9;
+    procedure resizeBy(x: Integer; y: Integer); dispid 8;
+    property external: IDispatch readonly dispid 1169;
+    // !! API fix decl
+    function item(const pvarIndex: OleVariant): OleVariant; dispid 0;
+    property length: Integer readonly dispid 1001;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLScreen
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F35C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLScreen = interface(IDispatch)
+    ['{3050F35C-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_colorDepth: Integer; safecall;
+    procedure Set_bufferDepth(p: Integer); safecall;
+    function Get_bufferDepth: Integer; safecall;
+    function Get_width: Integer; safecall;
+    function Get_height: Integer; safecall;
+    procedure Set_updateInterval(p: Integer); safecall;
+    function Get_updateInterval: Integer; safecall;
+    function Get_availHeight: Integer; safecall;
+    function Get_availWidth: Integer; safecall;
+    function Get_fontSmoothingEnabled: WordBool; safecall;
+    property colorDepth: Integer read Get_colorDepth;
+    property bufferDepth: Integer read Get_bufferDepth write Set_bufferDepth;
+    property width: Integer read Get_width;
+    property height: Integer read Get_height;
+    property updateInterval: Integer read Get_updateInterval write Set_updateInterval;
+    property availHeight: Integer read Get_availHeight;
+    property availWidth: Integer read Get_availWidth;
+    property fontSmoothingEnabled: WordBool read Get_fontSmoothingEnabled;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLScreenDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F35C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLScreenDisp = dispinterface
+    ['{3050F35C-98B5-11CF-BB82-00AA00BDCE0B}']
+    property colorDepth: Integer readonly dispid 1001;
+    property bufferDepth: Integer dispid 1002;
+    property width: Integer readonly dispid 1003;
+    property height: Integer readonly dispid 1004;
+    property updateInterval: Integer dispid 1005;
+    property availHeight: Integer readonly dispid 1006;
+    property availWidth: Integer readonly dispid 1007;
+    property fontSmoothingEnabled: WordBool readonly dispid 1008;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLWindow3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4AE-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLWindow3 = interface(IDispatch)
+    ['{3050F4AE-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_screenLeft: Integer; safecall;
+    function Get_screenTop: Integer; safecall;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; safecall;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); safecall;
+    function setTimeout(var expression: OleVariant; msec: Integer; var language: OleVariant): Integer; safecall;
+    function setInterval(var expression: OleVariant; msec: Integer; var language: OleVariant): Integer; safecall;
+    procedure print; safecall;
+    procedure Set_onbeforeprint(p: OleVariant); safecall;
+    function Get_onbeforeprint: OleVariant; safecall;
+    procedure Set_onafterprint(p: OleVariant); safecall;
+    function Get_onafterprint: OleVariant; safecall;
+    function Get_clipboardData: IHTMLDataTransfer; safecall;
+    function showModelessDialog(const url: WideString; var varArgIn: OleVariant;
+      var options: OleVariant): IHTMLWindow2; safecall;
+    property screenLeft: Integer read Get_screenLeft;
+    property screenTop: Integer read Get_screenTop;
+    property onbeforeprint: OleVariant read Get_onbeforeprint write Set_onbeforeprint;
+    property onafterprint: OleVariant read Get_onafterprint write Set_onafterprint;
+    property clipboardData: IHTMLDataTransfer read Get_clipboardData;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLWindow3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4AE-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLWindow3Disp = dispinterface
+    ['{3050F4AE-98B5-11CF-BB82-00AA00BDCE0B}']
+    property screenLeft: Integer readonly dispid 1170;
+    property screenTop: Integer readonly dispid 1171;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    function setTimeout(var expression: OleVariant; msec: Integer; var language: OleVariant): Integer; dispid 1103;
+    function setInterval(var expression: OleVariant; msec: Integer; var language: OleVariant): Integer; dispid 1162;
+    procedure print; dispid 1174;
+    property onbeforeprint: OleVariant dispid - 2147412046;
+    property onafterprint: OleVariant dispid - 2147412045;
+    property clipboardData: IHTMLDataTransfer readonly dispid 1175;
+    function showModelessDialog(const url: WideString; var varArgIn: OleVariant;
+      var options: OleVariant): IHTMLWindow2; dispid 1176;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLFrameBase
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F311-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFrameBase = interface(IDispatch)
+    ['{3050F311-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_src(const p: WideString); safecall;
+    function Get_src: WideString; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_border(p: OleVariant); safecall;
+    function Get_border: OleVariant; safecall;
+    procedure Set_frameBorder(const p: WideString); safecall;
+    function Get_frameBorder: WideString; safecall;
+    procedure Set_frameSpacing(p: OleVariant); safecall;
+    function Get_frameSpacing: OleVariant; safecall;
+    procedure Set_marginWidth(p: OleVariant); safecall;
+    function Get_marginWidth: OleVariant; safecall;
+    procedure Set_marginHeight(p: OleVariant); safecall;
+    function Get_marginHeight: OleVariant; safecall;
+    procedure Set_noResize(p: WordBool); safecall;
+    function Get_noResize: WordBool; safecall;
+    procedure Set_scrolling(const p: WideString); safecall;
+    function Get_scrolling: WideString; safecall;
+    property src: WideString read Get_src write Set_src;
+    property name: WideString read Get_name write Set_name;
+    property border: OleVariant read Get_border write Set_border;
+    property frameBorder: WideString read Get_frameBorder write Set_frameBorder;
+    property frameSpacing: OleVariant read Get_frameSpacing write Set_frameSpacing;
+    property marginWidth: OleVariant read Get_marginWidth write Set_marginWidth;
+    property marginHeight: OleVariant read Get_marginHeight write Set_marginHeight;
+    property noResize: WordBool read Get_noResize write Set_noResize;
+    property scrolling: WideString read Get_scrolling write Set_scrolling;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLFrameBaseDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F311-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFrameBaseDisp = dispinterface
+    ['{3050F311-98B5-11CF-BB82-00AA00BDCE0B}']
+    property src: WideString dispid - 2147415112;
+    property name: WideString dispid - 2147418112;
+    property border: OleVariant dispid - 2147415110;
+    property frameBorder: WideString dispid - 2147415109;
+    property frameSpacing: OleVariant dispid - 2147415108;
+    property marginWidth: OleVariant dispid - 2147415107;
+    property marginHeight: OleVariant dispid - 2147415106;
+    property noResize: WordBool dispid - 2147415105;
+    property scrolling: WideString dispid - 2147415104;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLScreen2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F84A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLScreen2 = interface(IDispatch)
+    ['{3050F84A-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_logicalXDPI: Integer; safecall;
+    function Get_logicalYDPI: Integer; safecall;
+    function Get_deviceXDPI: Integer; safecall;
+    function Get_deviceYDPI: Integer; safecall;
+    property logicalXDPI: Integer read Get_logicalXDPI;
+    property logicalYDPI: Integer read Get_logicalYDPI;
+    property deviceXDPI: Integer read Get_deviceXDPI;
+    property deviceYDPI: Integer read Get_deviceYDPI;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLScreen2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F84A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLScreen2Disp = dispinterface
+    ['{3050F84A-98B5-11CF-BB82-00AA00BDCE0B}']
+    property logicalXDPI: Integer readonly dispid 1009;
+    property logicalYDPI: Integer readonly dispid 1010;
+    property deviceXDPI: Integer readonly dispid 1011;
+    property deviceYDPI: Integer readonly dispid 1012;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLWindow4
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F6CF-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLWindow4 = interface(IDispatch)
+    ['{3050F6CF-98B5-11CF-BB82-00AA00BDCE0B}']
+    function createPopup(var varArgIn: OleVariant): IDispatch; safecall;
+    function Get_frameElement: IHTMLFrameBase; safecall;
+    property frameElement: IHTMLFrameBase read Get_frameElement;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLWindow4Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F6CF-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLWindow4Disp = dispinterface
+    ['{3050F6CF-98B5-11CF-BB82-00AA00BDCE0B}']
+    function createPopup(var varArgIn: OleVariant): IDispatch; dispid 1180;
+    property frameElement: IHTMLFrameBase readonly dispid 1181;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLScreen
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F591-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLScreen = dispinterface
+    ['{3050F591-98B5-11CF-BB82-00AA00BDCE0B}']
+    property colorDepth: Integer readonly dispid 1001;
+    property bufferDepth: Integer dispid 1002;
+    property width: Integer readonly dispid 1003;
+    property height: Integer readonly dispid 1004;
+    property updateInterval: Integer dispid 1005;
+    property availHeight: Integer readonly dispid 1006;
+    property availWidth: Integer readonly dispid 1007;
+    property fontSmoothingEnabled: WordBool readonly dispid 1008;
+    property logicalXDPI: Integer readonly dispid 1009;
+    property logicalYDPI: Integer readonly dispid 1010;
+    property deviceXDPI: Integer readonly dispid 1011;
+    property deviceYDPI: Integer readonly dispid 1012;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLWindow2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F55D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLWindow2 = dispinterface
+    ['{3050F55D-98B5-11CF-BB82-00AA00BDCE0B}']
+    // !! API fix decl
+    function item(const pvarIndex: OleVariant): OleVariant; dispid 0;
+    property length: Integer readonly dispid 1001;
+    property frames: IHTMLFramesCollection2 readonly dispid 1100;
+    property defaultStatus: WideString dispid 1101;
+    property status: WideString dispid 1102;
+    procedure clearTimeout(timerID: Integer); dispid 1104;
+    procedure alert(const message: WideString); dispid 1105;
+    function confirm(const message: WideString): WordBool; dispid 1110;
+    function prompt(const message: WideString; const defstr: WideString): OleVariant; dispid 1111;
+    property Image: IHTMLImageElementFactory readonly dispid 1125;
+    property location: IHTMLLocation readonly dispid 14;
+    property history: IOmHistory readonly dispid 2;
+    procedure close; dispid 3;
+    property opener: OleVariant dispid 4;
+    property navigator: IOmNavigator readonly dispid 5;
+    property name: WideString dispid 11;
+    property parent: IHTMLWindow2 readonly dispid 12;
+    function open(const url: WideString; const name: WideString; const features: WideString;
+      replace: WordBool): IHTMLWindow2; dispid 13;
+    property self: IHTMLWindow2 readonly dispid 20;
+    property top: IHTMLWindow2 readonly dispid 21;
+    property window: IHTMLWindow2 readonly dispid 22;
+    procedure navigate(const url: WideString); dispid 25;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onblur: OleVariant dispid - 2147412097;
+    property onload: OleVariant dispid - 2147412080;
+    property onbeforeunload: OleVariant dispid - 2147412073;
+    property onunload: OleVariant dispid - 2147412079;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onerror: OleVariant dispid - 2147412083;
+    property onresize: OleVariant dispid - 2147412076;
+    property onscroll: OleVariant dispid - 2147412081;
+    property document: IHTMLDocument2 readonly dispid 1151;
+    property event: IHTMLEventObj readonly dispid 1152;
+    property _newEnum: IUnknown readonly dispid 1153;
+    function showModalDialog(const dialog: WideString; var varArgIn: OleVariant;
+      var varOptions: OleVariant): OleVariant; dispid 1154;
+    procedure showHelp(const helpURL: WideString; helpArg: OleVariant; const features: WideString); dispid 1155;
+    property screen: IHTMLScreen readonly dispid 1156;
+    property Option: IHTMLOptionElementFactory readonly dispid 1157;
+    procedure focus; dispid 1158;
+    property closed: WordBool readonly dispid 23;
+    procedure blur; dispid 1159;
+    procedure scroll(x: Integer; y: Integer); dispid 1160;
+    property clientInformation: IOmNavigator readonly dispid 1161;
+    procedure clearInterval(timerID: Integer); dispid 1163;
+    property offscreenBuffering: OleVariant dispid 1164;
+    function execScript(const code: WideString; const language: WideString): OleVariant; dispid 1165;
+    function toString: WideString; dispid 1166;
+    procedure scrollBy(x: Integer; y: Integer); dispid 1167;
+    procedure scrollTo(x: Integer; y: Integer); dispid 1168;
+    procedure moveTo(x: Integer; y: Integer); dispid 6;
+    procedure moveBy(x: Integer; y: Integer); dispid 7;
+    procedure resizeTo(x: Integer; y: Integer); dispid 9;
+    procedure resizeBy(x: Integer; y: Integer); dispid 8;
+    property external: IDispatch readonly dispid 1169;
+    property screenLeft: Integer readonly dispid 1170;
+    property screenTop: Integer readonly dispid 1171;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    function setTimeout(var expression: OleVariant; msec: Integer; var language: OleVariant): Integer; dispid 1103;
+    function setInterval(var expression: OleVariant; msec: Integer; var language: OleVariant): Integer; dispid 1162;
+    procedure print; dispid 1174;
+    property onbeforeprint: OleVariant dispid - 2147412046;
+    property onafterprint: OleVariant dispid - 2147412045;
+    property clipboardData: IHTMLDataTransfer readonly dispid 1175;
+    function showModelessDialog(const url: WideString; var varArgIn: OleVariant;
+      var options: OleVariant): IHTMLWindow2; dispid 1176;
+    function createPopup(var varArgIn: OleVariant): IDispatch; dispid 1180;
+    property frameElement: IHTMLFrameBase readonly dispid 1181;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLWindowProxy
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F55E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLWindowProxy = dispinterface
+    ['{3050F55E-98B5-11CF-BB82-00AA00BDCE0B}']
+    // !! API fix decl
+    function item(const pvarIndex: OleVariant): OleVariant; dispid 0;
+    property length: Integer readonly dispid 1001;
+    property frames: IHTMLFramesCollection2 readonly dispid 1100;
+    property defaultStatus: WideString dispid 1101;
+    property status: WideString dispid 1102;
+    procedure clearTimeout(timerID: Integer); dispid 1104;
+    procedure alert(const message: WideString); dispid 1105;
+    function confirm(const message: WideString): WordBool; dispid 1110;
+    function prompt(const message: WideString; const defstr: WideString): OleVariant; dispid 1111;
+    property Image: IHTMLImageElementFactory readonly dispid 1125;
+    property location: IHTMLLocation readonly dispid 14;
+    property history: IOmHistory readonly dispid 2;
+    procedure close; dispid 3;
+    property opener: OleVariant dispid 4;
+    property navigator: IOmNavigator readonly dispid 5;
+    property name: WideString dispid 11;
+    property parent: IHTMLWindow2 readonly dispid 12;
+    function open(const url: WideString; const name: WideString; const features: WideString;
+      replace: WordBool): IHTMLWindow2; dispid 13;
+    property self: IHTMLWindow2 readonly dispid 20;
+    property top: IHTMLWindow2 readonly dispid 21;
+    property window: IHTMLWindow2 readonly dispid 22;
+    procedure navigate(const url: WideString); dispid 25;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onblur: OleVariant dispid - 2147412097;
+    property onload: OleVariant dispid - 2147412080;
+    property onbeforeunload: OleVariant dispid - 2147412073;
+    property onunload: OleVariant dispid - 2147412079;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onerror: OleVariant dispid - 2147412083;
+    property onresize: OleVariant dispid - 2147412076;
+    property onscroll: OleVariant dispid - 2147412081;
+    property document: IHTMLDocument2 readonly dispid 1151;
+    property event: IHTMLEventObj readonly dispid 1152;
+    property _newEnum: IUnknown readonly dispid 1153;
+    function showModalDialog(const dialog: WideString; var varArgIn: OleVariant;
+      var varOptions: OleVariant): OleVariant; dispid 1154;
+    procedure showHelp(const helpURL: WideString; helpArg: OleVariant; const features: WideString); dispid 1155;
+    property screen: IHTMLScreen readonly dispid 1156;
+    property Option: IHTMLOptionElementFactory readonly dispid 1157;
+    procedure focus; dispid 1158;
+    property closed: WordBool readonly dispid 23;
+    procedure blur; dispid 1159;
+    procedure scroll(x: Integer; y: Integer); dispid 1160;
+    property clientInformation: IOmNavigator readonly dispid 1161;
+    procedure clearInterval(timerID: Integer); dispid 1163;
+    property offscreenBuffering: OleVariant dispid 1164;
+    function execScript(const code: WideString; const language: WideString): OleVariant; dispid 1165;
+    function toString: WideString; dispid 1166;
+    procedure scrollBy(x: Integer; y: Integer); dispid 1167;
+    procedure scrollTo(x: Integer; y: Integer); dispid 1168;
+    procedure moveTo(x: Integer; y: Integer); dispid 6;
+    procedure moveBy(x: Integer; y: Integer); dispid 7;
+    procedure resizeTo(x: Integer; y: Integer); dispid 9;
+    procedure resizeBy(x: Integer; y: Integer); dispid 8;
+    property external: IDispatch readonly dispid 1169;
+    property screenLeft: Integer readonly dispid 1170;
+    property screenTop: Integer readonly dispid 1171;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    function setTimeout(var expression: OleVariant; msec: Integer; var language: OleVariant): Integer; dispid 1103;
+    function setInterval(var expression: OleVariant; msec: Integer; var language: OleVariant): Integer; dispid 1162;
+    procedure print; dispid 1174;
+    property onbeforeprint: OleVariant dispid - 2147412046;
+    property onafterprint: OleVariant dispid - 2147412045;
+    property clipboardData: IHTMLDataTransfer readonly dispid 1175;
+    function showModelessDialog(const url: WideString; var varArgIn: OleVariant;
+      var options: OleVariant): IHTMLWindow2; dispid 1176;
+    function createPopup(var varArgIn: OleVariant): IDispatch; dispid 1180;
+    property frameElement: IHTMLFrameBase readonly dispid 1181;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLDocumentEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F613-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLDocumentEvents2 = dispinterface
+    ['{3050F613-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    function onstop(const pEvtObj: IHTMLEventObj): WordBool; dispid 1026;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onbeforeeditfocus(const pEvtObj: IHTMLEventObj); dispid 1027;
+    procedure onselectionchange(const pEvtObj: IHTMLEventObj); dispid 1037;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLDocumentEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F260-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLDocumentEvents = dispinterface
+    ['{3050F260-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onmousedown; dispid - 605;
+    procedure onmousemove; dispid - 606;
+    procedure onmouseup; dispid - 607;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onreadystatechange; dispid - 609;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onselectstart: WordBool; dispid - 2147418100;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function oncontextmenu: WordBool; dispid 1023;
+    function onstop: WordBool; dispid 1026;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onselectionchange; dispid 1037;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    function onbeforeactivate: WordBool; dispid 1047;
+    function onbeforedeactivate: WordBool; dispid 1034;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDocument3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F485-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDocument3 = interface(IDispatch)
+    ['{3050F485-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure releaseCapture; safecall;
+    procedure recalc(fForce: WordBool); safecall;
+    function createTextNode(const text: WideString): IHTMLDOMNode; safecall;
+    function Get_documentElement: IHTMLElement; safecall;
+    function Get_uniqueID: WideString; safecall;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; safecall;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); safecall;
+    procedure Set_onrowsdelete(p: OleVariant); safecall;
+    function Get_onrowsdelete: OleVariant; safecall;
+    procedure Set_onrowsinserted(p: OleVariant); safecall;
+    function Get_onrowsinserted: OleVariant; safecall;
+    procedure Set_oncellchange(p: OleVariant); safecall;
+    function Get_oncellchange: OleVariant; safecall;
+    procedure Set_ondatasetchanged(p: OleVariant); safecall;
+    function Get_ondatasetchanged: OleVariant; safecall;
+    procedure Set_ondataavailable(p: OleVariant); safecall;
+    function Get_ondataavailable: OleVariant; safecall;
+    procedure Set_ondatasetcomplete(p: OleVariant); safecall;
+    function Get_ondatasetcomplete: OleVariant; safecall;
+    procedure Set_onpropertychange(p: OleVariant); safecall;
+    function Get_onpropertychange: OleVariant; safecall;
+    procedure Set_dir(const p: WideString); safecall;
+    function Get_dir: WideString; safecall;
+    procedure Set_oncontextmenu(p: OleVariant); safecall;
+    function Get_oncontextmenu: OleVariant; safecall;
+    procedure Set_onstop(p: OleVariant); safecall;
+    function Get_onstop: OleVariant; safecall;
+    function createDocumentFragment: IHTMLDocument2; safecall;
+    function Get_parentDocument: IHTMLDocument2; safecall;
+    procedure Set_enableDownload(p: WordBool); safecall;
+    function Get_enableDownload: WordBool; safecall;
+    procedure Set_baseUrl(const p: WideString); safecall;
+    function Get_baseUrl: WideString; safecall;
+    function Get_childNodes: IDispatch; safecall;
+    procedure Set_inheritStyleSheets(p: WordBool); safecall;
+    function Get_inheritStyleSheets: WordBool; safecall;
+    procedure Set_onbeforeeditfocus(p: OleVariant); safecall;
+    function Get_onbeforeeditfocus: OleVariant; safecall;
+    function getElementsByName(const v: WideString): IHTMLElementCollection; safecall;
+    function getElementById(const v: WideString): IHTMLElement; safecall;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; safecall;
+    property documentElement: IHTMLElement read Get_documentElement;
+    property uniqueID: WideString read Get_uniqueID;
+    property onrowsdelete: OleVariant read Get_onrowsdelete write Set_onrowsdelete;
+    property onrowsinserted: OleVariant read Get_onrowsinserted write Set_onrowsinserted;
+    property oncellchange: OleVariant read Get_oncellchange write Set_oncellchange;
+    property ondatasetchanged: OleVariant read Get_ondatasetchanged write Set_ondatasetchanged;
+    property ondataavailable: OleVariant read Get_ondataavailable write Set_ondataavailable;
+    property ondatasetcomplete: OleVariant read Get_ondatasetcomplete write Set_ondatasetcomplete;
+    property onpropertychange: OleVariant read Get_onpropertychange write Set_onpropertychange;
+    property dir: WideString read Get_dir write Set_dir;
+    property oncontextmenu: OleVariant read Get_oncontextmenu write Set_oncontextmenu;
+    property onstop: OleVariant read Get_onstop write Set_onstop;
+    property parentDocument: IHTMLDocument2 read Get_parentDocument;
+    property enableDownload: WordBool read Get_enableDownload write Set_enableDownload;
+    property baseUrl: WideString read Get_baseUrl write Set_baseUrl;
+    property childNodes: IDispatch read Get_childNodes;
+    property inheritStyleSheets: WordBool read Get_inheritStyleSheets write Set_inheritStyleSheets;
+    property onbeforeeditfocus: OleVariant read Get_onbeforeeditfocus write Set_onbeforeeditfocus;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDocument3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F485-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDocument3Disp = dispinterface
+    ['{3050F485-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure releaseCapture; dispid 1072;
+    procedure recalc(fForce: WordBool); dispid 1073;
+    function createTextNode(const text: WideString): IHTMLDOMNode; dispid 1074;
+    property documentElement: IHTMLElement readonly dispid 1075;
+    property uniqueID: WideString readonly dispid 1077;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    property dir: WideString dispid - 2147412995;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    property onstop: OleVariant dispid - 2147412044;
+    function createDocumentFragment: IHTMLDocument2; dispid 1076;
+    property parentDocument: IHTMLDocument2 readonly dispid 1078;
+    property enableDownload: WordBool dispid 1079;
+    property baseUrl: WideString dispid 1080;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property inheritStyleSheets: WordBool dispid 1082;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    function getElementsByName(const v: WideString): IHTMLElementCollection; dispid 1086;
+    function getElementById(const v: WideString): IHTMLElement; dispid 1088;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid 1087;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDocument4
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F69A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDocument4 = interface(IDispatch)
+    ['{3050F69A-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure focus; safecall;
+    function hasFocus: WordBool; safecall;
+    procedure Set_onselectionchange(p: OleVariant); safecall;
+    function Get_onselectionchange: OleVariant; safecall;
+    function Get_namespaces: IDispatch; safecall;
+    function createDocumentFromUrl(const bstrUrl: WideString; const bstrOptions: WideString): IHTMLDocument2; safecall;
+    procedure Set_media(const p: WideString); safecall;
+    function Get_media: WideString; safecall;
+    function CreateEventObject(var pvarEventObject: OleVariant): IHTMLEventObj; safecall;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; safecall;
+    function createRenderStyle(const v: WideString): IHTMLRenderStyle; safecall;
+    procedure Set_oncontrolselect(p: OleVariant); safecall;
+    function Get_oncontrolselect: OleVariant; safecall;
+    function Get_URLUnencoded: WideString; safecall;
+    property onselectionchange: OleVariant read Get_onselectionchange write Set_onselectionchange;
+    property namespaces: IDispatch read Get_namespaces;
+    property media: WideString read Get_media write Set_media;
+    property oncontrolselect: OleVariant read Get_oncontrolselect write Set_oncontrolselect;
+    property URLUnencoded: WideString read Get_URLUnencoded;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDocument4Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F69A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDocument4Disp = dispinterface
+    ['{3050F69A-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure focus; dispid 1089;
+    function hasFocus: WordBool; dispid 1090;
+    property onselectionchange: OleVariant dispid - 2147412032;
+    property namespaces: IDispatch readonly dispid 1091;
+    function createDocumentFromUrl(const bstrUrl: WideString; const bstrOptions: WideString): IHTMLDocument2; dispid 1092;
+    property media: WideString dispid 1093;
+    function CreateEventObject(var pvarEventObject: OleVariant): IHTMLEventObj; dispid 1094;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid 1095;
+    function createRenderStyle(const v: WideString): IHTMLRenderStyle; dispid 1096;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    property URLUnencoded: WideString readonly dispid 1097;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDocument5
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F80C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDocument5 = interface(IDispatch)
+    ['{3050F80C-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_onmousewheel(p: OleVariant); safecall;
+    function Get_onmousewheel: OleVariant; safecall;
+    function Get_doctype: IHTMLDOMNode; safecall;
+    function Get_implementation_: IHTMLDOMImplementation; safecall;
+    function createAttribute(const bstrattrName: WideString): IHTMLDOMAttribute; safecall;
+    function createComment(const bstrdata: WideString): IHTMLDOMNode; safecall;
+    procedure Set_onfocusin(p: OleVariant); safecall;
+    function Get_onfocusin: OleVariant; safecall;
+    procedure Set_onfocusout(p: OleVariant); safecall;
+    function Get_onfocusout: OleVariant; safecall;
+    procedure Set_onactivate(p: OleVariant); safecall;
+    function Get_onactivate: OleVariant; safecall;
+    procedure Set_ondeactivate(p: OleVariant); safecall;
+    function Get_ondeactivate: OleVariant; safecall;
+    procedure Set_onbeforeactivate(p: OleVariant); safecall;
+    function Get_onbeforeactivate: OleVariant; safecall;
+    procedure Set_onbeforedeactivate(p: OleVariant); safecall;
+    function Get_onbeforedeactivate: OleVariant; safecall;
+    function Get_compatMode: WideString; safecall;
+    property onmousewheel: OleVariant read Get_onmousewheel write Set_onmousewheel;
+    property doctype: IHTMLDOMNode read Get_doctype;
+    property implementation_: IHTMLDOMImplementation read Get_implementation_;
+    property onfocusin: OleVariant read Get_onfocusin write Set_onfocusin;
+    property onfocusout: OleVariant read Get_onfocusout write Set_onfocusout;
+    property onactivate: OleVariant read Get_onactivate write Set_onactivate;
+    property ondeactivate: OleVariant read Get_ondeactivate write Set_ondeactivate;
+    property onbeforeactivate: OleVariant read Get_onbeforeactivate write Set_onbeforeactivate;
+    property onbeforedeactivate: OleVariant read Get_onbeforedeactivate write Set_onbeforedeactivate;
+    property compatMode: WideString read Get_compatMode;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDocument5Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F80C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDocument5Disp = dispinterface
+    ['{3050F80C-98B5-11CF-BB82-00AA00BDCE0B}']
+    property onmousewheel: OleVariant dispid - 2147412036;
+    property doctype: IHTMLDOMNode readonly dispid 1098;
+    property implementation_: IHTMLDOMImplementation readonly dispid 1099;
+    function createAttribute(const bstrattrName: WideString): IHTMLDOMAttribute; dispid 1100;
+    function createComment(const bstrdata: WideString): IHTMLDOMNode; dispid 1101;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    property compatMode: WideString readonly dispid 1102;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLDocument
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F55F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLDocument = dispinterface
+    ['{3050F55F-98B5-11CF-BB82-00AA00BDCE0B}']
+    property Script: IDispatch readonly dispid 1001;
+    property all: IHTMLElementCollection readonly dispid 1003;
+    property body: IHTMLElement readonly dispid 1004;
+    property activeElement: IHTMLElement readonly dispid 1005;
+    property images: IHTMLElementCollection readonly dispid 1011;
+    property applets: IHTMLElementCollection readonly dispid 1008;
+    property links: IHTMLElementCollection readonly dispid 1009;
+    property forms: IHTMLElementCollection readonly dispid 1010;
+    property anchors: IHTMLElementCollection readonly dispid 1007;
+    property title: WideString dispid 1012;
+    property scripts: IHTMLElementCollection readonly dispid 1013;
+    property designMode: WideString dispid 1014;
+    property selection: IHTMLSelectionObject readonly dispid 1017;
+    property readyState: WideString readonly dispid 1018;
+    property frames: IHTMLFramesCollection2 readonly dispid 1019;
+    property embeds: IHTMLElementCollection readonly dispid 1015;
+    property plugins: IHTMLElementCollection readonly dispid 1021;
+    property alinkColor: OleVariant dispid 1022;
+    property bgColor: OleVariant dispid - 501;
+    property fgColor: OleVariant dispid - 2147413110;
+    property linkColor: OleVariant dispid 1024;
+    property vlinkColor: OleVariant dispid 1023;
+    property referrer: WideString readonly dispid 1027;
+    property location: IHTMLLocation readonly dispid 1026;
+    property lastModified: WideString readonly dispid 1028;
+    property url: WideString dispid 1025;
+    property domain: WideString dispid 1029;
+    property cookie: WideString dispid 1030;
+    property expando: WordBool dispid 1031;
+    property charset: WideString dispid 1032;
+    property defaultCharset: WideString dispid 1033;
+    property mimeType: WideString readonly dispid 1041;
+    property fileSize: WideString readonly dispid 1042;
+    property fileCreatedDate: WideString readonly dispid 1043;
+    property fileModifiedDate: WideString readonly dispid 1044;
+    property fileUpdatedDate: WideString readonly dispid 1045;
+    property security: WideString readonly dispid 1046;
+    property protocol: WideString readonly dispid 1047;
+    property nameProp: WideString readonly dispid 1048;
+    procedure write(psarray: {??PSafeArray} OleVariant); dispid 1054;
+    procedure writeln(psarray: {??PSafeArray} OleVariant); dispid 1055;
+    function open(const url: WideString; name: OleVariant; features: OleVariant; replace: OleVariant): IDispatch; dispid 1056;
+    procedure close; dispid 1057;
+    procedure clear; dispid 1058;
+    function queryCommandSupported(const cmdID: WideString): WordBool; dispid 1059;
+    function queryCommandEnabled(const cmdID: WideString): WordBool; dispid 1060;
+    function queryCommandState(const cmdID: WideString): WordBool; dispid 1061;
+    function queryCommandIndeterm(const cmdID: WideString): WordBool; dispid 1062;
+    function queryCommandText(const cmdID: WideString): WideString; dispid 1063;
+    function queryCommandValue(const cmdID: WideString): OleVariant; dispid 1064;
+    function execCommand(const cmdID: WideString; showUI: WordBool; value: OleVariant): WordBool; dispid 1065;
+    function execCommandShowHelp(const cmdID: WideString): WordBool; dispid 1066;
+    function createElement(const eTag: WideString): IHTMLElement; dispid 1067;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondragstart: OleVariant dispid - 2147412077;
+    property onselectstart: OleVariant dispid - 2147412075;
+    function elementFromPoint(x: Integer; y: Integer): IHTMLElement; dispid 1068;
+    property parentWindow: IHTMLWindow2 readonly dispid 1034;
+    property styleSheets: IHTMLStyleSheetsCollection readonly dispid 1069;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    function toString: WideString; dispid 1070;
+    function createStyleSheet(const bstrHref: WideString; lIndex: Integer): IHTMLStyleSheet; dispid 1071;
+    procedure releaseCapture; dispid 1072;
+    procedure recalc(fForce: WordBool); dispid 1073;
+    function createTextNode(const text: WideString): IHTMLDOMNode; dispid 1074;
+    property documentElement: IHTMLElement readonly dispid 1075;
+    property uniqueID: WideString readonly dispid 1077;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    property dir: WideString dispid - 2147412995;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    property onstop: OleVariant dispid - 2147412044;
+    function createDocumentFragment: IHTMLDocument2; dispid 1076;
+    property parentDocument: IHTMLDocument2 readonly dispid 1078;
+    property enableDownload: WordBool dispid 1079;
+    property baseUrl: WideString dispid 1080;
+    property inheritStyleSheets: WordBool dispid 1082;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    function getElementsByName(const v: WideString): IHTMLElementCollection; dispid 1086;
+    function getElementById(const v: WideString): IHTMLElement; dispid 1088;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid 1087;
+    procedure focus; dispid 1089;
+    function hasFocus: WordBool; dispid 1090;
+    property onselectionchange: OleVariant dispid - 2147412032;
+    property namespaces: IDispatch readonly dispid 1091;
+    function createDocumentFromUrl(const bstrUrl: WideString; const bstrOptions: WideString): IHTMLDocument2; dispid 1092;
+    property media: WideString dispid 1093;
+    function CreateEventObject(var pvarEventObject: OleVariant): IHTMLEventObj; dispid 1094;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid 1095;
+    function createRenderStyle(const v: WideString): IHTMLRenderStyle; dispid 1096;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    property URLUnencoded: WideString readonly dispid 1097;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    property doctype: IHTMLDOMNode readonly dispid 1098;
+    property implementation_: IHTMLDOMImplementation readonly dispid 1099;
+    function createAttribute(const bstrattrName: WideString): IHTMLDOMAttribute; dispid 1100;
+    function createComment(const bstrdata: WideString): IHTMLDOMNode; dispid 1101;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    property compatMode: WideString readonly dispid 1102;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DWebBridgeEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {A6D897FF-0A95-11D1-B0BA-006008166E11}
+// *********************************************************************//
+  DWebBridgeEvents = dispinterface
+    ['{A6D897FF-0A95-11D1-B0BA-006008166E11}']
+    procedure onscriptletevent(const name: WideString; eventData: OleVariant); dispid 1;
+    procedure onreadystatechange; dispid - 609;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onmousedown; dispid - 605;
+    procedure onmousemove; dispid - 606;
+    procedure onmouseup; dispid - 607;
+  end;
+
+// *********************************************************************//
+// Interface: IWebBridge
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {AE24FDAD-03C6-11D1-8B76-0080C744F389}
+// *********************************************************************//
+  IWebBridge = interface(IDispatch)
+    ['{AE24FDAD-03C6-11D1-8B76-0080C744F389}']
+    procedure Set_url(const p: WideString); safecall;
+    function Get_url: WideString; safecall;
+    procedure Set_Scrollbar(p: WordBool); safecall;
+    function Get_Scrollbar: WordBool; safecall;
+    procedure Set_embed(p: WordBool); safecall;
+    function Get_embed: WordBool; safecall;
+    function Get_event: IDispatch; safecall;
+    function Get_readyState: Integer; safecall;
+    procedure AboutBox; safecall;
+    property url: WideString read Get_url write Set_url;
+    property Scrollbar: WordBool read Get_Scrollbar write Set_Scrollbar;
+    property embed: WordBool read Get_embed write Set_embed;
+    property event: IDispatch read Get_event;
+    property readyState: Integer read Get_readyState;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IWebBridgeDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {AE24FDAD-03C6-11D1-8B76-0080C744F389}
+// *********************************************************************//
+  IWebBridgeDisp = dispinterface
+    ['{AE24FDAD-03C6-11D1-8B76-0080C744F389}']
+    property url: WideString dispid 1;
+    property Scrollbar: WordBool dispid 2;
+    property embed: WordBool dispid 3;
+    property event: IDispatch readonly dispid 1152;
+    property readyState: Integer readonly dispid - 525;
+    procedure AboutBox; dispid - 552;
+  end;
+
+// *********************************************************************//
+// Interface: IWBScriptControl
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {A5170870-0CF8-11D1-8B91-0080C744F389}
+// *********************************************************************//
+  IWBScriptControl = interface(IDispatch)
+    ['{A5170870-0CF8-11D1-8B91-0080C744F389}']
+    procedure raiseEvent(const name: WideString; eventData: OleVariant); safecall;
+    procedure bubbleEvent; safecall;
+    procedure setContextMenu(menuItemPairs: OleVariant); safecall;
+    procedure Set_selectableContent(p: WordBool); safecall;
+    function Get_selectableContent: WordBool; safecall;
+    function Get_frozen: WordBool; safecall;
+    procedure Set_Scrollbar(p: WordBool); safecall;
+    function Get_Scrollbar: WordBool; safecall;
+    function Get_version: WideString; safecall;
+    function Get_visibility: WordBool; safecall;
+    procedure Set_onvisibilitychange(p: OleVariant); safecall;
+    function Get_onvisibilitychange: OleVariant; safecall;
+    property selectableContent: WordBool read Get_selectableContent write Set_selectableContent;
+    property frozen: WordBool read Get_frozen;
+    property Scrollbar: WordBool read Get_Scrollbar write Set_Scrollbar;
+    property version: WideString read Get_version;
+    property visibility: WordBool read Get_visibility;
+    property onvisibilitychange: OleVariant read Get_onvisibilitychange write Set_onvisibilitychange;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IWBScriptControlDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {A5170870-0CF8-11D1-8B91-0080C744F389}
+// *********************************************************************//
+  IWBScriptControlDisp = dispinterface
+    ['{A5170870-0CF8-11D1-8B91-0080C744F389}']
+    procedure raiseEvent(const name: WideString; eventData: OleVariant); dispid 1;
+    procedure bubbleEvent; dispid 2;
+    procedure setContextMenu(menuItemPairs: OleVariant); dispid 3;
+    property selectableContent: WordBool dispid 4;
+    property frozen: WordBool readonly dispid 5;
+    property Scrollbar: WordBool dispid 7;
+    property version: WideString readonly dispid 8;
+    property visibility: WordBool readonly dispid 9;
+    property onvisibilitychange: OleVariant dispid 10;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLEmbedElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F25F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLEmbedElement = interface(IDispatch)
+    ['{3050F25F-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_hidden(const p: WideString); safecall;
+    function Get_hidden: WideString; safecall;
+    function Get_palette: WideString; safecall;
+    function Get_pluginspage: WideString; safecall;
+    procedure Set_src(const p: WideString); safecall;
+    function Get_src: WideString; safecall;
+    procedure Set_units(const p: WideString); safecall;
+    function Get_units: WideString; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_width(p: OleVariant); safecall;
+    function Get_width: OleVariant; safecall;
+    procedure Set_height(p: OleVariant); safecall;
+    function Get_height: OleVariant; safecall;
+    property hidden: WideString read Get_hidden write Set_hidden;
+    property palette: WideString read Get_palette;
+    property pluginspage: WideString read Get_pluginspage;
+    property src: WideString read Get_src write Set_src;
+    property units: WideString read Get_units write Set_units;
+    property name: WideString read Get_name write Set_name;
+    property width: OleVariant read Get_width write Set_width;
+    property height: OleVariant read Get_height write Set_height;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLEmbedElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F25F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLEmbedElementDisp = dispinterface
+    ['{3050F25F-98B5-11CF-BB82-00AA00BDCE0B}']
+    property hidden: WideString dispid - 2147415102;
+    property palette: WideString readonly dispid - 2147415108;
+    property pluginspage: WideString readonly dispid - 2147415107;
+    property src: WideString dispid - 2147415106;
+    property units: WideString dispid - 2147415104;
+    property name: WideString dispid - 2147418112;
+    property width: OleVariant dispid - 2147418107;
+    property height: OleVariant dispid - 2147418106;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLEmbed
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F52E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLEmbed = dispinterface
+    ['{3050F52E-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property hidden: WideString dispid - 2147415102;
+    property palette: WideString readonly dispid - 2147415108;
+    property pluginspage: WideString readonly dispid - 2147415107;
+    property src: WideString dispid - 2147415106;
+    property units: WideString dispid - 2147415104;
+    property name: WideString dispid - 2147418112;
+    property width: OleVariant dispid - 2147418107;
+    property height: OleVariant dispid - 2147418106;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLMapEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F61E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLMapEvents2 = dispinterface
+    ['{3050F61E-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLMapEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F3BA-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLMapEvents = dispinterface
+    ['{3050F3BA-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLAreasCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F383-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAreasCollection = interface(IDispatch)
+    ['{3050F383-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_length(p: Integer); safecall;
+    function Get_length: Integer; safecall;
+    function Get__newEnum: IUnknown; safecall;
+    function item(name: OleVariant; index: OleVariant): IDispatch; safecall;
+    function tags(tagName: OleVariant): IDispatch; safecall;
+    procedure add(const element: IHTMLElement; before: OleVariant); safecall;
+    procedure remove(index: Integer); safecall;
+    property length: Integer read Get_length write Set_length;
+    property _newEnum: IUnknown read Get__newEnum;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLAreasCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F383-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAreasCollectionDisp = dispinterface
+    ['{3050F383-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer dispid 1500;
+    property _newEnum: IUnknown readonly dispid - 4;
+    function item(name: OleVariant; index: OleVariant): IDispatch; dispid 0;
+    function tags(tagName: OleVariant): IDispatch; dispid 1502;
+    procedure add(const element: IHTMLElement; before: OleVariant); dispid 1503;
+    procedure remove(index: Integer); dispid 1504;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLAreasCollection2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5EC-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAreasCollection2 = interface(IDispatch)
+    ['{3050F5EC-98B5-11CF-BB82-00AA00BDCE0B}']
+    function urns(urn: OleVariant): IDispatch; safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLAreasCollection2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5EC-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAreasCollection2Disp = dispinterface
+    ['{3050F5EC-98B5-11CF-BB82-00AA00BDCE0B}']
+    function urns(urn: OleVariant): IDispatch; dispid 1505;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLAreasCollection3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F837-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAreasCollection3 = interface(IDispatch)
+    ['{3050F837-98B5-11CF-BB82-00AA00BDCE0B}']
+    function namedItem(const name: WideString): IDispatch; safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLAreasCollection3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F837-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAreasCollection3Disp = dispinterface
+    ['{3050F837-98B5-11CF-BB82-00AA00BDCE0B}']
+    function namedItem(const name: WideString): IDispatch; dispid 1506;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLMapElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F266-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLMapElement = interface(IDispatch)
+    ['{3050F266-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_areas: IHTMLAreasCollection; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    property areas: IHTMLAreasCollection read Get_areas;
+    property name: WideString read Get_name write Set_name;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLMapElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F266-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLMapElementDisp = dispinterface
+    ['{3050F266-98B5-11CF-BB82-00AA00BDCE0B}']
+    property areas: IHTMLAreasCollection readonly dispid 1002;
+    property name: WideString dispid - 2147418112;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLAreasCollection
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F56A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLAreasCollection = dispinterface
+    ['{3050F56A-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer dispid 1500;
+    property _newEnum: IUnknown readonly dispid - 4;
+    function item(name: OleVariant; index: OleVariant): IDispatch; dispid 0;
+    function tags(tagName: OleVariant): IDispatch; dispid 1502;
+    procedure add(const element: IHTMLElement; before: OleVariant); dispid 1503;
+    procedure remove(index: Integer); dispid 1504;
+    function urns(urn: OleVariant): IDispatch; dispid 1505;
+    function namedItem(const name: WideString): IDispatch; dispid 1506;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLMapElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F526-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLMapElement = dispinterface
+    ['{3050F526-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property areas: IHTMLAreasCollection readonly dispid 1002;
+    property name: WideString dispid - 2147418112;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLAreaEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F611-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLAreaEvents2 = dispinterface
+    ['{3050F611-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLAreaEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F366-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLAreaEvents = dispinterface
+    ['{3050F366-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLAreaElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F265-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAreaElement = interface(IDispatch)
+    ['{3050F265-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_shape(const p: WideString); safecall;
+    function Get_shape: WideString; safecall;
+    procedure Set_coords(const p: WideString); safecall;
+    function Get_coords: WideString; safecall;
+    procedure Set_href(const p: WideString); safecall;
+    function Get_href: WideString; safecall;
+    procedure Set_target(const p: WideString); safecall;
+    function Get_target: WideString; safecall;
+    procedure Set_alt(const p: WideString); safecall;
+    function Get_alt: WideString; safecall;
+    procedure Set_noHref(p: WordBool); safecall;
+    function Get_noHref: WordBool; safecall;
+    procedure Set_host(const p: WideString); safecall;
+    function Get_host: WideString; safecall;
+    procedure Set_hostname(const p: WideString); safecall;
+    function Get_hostname: WideString; safecall;
+    procedure Set_pathname(const p: WideString); safecall;
+    function Get_pathname: WideString; safecall;
+    procedure Set_port(const p: WideString); safecall;
+    function Get_port: WideString; safecall;
+    procedure Set_protocol(const p: WideString); safecall;
+    function Get_protocol: WideString; safecall;
+    procedure Set_search(const p: WideString); safecall;
+    function Get_search: WideString; safecall;
+    procedure Set_hash(const p: WideString); safecall;
+    function Get_hash: WideString; safecall;
+    procedure Set_onblur(p: OleVariant); safecall;
+    function Get_onblur: OleVariant; safecall;
+    procedure Set_onfocus(p: OleVariant); safecall;
+    function Get_onfocus: OleVariant; safecall;
+    procedure Set_tabIndex(p: Smallint); safecall;
+    function Get_tabIndex: Smallint; safecall;
+    procedure focus; safecall;
+    procedure blur; safecall;
+    property shape: WideString read Get_shape write Set_shape;
+    property coords: WideString read Get_coords write Set_coords;
+    property href: WideString read Get_href write Set_href;
+    property target: WideString read Get_target write Set_target;
+    property alt: WideString read Get_alt write Set_alt;
+    property noHref: WordBool read Get_noHref write Set_noHref;
+    property host: WideString read Get_host write Set_host;
+    property hostname: WideString read Get_hostname write Set_hostname;
+    property pathname: WideString read Get_pathname write Set_pathname;
+    property port: WideString read Get_port write Set_port;
+    property protocol: WideString read Get_protocol write Set_protocol;
+    property search: WideString read Get_search write Set_search;
+    property hash: WideString read Get_hash write Set_hash;
+    property onblur: OleVariant read Get_onblur write Set_onblur;
+    property onfocus: OleVariant read Get_onfocus write Set_onfocus;
+    property tabIndex: Smallint read Get_tabIndex write Set_tabIndex;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLAreaElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F265-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAreaElementDisp = dispinterface
+    ['{3050F265-98B5-11CF-BB82-00AA00BDCE0B}']
+    property shape: WideString dispid 1001;
+    property coords: WideString dispid 1002;
+    property href: WideString dispid 0;
+    property target: WideString dispid 1004;
+    property alt: WideString dispid 1005;
+    property noHref: WordBool dispid 1006;
+    property host: WideString dispid 1007;
+    property hostname: WideString dispid 1008;
+    property pathname: WideString dispid 1009;
+    property port: WideString dispid 1010;
+    property protocol: WideString dispid 1011;
+    property search: WideString dispid 1012;
+    property hash: WideString dispid 1013;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    procedure blur; dispid - 2147416110;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLAreaElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F503-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLAreaElement = dispinterface
+    ['{3050F503-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property shape: WideString dispid 1001;
+    property coords: WideString dispid 1002;
+    property href: WideString dispid 0;
+    property target: WideString dispid 1004;
+    property alt: WideString dispid 1005;
+    property noHref: WordBool dispid 1006;
+    property host: WideString dispid 1007;
+    property hostname: WideString dispid 1008;
+    property pathname: WideString dispid 1009;
+    property port: WideString dispid 1010;
+    property protocol: WideString dispid 1011;
+    property search: WideString dispid 1012;
+    property hash: WideString dispid 1013;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTableCaption
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2EB-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableCaption = interface(IDispatch)
+    ['{3050F2EB-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    procedure Set_vAlign(const p: WideString); safecall;
+    function Get_vAlign: WideString; safecall;
+    property align: WideString read Get_align write Set_align;
+    property vAlign: WideString read Get_vAlign write Set_vAlign;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTableCaptionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2EB-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableCaptionDisp = dispinterface
+    ['{3050F2EB-98B5-11CF-BB82-00AA00BDCE0B}']
+    property align: WideString dispid - 2147418040;
+    property vAlign: WideString dispid - 2147413081;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLTableCaption
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F508-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLTableCaption = dispinterface
+    ['{3050F508-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property align: WideString dispid - 2147418040;
+    property vAlign: WideString dispid - 2147413081;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLCommentElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F20C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLCommentElement = interface(IDispatch)
+    ['{3050F20C-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_text(const p: WideString); safecall;
+    function Get_text: WideString; safecall;
+    procedure Set_atomic(p: Integer); safecall;
+    function Get_atomic: Integer; safecall;
+    property text: WideString read Get_text write Set_text;
+    property atomic: Integer read Get_atomic write Set_atomic;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLCommentElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F20C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLCommentElementDisp = dispinterface
+    ['{3050F20C-98B5-11CF-BB82-00AA00BDCE0B}']
+    property text: WideString dispid 1001;
+    property atomic: Integer dispid 1002;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLCommentElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F813-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLCommentElement2 = interface(IDispatch)
+    ['{3050F813-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_data(const p: WideString); safecall;
+    function Get_data: WideString; safecall;
+    function Get_length: Integer; safecall;
+    function substringData(offset: Integer; Count: Integer): WideString; safecall;
+    procedure appendData(const bstrstring: WideString); safecall;
+    procedure insertData(offset: Integer; const bstrstring: WideString); safecall;
+    procedure deleteData(offset: Integer; Count: Integer); safecall;
+    procedure replaceData(offset: Integer; Count: Integer; const bstrstring: WideString); safecall;
+    property data: WideString read Get_data write Set_data;
+    property length: Integer read Get_length;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLCommentElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F813-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLCommentElement2Disp = dispinterface
+    ['{3050F813-98B5-11CF-BB82-00AA00BDCE0B}']
+    property data: WideString dispid 1003;
+    property length: Integer readonly dispid 1004;
+    function substringData(offset: Integer; Count: Integer): WideString; dispid 1005;
+    procedure appendData(const bstrstring: WideString); dispid 1006;
+    procedure insertData(offset: Integer; const bstrstring: WideString); dispid 1007;
+    procedure deleteData(offset: Integer; Count: Integer); dispid 1008;
+    procedure replaceData(offset: Integer; Count: Integer; const bstrstring: WideString); dispid 1009;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLCommentElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F50A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLCommentElement = dispinterface
+    ['{3050F50A-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property text: WideString dispid 1001;
+    property atomic: Integer dispid 1002;
+    property data: WideString dispid 1003;
+    property length: Integer readonly dispid 1004;
+    function substringData(offset: Integer; Count: Integer): WideString; dispid 1005;
+    procedure appendData(const bstrstring: WideString); dispid 1006;
+    procedure insertData(offset: Integer; const bstrstring: WideString); dispid 1007;
+    procedure deleteData(offset: Integer; Count: Integer); dispid 1008;
+    procedure replaceData(offset: Integer; Count: Integer; const bstrstring: WideString); dispid 1009;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLPhraseElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F20A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLPhraseElement = interface(IDispatch)
+    ['{3050F20A-98B5-11CF-BB82-00AA00BDCE0B}']
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLPhraseElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F20A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLPhraseElementDisp = dispinterface
+    ['{3050F20A-98B5-11CF-BB82-00AA00BDCE0B}']
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLPhraseElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F824-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLPhraseElement2 = interface(IDispatch)
+    ['{3050F824-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_cite(const p: WideString); safecall;
+    function Get_cite: WideString; safecall;
+    procedure Set_dateTime(const p: WideString); safecall;
+    function Get_dateTime: WideString; safecall;
+    property cite: WideString read Get_cite write Set_cite;
+    property dateTime: WideString read Get_dateTime write Set_dateTime;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLPhraseElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F824-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLPhraseElement2Disp = dispinterface
+    ['{3050F824-98B5-11CF-BB82-00AA00BDCE0B}']
+    property cite: WideString dispid 1001;
+    property dateTime: WideString dispid 1002;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLSpanElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3F3-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLSpanElement = interface(IDispatch)
+    ['{3050F3F3-98B5-11CF-BB82-00AA00BDCE0B}']
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLSpanElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3F3-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLSpanElementDisp = dispinterface
+    ['{3050F3F3-98B5-11CF-BB82-00AA00BDCE0B}']
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLPhraseElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F52D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLPhraseElement = dispinterface
+    ['{3050F52D-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property cite: WideString dispid 1001;
+    property dateTime: WideString dispid 1002;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLSpanElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F548-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLSpanElement = dispinterface
+    ['{3050F548-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLTableEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F623-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLTableEvents2 = dispinterface
+    ['{3050F623-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLTableEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F407-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLTableEvents = dispinterface
+    ['{3050F407-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTableSection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F23B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableSection = interface(IDispatch)
+    ['{3050F23B-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    procedure Set_vAlign(const p: WideString); safecall;
+    function Get_vAlign: WideString; safecall;
+    procedure Set_bgColor(p: OleVariant); safecall;
+    function Get_bgColor: OleVariant; safecall;
+    function Get_rows: IHTMLElementCollection; safecall;
+    function insertRow(index: Integer): IDispatch; safecall;
+    procedure deleteRow(index: Integer); safecall;
+    property align: WideString read Get_align write Set_align;
+    property vAlign: WideString read Get_vAlign write Set_vAlign;
+    property bgColor: OleVariant read Get_bgColor write Set_bgColor;
+    property rows: IHTMLElementCollection read Get_rows;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTableSectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F23B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableSectionDisp = dispinterface
+    ['{3050F23B-98B5-11CF-BB82-00AA00BDCE0B}']
+    property align: WideString dispid - 2147418040;
+    property vAlign: WideString dispid - 2147413081;
+    property bgColor: OleVariant dispid - 501;
+    property rows: IHTMLElementCollection readonly dispid 1000;
+    function insertRow(index: Integer): IDispatch; dispid 1001;
+    procedure deleteRow(index: Integer); dispid 1002;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTable
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F21E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTable = interface(IDispatch)
+    ['{3050F21E-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_cols(p: Integer); safecall;
+    function Get_cols: Integer; safecall;
+    procedure Set_border(p: OleVariant); safecall;
+    function Get_border: OleVariant; safecall;
+    procedure Set_frame(const p: WideString); safecall;
+    function Get_frame: WideString; safecall;
+    procedure Set_rules(const p: WideString); safecall;
+    function Get_rules: WideString; safecall;
+    procedure Set_cellSpacing(p: OleVariant); safecall;
+    function Get_cellSpacing: OleVariant; safecall;
+    procedure Set_cellPadding(p: OleVariant); safecall;
+    function Get_cellPadding: OleVariant; safecall;
+    procedure Set_background(const p: WideString); safecall;
+    function Get_background: WideString; safecall;
+    procedure Set_bgColor(p: OleVariant); safecall;
+    function Get_bgColor: OleVariant; safecall;
+    procedure Set_borderColor(p: OleVariant); safecall;
+    function Get_borderColor: OleVariant; safecall;
+    procedure Set_borderColorLight(p: OleVariant); safecall;
+    function Get_borderColorLight: OleVariant; safecall;
+    procedure Set_borderColorDark(p: OleVariant); safecall;
+    function Get_borderColorDark: OleVariant; safecall;
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    procedure refresh; safecall;
+    function Get_rows: IHTMLElementCollection; safecall;
+    procedure Set_width(p: OleVariant); safecall;
+    function Get_width: OleVariant; safecall;
+    procedure Set_height(p: OleVariant); safecall;
+    function Get_height: OleVariant; safecall;
+    procedure Set_dataPageSize(p: Integer); safecall;
+    function Get_dataPageSize: Integer; safecall;
+    procedure nextPage; safecall;
+    procedure previousPage; safecall;
+    function Get_tHead: IHTMLTableSection; safecall;
+    function Get_tFoot: IHTMLTableSection; safecall;
+    function Get_tBodies: IHTMLElementCollection; safecall;
+    function Get_caption: IHTMLTableCaption; safecall;
+    function createTHead: IDispatch; safecall;
+    procedure deleteTHead; safecall;
+    function createTFoot: IDispatch; safecall;
+    procedure deleteTFoot; safecall;
+    function createCaption: IHTMLTableCaption; safecall;
+    procedure deleteCaption; safecall;
+    function insertRow(index: Integer): IDispatch; safecall;
+    procedure deleteRow(index: Integer); safecall;
+    function Get_readyState: WideString; safecall;
+    procedure Set_onreadystatechange(p: OleVariant); safecall;
+    function Get_onreadystatechange: OleVariant; safecall;
+    property cols: Integer read Get_cols write Set_cols;
+    property border: OleVariant read Get_border write Set_border;
+    property frame: WideString read Get_frame write Set_frame;
+    property rules: WideString read Get_rules write Set_rules;
+    property cellSpacing: OleVariant read Get_cellSpacing write Set_cellSpacing;
+    property cellPadding: OleVariant read Get_cellPadding write Set_cellPadding;
+    property background: WideString read Get_background write Set_background;
+    property bgColor: OleVariant read Get_bgColor write Set_bgColor;
+    property borderColor: OleVariant read Get_borderColor write Set_borderColor;
+    property borderColorLight: OleVariant read Get_borderColorLight write Set_borderColorLight;
+    property borderColorDark: OleVariant read Get_borderColorDark write Set_borderColorDark;
+    property align: WideString read Get_align write Set_align;
+    property rows: IHTMLElementCollection read Get_rows;
+    property width: OleVariant read Get_width write Set_width;
+    property height: OleVariant read Get_height write Set_height;
+    property dataPageSize: Integer read Get_dataPageSize write Set_dataPageSize;
+    property tHead: IHTMLTableSection read Get_tHead;
+    property tFoot: IHTMLTableSection read Get_tFoot;
+    property tBodies: IHTMLElementCollection read Get_tBodies;
+    property caption: IHTMLTableCaption read Get_caption;
+    property readyState: WideString read Get_readyState;
+    property onreadystatechange: OleVariant read Get_onreadystatechange write Set_onreadystatechange;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTableDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F21E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableDisp = dispinterface
+    ['{3050F21E-98B5-11CF-BB82-00AA00BDCE0B}']
+    property cols: Integer dispid 1001;
+    property border: OleVariant dispid 1002;
+    property frame: WideString dispid 1004;
+    property rules: WideString dispid 1003;
+    property cellSpacing: OleVariant dispid 1005;
+    property cellPadding: OleVariant dispid 1006;
+    property background: WideString dispid - 2147413111;
+    property bgColor: OleVariant dispid - 501;
+    property borderColor: OleVariant dispid - 2147413084;
+    property borderColorLight: OleVariant dispid - 2147413083;
+    property borderColorDark: OleVariant dispid - 2147413082;
+    property align: WideString dispid - 2147418039;
+    procedure refresh; dispid 1015;
+    property rows: IHTMLElementCollection readonly dispid 1016;
+    property width: OleVariant dispid - 2147418107;
+    property height: OleVariant dispid - 2147418106;
+    property dataPageSize: Integer dispid 1017;
+    procedure nextPage; dispid 1018;
+    procedure previousPage; dispid 1019;
+    property tHead: IHTMLTableSection readonly dispid 1020;
+    property tFoot: IHTMLTableSection readonly dispid 1021;
+    property tBodies: IHTMLElementCollection readonly dispid 1024;
+    property caption: IHTMLTableCaption readonly dispid 1025;
+    function createTHead: IDispatch; dispid 1026;
+    procedure deleteTHead; dispid 1027;
+    function createTFoot: IDispatch; dispid 1028;
+    procedure deleteTFoot; dispid 1029;
+    function createCaption: IHTMLTableCaption; dispid 1030;
+    procedure deleteCaption; dispid 1031;
+    function insertRow(index: Integer): IDispatch; dispid 1032;
+    procedure deleteRow(index: Integer); dispid 1033;
+    property readyState: WideString readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTable2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4AD-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTable2 = interface(IDispatch)
+    ['{3050F4AD-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure firstPage; safecall;
+    procedure lastPage; safecall;
+    function Get_cells: IHTMLElementCollection; safecall;
+    function moveRow(indexFrom: Integer; indexTo: Integer): IDispatch; safecall;
+    property cells: IHTMLElementCollection read Get_cells;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTable2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4AD-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTable2Disp = dispinterface
+    ['{3050F4AD-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure firstPage; dispid 1035;
+    procedure lastPage; dispid 1036;
+    property cells: IHTMLElementCollection readonly dispid 1037;
+    function moveRow(indexFrom: Integer; indexTo: Integer): IDispatch; dispid 1038;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTable3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F829-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTable3 = interface(IDispatch)
+    ['{3050F829-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_summary(const p: WideString); safecall;
+    function Get_summary: WideString; safecall;
+    property summary: WideString read Get_summary write Set_summary;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTable3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F829-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTable3Disp = dispinterface
+    ['{3050F829-98B5-11CF-BB82-00AA00BDCE0B}']
+    property summary: WideString dispid 1039;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTableCol
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F23A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableCol = interface(IDispatch)
+    ['{3050F23A-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_span(p: Integer); safecall;
+    function Get_span: Integer; safecall;
+    procedure Set_width(p: OleVariant); safecall;
+    function Get_width: OleVariant; safecall;
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    procedure Set_vAlign(const p: WideString); safecall;
+    function Get_vAlign: WideString; safecall;
+    property span: Integer read Get_span write Set_span;
+    property width: OleVariant read Get_width write Set_width;
+    property align: WideString read Get_align write Set_align;
+    property vAlign: WideString read Get_vAlign write Set_vAlign;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTableColDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F23A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableColDisp = dispinterface
+    ['{3050F23A-98B5-11CF-BB82-00AA00BDCE0B}']
+    property span: Integer dispid 1001;
+    property width: OleVariant dispid - 2147418107;
+    property align: WideString dispid - 2147418040;
+    property vAlign: WideString dispid - 2147413081;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTableCol2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F82A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableCol2 = interface(IDispatch)
+    ['{3050F82A-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_ch(const p: WideString); safecall;
+    function Get_ch: WideString; safecall;
+    procedure Set_chOff(const p: WideString); safecall;
+    function Get_chOff: WideString; safecall;
+    property ch: WideString read Get_ch write Set_ch;
+    property chOff: WideString read Get_chOff write Set_chOff;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTableCol2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F82A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableCol2Disp = dispinterface
+    ['{3050F82A-98B5-11CF-BB82-00AA00BDCE0B}']
+    property ch: WideString dispid 1002;
+    property chOff: WideString dispid 1003;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTableSection2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5C7-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableSection2 = interface(IDispatch)
+    ['{3050F5C7-98B5-11CF-BB82-00AA00BDCE0B}']
+    function moveRow(indexFrom: Integer; indexTo: Integer): IDispatch; safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTableSection2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5C7-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableSection2Disp = dispinterface
+    ['{3050F5C7-98B5-11CF-BB82-00AA00BDCE0B}']
+    function moveRow(indexFrom: Integer; indexTo: Integer): IDispatch; dispid 1003;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTableSection3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F82B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableSection3 = interface(IDispatch)
+    ['{3050F82B-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_ch(const p: WideString); safecall;
+    function Get_ch: WideString; safecall;
+    procedure Set_chOff(const p: WideString); safecall;
+    function Get_chOff: WideString; safecall;
+    property ch: WideString read Get_ch write Set_ch;
+    property chOff: WideString read Get_chOff write Set_chOff;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTableSection3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F82B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableSection3Disp = dispinterface
+    ['{3050F82B-98B5-11CF-BB82-00AA00BDCE0B}']
+    property ch: WideString dispid 1004;
+    property chOff: WideString dispid 1005;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTableRow
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F23C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableRow = interface(IDispatch)
+    ['{3050F23C-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    procedure Set_vAlign(const p: WideString); safecall;
+    function Get_vAlign: WideString; safecall;
+    procedure Set_bgColor(p: OleVariant); safecall;
+    function Get_bgColor: OleVariant; safecall;
+    procedure Set_borderColor(p: OleVariant); safecall;
+    function Get_borderColor: OleVariant; safecall;
+    procedure Set_borderColorLight(p: OleVariant); safecall;
+    function Get_borderColorLight: OleVariant; safecall;
+    procedure Set_borderColorDark(p: OleVariant); safecall;
+    function Get_borderColorDark: OleVariant; safecall;
+    function Get_rowIndex: Integer; safecall;
+    function Get_sectionRowIndex: Integer; safecall;
+    function Get_cells: IHTMLElementCollection; safecall;
+    function insertCell(index: Integer): IDispatch; safecall;
+    procedure deleteCell(index: Integer); safecall;
+    property align: WideString read Get_align write Set_align;
+    property vAlign: WideString read Get_vAlign write Set_vAlign;
+    property bgColor: OleVariant read Get_bgColor write Set_bgColor;
+    property borderColor: OleVariant read Get_borderColor write Set_borderColor;
+    property borderColorLight: OleVariant read Get_borderColorLight write Set_borderColorLight;
+    property borderColorDark: OleVariant read Get_borderColorDark write Set_borderColorDark;
+    property rowIndex: Integer read Get_rowIndex;
+    property sectionRowIndex: Integer read Get_sectionRowIndex;
+    property cells: IHTMLElementCollection read Get_cells;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTableRowDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F23C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableRowDisp = dispinterface
+    ['{3050F23C-98B5-11CF-BB82-00AA00BDCE0B}']
+    property align: WideString dispid - 2147418040;
+    property vAlign: WideString dispid - 2147413081;
+    property bgColor: OleVariant dispid - 501;
+    property borderColor: OleVariant dispid - 2147413084;
+    property borderColorLight: OleVariant dispid - 2147413083;
+    property borderColorDark: OleVariant dispid - 2147413082;
+    property rowIndex: Integer readonly dispid 1000;
+    property sectionRowIndex: Integer readonly dispid 1001;
+    property cells: IHTMLElementCollection readonly dispid 1002;
+    function insertCell(index: Integer): IDispatch; dispid 1003;
+    procedure deleteCell(index: Integer); dispid 1004;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTableRow2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4A1-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableRow2 = interface(IDispatch)
+    ['{3050F4A1-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_height(p: OleVariant); safecall;
+    function Get_height: OleVariant; safecall;
+    property height: OleVariant read Get_height write Set_height;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTableRow2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4A1-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableRow2Disp = dispinterface
+    ['{3050F4A1-98B5-11CF-BB82-00AA00BDCE0B}']
+    property height: OleVariant dispid - 2147418106;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTableRow3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F82C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableRow3 = interface(IDispatch)
+    ['{3050F82C-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_ch(const p: WideString); safecall;
+    function Get_ch: WideString; safecall;
+    procedure Set_chOff(const p: WideString); safecall;
+    function Get_chOff: WideString; safecall;
+    property ch: WideString read Get_ch write Set_ch;
+    property chOff: WideString read Get_chOff write Set_chOff;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTableRow3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F82C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableRow3Disp = dispinterface
+    ['{3050F82C-98B5-11CF-BB82-00AA00BDCE0B}']
+    property ch: WideString dispid 1009;
+    property chOff: WideString dispid 1010;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTableRowMetrics
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F413-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableRowMetrics = interface(IDispatch)
+    ['{3050F413-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_clientHeight: Integer; safecall;
+    function Get_clientWidth: Integer; safecall;
+    function Get_clientTop: Integer; safecall;
+    function Get_clientLeft: Integer; safecall;
+    property clientHeight: Integer read Get_clientHeight;
+    property clientWidth: Integer read Get_clientWidth;
+    property clientTop: Integer read Get_clientTop;
+    property clientLeft: Integer read Get_clientLeft;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTableRowMetricsDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F413-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableRowMetricsDisp = dispinterface
+    ['{3050F413-98B5-11CF-BB82-00AA00BDCE0B}']
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTableCell
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F23D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableCell = interface(IDispatch)
+    ['{3050F23D-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_rowSpan(p: Integer); safecall;
+    function Get_rowSpan: Integer; safecall;
+    procedure Set_colSpan(p: Integer); safecall;
+    function Get_colSpan: Integer; safecall;
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    procedure Set_vAlign(const p: WideString); safecall;
+    function Get_vAlign: WideString; safecall;
+    procedure Set_bgColor(p: OleVariant); safecall;
+    function Get_bgColor: OleVariant; safecall;
+    procedure Set_noWrap(p: WordBool); safecall;
+    function Get_noWrap: WordBool; safecall;
+    procedure Set_background(const p: WideString); safecall;
+    function Get_background: WideString; safecall;
+    procedure Set_borderColor(p: OleVariant); safecall;
+    function Get_borderColor: OleVariant; safecall;
+    procedure Set_borderColorLight(p: OleVariant); safecall;
+    function Get_borderColorLight: OleVariant; safecall;
+    procedure Set_borderColorDark(p: OleVariant); safecall;
+    function Get_borderColorDark: OleVariant; safecall;
+    procedure Set_width(p: OleVariant); safecall;
+    function Get_width: OleVariant; safecall;
+    procedure Set_height(p: OleVariant); safecall;
+    function Get_height: OleVariant; safecall;
+    function Get_cellIndex: Integer; safecall;
+    property rowSpan: Integer read Get_rowSpan write Set_rowSpan;
+    property colSpan: Integer read Get_colSpan write Set_colSpan;
+    property align: WideString read Get_align write Set_align;
+    property vAlign: WideString read Get_vAlign write Set_vAlign;
+    property bgColor: OleVariant read Get_bgColor write Set_bgColor;
+    property noWrap: WordBool read Get_noWrap write Set_noWrap;
+    property background: WideString read Get_background write Set_background;
+    property borderColor: OleVariant read Get_borderColor write Set_borderColor;
+    property borderColorLight: OleVariant read Get_borderColorLight write Set_borderColorLight;
+    property borderColorDark: OleVariant read Get_borderColorDark write Set_borderColorDark;
+    property width: OleVariant read Get_width write Set_width;
+    property height: OleVariant read Get_height write Set_height;
+    property cellIndex: Integer read Get_cellIndex;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTableCellDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F23D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableCellDisp = dispinterface
+    ['{3050F23D-98B5-11CF-BB82-00AA00BDCE0B}']
+    property rowSpan: Integer dispid 2001;
+    property colSpan: Integer dispid 2002;
+    property align: WideString dispid - 2147418040;
+    property vAlign: WideString dispid - 2147413081;
+    property bgColor: OleVariant dispid - 501;
+    property noWrap: WordBool dispid - 2147413107;
+    property background: WideString dispid - 2147413111;
+    property borderColor: OleVariant dispid - 2147413084;
+    property borderColorLight: OleVariant dispid - 2147413083;
+    property borderColorDark: OleVariant dispid - 2147413082;
+    property width: OleVariant dispid - 2147418107;
+    property height: OleVariant dispid - 2147418106;
+    property cellIndex: Integer readonly dispid 2003;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTableCell2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F82D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableCell2 = interface(IDispatch)
+    ['{3050F82D-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_abbr(const p: WideString); safecall;
+    function Get_abbr: WideString; safecall;
+    procedure Set_axis(const p: WideString); safecall;
+    function Get_axis: WideString; safecall;
+    procedure Set_ch(const p: WideString); safecall;
+    function Get_ch: WideString; safecall;
+    procedure Set_chOff(const p: WideString); safecall;
+    function Get_chOff: WideString; safecall;
+    procedure Set_headers(const p: WideString); safecall;
+    function Get_headers: WideString; safecall;
+    procedure Set_scope(const p: WideString); safecall;
+    function Get_scope: WideString; safecall;
+    property abbr: WideString read Get_abbr write Set_abbr;
+    property axis: WideString read Get_axis write Set_axis;
+    property ch: WideString read Get_ch write Set_ch;
+    property chOff: WideString read Get_chOff write Set_chOff;
+    property headers: WideString read Get_headers write Set_headers;
+    property scope: WideString read Get_scope write Set_scope;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTableCell2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F82D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableCell2Disp = dispinterface
+    ['{3050F82D-98B5-11CF-BB82-00AA00BDCE0B}']
+    property abbr: WideString dispid 2004;
+    property axis: WideString dispid 2005;
+    property ch: WideString dispid 2006;
+    property chOff: WideString dispid 2007;
+    property headers: WideString dispid 2008;
+    property scope: WideString dispid 2009;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLTable
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F532-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLTable = dispinterface
+    ['{3050F532-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property cols: Integer dispid 1001;
+    property border: OleVariant dispid 1002;
+    property frame: WideString dispid 1004;
+    property rules: WideString dispid 1003;
+    property cellSpacing: OleVariant dispid 1005;
+    property cellPadding: OleVariant dispid 1006;
+    property background: WideString dispid - 2147413111;
+    property bgColor: OleVariant dispid - 501;
+    property borderColor: OleVariant dispid - 2147413084;
+    property borderColorLight: OleVariant dispid - 2147413083;
+    property borderColorDark: OleVariant dispid - 2147413082;
+    property align: WideString dispid - 2147418039;
+    procedure refresh; dispid 1015;
+    property rows: IHTMLElementCollection readonly dispid 1016;
+    property width: OleVariant dispid - 2147418107;
+    property height: OleVariant dispid - 2147418106;
+    property dataPageSize: Integer dispid 1017;
+    procedure nextPage; dispid 1018;
+    procedure previousPage; dispid 1019;
+    property tHead: IHTMLTableSection readonly dispid 1020;
+    property tFoot: IHTMLTableSection readonly dispid 1021;
+    property tBodies: IHTMLElementCollection readonly dispid 1024;
+    property caption: IHTMLTableCaption readonly dispid 1025;
+    function createTHead: IDispatch; dispid 1026;
+    procedure deleteTHead; dispid 1027;
+    function createTFoot: IDispatch; dispid 1028;
+    procedure deleteTFoot; dispid 1029;
+    function createCaption: IHTMLTableCaption; dispid 1030;
+    procedure deleteCaption; dispid 1031;
+    function insertRow(index: Integer): IDispatch; dispid 1032;
+    procedure deleteRow(index: Integer); dispid 1033;
+    procedure firstPage; dispid 1035;
+    procedure lastPage; dispid 1036;
+    property cells: IHTMLElementCollection readonly dispid 1037;
+    function moveRow(indexFrom: Integer; indexTo: Integer): IDispatch; dispid 1038;
+    property summary: WideString dispid 1039;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLTableCol
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F533-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLTableCol = dispinterface
+    ['{3050F533-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property span: Integer dispid 1001;
+    property width: OleVariant dispid - 2147418107;
+    property align: WideString dispid - 2147418040;
+    property vAlign: WideString dispid - 2147413081;
+    property ch: WideString dispid 1002;
+    property chOff: WideString dispid 1003;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLTableSection
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F534-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLTableSection = dispinterface
+    ['{3050F534-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property align: WideString dispid - 2147418040;
+    property vAlign: WideString dispid - 2147413081;
+    property bgColor: OleVariant dispid - 501;
+    property rows: IHTMLElementCollection readonly dispid 1000;
+    function insertRow(index: Integer): IDispatch; dispid 1001;
+    procedure deleteRow(index: Integer); dispid 1002;
+    function moveRow(indexFrom: Integer; indexTo: Integer): IDispatch; dispid 1003;
+    property ch: WideString dispid 1004;
+    property chOff: WideString dispid 1005;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLTableRow
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F535-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLTableRow = dispinterface
+    ['{3050F535-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property align: WideString dispid - 2147418040;
+    property vAlign: WideString dispid - 2147413081;
+    property bgColor: OleVariant dispid - 501;
+    property borderColor: OleVariant dispid - 2147413084;
+    property borderColorLight: OleVariant dispid - 2147413083;
+    property borderColorDark: OleVariant dispid - 2147413082;
+    property rowIndex: Integer readonly dispid 1000;
+    property sectionRowIndex: Integer readonly dispid 1001;
+    property cells: IHTMLElementCollection readonly dispid 1002;
+    function insertCell(index: Integer): IDispatch; dispid 1003;
+    procedure deleteCell(index: Integer); dispid 1004;
+    property height: OleVariant dispid - 2147418106;
+    property ch: WideString dispid 1009;
+    property chOff: WideString dispid 1010;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLTableCell
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F536-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLTableCell = dispinterface
+    ['{3050F536-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property rowSpan: Integer dispid 2001;
+    property colSpan: Integer dispid 2002;
+    property align: WideString dispid - 2147418040;
+    property vAlign: WideString dispid - 2147413081;
+    property bgColor: OleVariant dispid - 501;
+    property noWrap: WordBool dispid - 2147413107;
+    property background: WideString dispid - 2147413111;
+    property borderColor: OleVariant dispid - 2147413084;
+    property borderColorLight: OleVariant dispid - 2147413083;
+    property borderColorDark: OleVariant dispid - 2147413082;
+    property width: OleVariant dispid - 2147418107;
+    property height: OleVariant dispid - 2147418106;
+    property cellIndex: Integer readonly dispid 2003;
+    property abbr: WideString dispid 2004;
+    property axis: WideString dispid 2005;
+    property ch: WideString dispid 2006;
+    property chOff: WideString dispid 2007;
+    property headers: WideString dispid 2008;
+    property scope: WideString dispid 2009;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLScriptEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F621-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLScriptEvents2 = dispinterface
+    ['{3050F621-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+    procedure onerror(const pEvtObj: IHTMLEventObj); dispid 1002;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLScriptEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F3E2-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLScriptEvents = dispinterface
+    ['{3050F3E2-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+    procedure onerror; dispid 1002;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLScriptElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F28B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLScriptElement = interface(IDispatch)
+    ['{3050F28B-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_src(const p: WideString); safecall;
+    function Get_src: WideString; safecall;
+    procedure Set_htmlFor(const p: WideString); safecall;
+    function Get_htmlFor: WideString; safecall;
+    procedure Set_event(const p: WideString); safecall;
+    function Get_event: WideString; safecall;
+    procedure Set_text(const p: WideString); safecall;
+    function Get_text: WideString; safecall;
+    procedure Set_defer(p: WordBool); safecall;
+    function Get_defer: WordBool; safecall;
+    function Get_readyState: WideString; safecall;
+    procedure Set_onerror(p: OleVariant); safecall;
+    function Get_onerror: OleVariant; safecall;
+    procedure Set_type_(const p: WideString); safecall;
+    function Get_type_: WideString; safecall;
+    property src: WideString read Get_src write Set_src;
+    property htmlFor: WideString read Get_htmlFor write Set_htmlFor;
+    property event: WideString read Get_event write Set_event;
+    property text: WideString read Get_text write Set_text;
+    property defer: WordBool read Get_defer write Set_defer;
+    property readyState: WideString read Get_readyState;
+    property onerror: OleVariant read Get_onerror write Set_onerror;
+    property type_: WideString read Get_type_ write Set_type_;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLScriptElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F28B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLScriptElementDisp = dispinterface
+    ['{3050F28B-98B5-11CF-BB82-00AA00BDCE0B}']
+    property src: WideString dispid 1001;
+    property htmlFor: WideString dispid 1004;
+    property event: WideString dispid 1005;
+    property text: WideString dispid 1006;
+    property defer: WordBool dispid 1007;
+    property readyState: WideString readonly dispid - 2147412996;
+    property onerror: OleVariant dispid - 2147412083;
+    property type_: WideString dispid 1009;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLScriptElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F828-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLScriptElement2 = interface(IDispatch)
+    ['{3050F828-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_charset(const p: WideString); safecall;
+    function Get_charset: WideString; safecall;
+    property charset: WideString read Get_charset write Set_charset;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLScriptElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F828-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLScriptElement2Disp = dispinterface
+    ['{3050F828-98B5-11CF-BB82-00AA00BDCE0B}']
+    property charset: WideString dispid 1010;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLScriptElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F530-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLScriptElement = dispinterface
+    ['{3050F530-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property src: WideString dispid 1001;
+    property htmlFor: WideString dispid 1004;
+    property event: WideString dispid 1005;
+    property text: WideString dispid 1006;
+    property defer: WordBool dispid 1007;
+    property onerror: OleVariant dispid - 2147412083;
+    property type_: WideString dispid 1009;
+    property charset: WideString dispid 1010;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLNoShowElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F38A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLNoShowElement = interface(IDispatch)
+    ['{3050F38A-98B5-11CF-BB82-00AA00BDCE0B}']
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLNoShowElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F38A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLNoShowElementDisp = dispinterface
+    ['{3050F38A-98B5-11CF-BB82-00AA00BDCE0B}']
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLNoShowElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F528-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLNoShowElement = dispinterface
+    ['{3050F528-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLObjectElementEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F620-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLObjectElementEvents2 = dispinterface
+    ['{3050F620-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    function onerror(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418093;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 2147418092;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLObjectElementEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F3C4-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLObjectElementEvents = dispinterface
+    ['{3050F3C4-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    function onerror: WordBool; dispid - 2147418093;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 2147418092;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLObjectElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F24F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLObjectElement = interface(IDispatch)
+    ['{3050F24F-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_object_: IDispatch; safecall;
+    function Get_classid: WideString; safecall;
+    function Get_data: WideString; safecall;
+    procedure _Set_recordset(const p: IDispatch); safecall;
+    function Get_recordset: IDispatch; safecall;
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_codeBase(const p: WideString); safecall;
+    function Get_codeBase: WideString; safecall;
+    procedure Set_codeType(const p: WideString); safecall;
+    function Get_codeType: WideString; safecall;
+    procedure Set_code(const p: WideString); safecall;
+    function Get_code: WideString; safecall;
+    function Get_BaseHref: WideString; safecall;
+    procedure Set_type_(const p: WideString); safecall;
+    function Get_type_: WideString; safecall;
+    function Get_form: IHTMLFormElement; safecall;
+    procedure Set_width(p: OleVariant); safecall;
+    function Get_width: OleVariant; safecall;
+    procedure Set_height(p: OleVariant); safecall;
+    function Get_height: OleVariant; safecall;
+    function Get_readyState: Integer; safecall;
+    procedure Set_onreadystatechange(p: OleVariant); safecall;
+    function Get_onreadystatechange: OleVariant; safecall;
+    procedure Set_onerror(p: OleVariant); safecall;
+    function Get_onerror: OleVariant; safecall;
+    procedure Set_altHtml(const p: WideString); safecall;
+    function Get_altHtml: WideString; safecall;
+    procedure Set_vspace(p: Integer); safecall;
+    function Get_vspace: Integer; safecall;
+    procedure Set_hspace(p: Integer); safecall;
+    function Get_hspace: Integer; safecall;
+    property object_: IDispatch read Get_object_;
+    property classid: WideString read Get_classid;
+    property data: WideString read Get_data;
+    property recordset: IDispatch read Get_recordset write _Set_recordset;
+    property align: WideString read Get_align write Set_align;
+    property name: WideString read Get_name write Set_name;
+    property codeBase: WideString read Get_codeBase write Set_codeBase;
+    property codeType: WideString read Get_codeType write Set_codeType;
+    property code: WideString read Get_code write Set_code;
+    property BaseHref: WideString read Get_BaseHref;
+    property type_: WideString read Get_type_ write Set_type_;
+    property form: IHTMLFormElement read Get_form;
+    property width: OleVariant read Get_width write Set_width;
+    property height: OleVariant read Get_height write Set_height;
+    property readyState: Integer read Get_readyState;
+    property onreadystatechange: OleVariant read Get_onreadystatechange write Set_onreadystatechange;
+    property onerror: OleVariant read Get_onerror write Set_onerror;
+    property altHtml: WideString read Get_altHtml write Set_altHtml;
+    property vspace: Integer read Get_vspace write Set_vspace;
+    property hspace: Integer read Get_hspace write Set_hspace;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLObjectElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F24F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLObjectElementDisp = dispinterface
+    ['{3050F24F-98B5-11CF-BB82-00AA00BDCE0B}']
+    property object_: IDispatch readonly dispid - 2147415111;
+    property classid: WideString readonly dispid - 2147415110;
+    property data: WideString readonly dispid - 2147415109;
+    property recordset: IDispatch dispid - 2147415107;
+    property align: WideString dispid - 2147418039;
+    property name: WideString dispid - 2147418112;
+    property codeBase: WideString dispid - 2147415106;
+    property codeType: WideString dispid - 2147415105;
+    property code: WideString dispid - 2147415104;
+    property BaseHref: WideString readonly dispid - 2147418110;
+    property type_: WideString dispid - 2147415103;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    property width: OleVariant dispid - 2147418107;
+    property height: OleVariant dispid - 2147418106;
+    property readyState: Integer readonly dispid - 2147415102;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onerror: OleVariant dispid - 2147412083;
+    property altHtml: WideString dispid - 2147415101;
+    property vspace: Integer dispid - 2147415100;
+    property hspace: Integer dispid - 2147415099;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLObjectElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4CD-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLObjectElement2 = interface(IDispatch)
+    ['{3050F4CD-98B5-11CF-BB82-00AA00BDCE0B}']
+    function namedRecordset(const dataMember: WideString; var hierarchy: OleVariant): IDispatch; safecall;
+    procedure Set_classid(const p: WideString); safecall;
+    function Get_classid: WideString; safecall;
+    procedure Set_data(const p: WideString); safecall;
+    function Get_data: WideString; safecall;
+    property classid: WideString read Get_classid write Set_classid;
+    property data: WideString read Get_data write Set_data;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLObjectElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4CD-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLObjectElement2Disp = dispinterface
+    ['{3050F4CD-98B5-11CF-BB82-00AA00BDCE0B}']
+    function namedRecordset(const dataMember: WideString; var hierarchy: OleVariant): IDispatch; dispid - 2147415098;
+    property classid: WideString dispid - 2147415110;
+    property data: WideString dispid - 2147415109;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLObjectElement3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F827-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLObjectElement3 = interface(IDispatch)
+    ['{3050F827-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_archive(const p: WideString); safecall;
+    function Get_archive: WideString; safecall;
+    procedure Set_alt(const p: WideString); safecall;
+    function Get_alt: WideString; safecall;
+    procedure Set_declare(p: WordBool); safecall;
+    function Get_declare: WordBool; safecall;
+    procedure Set_standby(const p: WideString); safecall;
+    function Get_standby: WideString; safecall;
+    procedure Set_border(p: OleVariant); safecall;
+    function Get_border: OleVariant; safecall;
+    procedure Set_useMap(const p: WideString); safecall;
+    function Get_useMap: WideString; safecall;
+    property archive: WideString read Get_archive write Set_archive;
+    property alt: WideString read Get_alt write Set_alt;
+    property declare: WordBool read Get_declare write Set_declare;
+    property standby: WideString read Get_standby write Set_standby;
+    property border: OleVariant read Get_border write Set_border;
+    property useMap: WideString read Get_useMap write Set_useMap;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLObjectElement3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F827-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLObjectElement3Disp = dispinterface
+    ['{3050F827-98B5-11CF-BB82-00AA00BDCE0B}']
+    property archive: WideString dispid - 2147415097;
+    property alt: WideString dispid - 2147415096;
+    property declare: WordBool dispid - 2147415095;
+    property standby: WideString dispid - 2147415094;
+    property border: OleVariant dispid - 2147415093;
+    property useMap: WideString dispid - 2147415092;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLParamElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F83D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLParamElement = interface(IDispatch)
+    ['{3050F83D-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_value(const p: WideString); safecall;
+    function Get_value: WideString; safecall;
+    procedure Set_type_(const p: WideString); safecall;
+    function Get_type_: WideString; safecall;
+    procedure Set_valueType(const p: WideString); safecall;
+    function Get_valueType: WideString; safecall;
+    property name: WideString read Get_name write Set_name;
+    property value: WideString read Get_value write Set_value;
+    property type_: WideString read Get_type_ write Set_type_;
+    property valueType: WideString read Get_valueType write Set_valueType;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLParamElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F83D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLParamElementDisp = dispinterface
+    ['{3050F83D-98B5-11CF-BB82-00AA00BDCE0B}']
+    property name: WideString dispid 1001;
+    property value: WideString dispid 1002;
+    property type_: WideString dispid 1003;
+    property valueType: WideString dispid 1004;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLObjectElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F529-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLObjectElement = dispinterface
+    ['{3050F529-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property object_: IDispatch readonly dispid - 2147415111;
+    property recordset: IDispatch dispid - 2147415107;
+    property align: WideString dispid - 2147418039;
+    property name: WideString dispid - 2147418112;
+    property codeBase: WideString dispid - 2147415106;
+    property codeType: WideString dispid - 2147415105;
+    property code: WideString dispid - 2147415104;
+    property BaseHref: WideString readonly dispid - 2147418110;
+    property type_: WideString dispid - 2147415103;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    property width: OleVariant dispid - 2147418107;
+    property height: OleVariant dispid - 2147418106;
+    property onerror: OleVariant dispid - 2147412083;
+    property altHtml: WideString dispid - 2147415101;
+    property vspace: Integer dispid - 2147415100;
+    property hspace: Integer dispid - 2147415099;
+    function namedRecordset(const dataMember: WideString; var hierarchy: OleVariant): IDispatch; dispid - 2147415098;
+    property classid: WideString dispid - 2147415110;
+    property data: WideString dispid - 2147415109;
+    property archive: WideString dispid - 2147415097;
+    property alt: WideString dispid - 2147415096;
+    property declare: WordBool dispid - 2147415095;
+    property standby: WideString dispid - 2147415094;
+    property border: OleVariant dispid - 2147415093;
+    property useMap: WideString dispid - 2147415092;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLParamElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F590-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLParamElement = dispinterface
+    ['{3050F590-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property name: WideString dispid 1001;
+    property value: WideString dispid 1002;
+    property type_: WideString dispid 1003;
+    property valueType: WideString dispid 1004;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLFrameSiteEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F7FF-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLFrameSiteEvents2 = dispinterface
+    ['{3050F7FF-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+    procedure onload(const pEvtObj: IHTMLEventObj); dispid 1003;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLFrameSiteEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F800-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLFrameSiteEvents = dispinterface
+    ['{3050F800-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+    procedure onload; dispid 1003;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLFrameBase2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F6DB-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFrameBase2 = interface(IDispatch)
+    ['{3050F6DB-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_contentWindow: IHTMLWindow2; safecall;
+    procedure Set_onload(p: OleVariant); safecall;
+    function Get_onload: OleVariant; safecall;
+    procedure Set_onreadystatechange(p: OleVariant); safecall;
+    function Get_onreadystatechange: OleVariant; safecall;
+    function Get_readyState: WideString; safecall;
+    procedure Set_allowTransparency(p: WordBool); safecall;
+    function Get_allowTransparency: WordBool; safecall;
+    property contentWindow: IHTMLWindow2 read Get_contentWindow;
+    property onload: OleVariant read Get_onload write Set_onload;
+    property onreadystatechange: OleVariant read Get_onreadystatechange write Set_onreadystatechange;
+    property readyState: WideString read Get_readyState;
+    property allowTransparency: WordBool read Get_allowTransparency write Set_allowTransparency;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLFrameBase2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F6DB-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFrameBase2Disp = dispinterface
+    ['{3050F6DB-98B5-11CF-BB82-00AA00BDCE0B}']
+    property contentWindow: IHTMLWindow2 readonly dispid - 2147415103;
+    property onload: OleVariant dispid - 2147412080;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property readyState: WideString readonly dispid - 2147412996;
+    property allowTransparency: WordBool dispid - 2147412906;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLFrameBase3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F82E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFrameBase3 = interface(IDispatch)
+    ['{3050F82E-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_longDesc(const p: WideString); safecall;
+    function Get_longDesc: WideString; safecall;
+    property longDesc: WideString read Get_longDesc write Set_longDesc;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLFrameBase3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F82E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFrameBase3Disp = dispinterface
+    ['{3050F82E-98B5-11CF-BB82-00AA00BDCE0B}']
+    property longDesc: WideString dispid - 2147415102;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLFrameBase
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F541-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLFrameBase = dispinterface
+    ['{3050F541-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property src: WideString dispid - 2147415112;
+    property name: WideString dispid - 2147418112;
+    property border: OleVariant dispid - 2147415110;
+    property frameBorder: WideString dispid - 2147415109;
+    property frameSpacing: OleVariant dispid - 2147415108;
+    property marginWidth: OleVariant dispid - 2147415107;
+    property marginHeight: OleVariant dispid - 2147415106;
+    property noResize: WordBool dispid - 2147415105;
+    property scrolling: WideString dispid - 2147415104;
+    property contentWindow: IHTMLWindow2 readonly dispid - 2147415103;
+    property onload: OleVariant dispid - 2147412080;
+    property allowTransparency: WordBool dispid - 2147412906;
+    property longDesc: WideString dispid - 2147415102;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLFrameElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F313-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFrameElement = interface(IDispatch)
+    ['{3050F313-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_borderColor(p: OleVariant); safecall;
+    function Get_borderColor: OleVariant; safecall;
+    property borderColor: OleVariant read Get_borderColor write Set_borderColor;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLFrameElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F313-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFrameElementDisp = dispinterface
+    ['{3050F313-98B5-11CF-BB82-00AA00BDCE0B}']
+    property borderColor: OleVariant dispid - 2147414111;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLFrameElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F7F5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFrameElement2 = interface(IDispatch)
+    ['{3050F7F5-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_height(p: OleVariant); safecall;
+    function Get_height: OleVariant; safecall;
+    procedure Set_width(p: OleVariant); safecall;
+    function Get_width: OleVariant; safecall;
+    property height: OleVariant read Get_height write Set_height;
+    property width: OleVariant read Get_width write Set_width;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLFrameElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F7F5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFrameElement2Disp = dispinterface
+    ['{3050F7F5-98B5-11CF-BB82-00AA00BDCE0B}']
+    property height: OleVariant dispid - 2147418106;
+    property width: OleVariant dispid - 2147418107;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLFrameElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F513-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLFrameElement = dispinterface
+    ['{3050F513-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property src: WideString dispid - 2147415112;
+    property name: WideString dispid - 2147418112;
+    property border: OleVariant dispid - 2147415110;
+    property frameBorder: WideString dispid - 2147415109;
+    property frameSpacing: OleVariant dispid - 2147415108;
+    property marginWidth: OleVariant dispid - 2147415107;
+    property marginHeight: OleVariant dispid - 2147415106;
+    property noResize: WordBool dispid - 2147415105;
+    property scrolling: WideString dispid - 2147415104;
+    property contentWindow: IHTMLWindow2 readonly dispid - 2147415103;
+    property onload: OleVariant dispid - 2147412080;
+    property allowTransparency: WordBool dispid - 2147412906;
+    property longDesc: WideString dispid - 2147415102;
+    property borderColor: OleVariant dispid - 2147414111;
+    property height: OleVariant dispid - 2147418106;
+    property width: OleVariant dispid - 2147418107;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLIFrameElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F315-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLIFrameElement = interface(IDispatch)
+    ['{3050F315-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_vspace(p: Integer); safecall;
+    function Get_vspace: Integer; safecall;
+    procedure Set_hspace(p: Integer); safecall;
+    function Get_hspace: Integer; safecall;
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    property vspace: Integer read Get_vspace write Set_vspace;
+    property hspace: Integer read Get_hspace write Set_hspace;
+    property align: WideString read Get_align write Set_align;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLIFrameElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F315-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLIFrameElementDisp = dispinterface
+    ['{3050F315-98B5-11CF-BB82-00AA00BDCE0B}']
+    property vspace: Integer dispid - 2147414111;
+    property hspace: Integer dispid - 2147414110;
+    property align: WideString dispid - 2147418039;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLIFrameElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4E6-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLIFrameElement2 = interface(IDispatch)
+    ['{3050F4E6-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_height(p: OleVariant); safecall;
+    function Get_height: OleVariant; safecall;
+    procedure Set_width(p: OleVariant); safecall;
+    function Get_width: OleVariant; safecall;
+    property height: OleVariant read Get_height write Set_height;
+    property width: OleVariant read Get_width write Set_width;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLIFrameElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4E6-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLIFrameElement2Disp = dispinterface
+    ['{3050F4E6-98B5-11CF-BB82-00AA00BDCE0B}']
+    property height: OleVariant dispid - 2147418106;
+    property width: OleVariant dispid - 2147418107;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLIFrame
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F51B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLIFrame = dispinterface
+    ['{3050F51B-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property src: WideString dispid - 2147415112;
+    property name: WideString dispid - 2147418112;
+    property border: OleVariant dispid - 2147415110;
+    property frameBorder: WideString dispid - 2147415109;
+    property frameSpacing: OleVariant dispid - 2147415108;
+    property marginWidth: OleVariant dispid - 2147415107;
+    property marginHeight: OleVariant dispid - 2147415106;
+    property noResize: WordBool dispid - 2147415105;
+    property scrolling: WideString dispid - 2147415104;
+    property contentWindow: IHTMLWindow2 readonly dispid - 2147415103;
+    property onload: OleVariant dispid - 2147412080;
+    property allowTransparency: WordBool dispid - 2147412906;
+    property longDesc: WideString dispid - 2147415102;
+    property vspace: Integer dispid - 2147414111;
+    property hspace: Integer dispid - 2147414110;
+    property align: WideString dispid - 2147418039;
+    property height: OleVariant dispid - 2147418106;
+    property width: OleVariant dispid - 2147418107;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDivPosition
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F212-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDivPosition = interface(IDispatch)
+    ['{3050F212-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    property align: WideString read Get_align write Set_align;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDivPositionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F212-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDivPositionDisp = dispinterface
+    ['{3050F212-98B5-11CF-BB82-00AA00BDCE0B}']
+    property align: WideString dispid - 2147418039;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLFieldSetElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3E7-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFieldSetElement = interface(IDispatch)
+    ['{3050F3E7-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    property align: WideString read Get_align write Set_align;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLFieldSetElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3E7-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFieldSetElementDisp = dispinterface
+    ['{3050F3E7-98B5-11CF-BB82-00AA00BDCE0B}']
+    property align: WideString dispid - 2147418039;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLFieldSetElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F833-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFieldSetElement2 = interface(IDispatch)
+    ['{3050F833-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_form: IHTMLFormElement; safecall;
+    property form: IHTMLFormElement read Get_form;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLFieldSetElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F833-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFieldSetElement2Disp = dispinterface
+    ['{3050F833-98B5-11CF-BB82-00AA00BDCE0B}']
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLLegendElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3EA-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLLegendElement = interface(IDispatch)
+    ['{3050F3EA-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    property align: WideString read Get_align write Set_align;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLLegendElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3EA-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLLegendElementDisp = dispinterface
+    ['{3050F3EA-98B5-11CF-BB82-00AA00BDCE0B}']
+    property align: WideString dispid - 2147418039;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLLegendElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F834-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLLegendElement2 = interface(IDispatch)
+    ['{3050F834-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_form: IHTMLFormElement; safecall;
+    property form: IHTMLFormElement read Get_form;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLLegendElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F834-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLLegendElement2Disp = dispinterface
+    ['{3050F834-98B5-11CF-BB82-00AA00BDCE0B}']
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLDivPosition
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F50F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLDivPosition = dispinterface
+    ['{3050F50F-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property align: WideString dispid - 2147418039;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLFieldSetElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F545-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLFieldSetElement = dispinterface
+    ['{3050F545-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property align: WideString dispid - 2147418039;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLLegendElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F546-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLLegendElement = dispinterface
+    ['{3050F546-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property align: WideString dispid - 2147418039;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLSpanFlow
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3E5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLSpanFlow = interface(IDispatch)
+    ['{3050F3E5-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    property align: WideString read Get_align write Set_align;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLSpanFlowDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3E5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLSpanFlowDisp = dispinterface
+    ['{3050F3E5-98B5-11CF-BB82-00AA00BDCE0B}']
+    property align: WideString dispid - 2147418039;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLSpanFlow
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F544-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLSpanFlow = dispinterface
+    ['{3050F544-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property align: WideString dispid - 2147418039;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLFrameSetElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F319-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFrameSetElement = interface(IDispatch)
+    ['{3050F319-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_rows(const p: WideString); safecall;
+    function Get_rows: WideString; safecall;
+    procedure Set_cols(const p: WideString); safecall;
+    function Get_cols: WideString; safecall;
+    procedure Set_border(p: OleVariant); safecall;
+    function Get_border: OleVariant; safecall;
+    procedure Set_borderColor(p: OleVariant); safecall;
+    function Get_borderColor: OleVariant; safecall;
+    procedure Set_frameBorder(const p: WideString); safecall;
+    function Get_frameBorder: WideString; safecall;
+    procedure Set_frameSpacing(p: OleVariant); safecall;
+    function Get_frameSpacing: OleVariant; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_onload(p: OleVariant); safecall;
+    function Get_onload: OleVariant; safecall;
+    procedure Set_onunload(p: OleVariant); safecall;
+    function Get_onunload: OleVariant; safecall;
+    procedure Set_onbeforeunload(p: OleVariant); safecall;
+    function Get_onbeforeunload: OleVariant; safecall;
+    property rows: WideString read Get_rows write Set_rows;
+    property cols: WideString read Get_cols write Set_cols;
+    property border: OleVariant read Get_border write Set_border;
+    property borderColor: OleVariant read Get_borderColor write Set_borderColor;
+    property frameBorder: WideString read Get_frameBorder write Set_frameBorder;
+    property frameSpacing: OleVariant read Get_frameSpacing write Set_frameSpacing;
+    property name: WideString read Get_name write Set_name;
+    property onload: OleVariant read Get_onload write Set_onload;
+    property onunload: OleVariant read Get_onunload write Set_onunload;
+    property onbeforeunload: OleVariant read Get_onbeforeunload write Set_onbeforeunload;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLFrameSetElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F319-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFrameSetElementDisp = dispinterface
+    ['{3050F319-98B5-11CF-BB82-00AA00BDCE0B}']
+    property rows: WideString dispid 1000;
+    property cols: WideString dispid 1001;
+    property border: OleVariant dispid 1002;
+    property borderColor: OleVariant dispid 1003;
+    property frameBorder: WideString dispid 1004;
+    property frameSpacing: OleVariant dispid 1005;
+    property name: WideString dispid - 2147418112;
+    property onload: OleVariant dispid - 2147412080;
+    property onunload: OleVariant dispid - 2147412079;
+    property onbeforeunload: OleVariant dispid - 2147412073;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLFrameSetElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5C6-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFrameSetElement2 = interface(IDispatch)
+    ['{3050F5C6-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_onbeforeprint(p: OleVariant); safecall;
+    function Get_onbeforeprint: OleVariant; safecall;
+    procedure Set_onafterprint(p: OleVariant); safecall;
+    function Get_onafterprint: OleVariant; safecall;
+    property onbeforeprint: OleVariant read Get_onbeforeprint write Set_onbeforeprint;
+    property onafterprint: OleVariant read Get_onafterprint write Set_onafterprint;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLFrameSetElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5C6-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFrameSetElement2Disp = dispinterface
+    ['{3050F5C6-98B5-11CF-BB82-00AA00BDCE0B}']
+    property onbeforeprint: OleVariant dispid - 2147412046;
+    property onafterprint: OleVariant dispid - 2147412045;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLFrameSetSite
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F514-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLFrameSetSite = dispinterface
+    ['{3050F514-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property rows: WideString dispid 1000;
+    property cols: WideString dispid 1001;
+    property border: OleVariant dispid 1002;
+    property borderColor: OleVariant dispid 1003;
+    property frameBorder: WideString dispid 1004;
+    property frameSpacing: OleVariant dispid 1005;
+    property name: WideString dispid - 2147418112;
+    property onload: OleVariant dispid - 2147412080;
+    property onunload: OleVariant dispid - 2147412079;
+    property onbeforeunload: OleVariant dispid - 2147412073;
+    property onbeforeprint: OleVariant dispid - 2147412046;
+    property onafterprint: OleVariant dispid - 2147412045;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLBGsound
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F369-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBGsound = interface(IDispatch)
+    ['{3050F369-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_src(const p: WideString); safecall;
+    function Get_src: WideString; safecall;
+    procedure Set_loop(p: OleVariant); safecall;
+    function Get_loop: OleVariant; safecall;
+    procedure Set_volume(p: OleVariant); safecall;
+    function Get_volume: OleVariant; safecall;
+    procedure Set_balance(p: OleVariant); safecall;
+    function Get_balance: OleVariant; safecall;
+    property src: WideString read Get_src write Set_src;
+    property loop: OleVariant read Get_loop write Set_loop;
+    property volume: OleVariant read Get_volume write Set_volume;
+    property balance: OleVariant read Get_balance write Set_balance;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLBGsoundDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F369-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBGsoundDisp = dispinterface
+    ['{3050F369-98B5-11CF-BB82-00AA00BDCE0B}']
+    property src: WideString dispid 1001;
+    property loop: OleVariant dispid 1002;
+    property volume: OleVariant dispid 1003;
+    property balance: OleVariant dispid 1004;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLBGsound
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F53C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLBGsound = dispinterface
+    ['{3050F53C-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property src: WideString dispid 1001;
+    property loop: OleVariant dispid 1002;
+    property volume: OleVariant dispid 1003;
+    property balance: OleVariant dispid 1004;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLFontNamesCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F376-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFontNamesCollection = interface(IDispatch)
+    ['{3050F376-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_length: Integer; safecall;
+    function Get__newEnum: IUnknown; safecall;
+    function item(index: Integer): WideString; safecall;
+    property length: Integer read Get_length;
+    property _newEnum: IUnknown read Get__newEnum;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLFontNamesCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F376-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFontNamesCollectionDisp = dispinterface
+    ['{3050F376-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1501;
+    property _newEnum: IUnknown readonly dispid - 4;
+    function item(index: Integer): WideString; dispid 0;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLFontSizesCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F377-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFontSizesCollection = interface(IDispatch)
+    ['{3050F377-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_length: Integer; safecall;
+    function Get__newEnum: IUnknown; safecall;
+    function Get_forFont: WideString; safecall;
+    function item(index: Integer): Integer; safecall;
+    property length: Integer read Get_length;
+    property _newEnum: IUnknown read Get__newEnum;
+    property forFont: WideString read Get_forFont;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLFontSizesCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F377-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFontSizesCollectionDisp = dispinterface
+    ['{3050F377-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1502;
+    property _newEnum: IUnknown readonly dispid - 4;
+    property forFont: WideString readonly dispid 1503;
+    function item(index: Integer): Integer; dispid 0;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLOptionsHolder
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F378-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLOptionsHolder = interface(IDispatch)
+    ['{3050F378-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_document: IHTMLDocument2; safecall;
+    function Get_fonts: IHTMLFontNamesCollection; safecall;
+    procedure Set_execArg(p: OleVariant); safecall;
+    function Get_execArg: OleVariant; safecall;
+    procedure Set_errorLine(p: Integer); safecall;
+    function Get_errorLine: Integer; safecall;
+    procedure Set_errorCharacter(p: Integer); safecall;
+    function Get_errorCharacter: Integer; safecall;
+    procedure Set_errorCode(p: Integer); safecall;
+    function Get_errorCode: Integer; safecall;
+    procedure Set_errorMessage(const p: WideString); safecall;
+    function Get_errorMessage: WideString; safecall;
+    procedure Set_errorDebug(p: WordBool); safecall;
+    function Get_errorDebug: WordBool; safecall;
+    function Get_unsecuredWindowOfDocument: IHTMLWindow2; safecall;
+    procedure Set_findText(const p: WideString); safecall;
+    function Get_findText: WideString; safecall;
+    procedure Set_anythingAfterFrameset(p: WordBool); safecall;
+    function Get_anythingAfterFrameset: WordBool; safecall;
+    function sizes(const fontName: WideString): IHTMLFontSizesCollection; safecall;
+    function openfiledlg(initFile: OleVariant; initDir: OleVariant; filter: OleVariant;
+      title: OleVariant): WideString; safecall;
+    function savefiledlg(initFile: OleVariant; initDir: OleVariant; filter: OleVariant;
+      title: OleVariant): WideString; safecall;
+    function choosecolordlg(initColor: OleVariant): Integer; safecall;
+    procedure showSecurityInfo; safecall;
+    function isApartmentModel(const object_: IHTMLObjectElement): WordBool; safecall;
+    function getCharset(const fontName: WideString): Integer; safecall;
+    function Get_secureConnectionInfo: WideString; safecall;
+    property document: IHTMLDocument2 read Get_document;
+    property fonts: IHTMLFontNamesCollection read Get_fonts;
+    property execArg: OleVariant read Get_execArg write Set_execArg;
+    property errorLine: Integer read Get_errorLine write Set_errorLine;
+    property errorCharacter: Integer read Get_errorCharacter write Set_errorCharacter;
+    property errorCode: Integer read Get_errorCode write Set_errorCode;
+    property errorMessage: WideString read Get_errorMessage write Set_errorMessage;
+    property errorDebug: WordBool read Get_errorDebug write Set_errorDebug;
+    property unsecuredWindowOfDocument: IHTMLWindow2 read Get_unsecuredWindowOfDocument;
+    property findText: WideString read Get_findText write Set_findText;
+    property anythingAfterFrameset: WordBool read Get_anythingAfterFrameset write Set_anythingAfterFrameset;
+    property secureConnectionInfo: WideString read Get_secureConnectionInfo;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLOptionsHolderDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F378-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLOptionsHolderDisp = dispinterface
+    ['{3050F378-98B5-11CF-BB82-00AA00BDCE0B}']
+    property document: IHTMLDocument2 readonly dispid 1503;
+    property fonts: IHTMLFontNamesCollection readonly dispid 1504;
+    property execArg: OleVariant dispid 1505;
+    property errorLine: Integer dispid 1506;
+    property errorCharacter: Integer dispid 1507;
+    property errorCode: Integer dispid 1508;
+    property errorMessage: WideString dispid 1509;
+    property errorDebug: WordBool dispid 1510;
+    property unsecuredWindowOfDocument: IHTMLWindow2 readonly dispid 1511;
+    property findText: WideString dispid 1512;
+    property anythingAfterFrameset: WordBool dispid 1513;
+    function sizes(const fontName: WideString): IHTMLFontSizesCollection; dispid 1514;
+    function openfiledlg(initFile: OleVariant; initDir: OleVariant; filter: OleVariant;
+      title: OleVariant): WideString; dispid 1515;
+    function savefiledlg(initFile: OleVariant; initDir: OleVariant; filter: OleVariant;
+      title: OleVariant): WideString; dispid 1516;
+    function choosecolordlg(initColor: OleVariant): Integer; dispid 1517;
+    procedure showSecurityInfo; dispid 1518;
+    function isApartmentModel(const object_: IHTMLObjectElement): WordBool; dispid 1519;
+    function getCharset(const fontName: WideString): Integer; dispid 1520;
+    property secureConnectionInfo: WideString readonly dispid 1521;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLStyleElementEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F615-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLStyleElementEvents2 = dispinterface
+    ['{3050F615-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+    procedure onload(const pEvtObj: IHTMLEventObj); dispid 1003;
+    procedure onerror(const pEvtObj: IHTMLEventObj); dispid 1002;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLStyleElementEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F3CB-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLStyleElementEvents = dispinterface
+    ['{3050F3CB-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+    procedure onload; dispid 1003;
+    procedure onerror; dispid 1002;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLStyleElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F375-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleElement = interface(IDispatch)
+    ['{3050F375-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_type_(const p: WideString); safecall;
+    function Get_type_: WideString; safecall;
+    function Get_readyState: WideString; safecall;
+    procedure Set_onreadystatechange(p: OleVariant); safecall;
+    function Get_onreadystatechange: OleVariant; safecall;
+    procedure Set_onload(p: OleVariant); safecall;
+    function Get_onload: OleVariant; safecall;
+    procedure Set_onerror(p: OleVariant); safecall;
+    function Get_onerror: OleVariant; safecall;
+    function Get_styleSheet: IHTMLStyleSheet; safecall;
+    procedure Set_disabled(p: WordBool); safecall;
+    function Get_disabled: WordBool; safecall;
+    procedure Set_media(const p: WideString); safecall;
+    function Get_media: WideString; safecall;
+    property type_: WideString read Get_type_ write Set_type_;
+    property readyState: WideString read Get_readyState;
+    property onreadystatechange: OleVariant read Get_onreadystatechange write Set_onreadystatechange;
+    property onload: OleVariant read Get_onload write Set_onload;
+    property onerror: OleVariant read Get_onerror write Set_onerror;
+    property styleSheet: IHTMLStyleSheet read Get_styleSheet;
+    property disabled: WordBool read Get_disabled write Set_disabled;
+    property media: WideString read Get_media write Set_media;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLStyleElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F375-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleElementDisp = dispinterface
+    ['{3050F375-98B5-11CF-BB82-00AA00BDCE0B}']
+    property type_: WideString dispid 1002;
+    property readyState: WideString readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onload: OleVariant dispid - 2147412080;
+    property onerror: OleVariant dispid - 2147412083;
+    property styleSheet: IHTMLStyleSheet readonly dispid 1004;
+    property disabled: WordBool dispid - 2147418036;
+    property media: WideString dispid 1006;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLStyleElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F511-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLStyleElement = dispinterface
+    ['{3050F511-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property type_: WideString dispid 1002;
+    property onload: OleVariant dispid - 2147412080;
+    property onerror: OleVariant dispid - 2147412083;
+    property styleSheet: IHTMLStyleSheet readonly dispid 1004;
+    property media: WideString dispid 1006;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLStyleFontFace
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3D5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleFontFace = interface(IDispatch)
+    ['{3050F3D5-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_fontsrc(const p: WideString); safecall;
+    function Get_fontsrc: WideString; safecall;
+    property fontsrc: WideString read Get_fontsrc write Set_fontsrc;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLStyleFontFaceDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3D5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleFontFaceDisp = dispinterface
+    ['{3050F3D5-98B5-11CF-BB82-00AA00BDCE0B}']
+    property fontsrc: WideString dispid - 2147413015;
+  end;
+
+// *********************************************************************//
+// Interface: ICSSFilterSite
+// Flags:     (0)
+// GUID:      {3050F3ED-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  ICSSFilterSite = interface(IUnknown)
+    ['{3050F3ED-98B5-11CF-BB82-00AA00BDCE0B}']
+    function GetElement(out element: IHTMLElement): HRESULT; stdcall;
+    function FireOnFilterChangeEvent: HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IMarkupPointer
+// Flags:     (0)
+// GUID:      {3050F49F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  pTOleChar = ^TOleChar;
+
+  IMarkupPointer = interface(IUnknown)
+    ['{3050F49F-98B5-11CF-BB82-00AA00BDCE0B}']
+    function OwningDoc(out ppDoc: IHTMLDocument2): HRESULT; stdcall;
+    function Gravity(out pGravity: _POINTER_GRAVITY): HRESULT; stdcall;
+    function SetGravity(Gravity: _POINTER_GRAVITY): HRESULT; stdcall;
+    function Cling(out pfCling: Integer): HRESULT; stdcall;
+    function SetCling(fCLing: Integer): HRESULT; stdcall;
+    function Unposition: HRESULT; stdcall;
+    function IsPositioned(out pfPositioned: Integer): HRESULT; stdcall;
+    function GetContainer(out ppContainer: IMarkupContainer): HRESULT; stdcall;
+    function MoveAdjacentToElement(const pElement: IHTMLElement; eAdj: _ELEMENT_ADJACENCY): HRESULT; stdcall;
+    function MoveToPointer(const pPointer: IMarkupPointer): HRESULT; stdcall;
+    function MoveToContainer(const pContainer: IMarkupContainer; fAtStart: Integer): HRESULT; stdcall;
+    function left(fMove: Integer; out pContext: _MARKUP_CONTEXT_TYPE; out ppElement: IHTMLElement;
+      var pcch: Integer; pchText: pTOleChar): HRESULT; stdcall;
+    function right(fMove: Integer; out pContext: _MARKUP_CONTEXT_TYPE; out ppElement: IHTMLElement;
+      var pcch: Integer; pchText: pTOleChar): HRESULT; stdcall;
+    function CurrentScope(out ppElemCurrent: IHTMLElement): HRESULT; stdcall;
+    function IsLeftOf(const pPointerThat: IMarkupPointer; out pfResult: Integer): HRESULT; stdcall;
+    function IsLeftOfOrEqualTo(const pPointerThat: IMarkupPointer; out pfResult: Integer): HRESULT; stdcall;
+    function IsRightOf(const pPointerThat: IMarkupPointer; out pfResult: Integer): HRESULT; stdcall;
+    function IsRightOfOrEqualTo(const pPointerThat: IMarkupPointer; out pfResult: Integer): HRESULT; stdcall;
+    function IsEqualTo(const pPointerThat: IMarkupPointer; out pfAreEqual: Integer): HRESULT; stdcall;
+    function MoveUnit(muAction: _MOVEUNIT_ACTION): HRESULT; stdcall;
+    // !! API fix decl
+    function findText(const pchFindText: PWideChar; dwFlags: LongWord; const pIEndMatch: IMarkupPointer;
+      const pIEndSearch: IMarkupPointer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IMarkupContainer
+// Flags:     (0)
+// GUID:      {3050F5F9-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IMarkupContainer = interface(IUnknown)
+    ['{3050F5F9-98B5-11CF-BB82-00AA00BDCE0B}']
+    function OwningDoc(out ppDoc: IHTMLDocument2): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IMarkupContainer2
+// Flags:     (0)
+// GUID:      {3050F648-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IMarkupContainer2 = interface(IMarkupContainer)
+    ['{3050F648-98B5-11CF-BB82-00AA00BDCE0B}']
+    function CreateChangeLog(const pChangeSink: IHTMLChangeSink; out ppChangeLog: IHTMLChangeLog;
+      fForward: Integer; fBackward: Integer): HRESULT; stdcall;
+    function RegisterForDirtyRange(const pChangeSink: IHTMLChangeSink; out pdwCookie: LongWord): HRESULT; stdcall;
+    function UnRegisterForDirtyRange(dwCookie: LongWord): HRESULT; stdcall;
+    function GetAndClearDirtyRange(dwCookie: LongWord; const pIPointerBegin: IMarkupPointer;
+      const pIPointerEnd: IMarkupPointer): HRESULT; stdcall;
+    function GetVersionNumber: Integer; stdcall;
+    function GetMasterElement(out ppElementMaster: IHTMLElement): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLChangeSink
+// Flags:     (0)
+// GUID:      {3050F64A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLChangeSink = interface(IUnknown)
+    ['{3050F64A-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Notify: HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLChangeLog
+// Flags:     (0)
+// GUID:      {3050F649-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLChangeLog = interface(IUnknown)
+    ['{3050F649-98B5-11CF-BB82-00AA00BDCE0B}']
+// !! API change
+//    function GetNextChange(pbBuffer: PByte; nBufferSize: Integer; out pnRecordLength: Integer): HRESULT; stdcall;
+    function GetNextChange(pbBuffer: PByte; nBufferSize: Integer; out pnRecordLength: Integer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IActiveIMMApp
+// Flags:     (0)
+// GUID:      {08C0E040-62D1-11D1-9326-0060B067B86E}
+// *********************************************************************//
+  IActiveIMMApp = interface(IUnknown)
+    ['{08C0E040-62D1-11D1-9326-0060B067B86E}']
+    function AssociateContext(hWnd: THandle; hIME: HIMC; out phPrev: LongWord): HRESULT; stdcall;
+    function ConfigureIMEA(var hKL: Pointer; hWnd: THandle; dwMode: LongWord;
+      var pData: REGISTERWORDA): HRESULT; stdcall;
+    function ConfigureIMEW(var hKL: Pointer; hWnd: THandle; dwMode: LongWord;
+      var pData: REGISTERWORDW): HRESULT; stdcall;
+    function CreateContext(out phIMC: HIMC): HRESULT; stdcall;
+    function DestroyContext(hIME: HIMC): HRESULT; stdcall;
+    function EnumRegisterWordA(var hKL: Pointer; szReading: PAnsiChar; dwStyle: LongWord;
+      szRegister: PAnsiChar; var pData: Pointer; out pEnum: IEnumRegisterWordA): HRESULT; stdcall;
+    function EnumRegisterWordW(var hKL: Pointer; szReading: PWideChar; dwStyle: LongWord;
+      szRegister: PWideChar; var pData: Pointer;
+      out pEnum: IEnumRegisterWordW): HRESULT; stdcall;
+    function EscapeA(var hKL: Pointer; hIMC: HIMC; uEscape: SYSUINT; var pData: Pointer;
+      out plResult: LRESULT): HRESULT; stdcall;
+    function EscapeW(var hKL: Pointer; hIMC: HIMC; uEscape: SYSUINT; var pData: Pointer;
+      out plResult: LRESULT): HRESULT; stdcall;
+    function GetCandidateListA(hIMC: HIMC; dwIndex: LongWord; uBufLen: SYSUINT;
+      out pCandList: CANDIDATELIST;
+      out puCopied: SYSUINT): HRESULT; stdcall;
+    function GetCandidateListW(hIMC: HIMC; dwIndex: LongWord; uBufLen: SYSUINT;
+      out pCandList: CANDIDATELIST;
+      out puCopied: SYSUINT): HRESULT; stdcall;
+    function GetCandidateListCountA(hIMC: HIMC; out pdwListSize: LongWord;
+      out pdwBufLen: LongWord): HRESULT; stdcall;
+    function GetCandidateListCountW(hIMC: HIMC; out pdwListSize: LongWord;
+      out pdwBufLen: LongWord): HRESULT; stdcall;
+    function GetCandidateWindow(hIMC: HIMC; dwIndex: LongWord;
+      out pCandidate: CANDIDATEFORM): HRESULT; stdcall;
+    function GetCompositionFontA(hIMC: HIMC; out plf: LOGFONTA): HRESULT; stdcall;
+    function GetCompositionFontW(hIMC: HIMC; out plf: LOGFONTA): HRESULT; stdcall;
+    function GetCompositionStringA(hIMC: HIMC; dwIndex: LongWord; dwBufLen: LongWord;
+      out plCopied: Integer; out pBuf: Pointer): HRESULT; stdcall;
+    function GetCompositionStringW(hIMC: HIMC; dwIndex: LongWord; dwBufLen: LongWord;
+      out plCopied: Integer; out pBuf: Pointer): HRESULT; stdcall;
+    function GetCompositionWindow(hIMC: HIMC; out pCompForm: COMPOSITIONFORM): HRESULT; stdcall;
+    function GetContext(hWnd: THandle; out hIMC: HIMC): HRESULT; stdcall;
+    function GetConversionListA(var hKL: Pointer; hIMC: LongWord; pSrc: PAnsiChar; uBufLen: SYSUINT;
+      uFlag: SYSUINT; out pDst: CANDIDATELIST;
+      out puCopied: SYSUINT): HRESULT; stdcall;
+    function GetConversionListW(var hKL: Pointer; hIMC: HIMC; pSrc: PWideChar;
+      uBufLen: SYSUINT; uFlag: SYSUINT;
+      out pDst: CANDIDATELIST; out puCopied: SYSUINT): HRESULT; stdcall;
+    function GetConversionStatus(hIMC: HIMC; out pfdwConversion: LongWord;
+      out pfdwSentence: LongWord): HRESULT; stdcall;
+    function GetDefaultIMEWnd(hWnd: HWND; out phDefWnd: HWND): HRESULT; stdcall;
+    function GetDescriptionA(var hKL: Pointer; uBufLen: SYSUINT; szDescription: PAnsiChar;
+      out puCopied: SYSUINT): HRESULT; stdcall;
+    function GetDescriptionW(var hKL: Pointer; uBufLen: SYSUINT; szDescription: PWideChar;
+      out puCopied: SYSUINT): HRESULT; stdcall;
+    function GetGuideLineA(hIMC: HIMC; dwIndex: LongWord; dwBufLen: LongWord; pBuf: PAnsiChar;
+      out pdwResult: LongWord): HRESULT; stdcall;
+    function GetGuideLineW(hIMC: HIMC; dwIndex: LongWord; dwBufLen: LongWord; pBuf: PWideChar;
+      out pdwResult: LongWord): HRESULT; stdcall;
+    function GetIMEFileNameA(var hKL: Pointer; uBufLen: SYSUINT; szFileName: PAnsiChar;
+      out puCopied: SYSUINT): HRESULT; stdcall;
+    function GetIMEFileNameW(var hKL: Pointer; uBufLen: SYSUINT; szFileName: PWideChar;
+      out puCopied: SYSUINT): HRESULT; stdcall;
+    function GetOpenStatus(hIMC: HIMC): HRESULT; stdcall;
+    function GetProperty(var hKL: Pointer; fdwIndex: LongWord; out pdwProperty: LongWord): HRESULT; stdcall;
+    function GetRegisterWordStyleA(var hKL: Pointer; nItem: SYSUINT;
+      out pStyleBuf: STYLEBUFA;
+      out puCopied: SYSUINT): HRESULT; stdcall;
+    function GetRegisterWordStyleW(var hKL: Pointer; nItem: SYSUINT;
+      out pStyleBuf: STYLEBUFW;
+      out puCopied: SYSUINT): HRESULT; stdcall;
+    function GetStatusWindowPos(hIMC: HIMC; out pptPos: TPoint): HRESULT; stdcall;
+    function GetVirtualKey(hWnd: THandle; out puVirtualKey: SYSUINT): HRESULT; stdcall;
+    function InstallIMEA(szIMEFileName: PAnsiChar; szLayoutText: PAnsiChar; out phKL: Pointer): HRESULT; stdcall;
+    function InstallIMEW(szIMEFileName: PWideChar; szLayoutText: PWideChar; out phKL: Pointer): HRESULT; stdcall;
+    function IsIME(var hKL: Pointer): HRESULT; stdcall;
+    function IsUIMessageA(hWndIME: THandle; msg: SYSUINT; wParam: WPARAM;
+      lParam: LPARAM): HRESULT; stdcall;
+    function IsUIMessageW(hWndIME: THandle; msg: SYSUINT; wParam: WPARAM;
+      lParam: LPARAM): HRESULT; stdcall;
+    function NotifyIME(hIMC: HIMC; dwAction: LongWord; dwIndex: LongWord; dwValue: LongWord): HRESULT; stdcall;
+    function RegisterWordA(var hKL: Pointer; szReading: PAnsiChar; dwStyle: LongWord; szRegister: PAnsiChar): HRESULT; stdcall;
+    function RegisterWordW(var hKL: Pointer; szReading: PWideChar; dwStyle: LongWord;
+      szRegister: PWideChar): HRESULT; stdcall;
+    function ReleaseContext(hWnd: THandle; hIMC: HIMC): HRESULT; stdcall;
+    function SetCandidateWindow(hIMC: HIMC; var pCandidate: CANDIDATEFORM): HRESULT; stdcall;
+    function SetCompositionFontA(hIMC: HIMC; var plf: LOGFONTA): HRESULT; stdcall;
+    function SetCompositionFontW(hIMC: HIMC; var plf: tagLOGFONTW): HRESULT; stdcall;
+    function SetCompositionStringA(hIMC: HIMC; dwIndex: LongWord; var pComp: Pointer;
+      dwCompLen: LongWord; var pRead: Pointer; dwReadLen: LongWord): HRESULT; stdcall;
+    function SetCompositionStringW(hIMC: HIMC; dwIndex: LongWord; var pComp: Pointer;
+      dwCompLen: LongWord; var pRead: Pointer; dwReadLen: LongWord): HRESULT; stdcall;
+    function SetCompositionWindow(hIMC: HIMC; var pCompForm: COMPOSITIONFORM): HRESULT; stdcall;
+    function SetConversionStatus(hIMC: HIMC; fdwConversion: LongWord; fdwSentence: LongWord): HRESULT; stdcall;
+    function SetOpenStatus(hIMC: LongWord; fOpen: Integer): HRESULT; stdcall;
+    function SetStatusWindowPos(hIMC: HIMC; var pptPos: TPoint): HRESULT; stdcall;
+    function SimulateHotKey(hWnd: Thandle; dwHotKeyID: LongWord): HRESULT; stdcall;
+    function UnregisterWordA(var hKL: Pointer; szReading: PAnsiChar; dwStyle: LongWord;
+      szUnregister: PAnsiChar): HResult; stdcall;
+    function UnregisterWordW(var hKL: Pointer; szReading: PWideChar; dwStyle: LongWord;
+      szUnregister: PWideChar): HRESULT; stdcall;
+    function Activate(fRestoreLayout: Integer): HRESULT; stdcall;
+    function Deactivate: HRESULT; stdcall;
+    function OnDefWindowProc(hWnd: THandle; msg: SYSUINT; wParam: WPARAM;
+      lParam: LPARAM; out plResult: LRESULT): HRESULT; stdcall;
+    function FilterClientWindows(var aaClassList: Word; uSize: SYSUINT): HRESULT; stdcall;
+    function GetCodePageA(var hKL: Pointer; out uCodePage: SYSUINT): HRESULT; stdcall;
+    function GetLangId(var hKL: Pointer; out plid: Word): HRESULT; stdcall;
+    function AssociateContextEx(hWnd: THandle; hIMC: HIMC; dwFlags: LongWord): HRESULT; stdcall;
+    function DisableIME(idThread: LongWord): HRESULT; stdcall;
+    function GetImeMenuItemsA(hIMC: HIMC; dwFlags: LongWord; dwType: LongWord;
+      var pImeParentMenu: IMEMENUITEMINFOA;
+      out pImeMenu: IMEMENUITEMINFOA; dwSize: LongWord;
+      out pdwResult: LongWord): HRESULT; stdcall;
+    function GetImeMenuItemsW(hIMC: HIMC; dwFlags: LongWord; dwType: LongWord;
+      var pImeParentMenu: IMEMENUITEMINFOW;
+      out pImeMenu: IMEMENUITEMINFOW; dwSize: LongWord;
+      out pdwResult: LongWord): HRESULT; stdcall;
+    function EnumInputContext(idThread: LongWord; out ppEnum: IEnumInputContext): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IEnumRegisterWordA
+// Flags:     (0)
+// GUID:      {08C03412-F96B-11D0-A475-00AA006BCC59}
+// *********************************************************************//
+  IEnumRegisterWordA = interface(IUnknown)
+    ['{08C03412-F96B-11D0-A475-00AA006BCC59}']
+    function Clone(out ppEnum: IEnumRegisterWordA): HRESULT; stdcall;
+    function Next(ulCount: LongWord; out rgRegisterWord: REGISTERWORDA;
+      out pcFetched: LongWord): HRESULT; stdcall;
+    function reset: HRESULT; stdcall;
+    function Skip(ulCount: LongWord): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IEnumRegisterWordW
+// Flags:     (0)
+// GUID:      {4955DD31-B159-11D0-8FCF-00AA006BCC59}
+// *********************************************************************//
+  IEnumRegisterWordW = interface(IUnknown)
+    ['{4955DD31-B159-11D0-8FCF-00AA006BCC59}']
+    function Clone(out ppEnum: IEnumRegisterWordW): HRESULT; stdcall;
+    function Next(ulCount: LongWord; out rgRegisterWord: REGISTERWORDW;
+      out pcFetched: LongWord): HRESULT; stdcall;
+    function reset: HRESULT; stdcall;
+    function Skip(ulCount: LongWord): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IEnumInputContext
+// Flags:     (0)
+// GUID:      {09B5EAB0-F997-11D1-93D4-0060B067B86E}
+// *********************************************************************//
+  IEnumInputContext = interface(IUnknown)
+    ['{09B5EAB0-F997-11D1-93D4-0060B067B86E}']
+    function Clone(out ppEnum: IEnumInputContext): HRESULT; stdcall;
+    function Next(ulCount: LongWord; out rgInputContext: LongWord; out pcFetched: LongWord): HRESULT; stdcall;
+    function reset: HRESULT; stdcall;
+    function Skip(ulCount: LongWord): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: ISegmentList
+// Flags:     (0)
+// GUID:      {3050F605-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  ISegmentList = interface(IUnknown)
+    ['{3050F605-98B5-11CF-BB82-00AA00BDCE0B}']
+    function CreateIterator(out ppIIter: ISegmentListIterator): HRESULT; stdcall;
+    function GetType(out peType: _SELECTION_TYPE): HRESULT; stdcall;
+    function IsEmpty(out pfEmpty: Integer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: ISegmentListIterator
+// Flags:     (0)
+// GUID:      {3050F692-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  ISegmentListIterator = interface(IUnknown)
+    ['{3050F692-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Current(out ppISegment: ISegment): HRESULT; stdcall;
+    function First: HRESULT; stdcall;
+    function IsDone: HRESULT; stdcall;
+    function Advance: HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: ISegment
+// Flags:     (0)
+// GUID:      {3050F683-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  ISegment = interface(IUnknown)
+    ['{3050F683-98B5-11CF-BB82-00AA00BDCE0B}']
+    function GetPointers(const pIStart: IMarkupPointer; const pIEnd: IMarkupPointer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLCaret
+// Flags:     (0)
+// GUID:      {3050F604-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLCaret = interface(IUnknown)
+    ['{3050F604-98B5-11CF-BB82-00AA00BDCE0B}']
+    function MoveCaretToPointer(const pDispPointer: IDisplayPointer; fScrollIntoView: Integer;
+      eDir: _CARET_DIRECTION): HRESULT; stdcall;
+    function MoveCaretToPointerEx(const pDispPointer: IDisplayPointer; fVisible: Integer;
+      fScrollIntoView: Integer; eDir: _CARET_DIRECTION): HRESULT; stdcall;
+    function MoveMarkupPointerToCaret(const pIMarkupPointer: IMarkupPointer): HRESULT; stdcall;
+    function MoveDisplayPointerToCaret(const pDispPointer: IDisplayPointer): HRESULT; stdcall;
+    function IsVisible(out pIsVisible: Integer): HRESULT; stdcall;
+    function Show(fScrollIntoView: Integer): HRESULT; stdcall;
+    function Hide: HRESULT; stdcall;
+    //kt original --> function InsertText(var pText: Word; lLen: Integer): HRESULT; stdcall;
+    function InsertText(pText: PWideChar; lLen: Integer): HRESULT; stdcall; //kt changed to match ref given on msdn web site
+    function scrollIntoView: HRESULT; stdcall;
+    function GetLocation(out pPoint: TPoint; fTranslate: Integer): HRESULT; stdcall;
+    function GetCaretDirection(out peDir: _CARET_DIRECTION): HRESULT; stdcall;
+    function SetCaretDirection(eDir: _CARET_DIRECTION): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IDisplayPointer
+// Flags:     (0)
+// GUID:      {3050F69E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IDisplayPointer = interface(IUnknown)
+    ['{3050F69E-98B5-11CF-BB82-00AA00BDCE0B}']
+    function moveToPoint(ptPoint: TPoint; eCoordSystem: _COORD_SYSTEM;
+      const pElementContext: IHTMLElement; dwHitTestOptions: LongWord;
+      out pdwHitTestResults: LongWord): HRESULT; stdcall;
+    function MoveUnit(eMoveUnit: _DISPLAY_MOVEUNIT; lXPos: Integer): HRESULT; stdcall;
+    function PositionMarkupPointer(const pMarkupPointer: IMarkupPointer): HRESULT; stdcall;
+    function MoveToPointer(const pDispPointer: IDisplayPointer): HRESULT; stdcall;
+    function SetPointerGravity(eGravity: _POINTER_GRAVITY): HRESULT; stdcall;
+    function GetPointerGravity(out peGravity: _POINTER_GRAVITY): HRESULT; stdcall;
+    function SetDisplayGravity(eGravity: _DISPLAY_GRAVITY): HRESULT; stdcall;
+    function GetDisplayGravity(out peGravity: _DISPLAY_GRAVITY): HRESULT; stdcall;
+    function IsPositioned(out pfPositioned: Integer): HRESULT; stdcall;
+    function Unposition: HRESULT; stdcall;
+    function IsEqualTo(const pDispPointer: IDisplayPointer; out pfIsEqual: Integer): HRESULT; stdcall;
+    function IsLeftOf(const pDispPointer: IDisplayPointer; out pfIsLeftOf: Integer): HRESULT; stdcall;
+    function IsRightOf(const pDispPointer: IDisplayPointer; out pfIsRightOf: Integer): HRESULT; stdcall;
+    function IsAtBOL(out pfBOL: Integer): HRESULT; stdcall;
+    function MoveToMarkupPointer(const pPointer: IMarkupPointer;
+      const pDispLineContext: IDisplayPointer): HRESULT; stdcall;
+    function scrollIntoView: HRESULT; stdcall;
+    function GetLineInfo(out ppLineInfo: ILineInfo): HRESULT; stdcall;
+    function GetFlowElement(out ppLayoutElement: IHTMLElement): HRESULT; stdcall;
+    function QueryBreaks(out pdwBreaks: LongWord): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: ILineInfo
+// Flags:     (0)
+// GUID:      {3050F7E2-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  ILineInfo = interface(IUnknown)
+    ['{3050F7E2-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_x(out p: Integer): HRESULT; stdcall;
+    function Get_baseLine(out p: Integer): HRESULT; stdcall;
+    function Get_textDescent(out p: Integer): HRESULT; stdcall;
+    function Get_textHeight(out p: Integer): HRESULT; stdcall;
+    function Get_lineDirection(out p: Integer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementSegment
+// Flags:     (0)
+// GUID:      {3050F68F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementSegment = interface(ISegment)
+    ['{3050F68F-98B5-11CF-BB82-00AA00BDCE0B}']
+    function GetElement(out ppIElement: IHTMLElement): HRESULT; stdcall;
+    function SetPrimary(fPrimary: Integer): HRESULT; stdcall;
+    function IsPrimary(out pfPrimary: Integer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHighlightSegment
+// Flags:     (0)
+// GUID:      {3050F690-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHighlightSegment = interface(ISegment)
+    ['{3050F690-98B5-11CF-BB82-00AA00BDCE0B}']
+  end;
+
+// *********************************************************************//
+// Interface: IHighlightRenderingServices
+// Flags:     (0)
+// GUID:      {3050F606-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHighlightRenderingServices = interface(IUnknown)
+    ['{3050F606-98B5-11CF-BB82-00AA00BDCE0B}']
+    function AddSegment(const pDispPointerStart: IDisplayPointer;
+      const pDispPointerEnd: IDisplayPointer;
+      const pIRenderStyle: IHTMLRenderStyle; out ppISegment: IHighlightSegment): HRESULT; stdcall;
+    function MoveSegmentToPointers(const pISegment: IHighlightSegment;
+      const pDispPointerStart: IDisplayPointer;
+      const pDispPointerEnd: IDisplayPointer): HRESULT; stdcall;
+    function RemoveSegment(const pISegment: IHighlightSegment): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IDisplayServices
+// Flags:     (0)
+// GUID:      {3050F69D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IDisplayServices = interface(IUnknown)
+    ['{3050F69D-98B5-11CF-BB82-00AA00BDCE0B}']
+    function CreateDisplayPointer(out ppDispPointer: IDisplayPointer): HRESULT; stdcall;
+    function TransformRect(var pRect: TRect; eSource: _COORD_SYSTEM; eDestination: _COORD_SYSTEM;
+      const pIElement: IHTMLElement): HRESULT; stdcall;
+    function TransformPoint(var pPoint: TPoint; eSource: _COORD_SYSTEM;
+      eDestination: _COORD_SYSTEM; const pIElement: IHTMLElement): HRESULT; stdcall;
+    function GetCaret(out ppCaret: IHTMLCaret): HRESULT; stdcall;
+    function GetComputedStyle(const pPointer: IMarkupPointer;
+      out ppComputedStyle: IHTMLComputedStyle): HRESULT; stdcall;
+    function ScrollRectIntoView(const pIElement: IHTMLElement; rect: TRect): HRESULT; stdcall;
+    function HasFlowLayout(const pIElement: IHTMLElement; out pfHasFlowLayout: Integer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLComputedStyle
+// Flags:     (0)
+// GUID:      {3050F6C3-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLComputedStyle = interface(IUnknown)
+    ['{3050F6C3-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_bold(out p: WordBool): HRESULT; stdcall;
+    function Get_italic(out p: WordBool): HRESULT; stdcall;
+    function Get_underline(out p: WordBool): HRESULT; stdcall;
+    function Get_overline(out p: WordBool): HRESULT; stdcall;
+    function Get_strikeOut(out p: WordBool): HRESULT; stdcall;
+    function Get_subScript(out p: WordBool): HRESULT; stdcall;
+    function Get_superScript(out p: WordBool): HRESULT; stdcall;
+    function Get_explicitFace(out p: WordBool): HRESULT; stdcall;
+    function Get_fontWeight(out p: Integer): HRESULT; stdcall;
+    function Get_fontSize(out p: Integer): HRESULT; stdcall;
+    function Get_fontName(out p: Word): HRESULT; stdcall;
+    function Get_hasBgColor(out p: WordBool): HRESULT; stdcall;
+    function Get_textColor(out p: LongWord): HRESULT; stdcall;
+    function Get_backgroundColor(out p: LongWord): HRESULT; stdcall;
+    function Get_preFormatted(out p: WordBool): HRESULT; stdcall;
+    function Get_direction(out p: WordBool): HRESULT; stdcall;
+    function Get_blockDirection(out p: WordBool): HRESULT; stdcall;
+    function Get_OL(out p: WordBool): HRESULT; stdcall;
+    function isEqual(const pComputedStyle: IHTMLComputedStyle; out pfEqual: WordBool): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHtmlDlgSafeHelper
+// Flags:     (4096) Dispatchable
+// GUID:      {3050F81A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHtmlDlgSafeHelper = interface(IDispatch)
+    ['{3050F81A-98B5-11CF-BB82-00AA00BDCE0B}']
+    function choosecolordlg(initColor: OleVariant; out rgbColor: OleVariant): HRESULT; stdcall;
+    function getCharset(const fontName: WideString; out charset: OleVariant): HRESULT; stdcall;
+    function Get_fonts(out p: IDispatch): HRESULT; stdcall;
+    function Get_BlockFormats(out p: IDispatch): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IBlockFormats
+// Flags:     (4096) Dispatchable
+// GUID:      {3050F830-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IBlockFormats = interface(IDispatch)
+    ['{3050F830-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get__newEnum(out p: IUnknown): HRESULT; stdcall;
+    function Get_Count(out p: Integer): HRESULT; stdcall;
+    function item(var pvarIndex: OleVariant; out pbstrBlockFormat: WideString): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IFontNames
+// Flags:     (4096) Dispatchable
+// GUID:      {3050F839-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IFontNames = interface(IDispatch)
+    ['{3050F839-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get__newEnum(out p: IUnknown): HRESULT; stdcall;
+    function Get_Count(out p: Integer): HRESULT; stdcall;
+    function item(var pvarIndex: OleVariant; out pbstrFontName: WideString): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: ICSSFilter
+// Flags:     (0)
+// GUID:      {3050F3EC-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  ICSSFilter = interface(IUnknown)
+    ['{3050F3EC-98B5-11CF-BB82-00AA00BDCE0B}']
+    function SetSite(const pSink: ICSSFilterSite): HRESULT; stdcall;
+    function OnAmbientPropertyChange(dispid: Integer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: ISecureUrlHost
+// Flags:     (0)
+// GUID:      {C81984C4-74C8-11D2-BAA9-00C04FC2040E}
+// *********************************************************************//
+  ISecureUrlHost = interface(IUnknown)
+    ['{C81984C4-74C8-11D2-BAA9-00C04FC2040E}']
+    function ValidateSecureUrl(out pfAllow: Integer; var pchUrlInQuestion: Word; dwFlags: LongWord): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IMarkupServices
+// Flags:     (0)
+// GUID:      {3050F4A0-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IMarkupServices = interface(IUnknown)
+    ['{3050F4A0-98B5-11CF-BB82-00AA00BDCE0B}']
+    function CreateMarkupPointer(out ppPointer: IMarkupPointer): HRESULT; stdcall;
+    function CreateMarkupContainer(out ppMarkupContainer: IMarkupContainer): HRESULT; stdcall;
+// !! API change
+//    function createElement(tagID: _ELEMENT_TAG_ID; pchAttributes: PWord;
+//                           out ppElement: IHTMLElement): HRESULT; stdcall;
+    function createElement(tagID: _ELEMENT_TAG_ID; const pchAttributes: WideString;
+      out ppElement: IHTMLElement): HRESULT; stdcall;
+    function CloneElement(const pElemCloneThis: IHTMLElement; out ppElementTheClone: IHTMLElement): HRESULT; stdcall;
+    function InsertElement(const pElementInsert: IHTMLElement; const pPointerStart: IMarkupPointer;
+      const pPointerFinish: IMarkupPointer): HRESULT; stdcall;
+    function RemoveElement(const pElementRemove: IHTMLElement): HRESULT; stdcall;
+    function remove(const pPointerStart: IMarkupPointer; const pPointerFinish: IMarkupPointer): HRESULT; stdcall;
+    function Copy(const pPointerSourceStart: IMarkupPointer;
+      const pPointerSourceFinish: IMarkupPointer; const pPointerTarget: IMarkupPointer): HRESULT; stdcall;
+    function move(const pPointerSourceStart: IMarkupPointer;
+      const pPointerSourceFinish: IMarkupPointer; const pPointerTarget: IMarkupPointer): HRESULT; stdcall;
+    // !! API fix decl
+    function InsertText(const pchText: PWideChar; cch: Integer; const pPointerTarget: IMarkupPointer): HRESULT; stdcall;
+    // !! API fix decl
+    function ParseString(pchHTML: PWideString; dwFlags: LongWord;
+      out ppContainerResult: IMarkupContainer;
+      const ppPointerStart: IMarkupPointer; const ppPointerFinish: IMarkupPointer): HRESULT; stdcall;
+    // !! API fix decl
+    function ParseGlobal(const hglobalHTML: HGLOBAL; dwFlags: LongWord;
+      out ppContainerResult: IMarkupContainer;
+      const pPointerStart: IMarkupPointer; const pPointerFinish: IMarkupPointer): HRESULT; stdcall;
+    function IsScopedElement(const pElement: IHTMLElement; out pfScoped: Integer): HRESULT; stdcall;
+    function GetElementTagId(const pElement: IHTMLElement; out ptagId: _ELEMENT_TAG_ID): HRESULT; stdcall;
+    function GetTagIDForName(const bstrName: WideString; out ptagId: _ELEMENT_TAG_ID): HRESULT; stdcall;
+    function GetNameForTagID(tagID: _ELEMENT_TAG_ID; out pbstrName: WideString): HRESULT; stdcall;
+    function MovePointersToRange(const pIRange: IHTMLTxtRange; const pPointerStart: IMarkupPointer;
+      const pPointerFinish: IMarkupPointer): HRESULT; stdcall;
+    function MoveRangeToPointers(const pPointerStart: IMarkupPointer;
+      const pPointerFinish: IMarkupPointer; const pIRange: IHTMLTxtRange): HRESULT; stdcall;
+// !! API Change
+//    function BeginUndoUnit(var pchTitle: Word): HRESULT; stdcall;
+    function BeginUndoUnit(const pchTitle: WideString): HRESULT; stdcall;
+    function EndUndoUnit: HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IMarkupServices2
+// Flags:     (0)
+// GUID:      {3050F682-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IMarkupServices2 = interface(IMarkupServices)
+    ['{3050F682-98B5-11CF-BB82-00AA00BDCE0B}']
+    // !! API fix decl
+    function ParseGlobalEx(hglobalHTML: HGLOBAL; dwFlags: DWord;
+      const pContext: IMarkupContainer;
+      out ppContainerResult: IMarkupContainer;
+      const pPointerStart: IMarkupPointer; const pPointerFinish: IMarkupPointer): HRESULT; stdcall;
+{                          (hglobalHTML: HGLOBAL; dwFlags: DWord;
+                           const pContext: IMarkupContainer;
+                           out ppContainerResult: IMarkupContainer;
+                           const pPointerStart: IMarkupPointer; const pPointerFinish: IMarkupPointer): HRESULT; stdcall;}
+    // !! API fix decl
+    function ValidateElements(const pPointerStart: IMarkupPointer;
+      const pPointerFinish: IMarkupPointer;
+      const pPointerTarget: IMarkupPointer;
+      pPointerStatus: IMarkupPointer;
+      out ppElemFailBottom: IHTMLElement; out ppElemFailTop: IHTMLElement): HRESULT; stdcall;
+    function SaveSegmentsToClipboard(const pSegmentList: ISegmentList; dwFlags: LongWord): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLChangePlayback
+// Flags:     (0)
+// GUID:      {3050F6E0-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLChangePlayback = interface(IUnknown)
+    ['{3050F6E0-98B5-11CF-BB82-00AA00BDCE0B}']
+// !! API change
+//    function ExecChange(var pbRecord: Byte; fForward: Integer): HRESULT; stdcall;
+    function ExecChange(pbRecord: PByte; fForward: Integer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IMarkupPointer2
+// Flags:     (0)
+// GUID:      {3050F675-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IMarkupPointer2 = interface(IMarkupPointer)
+    ['{3050F675-98B5-11CF-BB82-00AA00BDCE0B}']
+    function IsAtWordBreak(out pfAtBreak: Integer): HRESULT; stdcall;
+    function GetMarkupPosition(out plMP: Integer): HRESULT; stdcall;
+    function MoveToMarkupPosition(const pContainer: IMarkupContainer; lMP: Integer): HRESULT; stdcall;
+    function MoveUnitBounded(muAction: _MOVEUNIT_ACTION; const pIBoundary: IMarkupPointer): HRESULT; stdcall;
+    function IsInsideURL(const pRight: IMarkupPointer; out pfResult: Integer): HRESULT; stdcall;
+    function MoveToContent(const pIElement: IHTMLElement; fAtStart: Integer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IMarkupTextFrags
+// Flags:     (0)
+// GUID:      {3050F5FA-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IMarkupTextFrags = interface(IUnknown)
+    ['{3050F5FA-98B5-11CF-BB82-00AA00BDCE0B}']
+    function GetTextFragCount(out pcFrags: Integer): HRESULT; stdcall;
+    function GetTextFrag(iFrag: Integer; out pbstrFrag: WideString;
+      const pPointerFrag: IMarkupPointer): HRESULT; stdcall;
+    function RemoveTextFrag(iFrag: Integer): HRESULT; stdcall;
+    function InsertTextFrag(iFrag: Integer; const bstrInsert: WideString;
+      const pPointerInsert: IMarkupPointer): HRESULT; stdcall;
+    function FindTextFragFromMarkupPointer(const pPointerFind: IMarkupPointer; out piFrag: Integer;
+      out pfFragFound: Integer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IXMLGenericParse
+// Flags:     (0)
+// GUID:      {E4E23071-4D07-11D2-AE76-0080C73BC199}
+// *********************************************************************//
+  IXMLGenericParse = interface(IUnknown)
+    ['{E4E23071-4D07-11D2-AE76-0080C73BC199}']
+    function SetGenericParse(fDoGeneric: WordBool): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLEditHost
+// Flags:     (0)
+// GUID:      {3050F6A0-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLEditHost = interface(IUnknown)
+    ['{3050F6A0-98B5-11CF-BB82-00AA00BDCE0B}']
+    function SnapRect(const pIElement: IHTMLElement; var prcNew: TRect; eHandle: _ELEMENT_CORNER): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLEditHost2
+// Flags:     (0)
+// GUID:      {3050F848-98B5-11CF-BB82-00AA00BDCE0D}
+// *********************************************************************//
+  IHTMLEditHost2 = interface(IHTMLEditHost)
+    ['{3050F848-98B5-11CF-BB82-00AA00BDCE0D}']
+    function PreDrag: HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: ISequenceNumber
+// Flags:     (0)
+// GUID:      {3050F6C1-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  ISequenceNumber = interface(IUnknown)
+    ['{3050F6C1-98B5-11CF-BB82-00AA00BDCE0B}']
+    function GetSequenceNumber(nCurrent: Integer; out pnNew: Integer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IIMEServices
+// Flags:     (0)
+// GUID:      {3050F6CA-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IIMEServices = interface(IUnknown)
+    ['{3050F6CA-98B5-11CF-BB82-00AA00BDCE0B}']
+    function GetActiveIMM(out ppActiveIMM: IActiveIMMApp): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: ISelectionServicesListener
+// Flags:     (0)
+// GUID:      {3050F699-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  ISelectionServicesListener = interface(IUnknown)
+    ['{3050F699-98B5-11CF-BB82-00AA00BDCE0B}']
+    function BeginSelectionUndo: HRESULT; stdcall;
+    function EndSelectionUndo: HRESULT; stdcall;
+    function OnSelectedElementExit(const pIElementStart: IMarkupPointer;
+      const pIElementEnd: IMarkupPointer;
+      const pIElementContentStart: IMarkupPointer;
+      const pIElementContentEnd: IMarkupPointer): HRESULT; stdcall;
+    function OnChangeType(eType: _SELECTION_TYPE; const pIListener: ISelectionServicesListener): HRESULT; stdcall;
+    function GetTypeDetail(out pTypeDetail: WideString): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: ISelectionServices
+// Flags:     (0)
+// GUID:      {3050F684-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  ISelectionServices = interface(IUnknown)
+    ['{3050F684-98B5-11CF-BB82-00AA00BDCE0B}']
+    function SetSelectionType(eType: _SELECTION_TYPE; const pIListener: ISelectionServicesListener): HRESULT; stdcall;
+    function GetMarkupContainer(out ppIContainer: IMarkupContainer): HRESULT; stdcall;
+    function AddSegment(const pIStart: IMarkupPointer; const pIEnd: IMarkupPointer;
+      out ppISegmentAdded: ISegment): HRESULT; stdcall;
+    function AddElementSegment(const pIElement: IHTMLElement; out ppISegmentAdded: IElementSegment): HRESULT; stdcall;
+    function RemoveSegment(const pISegment: ISegment): HRESULT; stdcall;
+    function GetSelectionServicesListener(out ppISelectionServicesListener: ISelectionServicesListener): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLEditDesigner
+// Flags:     (0)
+// GUID:      {3050F662-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLEditDesigner = interface(IUnknown)
+    ['{3050F662-98B5-11CF-BB82-00AA00BDCE0B}']
+    function PreHandleEvent(inEvtDispId: Integer; const pIEventObj: IHTMLEventObj): HRESULT; stdcall;
+    function PostHandleEvent(inEvtDispId: Integer; const pIEventObj: IHTMLEventObj): HRESULT; stdcall;
+    function TranslateAccelerator(inEvtDispId: Integer; const pIEventObj: IHTMLEventObj): HRESULT; stdcall;
+    function PostEditorEventNotify(inEvtDispId: Integer; const pIEventObj: IHTMLEventObj): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLEditServices
+// Flags:     (0)
+// GUID:      {3050F663-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLEditServices = interface(IUnknown)
+    ['{3050F663-98B5-11CF-BB82-00AA00BDCE0B}']
+    function AddDesigner(const pIDesigner: IHTMLEditDesigner): HRESULT; stdcall;
+    function RemoveDesigner(const pIDesigner: IHTMLEditDesigner): HRESULT; stdcall;
+    function GetSelectionServices(const pIContainer: IMarkupContainer;
+      out ppSelSvc: ISelectionServices): HRESULT; stdcall;
+    function MoveToSelectionAnchor(const pIStartAnchor: IMarkupPointer): HRESULT; stdcall;
+    function MoveToSelectionEnd(const pIEndAnchor: IMarkupPointer): HRESULT; stdcall;
+    function SelectRange(const pStart: IMarkupPointer; const pEnd: IMarkupPointer;
+      eType: _SELECTION_TYPE): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLEditServices2
+// Flags:     (0)
+// GUID:      {3050F812-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLEditServices2 = interface(IHTMLEditServices)
+    ['{3050F812-98B5-11CF-BB82-00AA00BDCE0B}']
+    function MoveToSelectionAnchorEx(const pIStartAnchor: IDisplayPointer): HRESULT; stdcall;
+    function MoveToSelectionEndEx(const pIEndAnchor: IDisplayPointer): HRESULT; stdcall;
+    function FreezeVirtualCaretPos(fReCompute: Integer): HRESULT; stdcall;
+    function UnFreezeVirtualCaretPos(fReset: Integer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLNamespaceEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F6BD-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLNamespaceEvents = dispinterface
+    ['{3050F6BD-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLNamespace
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F6BB-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLNamespace = interface(IDispatch)
+    ['{3050F6BB-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_name: WideString; safecall;
+    function Get_urn: WideString; safecall;
+    function Get_tagNames: IDispatch; safecall;
+    function Get_readyState: OleVariant; safecall;
+    procedure Set_onreadystatechange(p: OleVariant); safecall;
+    function Get_onreadystatechange: OleVariant; safecall;
+    procedure doImport(const bstrImplementationUrl: WideString); safecall;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; safecall;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); safecall;
+    property name: WideString read Get_name;
+    property urn: WideString read Get_urn;
+    property tagNames: IDispatch read Get_tagNames;
+    property readyState: OleVariant read Get_readyState;
+    property onreadystatechange: OleVariant read Get_onreadystatechange write Set_onreadystatechange;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLNamespaceDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F6BB-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLNamespaceDisp = dispinterface
+    ['{3050F6BB-98B5-11CF-BB82-00AA00BDCE0B}']
+    property name: WideString readonly dispid 1000;
+    property urn: WideString readonly dispid 1001;
+    property tagNames: IDispatch readonly dispid 1002;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    procedure doImport(const bstrImplementationUrl: WideString); dispid 1003;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLNamespaceCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F6B8-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLNamespaceCollection = interface(IDispatch)
+    ['{3050F6B8-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_length: Integer; safecall;
+    function item(index: OleVariant): IDispatch; safecall;
+    function add(const bstrNamespace: WideString; const bstrUrn: WideString;
+      implementationUrl: OleVariant): IDispatch; safecall;
+    property length: Integer read Get_length;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLNamespaceCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F6B8-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLNamespaceCollectionDisp = dispinterface
+    ['{3050F6B8-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1000;
+    function item(index: OleVariant): IDispatch; dispid 0;
+    function add(const bstrNamespace: WideString; const bstrUrn: WideString;
+      implementationUrl: OleVariant): IDispatch; dispid 1001;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLPainter
+// Flags:     (0)
+// GUID:      {3050F6A6-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLPainter = interface(IUnknown)
+    ['{3050F6A6-98B5-11CF-BB82-00AA00BDCE0B}']
+    // !! API fix decl
+    function Draw(rcBounds: TRect; rcUpdate: TRect; lDrawFlags: Integer;
+      hdc: hdc; pvDrawObject: Pointer): HRESULT; stdcall;
+    function onresize(size: TSize): HRESULT; stdcall;
+    function GetPainterInfo(out pInfo: _HTML_PAINTER_INFO): HRESULT; stdcall;
+    function HitTestPoint(pt: TPoint; out pbHit: BOOL; out plPartID: Longint): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLPaintSite
+// Flags:     (0)
+// GUID:      {3050F6A7-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLPaintSite = interface(IUnknown)
+    ['{3050F6A7-98B5-11CF-BB82-00AA00BDCE0B}']
+    function InvalidatePainterInfo: HRESULT; stdcall;
+    // !! API fix decl
+    function InvalidateRect(prcInvalid: PRect): HRESULT; stdcall;
+    function InvalidateRegion(var rgnInvalid: Pointer): HRESULT; stdcall;
+    function GetDrawInfo(lFlags: Integer; out pDrawInfo: _HTML_PAINT_DRAW_INFO): HRESULT; stdcall;
+    function TransformGlobalToLocal(ptGlobal: TPoint; out pptLocal: TPoint): HRESULT; stdcall;
+    function TransformLocalToGlobal(ptLocal: TPoint; out pptGlobal: TPoint): HRESULT; stdcall;
+    function GetHitTestCookie(out plCookie: Integer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLPainterEventInfo
+// Flags:     (0)
+// GUID:      {3050F6DF-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLPainterEventInfo = interface(IUnknown)
+    ['{3050F6DF-98B5-11CF-BB82-00AA00BDCE0B}']
+    function GetEventInfoFlags(out plEventInfoFlags: Integer): HRESULT; stdcall;
+    function GetEventTarget(var ppElement: IHTMLElement): HRESULT; stdcall;
+    function SetCursor(lPartID: Integer): HRESULT; stdcall;
+    function StringFromPartID(lPartID: Integer; out pbstrPart: WideString): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLPainterOverlay
+// Flags:     (0)
+// GUID:      {3050F7E3-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLPainterOverlay = interface(IUnknown)
+    ['{3050F7E3-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onmove(rcDevice: TRect): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLIPrintCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F6B5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLIPrintCollection = interface(IDispatch)
+    ['{3050F6B5-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_length: Integer; safecall;
+    function Get__newEnum: IUnknown; safecall;
+    function item(index: Integer): IUnknown; safecall;
+    property length: Integer read Get_length;
+    property _newEnum: IUnknown read Get__newEnum;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLIPrintCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F6B5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLIPrintCollectionDisp = dispinterface
+    ['{3050F6B5-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1501;
+    property _newEnum: IUnknown readonly dispid - 4;
+    function item(index: Integer): IUnknown; dispid 0;
+  end;
+
+// *********************************************************************//
+// Interface: IEnumPrivacyRecords
+// Flags:     (0)
+// GUID:      {3050F844-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IEnumPrivacyRecords = interface(IUnknown)
+    ['{3050F844-98B5-11CF-BB82-00AA00BDCE0B}']
+    function reset: HRESULT; stdcall;
+    function GetSize(out pSize: LongWord): HRESULT; stdcall;
+    function GetPrivacyImpacted(out pState: Integer): HRESULT; stdcall;
+    function Next(out pbstrUrl: WideString; out pbstrPolicyRef: WideString;
+      out pdwReserved: Integer; out pdwPrivacyFlags: LongWord): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDialog
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F216-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDialog = interface(IDispatch)
+    ['{3050F216-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_dialogTop(p: OleVariant); safecall;
+    function Get_dialogTop: OleVariant; safecall;
+    procedure Set_dialogLeft(p: OleVariant); safecall;
+    function Get_dialogLeft: OleVariant; safecall;
+    procedure Set_dialogWidth(p: OleVariant); safecall;
+    function Get_dialogWidth: OleVariant; safecall;
+    procedure Set_dialogHeight(p: OleVariant); safecall;
+    function Get_dialogHeight: OleVariant; safecall;
+    function Get_dialogArguments: OleVariant; safecall;
+    function Get_menuArguments: OleVariant; safecall;
+    procedure Set_returnValue(p: OleVariant); safecall;
+    function Get_returnValue: OleVariant; safecall;
+    procedure close; safecall;
+    function toString: WideString; safecall;
+    property dialogTop: OleVariant read Get_dialogTop write Set_dialogTop;
+    property dialogLeft: OleVariant read Get_dialogLeft write Set_dialogLeft;
+    property dialogWidth: OleVariant read Get_dialogWidth write Set_dialogWidth;
+    property dialogHeight: OleVariant read Get_dialogHeight write Set_dialogHeight;
+    property dialogArguments: OleVariant read Get_dialogArguments;
+    property menuArguments: OleVariant read Get_menuArguments;
+    property returnValue: OleVariant read Get_returnValue write Set_returnValue;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDialogDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F216-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDialogDisp = dispinterface
+    ['{3050F216-98B5-11CF-BB82-00AA00BDCE0B}']
+    property dialogTop: OleVariant dispid - 2147418108;
+    property dialogLeft: OleVariant dispid - 2147418109;
+    property dialogWidth: OleVariant dispid - 2147418107;
+    property dialogHeight: OleVariant dispid - 2147418106;
+    property dialogArguments: OleVariant readonly dispid 25000;
+    property menuArguments: OleVariant readonly dispid 25013;
+    property returnValue: OleVariant dispid 25001;
+    procedure close; dispid 25011;
+    function toString: WideString; dispid 25012;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDialog2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5E0-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDialog2 = interface(IDispatch)
+    ['{3050F5E0-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_status(const p: WideString); safecall;
+    function Get_status: WideString; safecall;
+    procedure Set_resizable(const p: WideString); safecall;
+    function Get_resizable: WideString; safecall;
+    property status: WideString read Get_status write Set_status;
+    property resizable: WideString read Get_resizable write Set_resizable;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDialog2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5E0-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDialog2Disp = dispinterface
+    ['{3050F5E0-98B5-11CF-BB82-00AA00BDCE0B}']
+    property status: WideString dispid 25014;
+    property resizable: WideString dispid 25015;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDialog3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F388-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDialog3 = interface(IDispatch)
+    ['{3050F388-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_unadorned(const p: WideString); safecall;
+    function Get_unadorned: WideString; safecall;
+    procedure Set_dialogHide(const p: WideString); safecall;
+    function Get_dialogHide: WideString; safecall;
+    property unadorned: WideString read Get_unadorned write Set_unadorned;
+    property dialogHide: WideString read Get_dialogHide write Set_dialogHide;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDialog3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F388-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDialog3Disp = dispinterface
+    ['{3050F388-98B5-11CF-BB82-00AA00BDCE0B}']
+    property unadorned: WideString dispid 25016;
+    property dialogHide: WideString dispid 25007;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLModelessInit
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5E4-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLModelessInit = interface(IDispatch)
+    ['{3050F5E4-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_parameters: OleVariant; safecall;
+    function Get_optionString: OleVariant; safecall;
+    function Get_moniker: IUnknown; safecall;
+    function Get_document: IUnknown; safecall;
+    property parameters: OleVariant read Get_parameters;
+    property optionString: OleVariant read Get_optionString;
+    property moniker: IUnknown read Get_moniker;
+    property document: IUnknown read Get_document;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLModelessInitDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5E4-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLModelessInitDisp = dispinterface
+    ['{3050F5E4-98B5-11CF-BB82-00AA00BDCE0B}']
+    property parameters: OleVariant readonly dispid 25000;
+    property optionString: OleVariant readonly dispid 25001;
+    property moniker: IUnknown readonly dispid 25006;
+    property document: IUnknown readonly dispid 25007;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLPopup
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F666-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLPopup = interface(IDispatch)
+    ['{3050F666-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Show(x: Integer; y: Integer; w: Integer; h: Integer; var pElement: OleVariant); safecall;
+    procedure Hide; safecall;
+    function Get_document: IHTMLDocument; safecall;
+    function Get_isOpen: WordBool; safecall;
+    property document: IHTMLDocument read Get_document;
+    property isOpen: WordBool read Get_isOpen;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLPopupDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F666-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLPopupDisp = dispinterface
+    ['{3050F666-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Show(x: Integer; y: Integer; w: Integer; h: Integer; var pElement: OleVariant); dispid 27001;
+    procedure Hide; dispid 27002;
+    property document: IHTMLDocument readonly dispid 27003;
+    property isOpen: WordBool readonly dispid 27004;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLPopup
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F589-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLPopup = dispinterface
+    ['{3050F589-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Show(x: Integer; y: Integer; w: Integer; h: Integer; var pElement: OleVariant); dispid 27001;
+    procedure Hide; dispid 27002;
+    property document: IHTMLDocument readonly dispid 27003;
+    property isOpen: WordBool readonly dispid 27004;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLAppBehavior
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5CA-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAppBehavior = interface(IDispatch)
+    ['{3050F5CA-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_applicationName(const p: WideString); safecall;
+    function Get_applicationName: WideString; safecall;
+    procedure Set_version(const p: WideString); safecall;
+    function Get_version: WideString; safecall;
+    procedure Set_icon(const p: WideString); safecall;
+    function Get_icon: WideString; safecall;
+    procedure Set_singleInstance(const p: WideString); safecall;
+    function Get_singleInstance: WideString; safecall;
+    procedure Set_minimizeButton(const p: WideString); safecall;
+    function Get_minimizeButton: WideString; safecall;
+    procedure Set_maximizeButton(const p: WideString); safecall;
+    function Get_maximizeButton: WideString; safecall;
+    procedure Set_border(const p: WideString); safecall;
+    function Get_border: WideString; safecall;
+    procedure Set_borderStyle(const p: WideString); safecall;
+    function Get_borderStyle: WideString; safecall;
+    procedure Set_sysMenu(const p: WideString); safecall;
+    function Get_sysMenu: WideString; safecall;
+    procedure Set_caption(const p: WideString); safecall;
+    function Get_caption: WideString; safecall;
+    procedure Set_windowState(const p: WideString); safecall;
+    function Get_windowState: WideString; safecall;
+    procedure Set_showInTaskBar(const p: WideString); safecall;
+    function Get_showInTaskBar: WideString; safecall;
+    function Get_commandLine: WideString; safecall;
+    property applicationName: WideString read Get_applicationName write Set_applicationName;
+    property version: WideString read Get_version write Set_version;
+    property icon: WideString read Get_icon write Set_icon;
+    property singleInstance: WideString read Get_singleInstance write Set_singleInstance;
+    property minimizeButton: WideString read Get_minimizeButton write Set_minimizeButton;
+    property maximizeButton: WideString read Get_maximizeButton write Set_maximizeButton;
+    property border: WideString read Get_border write Set_border;
+    property borderStyle: WideString read Get_borderStyle write Set_borderStyle;
+    property sysMenu: WideString read Get_sysMenu write Set_sysMenu;
+    property caption: WideString read Get_caption write Set_caption;
+    property windowState: WideString read Get_windowState write Set_windowState;
+    property showInTaskBar: WideString read Get_showInTaskBar write Set_showInTaskBar;
+    property commandLine: WideString read Get_commandLine;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLAppBehaviorDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5CA-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAppBehaviorDisp = dispinterface
+    ['{3050F5CA-98B5-11CF-BB82-00AA00BDCE0B}']
+    property applicationName: WideString dispid 5000;
+    property version: WideString dispid 5001;
+    property icon: WideString dispid 5002;
+    property singleInstance: WideString dispid 5003;
+    property minimizeButton: WideString dispid 5005;
+    property maximizeButton: WideString dispid 5006;
+    property border: WideString dispid 5007;
+    property borderStyle: WideString dispid 5008;
+    property sysMenu: WideString dispid 5009;
+    property caption: WideString dispid 5010;
+    property windowState: WideString dispid 5011;
+    property showInTaskBar: WideString dispid 5012;
+    property commandLine: WideString readonly dispid 5013;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLAppBehavior2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5C9-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAppBehavior2 = interface(IDispatch)
+    ['{3050F5C9-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_contextMenu(const p: WideString); safecall;
+    function Get_contextMenu: WideString; safecall;
+    procedure Set_innerBorder(const p: WideString); safecall;
+    function Get_innerBorder: WideString; safecall;
+    procedure Set_scroll(const p: WideString); safecall;
+    function Get_scroll: WideString; safecall;
+    procedure Set_scrollFlat(const p: WideString); safecall;
+    function Get_scrollFlat: WideString; safecall;
+    procedure Set_selection(const p: WideString); safecall;
+    function Get_selection: WideString; safecall;
+    property contextMenu: WideString read Get_contextMenu write Set_contextMenu;
+    property innerBorder: WideString read Get_innerBorder write Set_innerBorder;
+    property scroll: WideString read Get_scroll write Set_scroll;
+    property scrollFlat: WideString read Get_scrollFlat write Set_scrollFlat;
+    property selection: WideString read Get_selection write Set_selection;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLAppBehavior2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5C9-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAppBehavior2Disp = dispinterface
+    ['{3050F5C9-98B5-11CF-BB82-00AA00BDCE0B}']
+    property contextMenu: WideString dispid 5014;
+    property innerBorder: WideString dispid 5015;
+    property scroll: WideString dispid 5016;
+    property scrollFlat: WideString dispid 5017;
+    property selection: WideString dispid 5018;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLAppBehavior3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5CD-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAppBehavior3 = interface(IDispatch)
+    ['{3050F5CD-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_navigable(const p: WideString); safecall;
+    function Get_navigable: WideString; safecall;
+    property navigable: WideString read Get_navigable write Set_navigable;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLAppBehavior3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5CD-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAppBehavior3Disp = dispinterface
+    ['{3050F5CD-98B5-11CF-BB82-00AA00BDCE0B}']
+    property navigable: WideString dispid 5019;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLAppBehavior
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F57C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLAppBehavior = dispinterface
+    ['{3050F57C-98B5-11CF-BB82-00AA00BDCE0B}']
+    property applicationName: WideString dispid 5000;
+    property version: WideString dispid 5001;
+    property icon: WideString dispid 5002;
+    property singleInstance: WideString dispid 5003;
+    property minimizeButton: WideString dispid 5005;
+    property maximizeButton: WideString dispid 5006;
+    property border: WideString dispid 5007;
+    property borderStyle: WideString dispid 5008;
+    property sysMenu: WideString dispid 5009;
+    property caption: WideString dispid 5010;
+    property windowState: WideString dispid 5011;
+    property showInTaskBar: WideString dispid 5012;
+    property commandLine: WideString readonly dispid 5013;
+    property contextMenu: WideString dispid 5014;
+    property innerBorder: WideString dispid 5015;
+    property scroll: WideString dispid 5016;
+    property scrollFlat: WideString dispid 5017;
+    property selection: WideString dispid 5018;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispIHTMLInputButtonElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F51E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispIHTMLInputButtonElement = dispinterface
+    ['{3050F51E-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    property type_: WideString readonly dispid 2000;
+    property value: WideString dispid - 2147413011;
+    property name: WideString dispid - 2147418112;
+    property status: OleVariant dispid 2021;
+    property disabled: WordBool dispid - 2147418036;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    function createTextRange: IHTMLTxtRange; dispid 2006;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispIHTMLInputTextElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F520-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispIHTMLInputTextElement = dispinterface
+    ['{3050F520-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    property type_: WideString readonly dispid 2000;
+    property value: WideString dispid - 2147413011;
+    property name: WideString dispid - 2147418112;
+    property status: OleVariant dispid 2021;
+    property disabled: WordBool dispid - 2147418036;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    property defaultValue: WideString dispid - 2147413029;
+    property size: Integer dispid 2002;
+    property maxLength: Integer dispid 2003;
+    procedure select; dispid 2004;
+    property onchange: OleVariant dispid - 2147412082;
+    property onselect: OleVariant dispid - 2147412102;
+    property readOnly: WordBool dispid 2005;
+    function createTextRange: IHTMLTxtRange; dispid 2006;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispIHTMLInputFileElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F542-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispIHTMLInputFileElement = dispinterface
+    ['{3050F542-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    property type_: WideString readonly dispid 2000;
+    property name: WideString dispid - 2147418112;
+    property status: OleVariant dispid 2021;
+    property disabled: WordBool dispid - 2147418036;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    property size: Integer dispid 2002;
+    property maxLength: Integer dispid 2003;
+    procedure select; dispid 2004;
+    property onchange: OleVariant dispid - 2147412082;
+    property onselect: OleVariant dispid - 2147412102;
+    property value: WideString dispid - 2147413011;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispIHTMLOptionButtonElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F509-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispIHTMLOptionButtonElement = dispinterface
+    ['{3050F509-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    property value: WideString dispid - 2147413011;
+    property type_: WideString readonly dispid 2000;
+    property name: WideString dispid - 2147418112;
+    property checked: WordBool dispid 2009;
+    property defaultChecked: WordBool dispid 2008;
+    property onchange: OleVariant dispid - 2147412082;
+    property disabled: WordBool dispid - 2147418036;
+    property status: WordBool dispid 2001;
+    property indeterminate: WordBool dispid 2007;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispIHTMLInputImage
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F51D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispIHTMLInputImage = dispinterface
+    ['{3050F51D-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    property type_: WideString readonly dispid 2000;
+    property disabled: WordBool dispid - 2147418036;
+    property border: OleVariant dispid 2012;
+    property vspace: Integer dispid 2013;
+    property hspace: Integer dispid 2014;
+    property alt: WideString dispid 2010;
+    property src: WideString dispid 2011;
+    property lowsrc: WideString dispid 2015;
+    property vrml: WideString dispid 2016;
+    property dynsrc: WideString dispid 2017;
+    property readyState: WideString readonly dispid - 2147412996;
+    property complete: WordBool readonly dispid 2018;
+    property loop: OleVariant dispid 2019;
+    property align: WideString dispid - 2147418039;
+    property onload: OleVariant dispid - 2147412080;
+    property onerror: OleVariant dispid - 2147412083;
+    property onabort: OleVariant dispid - 2147412084;
+    property name: WideString dispid - 2147418112;
+    property width: Integer dispid - 2147418107;
+    property height: Integer dispid - 2147418106;
+    property Start: WideString dispid 2020;
+  end;
+
+// *********************************************************************//
+// Interface: IElementNamespace
+// Flags:     (0)
+// GUID:      {3050F671-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementNamespace = interface(IUnknown)
+    ['{3050F671-98B5-11CF-BB82-00AA00BDCE0B}']
+    function AddTag(const bstrTagName: WideString; lFlags: Integer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementNamespaceTable
+// Flags:     (0)
+// GUID:      {3050F670-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementNamespaceTable = interface(IUnknown)
+    ['{3050F670-98B5-11CF-BB82-00AA00BDCE0B}']
+    // !! API fix decl
+    function AddNamespace(const bstrNamespace: WideString; const bstrUrn: WideString;
+      lFlags: Integer; const pvarFactory: OleVariant): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementNamespaceFactory
+// Flags:     (0)
+// GUID:      {3050F672-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementNamespaceFactory = interface(IUnknown)
+    ['{3050F672-98B5-11CF-BB82-00AA00BDCE0B}']
+    function create(pNamespace: IElementNamespace): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementNamespaceFactory2
+// Flags:     (0)
+// GUID:      {3050F805-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementNamespaceFactory2 = interface(IElementNamespaceFactory)
+    ['{3050F805-98B5-11CF-BB82-00AA00BDCE0B}']
+    function CreateWithImplementation(pNamespace: IElementNamespace;
+      const bstrImplementation: WideString): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementNamespaceFactoryCallback
+// Flags:     (0)
+// GUID:      {3050F7FD-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementNamespaceFactoryCallback = interface(IUnknown)
+    ['{3050F7FD-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Resolve(const bstrNamespace, bstrTagName, bstrAttrs: WideString;
+      pNamespace: IElementNamespace): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementBehaviorSiteOM2
+// Flags:     (0)
+// GUID:      {3050F659-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementBehaviorSiteOM2 = interface(IElementBehaviorSiteOM)
+    ['{3050F659-98B5-11CF-BB82-00AA00BDCE0B}']
+    function GetDefaults(out ppDefaults: IHTMLElementDefaults): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementBehaviorCategory
+// Flags:     (0)
+// GUID:      {3050F4ED-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementBehaviorCategory = interface(IUnknown)
+    ['{3050F4ED-98B5-11CF-BB82-00AA00BDCE0B}']
+    function GetCategory(out ppchCategory: PWideChar): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementBehaviorSiteCategory
+// Flags:     (0)
+// GUID:      {3050F4EE-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementBehaviorSiteCategory = interface(IUnknown)
+    ['{3050F4EE-98B5-11CF-BB82-00AA00BDCE0B}']
+    function GetRelatedBehaviors(lDirection: Integer; pchCategory: PWideChar;
+      out ppEnumerator: IEnumUnknown): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IEnumUnknown
+// Flags:     (0)
+// GUID:      {00000100-0000-0000-C000-000000000046}
+// *********************************************************************//
+  IEnumUnknown = interface(IUnknown)
+    ['{00000100-0000-0000-C000-000000000046}']
+    function RemoteNext(celt: LongWord; out rgelt: IUnknown; out pceltFetched: LongWord): HRESULT; stdcall;
+    function Skip(celt: LongWord): HRESULT; stdcall;
+    function reset: HRESULT; stdcall;
+    function Clone(out ppEnum: IEnumUnknown): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementBehaviorSubmit
+// Flags:     (0)
+// GUID:      {3050F646-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementBehaviorSubmit = interface(IUnknown)
+    ['{3050F646-98B5-11CF-BB82-00AA00BDCE0B}']
+    function GetSubmitInfo(pSubmitData: IHTMLSubmitData): HRESULT; stdcall;
+    function reset: HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementBehaviorFocus
+// Flags:     (0)
+// GUID:      {3050F6B6-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementBehaviorFocus = interface(IUnknown)
+    ['{3050F6B6-98B5-11CF-BB82-00AA00BDCE0B}']
+    function GetFocusRect(var pRect: TRect): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementBehaviorLayout
+// Flags:     (0)
+// GUID:      {3050F6BA-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementBehaviorLayout = interface(IUnknown)
+    ['{3050F6BA-98B5-11CF-BB82-00AA00BDCE0B}']
+    function GetSize(dwFlags: Integer; sizeContent: TSize; var pptTranslateBy: TPoint;
+      var pptTopLeft: TPoint; var psizeProposed: TSize): HRESULT; stdcall;
+    function GetLayoutInfo(out plLayoutInfo: Integer): HRESULT; stdcall;
+    function GetPosition(lFlags: Integer; var pptTopLeft: TPoint): HRESULT; stdcall;
+    // !! API fix decl
+    function MapSize(psizeIn: PSize; out prcOut: TRect): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementBehaviorLayout2
+// Flags:     (0)
+// GUID:      {3050F846-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementBehaviorLayout2 = interface(IUnknown)
+    ['{3050F846-98B5-11CF-BB82-00AA00BDCE0B}']
+    function GetTextDescent(out plDescent: Integer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementBehaviorSiteLayout
+// Flags:     (0)
+// GUID:      {3050F6B7-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementBehaviorSiteLayout = interface(IUnknown)
+    ['{3050F6B7-98B5-11CF-BB82-00AA00BDCE0B}']
+    function InvalidateLayoutInfo: HRESULT; stdcall;
+    function InvalidateSize: HRESULT; stdcall;
+    function GetMediaResolution(out psizeResolution: TSize): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementBehaviorSiteLayout2
+// Flags:     (0)
+// GUID:      {3050F847-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementBehaviorSiteLayout2 = interface(IUnknown)
+    ['{3050F847-98B5-11CF-BB82-00AA00BDCE0B}']
+    function GetFontInfo(out plf: tagLOGFONTW): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHostBehaviorInit
+// Flags:     (0)
+// GUID:      {3050F842-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHostBehaviorInit = interface(IUnknown)
+    ['{3050F842-98B5-11CF-BB82-00AA00BDCE0B}']
+    function PopulateNamespaceTable: HRESULT; stdcall;
+  end;
+{$IFDEF DELPHI6_UP}
+{$WARN SYMBOL_PLATFORM ON}
+{$ENDIF}
+
+implementation
+
+end.
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/MSHTML_EWB.~pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/MSHTML_EWB.~pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/MSHTML_EWB.~pas	(revision 541)
@@ -0,0 +1,31739 @@
+//*************************************************************
+//                          EwbBehaviorsComp                  *
+//                                                            *
+//                     Freeware Component                     *
+//                       For Delphi                           *
+//                            by                              *
+//                     Eran Bodankin                          *
+//      Developing Team:                                      *
+//          Serge Voloshenyuk (SergeV@bsalsa.com)             *
+//          Eran Bodankin (bsalsa) -(bsalsa@gmail.com)       *
+//                                                            *
+//       Documentation and updated versions:                  *
+//                                                            *
+//               http://www.bsalsa.com                        *
+//*************************************************************
+{LICENSE:
+THIS SOFTWARE IS PROVIDED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND,
+EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE APPLIED
+WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
+YOU ASSUME THE ENTIRE RISK AS TO THE ACCURACY AND THE USE OF THE SOFTWARE
+AND ALL OTHER RISK ARISING OUT OF THE USE OR PERFORMANCE OF THIS SOFTWARE
+AND DOCUMENTATION. BSALSA PRODUCTIONS DOES NOT WARRANT THAT THE SOFTWARE IS ERROR-FREE
+OR WILL OPERATE WITHOUT INTERRUPTION. THE SOFTWARE IS NOT DESIGNED, INTENDED
+OR LICENSED FOR USE IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE CONTROLS,
+INCLUDING WITHOUT LIMITATION, THE DESIGN, CONSTRUCTION, MAINTENANCE OR
+OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS,
+AIR TRAFFIC CONTROL, AND LIFE SUPPORT OR WEAPONS SYSTEMS. BSALSA PRODUCTIONS SPECIFICALLY
+DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR SUCH PURPOSE.
+
+You may use/ change/ modify the component under 3 conditions:
+1. In your website, add a link to "http://www.bsalsa.com"
+2. In your application, add credits to "Embedded Web Browser"
+3. Mail me  (bsalsa@gmail.com) any code change in the unit  for the benefit
+   of the other users.
+4. Please, consider donation in our web site!
+{*******************************************************************************}
+
+{**********************************
+ ***         IMPORTANT          ***
+ **********************************
+This file has been modified from it's original because TLIBIMP did not
+ import the file correctly.
+ The command line used to import this file was as follows:
+ The installed version of IE for this import was IE 6.0.2600.0000
+ tlibimp -Hs- -Hr- -Fe- \WINNT\SYSTEM32\mshtml.tlb
+ }
+//$Id: Mshtml_Ewb.pas,v 1.2.2.1 2006/11/29 22:13:01 sergev Exp $
+
+unit MSHTML_EWB;
+
+{$I EWB.inc}
+{$IFDEF DELPHI6_UP}
+{$WARN UNIT_PLATFORM OFF}
+{$ENDIF}
+// ************************************************************************ //
+// WARNING
+// -------
+// The types declared in this file were generated from data read from a
+// Type Library. If this type library is explicitly or indirectly (via
+// another type library referring to this type library) re-imported, or the
+// 'Refresh' command of the Type Library Editor activated while editing the
+// Type Library, the contents of this file will be regenerated and all
+// manual modifications will be lost.
+// ************************************************************************ //
+
+// PASTLWTR : 1.2
+// File generated on 8/9/2002 3:26:08 PM from Type Library described below.
+
+// ************************************************************************  //
+// Type Lib: \WINNT\SYSTEM32\mshtml.tlb (1)
+// LIBID: {3050F1C5-98B5-11CF-BB82-00AA00BDCE0B}
+// LCID: 0
+// Helpfile:
+// HelpString: Microsoft HTML Object Library
+// DepndLst:
+//   (1) v2.0 stdole, (C:\WINNT\System32\stdole2.tlb)
+// Errors:
+//   Hint: Member 'type' of 'IHTMLEventObj' changed to 'type_'
+//   Hint: Parameter 'String' of IHTMLElement.toString changed to 'String_'
+//   Hint: Parameter 'String' of IHTMLStyle.toString changed to 'String_'
+//   Hint: Parameter 'String' of IHTMLDOMTextNode.toString changed to 'String_'
+//   Hint: Enum Member 'htmlInputImage' of '_htmlInput' changed to 'htmlInputImage_'
+//   Hint: Parameter 'String' of IHTMLElementCollection.toString changed to 'String_'
+//   Hint: Member 'type' of 'IHTMLStyleSheet' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLStyleSheet' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLLinkElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLLinkElement' changed to 'type_'
+//   Hint: Parameter 'Unit' of IHTMLTxtRange.expand changed to 'Unit_'
+//   Hint: Parameter 'Unit' of IHTMLTxtRange.move changed to 'Unit_'
+//   Hint: Parameter 'Unit' of IHTMLTxtRange.moveStart changed to 'Unit_'
+//   Hint: Parameter 'Unit' of IHTMLTxtRange.moveEnd changed to 'Unit_'
+//   Hint: Parameter 'String' of IHTMLTxtRange.findText changed to 'String_'
+//   Hint: Member 'type' of 'IHTMLAnchorElement2' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLAnchorElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLUListElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLUListElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLOListElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLOListElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLLIElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLLIElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLSelectElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLSelectElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLSelectionObject' changed to 'type_'
+//   Hint: Member 'label' of 'IHTMLOptionElement3' changed to 'label_'
+//   Hint: Member 'label' of 'DispHTMLOptionElement' changed to 'label_'
+//   Hint: Member 'type' of 'IHTMLInputElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLInputButtonElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLInputHiddenElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLInputTextElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLInputFileElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLOptionButtonElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLInputImage' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLInputElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLTextAreaElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLTextAreaElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLRichtextElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLButtonElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLButtonElement' changed to 'type_'
+//   Hint: Parameter 'String' of IOmNavigator.toString changed to 'String_'
+//   Hint: Parameter 'String' of IHTMLLocation.toString changed to 'String_'
+//   Hint: Member 'repeat' of 'IHTMLEventObj2' changed to 'repeat_'
+//   Hint: Member 'type' of 'IHTMLEventObj2' changed to 'type_'
+//   Hint: Member 'repeat' of 'DispCEventObj' changed to 'repeat_'
+//   Hint: Member 'type' of 'DispCEventObj' changed to 'type_'
+//   Hint: Parameter 'String' of IHTMLDocument2.toString changed to 'String_'
+//   Hint: Parameter 'String' of IHTMLWindow2.toString changed to 'String_'
+//   Hint: Member 'implementation' of 'IHTMLDocument5' changed to 'implementation_'
+//   Hint: Member 'implementation' of 'DispHTMLDocument' changed to 'implementation_'
+//   Hint: Member 'type' of 'IHTMLScriptElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLScriptElement' changed to 'type_'
+//   Hint: Member 'object' of 'IHTMLObjectElement' changed to 'object_'
+//   Hint: Member 'type' of 'IHTMLObjectElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLParamElement' changed to 'type_'
+//   Hint: Member 'object' of 'DispHTMLObjectElement' changed to 'object_'
+//   Hint: Member 'type' of 'DispHTMLObjectElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLParamElement' changed to 'type_'
+//   Hint: Parameter 'object' of IHTMLOptionsHolder.isApartmentModel changed to 'object_'
+//   Hint: Member 'type' of 'IHTMLStyleElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLStyleElement' changed to 'type_'
+//   Hint: Parameter 'String' of IHTMLDialog.toString changed to 'String_'
+//   Hint: Member 'type' of 'DispIHTMLInputButtonElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispIHTMLInputTextElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispIHTMLInputFileElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispIHTMLOptionButtonElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispIHTMLInputImage' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLEventObj' changed to 'type_'
+//   Hint: Enum Member 'htmlInputImage' of '_htmlInput' changed to 'htmlInputImage_'
+//   Hint: Member 'type' of 'IHTMLStyleSheet' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLStyleSheet' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLLinkElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLLinkElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLAnchorElement2' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLAnchorElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLUListElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLUListElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLOListElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLOListElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLLIElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLLIElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLSelectElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLSelectElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLSelectionObject' changed to 'type_'
+//   Hint: Member 'label' of 'IHTMLOptionElement3' changed to 'label_'
+//   Hint: Member 'label' of 'DispHTMLOptionElement' changed to 'label_'
+//   Hint: Member 'type' of 'IHTMLInputElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLInputButtonElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLInputHiddenElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLInputTextElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLInputFileElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLOptionButtonElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLInputImage' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLInputElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLTextAreaElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLTextAreaElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLRichtextElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLButtonElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLButtonElement' changed to 'type_'
+//   Hint: Member 'repeat' of 'IHTMLEventObj2' changed to 'repeat_'
+//   Hint: Member 'type' of 'IHTMLEventObj2' changed to 'type_'
+//   Hint: Member 'repeat' of 'DispCEventObj' changed to 'repeat_'
+//   Hint: Member 'type' of 'DispCEventObj' changed to 'type_'
+//   Hint: Member 'implementation' of 'IHTMLDocument5' changed to 'implementation_'
+//   Hint: Member 'implementation' of 'DispHTMLDocument' changed to 'implementation_'
+//   Hint: Member 'type' of 'IHTMLScriptElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLScriptElement' changed to 'type_'
+//   Hint: Member 'object' of 'IHTMLObjectElement' changed to 'object_'
+//   Hint: Member 'type' of 'IHTMLObjectElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLParamElement' changed to 'type_'
+//   Hint: Member 'object' of 'DispHTMLObjectElement' changed to 'object_'
+//   Hint: Member 'type' of 'DispHTMLObjectElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLParamElement' changed to 'type_'
+//   Hint: Member 'type' of 'IHTMLStyleElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispHTMLStyleElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispIHTMLInputButtonElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispIHTMLInputTextElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispIHTMLInputFileElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispIHTMLOptionButtonElement' changed to 'type_'
+//   Hint: Member 'type' of 'DispIHTMLInputImage' changed to 'type_'
+//   Error creating palette bitmap of (TScriptlet) : Error reading control bitmap
+// ************************************************************************ //
+{$TYPEDADDRESS OFF} // Unit must be compiled without type-checked pointers.
+
+{$WRITEABLECONST ON}
+
+{$IFDEF DELPHI6_UP}
+{$VARPROPSETTER ON}
+{$WARN SYMBOL_PLATFORM OFF}
+{$ENDIF}
+{ $TYPEDADDRESS OFF}// Unit must be compiled without type-checked pointers.
+{ $WARN UNIT_PLATFORM OFF}
+
+{ $VARPROPSETTER ON}// You need to download and install the second D6 patch in order for this to compile.
+{ $ENDIF}
+{ $TYPEDADDRESS OFF}// Unit must be compiled without type-checked pointers.
+{ $WRITEABLECONST ON}
+
+interface
+
+uses Windows, ActiveX, Imm;
+
+// *********************************************************************//
+// GUIDS declared in the TypeLibrary. Following prefixes are used:
+//   Type Libraries     : LIBID_xxxx
+//   DISPInterfaces     : DIID_xxxx
+//   Non-DISP interfaces: IID_xxxx
+// *********************************************************************//
+const
+  // TypeLibrary Major and minor versions
+  MSHTMLMajorVersion = 4;
+  MSHTMLMinorVersion = 0;
+
+  LIBID_MSHTML: TGUID = '{3050F1C5-98B5-11CF-BB82-00AA00BDCE0B}';
+
+  IID_IHTMLEventObj: TGUID = '{3050F32D-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLElement: TGUID = '{3050F1FF-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLStyle: TGUID = '{3050F25E-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLFiltersCollection: TGUID = '{3050F3EE-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementBehaviorSite: TGUID = '{3050F427-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementBehavior: TGUID = '{3050F425-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementBehaviorFactory: TGUID = '{3050F429-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementBehaviorSiteOM: TGUID = '{3050F489-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementBehaviorRender: TGUID = '{3050F4AA-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementBehaviorSiteRender: TGUID = '{3050F4A7-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLStyle2: TGUID = '{3050F4A2-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLStyle3: TGUID = '{3050F656-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLStyle4: TGUID = '{3050F816-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLRuleStyle: TGUID = '{3050F3CF-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLRuleStyle2: TGUID = '{3050F4AC-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLRuleStyle3: TGUID = '{3050F657-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLRuleStyle4: TGUID = '{3050F817-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLStyle: TGUID = '{3050F55A-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLStyle: TGUID = '{3050F285-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLRuleStyle: TGUID = '{3050F55C-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLRuleStyle: TGUID = '{3050F3D0-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLRenderStyle: TGUID = '{3050F6AE-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLRenderStyle: TGUID = '{3050F58B-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLRenderStyle: TGUID = '{3050F6AA-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLCurrentStyle: TGUID = '{3050F3DB-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLCurrentStyle2: TGUID = '{3050F658-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLCurrentStyle3: TGUID = '{3050F818-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLCurrentStyle: TGUID = '{3050F557-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLCurrentStyle: TGUID = '{3050F3DC-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLRect: TGUID = '{3050F4A3-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLRectCollection: TGUID = '{3050F4A4-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDOMNode: TGUID = '{3050F5DA-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDOMNode2: TGUID = '{3050F80B-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDOMAttribute: TGUID = '{3050F4B0-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDOMAttribute2: TGUID = '{3050F810-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDOMTextNode: TGUID = '{3050F4B1-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDOMTextNode2: TGUID = '{3050F809-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDOMImplementation: TGUID = '{3050F80D-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLDOMAttribute: TGUID = '{3050F564-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLDOMAttribute: TGUID = '{3050F4B2-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLDOMTextNode: TGUID = '{3050F565-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLDOMTextNode: TGUID = '{3050F4BA-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLDOMImplementation: TGUID = '{3050F58F-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLDOMImplementation: TGUID = '{3050F80E-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLAttributeCollection: TGUID = '{3050F4C3-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLAttributeCollection2: TGUID = '{3050F80A-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDOMChildrenCollection: TGUID = '{3050F5AB-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLAttributeCollection: TGUID = '{3050F56C-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLAttributeCollection: TGUID = '{3050F4CC-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispDOMChildrenCollection: TGUID = '{3050F577-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_DOMChildrenCollection: TGUID = '{3050F5AA-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLElementEvents2: TGUID = '{3050F60F-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLElementEvents: TGUID = '{3050F33C-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLElementCollection: TGUID = '{3050F21F-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLElement2: TGUID = '{3050F434-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLElement3: TGUID = '{3050F673-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLElement4: TGUID = '{3050F80F-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLElementRender: TGUID = '{3050F669-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLUniqueName: TGUID = '{3050F4D0-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDatabinding: TGUID = '{3050F3F2-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDocument: TGUID = '{626FC520-A41E-11CF-A731-00A0C9082637}';
+  IID_IHTMLElementDefaults: TGUID = '{3050F6C9-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLDefaults: TGUID = '{3050F58C-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLDefaults: TGUID = '{3050F6C8-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTCDefaultDispatch: TGUID = '{3050F4FD-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTCPropertyBehavior: TGUID = '{3050F5DF-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTCMethodBehavior: TGUID = '{3050F631-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTCEventBehavior: TGUID = '{3050F4FF-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTCAttachBehavior: TGUID = '{3050F5F4-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTCAttachBehavior2: TGUID = '{3050F7EB-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTCDescBehavior: TGUID = '{3050F5DC-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTCDefaultDispatch: TGUID = '{3050F573-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTCDefaultDispatch: TGUID = '{3050F4FC-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTCPropertyBehavior: TGUID = '{3050F57F-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTCPropertyBehavior: TGUID = '{3050F5DE-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTCMethodBehavior: TGUID = '{3050F587-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTCMethodBehavior: TGUID = '{3050F630-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTCEventBehavior: TGUID = '{3050F574-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTCEventBehavior: TGUID = '{3050F4FE-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTCAttachBehavior: TGUID = '{3050F583-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTCAttachBehavior: TGUID = '{3050F5F5-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTCDescBehavior: TGUID = '{3050F57E-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTCDescBehavior: TGUID = '{3050F5DD-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLUrnCollection: TGUID = '{3050F5E2-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLUrnCollection: TGUID = '{3050F580-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLGenericElement: TGUID = '{3050F4B7-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLGenericElement: TGUID = '{3050F563-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLGenericElement: TGUID = '{3050F4B8-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLStyleSheetRule: TGUID = '{3050F357-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLStyleSheetRulesCollection: TGUID = '{3050F2E5-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLStyleSheetRule: TGUID = '{3050F3CE-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLStyleSheetRulesCollection: TGUID = '{3050F3CD-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLStyleSheetPage: TGUID = '{3050F7EE-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLStyleSheetPagesCollection: TGUID = '{3050F7F0-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLStyleSheetPage: TGUID = '{3050F7EF-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLStyleSheetPagesCollection: TGUID = '{3050F7F1-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLStyleSheetsCollection: TGUID = '{3050F37E-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLStyleSheet: TGUID = '{3050F2E3-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLStyleSheet2: TGUID = '{3050F3D1-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLStyleSheet: TGUID = '{3050F58D-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLStyleSheet: TGUID = '{3050F2E4-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLStyleSheetsCollection: TGUID = '{3050F37F-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLLinkElementEvents2: TGUID = '{3050F61D-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLLinkElementEvents: TGUID = '{3050F3CC-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLLinkElement: TGUID = '{3050F205-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLLinkElement2: TGUID = '{3050F4E5-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLLinkElement3: TGUID = '{3050F81E-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLLinkElement: TGUID = '{3050F524-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLLinkElement: TGUID = '{3050F277-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTxtRange: TGUID = '{3050F220-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTextRangeMetrics: TGUID = '{3050F40B-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTextRangeMetrics2: TGUID = '{3050F4A6-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTxtRangeCollection: TGUID = '{3050F7ED-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLFormElementEvents2: TGUID = '{3050F614-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLFormElementEvents: TGUID = '{3050F364-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLFormElement: TGUID = '{3050F1F7-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLFormElement2: TGUID = '{3050F4F6-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLFormElement3: TGUID = '{3050F836-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLSubmitData: TGUID = '{3050F645-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLFormElement: TGUID = '{3050F510-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLFormElement: TGUID = '{3050F251-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLControlElementEvents2: TGUID = '{3050F612-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLControlElementEvents: TGUID = '{3050F4EA-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLControlElement: TGUID = '{3050F4E9-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTextElement: TGUID = '{3050F218-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLTextElement: TGUID = '{3050F537-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLTextElement: TGUID = '{3050F26A-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLTextContainerEvents2: TGUID = '{3050F624-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLTextContainerEvents: TGUID = '{1FF6AA72-5842-11CF-A707-00AA00C0098D}';
+  IID_IHTMLTextContainer: TGUID = '{3050F230-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLControlRange: TGUID = '{3050F29C-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLControlRange2: TGUID = '{3050F65E-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLImgEvents2: TGUID = '{3050F616-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLImgEvents: TGUID = '{3050F25B-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLImgElement: TGUID = '{3050F240-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLImgElement2: TGUID = '{3050F826-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLImageElementFactory: TGUID = '{3050F38E-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLImg: TGUID = '{3050F51C-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLImg: TGUID = '{3050F241-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLImageElementFactory: TGUID = '{3050F38F-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLBodyElement: TGUID = '{3050F1D8-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLBodyElement2: TGUID = '{3050F5C5-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLBody: TGUID = '{3050F507-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLBody: TGUID = '{3050F24A-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLFontElement: TGUID = '{3050F1D9-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLFontElement: TGUID = '{3050F512-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLFontElement: TGUID = '{3050F27B-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLAnchorEvents2: TGUID = '{3050F610-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLAnchorEvents: TGUID = '{3050F29D-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLAnchorElement: TGUID = '{3050F1DA-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLAnchorElement2: TGUID = '{3050F825-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLAnchorElement: TGUID = '{3050F502-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLAnchorElement: TGUID = '{3050F248-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLLabelEvents2: TGUID = '{3050F61C-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLLabelEvents: TGUID = '{3050F329-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLLabelElement: TGUID = '{3050F32A-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLLabelElement2: TGUID = '{3050F832-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLLabelElement: TGUID = '{3050F522-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLLabelElement: TGUID = '{3050F32B-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLListElement: TGUID = '{3050F20E-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLListElement2: TGUID = '{3050F822-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLListElement: TGUID = '{3050F525-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLListElement: TGUID = '{3050F272-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLUListElement: TGUID = '{3050F1DD-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLUListElement: TGUID = '{3050F538-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLUListElement: TGUID = '{3050F269-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLOListElement: TGUID = '{3050F1DE-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLOListElement: TGUID = '{3050F52A-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLOListElement: TGUID = '{3050F270-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLLIElement: TGUID = '{3050F1E0-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLLIElement: TGUID = '{3050F523-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLLIElement: TGUID = '{3050F273-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLBlockElement: TGUID = '{3050F208-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLBlockElement2: TGUID = '{3050F823-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLBlockElement: TGUID = '{3050F506-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLBlockElement: TGUID = '{3050F281-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDivElement: TGUID = '{3050F200-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLDivElement: TGUID = '{3050F50C-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLDivElement: TGUID = '{3050F27E-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDDElement: TGUID = '{3050F1F2-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLDDElement: TGUID = '{3050F50B-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLDDElement: TGUID = '{3050F27F-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDTElement: TGUID = '{3050F1F3-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLDTElement: TGUID = '{3050F50D-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLDTElement: TGUID = '{3050F27C-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLBRElement: TGUID = '{3050F1F0-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLBRElement: TGUID = '{3050F53A-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLBRElement: TGUID = '{3050F280-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDListElement: TGUID = '{3050F1F1-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLDListElement: TGUID = '{3050F53B-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLDListElement: TGUID = '{3050F27D-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLHRElement: TGUID = '{3050F1F4-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLHRElement: TGUID = '{3050F53D-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLHRElement: TGUID = '{3050F252-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLParaElement: TGUID = '{3050F1F5-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLParaElement: TGUID = '{3050F52C-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLParaElement: TGUID = '{3050F26F-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLElementCollection2: TGUID = '{3050F5EE-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLElementCollection3: TGUID = '{3050F835-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLElementCollection: TGUID = '{3050F56B-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLElementCollection: TGUID = '{3050F4CB-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLHeaderElement: TGUID = '{3050F1F6-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLHeaderElement: TGUID = '{3050F515-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLHeaderElement: TGUID = '{3050F27A-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLSelectElementEvents2: TGUID = '{3050F622-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLSelectElementEvents: TGUID = '{3050F302-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLSelectElement: TGUID = '{3050F244-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLSelectElement2: TGUID = '{3050F5ED-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLSelectElement4: TGUID = '{3050F838-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLSelectElement: TGUID = '{3050F531-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLSelectElement: TGUID = '{3050F245-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLSelectionObject: TGUID = '{3050F25A-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLSelectionObject2: TGUID = '{3050F7EC-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLOptionElement: TGUID = '{3050F211-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLOptionElement3: TGUID = '{3050F820-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLOptionElementFactory: TGUID = '{3050F38C-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLOptionElement: TGUID = '{3050F52B-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLOptionElement: TGUID = '{3050F24D-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLOptionElementFactory: TGUID = '{3050F38D-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLButtonElementEvents2: TGUID = '{3050F617-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLButtonElementEvents: TGUID = '{3050F2B3-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLInputTextElementEvents2: TGUID = '{3050F618-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLOptionButtonElementEvents2: TGUID = '{3050F619-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLInputFileElementEvents2: TGUID = '{3050F61A-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLInputImageEvents2: TGUID = '{3050F61B-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLInputTextElementEvents: TGUID = '{3050F2A7-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLOptionButtonElementEvents: TGUID = '{3050F2BD-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLInputFileElementEvents: TGUID = '{3050F2AF-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLInputImageEvents: TGUID = '{3050F2C3-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLInputElement: TGUID = '{3050F5D2-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLInputElement2: TGUID = '{3050F821-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLInputButtonElement: TGUID = '{3050F2B2-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLInputHiddenElement: TGUID = '{3050F2A4-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLInputTextElement: TGUID = '{3050F2A6-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLInputFileElement: TGUID = '{3050F2AD-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLOptionButtonElement: TGUID = '{3050F2BC-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLInputImage: TGUID = '{3050F2C2-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLInputElement: TGUID = '{3050F57D-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLInputElement: TGUID = '{3050F5D8-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTextAreaElement: TGUID = '{3050F2AA-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLTextAreaElement: TGUID = '{3050F521-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLTextAreaElement: TGUID = '{3050F2AC-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLRichtextElement: TGUID = '{3050F54D-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLRichtextElement: TGUID = '{3050F2DF-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLButtonElement: TGUID = '{3050F2BB-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLButtonElement: TGUID = '{3050F51F-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLButtonElement: TGUID = '{3050F2C6-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLMarqueeElementEvents2: TGUID = '{3050F61F-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLMarqueeElementEvents: TGUID = '{3050F2B8-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLMarqueeElement: TGUID = '{3050F2B5-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLMarqueeElement: TGUID = '{3050F527-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLMarqueeElement: TGUID = '{3050F2B9-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLHtmlElement: TGUID = '{3050F81C-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLHeadElement: TGUID = '{3050F81D-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTitleElement: TGUID = '{3050F322-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLMetaElement: TGUID = '{3050F203-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLMetaElement2: TGUID = '{3050F81F-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLBaseElement: TGUID = '{3050F204-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLIsIndexElement: TGUID = '{3050F206-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLIsIndexElement2: TGUID = '{3050F82F-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLNextIdElement: TGUID = '{3050F207-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLHtmlElement: TGUID = '{3050F560-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLHtmlElement: TGUID = '{3050F491-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLHeadElement: TGUID = '{3050F561-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLHeadElement: TGUID = '{3050F493-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLTitleElement: TGUID = '{3050F516-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLTitleElement: TGUID = '{3050F284-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLMetaElement: TGUID = '{3050F517-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLMetaElement: TGUID = '{3050F275-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLBaseElement: TGUID = '{3050F518-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLBaseElement: TGUID = '{3050F276-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLIsIndexElement: TGUID = '{3050F519-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLIsIndexElement: TGUID = '{3050F278-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLNextIdElement: TGUID = '{3050F51A-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLNextIdElement: TGUID = '{3050F279-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLBaseFontElement: TGUID = '{3050F202-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLBaseFontElement: TGUID = '{3050F504-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLBaseFontElement: TGUID = '{3050F282-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLUnknownElement: TGUID = '{3050F209-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLUnknownElement: TGUID = '{3050F539-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLUnknownElement: TGUID = '{3050F268-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IOmHistory: TGUID = '{FECEAAA2-8405-11CF-8BA1-00AA00476DA6}';
+  IID_IHTMLMimeTypesCollection: TGUID = '{3050F3FC-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLPluginsCollection: TGUID = '{3050F3FD-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLOpsProfile: TGUID = '{3050F401-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IOmNavigator: TGUID = '{FECEAAA5-8405-11CF-8BA1-00AA00476DA6}';
+  IID_IHTMLLocation: TGUID = '{163BB1E0-6E00-11CF-837A-48DC04C10000}';
+  CLASS_HTMLHistory: TGUID = '{FECEAAA3-8405-11CF-8BA1-00AA00476DA6}';
+  CLASS_CMimeTypes: TGUID = '{3050F3FE-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_CPlugins: TGUID = '{3050F3FF-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_COpsProfile: TGUID = '{3050F402-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLNavigator: TGUID = '{FECEAAA6-8405-11CF-8BA1-00AA00476DA6}';
+  CLASS_HTMLLocation: TGUID = '{163BB1E1-6E00-11CF-837A-48DC04C10000}';
+  IID_IHTMLBookmarkCollection: TGUID = '{3050F4CE-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDataTransfer: TGUID = '{3050F4B3-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLEventObj2: TGUID = '{3050F48B-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLEventObj3: TGUID = '{3050F680-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLEventObj4: TGUID = '{3050F814-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispCEventObj: TGUID = '{3050F558-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_CEventObj: TGUID = '{3050F48A-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLWindowEvents2: TGUID = '{3050F625-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLWindowEvents: TGUID = '{96A0A4E0-D062-11CF-94B6-00AA0060275C}';
+  IID_IHTMLDocument2: TGUID = '{332C4425-26CB-11D0-B483-00C04FD90119}';
+  IID_IHTMLFramesCollection2: TGUID = '{332C4426-26CB-11D0-B483-00C04FD90119}';
+  IID_IHTMLWindow2: TGUID = '{332C4427-26CB-11D0-B483-00C04FD90119}';
+  IID_IHTMLScreen: TGUID = '{3050F35C-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLWindow3: TGUID = '{3050F4AE-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLFrameBase: TGUID = '{3050F311-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLScreen2: TGUID = '{3050F84A-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLWindow4: TGUID = '{3050F6CF-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_FramesCollection: TGUID = '{3050F7F6-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLScreen: TGUID = '{3050F591-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLScreen: TGUID = '{3050F35D-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLWindow2: TGUID = '{3050F55D-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLWindow2: TGUID = '{D48A6EC6-6A4A-11CF-94A7-444553540000}';
+  DIID_DispHTMLWindowProxy: TGUID = '{3050F55E-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLWindowProxy: TGUID = '{3050F391-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLDocumentEvents2: TGUID = '{3050F613-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLDocumentEvents: TGUID = '{3050F260-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDocument3: TGUID = '{3050F485-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDocument4: TGUID = '{3050F69A-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDocument5: TGUID = '{3050F80C-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLDocument: TGUID = '{3050F55F-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLDocument: TGUID = '{25336920-03F9-11CF-8FD0-00AA00686F13}';
+  DIID_DWebBridgeEvents: TGUID = '{A6D897FF-0A95-11D1-B0BA-006008166E11}';
+  IID_IWebBridge: TGUID = '{AE24FDAD-03C6-11D1-8B76-0080C744F389}';
+  IID_IWBScriptControl: TGUID = '{A5170870-0CF8-11D1-8B91-0080C744F389}';
+  CLASS_Scriptlet: TGUID = '{AE24FDAE-03C6-11D1-8B76-0080C744F389}';
+  IID_IHTMLEmbedElement: TGUID = '{3050F25F-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLEmbed: TGUID = '{3050F52E-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLEmbed: TGUID = '{3050F25D-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLMapEvents2: TGUID = '{3050F61E-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLMapEvents: TGUID = '{3050F3BA-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLAreasCollection: TGUID = '{3050F383-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLAreasCollection2: TGUID = '{3050F5EC-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLAreasCollection3: TGUID = '{3050F837-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLMapElement: TGUID = '{3050F266-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLAreasCollection: TGUID = '{3050F56A-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLAreasCollection: TGUID = '{3050F4CA-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLMapElement: TGUID = '{3050F526-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLMapElement: TGUID = '{3050F271-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLAreaEvents2: TGUID = '{3050F611-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLAreaEvents: TGUID = '{3050F366-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLAreaElement: TGUID = '{3050F265-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLAreaElement: TGUID = '{3050F503-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLAreaElement: TGUID = '{3050F283-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTableCaption: TGUID = '{3050F2EB-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLTableCaption: TGUID = '{3050F508-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLTableCaption: TGUID = '{3050F2EC-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLCommentElement: TGUID = '{3050F20C-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLCommentElement2: TGUID = '{3050F813-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLCommentElement: TGUID = '{3050F50A-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLCommentElement: TGUID = '{3050F317-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLPhraseElement: TGUID = '{3050F20A-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLPhraseElement2: TGUID = '{3050F824-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLSpanElement: TGUID = '{3050F3F3-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLPhraseElement: TGUID = '{3050F52D-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLPhraseElement: TGUID = '{3050F26E-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLSpanElement: TGUID = '{3050F548-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLSpanElement: TGUID = '{3050F3F5-98B4-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLTableEvents2: TGUID = '{3050F623-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLTableEvents: TGUID = '{3050F407-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTableSection: TGUID = '{3050F23B-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTable: TGUID = '{3050F21E-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTable2: TGUID = '{3050F4AD-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTable3: TGUID = '{3050F829-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTableCol: TGUID = '{3050F23A-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTableCol2: TGUID = '{3050F82A-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTableSection2: TGUID = '{3050F5C7-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTableSection3: TGUID = '{3050F82B-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTableRow: TGUID = '{3050F23C-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTableRow2: TGUID = '{3050F4A1-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTableRow3: TGUID = '{3050F82C-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTableRowMetrics: TGUID = '{3050F413-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTableCell: TGUID = '{3050F23D-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLTableCell2: TGUID = '{3050F82D-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLTable: TGUID = '{3050F532-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLTable: TGUID = '{3050F26B-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLTableCol: TGUID = '{3050F533-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLTableCol: TGUID = '{3050F26C-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLTableSection: TGUID = '{3050F534-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLTableSection: TGUID = '{3050F2E9-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLTableRow: TGUID = '{3050F535-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLTableRow: TGUID = '{3050F26D-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLTableCell: TGUID = '{3050F536-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLTableCell: TGUID = '{3050F246-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLScriptEvents2: TGUID = '{3050F621-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLScriptEvents: TGUID = '{3050F3E2-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLScriptElement: TGUID = '{3050F28B-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLScriptElement2: TGUID = '{3050F828-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLScriptElement: TGUID = '{3050F530-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLScriptElement: TGUID = '{3050F28C-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLNoShowElement: TGUID = '{3050F38A-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLNoShowElement: TGUID = '{3050F528-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLNoShowElement: TGUID = '{3050F38B-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLObjectElementEvents2: TGUID = '{3050F620-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLObjectElementEvents: TGUID = '{3050F3C4-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLObjectElement: TGUID = '{3050F24F-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLObjectElement2: TGUID = '{3050F4CD-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLObjectElement3: TGUID = '{3050F827-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLParamElement: TGUID = '{3050F83D-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLObjectElement: TGUID = '{3050F529-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLObjectElement: TGUID = '{3050F24E-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLParamElement: TGUID = '{3050F590-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLParamElement: TGUID = '{3050F83E-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLFrameSiteEvents2: TGUID = '{3050F7FF-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLFrameSiteEvents: TGUID = '{3050F800-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLFrameBase2: TGUID = '{3050F6DB-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLFrameBase3: TGUID = '{3050F82E-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLFrameBase: TGUID = '{3050F541-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLFrameBase: TGUID = '{3050F312-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLFrameElement: TGUID = '{3050F313-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLFrameElement2: TGUID = '{3050F7F5-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLFrameElement: TGUID = '{3050F513-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLFrameElement: TGUID = '{3050F314-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLIFrameElement: TGUID = '{3050F315-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLIFrameElement2: TGUID = '{3050F4E6-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLIFrame: TGUID = '{3050F51B-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLIFrame: TGUID = '{3050F316-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDivPosition: TGUID = '{3050F212-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLFieldSetElement: TGUID = '{3050F3E7-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLFieldSetElement2: TGUID = '{3050F833-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLLegendElement: TGUID = '{3050F3EA-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLLegendElement2: TGUID = '{3050F834-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLDivPosition: TGUID = '{3050F50F-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLDivPosition: TGUID = '{3050F249-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLFieldSetElement: TGUID = '{3050F545-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLFieldSetElement: TGUID = '{3050F3E8-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLLegendElement: TGUID = '{3050F546-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLLegendElement: TGUID = '{3050F3E9-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLSpanFlow: TGUID = '{3050F3E5-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLSpanFlow: TGUID = '{3050F544-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLSpanFlow: TGUID = '{3050F3E6-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLFrameSetElement: TGUID = '{3050F319-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLFrameSetElement2: TGUID = '{3050F5C6-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLFrameSetSite: TGUID = '{3050F514-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLFrameSetSite: TGUID = '{3050F31A-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLBGsound: TGUID = '{3050F369-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLBGsound: TGUID = '{3050F53C-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLBGsound: TGUID = '{3050F370-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLFontNamesCollection: TGUID = '{3050F376-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLFontSizesCollection: TGUID = '{3050F377-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLOptionsHolder: TGUID = '{3050F378-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLStyleElementEvents2: TGUID = '{3050F615-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLStyleElementEvents: TGUID = '{3050F3CB-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLStyleElement: TGUID = '{3050F375-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLStyleElement: TGUID = '{3050F511-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLStyleElement: TGUID = '{3050F37D-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLStyleFontFace: TGUID = '{3050F3D5-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLStyleFontFace: TGUID = '{3050F3D4-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_ICSSFilterSite: TGUID = '{3050F3ED-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IMarkupPointer: TGUID = '{3050F49F-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IMarkupContainer: TGUID = '{3050F5F9-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IMarkupContainer2: TGUID = '{3050F648-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLChangeSink: TGUID = '{3050F64A-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLChangeLog: TGUID = '{3050F649-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IActiveIMMApp: TGUID = '{08C0E040-62D1-11D1-9326-0060B067B86E}';
+  IID_IEnumRegisterWordA: TGUID = '{08C03412-F96B-11D0-A475-00AA006BCC59}';
+  IID_IEnumRegisterWordW: TGUID = '{4955DD31-B159-11D0-8FCF-00AA006BCC59}';
+  IID_IEnumInputContext: TGUID = '{09B5EAB0-F997-11D1-93D4-0060B067B86E}';
+  IID_ISegmentList: TGUID = '{3050F605-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_ISegmentListIterator: TGUID = '{3050F692-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_ISegment: TGUID = '{3050F683-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLCaret: TGUID = '{3050F604-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IDisplayPointer: TGUID = '{3050F69E-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_ILineInfo: TGUID = '{3050F7E2-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementSegment: TGUID = '{3050F68F-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHighlightSegment: TGUID = '{3050F690-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHighlightRenderingServices: TGUID = '{3050F606-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IDisplayServices: TGUID = '{3050F69D-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLComputedStyle: TGUID = '{3050F6C3-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHtmlDlgSafeHelper: TGUID = '{3050F81A-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IBlockFormats: TGUID = '{3050F830-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IFontNames: TGUID = '{3050F839-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_ICSSFilter: TGUID = '{3050F3EC-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_ISecureUrlHost: TGUID = '{C81984C4-74C8-11D2-BAA9-00C04FC2040E}';
+  IID_IMarkupServices: TGUID = '{3050F4A0-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IMarkupServices2: TGUID = '{3050F682-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLChangePlayback: TGUID = '{3050F6E0-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IMarkupPointer2: TGUID = '{3050F675-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IMarkupTextFrags: TGUID = '{3050F5FA-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IXMLGenericParse: TGUID = '{E4E23071-4D07-11D2-AE76-0080C73BC199}';
+  IID_IHTMLEditHost: TGUID = '{3050F6A0-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLEditHost2: TGUID = '{3050F848-98B5-11CF-BB82-00AA00BDCE0D}';
+  IID_ISequenceNumber: TGUID = '{3050F6C1-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IIMEServices: TGUID = '{3050F6CA-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_ISelectionServicesListener: TGUID = '{3050F699-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_ISelectionServices: TGUID = '{3050F684-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLEditDesigner: TGUID = '{3050F662-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLEditServices: TGUID = '{3050F663-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLEditServices2: TGUID = '{3050F812-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HtmlDlgSafeHelper: TGUID = '{3050F819-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_BlockFormats: TGUID = '{3050F831-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_FontNames: TGUID = '{3050F83A-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_HTMLNamespaceEvents: TGUID = '{3050F6BD-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLNamespace: TGUID = '{3050F6BB-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLNamespaceCollection: TGUID = '{3050F6B8-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLNamespace: TGUID = '{3050F6BC-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLNamespaceCollection: TGUID = '{3050F6B9-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLPainter: TGUID = '{3050F6A6-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLPaintSite: TGUID = '{3050F6A7-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLPainterEventInfo: TGUID = '{3050F6DF-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLPainterOverlay: TGUID = '{3050F7E3-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLIPrintCollection: TGUID = '{3050F6B5-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IEnumPrivacyRecords: TGUID = '{3050F844-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDialog: TGUID = '{3050F216-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDialog2: TGUID = '{3050F5E0-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLDialog3: TGUID = '{3050F388-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLModelessInit: TGUID = '{3050F5E4-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_ThreadDialogProcParam: TGUID = '{3050F5EB-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLDialog: TGUID = '{3050F28A-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLPopup: TGUID = '{3050F666-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLPopup: TGUID = '{3050F589-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLPopup: TGUID = '{3050F667-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLAppBehavior: TGUID = '{3050F5CA-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLAppBehavior2: TGUID = '{3050F5C9-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHTMLAppBehavior3: TGUID = '{3050F5CD-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispHTMLAppBehavior: TGUID = '{3050F57C-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLAppBehavior: TGUID = '{3050F5CB-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_OldHTMLDocument: TGUID = '{D48A6EC9-6A4A-11CF-94A7-444553540000}';
+  CLASS_OldHTMLFormElement: TGUID = '{0D04D285-6BEC-11CF-8B97-00AA00476DA6}';
+  DIID_DispIHTMLInputButtonElement: TGUID = '{3050F51E-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLInputButtonElement: TGUID = '{3050F2B4-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispIHTMLInputTextElement: TGUID = '{3050F520-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLInputTextElement: TGUID = '{3050F2AB-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispIHTMLInputFileElement: TGUID = '{3050F542-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLInputFileElement: TGUID = '{3050F2AE-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispIHTMLOptionButtonElement: TGUID = '{3050F509-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_HTMLOptionButtonElement: TGUID = '{3050F2BE-98B5-11CF-BB82-00AA00BDCE0B}';
+  DIID_DispIHTMLInputImage: TGUID = '{3050F51D-98B5-11CF-BB82-00AA00BDCE0B}';
+  CLASS_htmlInputImage: TGUID = '{3050F2C4-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementNamespace: TGUID = '{3050F671-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementNamespaceTable: TGUID = '{3050F670-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementNamespaceFactory: TGUID = '{3050F672-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementNamespaceFactory2: TGUID = '{3050F805-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementNamespaceFactoryCallback: TGUID = '{3050F7FD-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementBehaviorSiteOM2: TGUID = '{3050F659-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementBehaviorCategory: TGUID = '{3050F4ED-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementBehaviorSiteCategory: TGUID = '{3050F4EE-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IEnumUnknown: TGUID = '{00000100-0000-0000-C000-000000000046}';
+  IID_IElementBehaviorSubmit: TGUID = '{3050F646-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementBehaviorFocus: TGUID = '{3050F6B6-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementBehaviorLayout: TGUID = '{3050F6BA-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementBehaviorLayout2: TGUID = '{3050F846-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementBehaviorSiteLayout: TGUID = '{3050F6B7-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IElementBehaviorSiteLayout2: TGUID = '{3050F847-98B5-11CF-BB82-00AA00BDCE0B}';
+  IID_IHostBehaviorInit: TGUID = '{3050F842-98B5-11CF-BB82-00AA00BDCE0B}';
+
+// *********************************************************************//
+// Declaration of Enumerations defined in Type Library
+// *********************************************************************//
+// Constants for enum _htmlDesignMode
+type
+  _htmlDesignMode = TOleEnum;
+const
+  htmlDesignModeInherit = $FFFFFFFE;
+  htmlDesignModeOn = $FFFFFFFF;
+  htmlDesignModeOff = $00000000;
+  htmlDesignMode_Max = $7FFFFFFF;
+
+// Constants for enum _htmlZOrder
+type
+  _htmlZOrder = TOleEnum;
+const
+  htmlZOrderFront = $00000000;
+  htmlZOrderBack = $00000001;
+  htmlZOrder_Max = $7FFFFFFF;
+
+// Constants for enum _htmlClear
+type
+  _htmlClear = TOleEnum;
+const
+  htmlClearNotSet = $00000000;
+  htmlClearAll = $00000001;
+  htmlClearLeft = $00000002;
+  htmlClearRight = $00000003;
+  htmlClearBoth = $00000004;
+  htmlClearNone = $00000005;
+  htmlClear_Max = $7FFFFFFF;
+
+// Constants for enum _htmlControlAlign
+type
+  _htmlControlAlign = TOleEnum;
+const
+  htmlControlAlignNotSet = $00000000;
+  htmlControlAlignLeft = $00000001;
+  htmlControlAlignCenter = $00000002;
+  htmlControlAlignRight = $00000003;
+  htmlControlAlignTextTop = $00000004;
+  htmlControlAlignAbsMiddle = $00000005;
+  htmlControlAlignBaseline = $00000006;
+  htmlControlAlignAbsBottom = $00000007;
+  htmlControlAlignBottom = $00000008;
+  htmlControlAlignMiddle = $00000009;
+  htmlControlAlignTop = $0000000A;
+  htmlControlAlign_Max = $7FFFFFFF;
+
+// Constants for enum _htmlBlockAlign
+type
+  _htmlBlockAlign = TOleEnum;
+const
+  htmlBlockAlignNotSet = $00000000;
+  htmlBlockAlignLeft = $00000001;
+  htmlBlockAlignCenter = $00000002;
+  htmlBlockAlignRight = $00000003;
+  htmlBlockAlignJustify = $00000004;
+  htmlBlockAlign_Max = $7FFFFFFF;
+
+// Constants for enum _htmlReadyState
+type
+  _htmlReadyState = TOleEnum;
+const
+  htmlReadyStateuninitialized = $00000000;
+  htmlReadyStateloading = $00000001;
+  htmlReadyStateloaded = $00000002;
+  htmlReadyStateinteractive = $00000003;
+  htmlReadyStatecomplete = $00000004;
+  htmlReadyState_Max = $7FFFFFFF;
+
+// Constants for enum _htmlLoop
+type
+  _htmlLoop = TOleEnum;
+const
+  htmlLoopLoopInfinite = $FFFFFFFF;
+  htmlLoop_Max = $7FFFFFFF;
+
+// Constants for enum _mediaType
+type
+  _mediaType = TOleEnum;
+const
+  mediaTypeNotSet = $00000000;
+  mediaTypeAll = $000001FF;
+  mediaTypeAural = $00000001;
+  mediaTypeBraille = $00000002;
+  mediaTypeEmbossed = $00000004;
+  mediaTypeHandheld = $00000008;
+  mediaTypePrint = $00000010;
+  mediaTypeProjection = $00000020;
+  mediaTypeScreen = $00000040;
+  mediaTypeTty = $00000080;
+  mediaTypeTv = $00000100;
+  mediaType_Max = $7FFFFFFF;
+
+// Constants for enum _styleTextTransform
+type
+  _styleTextTransform = TOleEnum;
+const
+  styleTextTransformNotSet = $00000000;
+  styleTextTransformCapitalize = $00000001;
+  styleTextTransformLowercase = $00000002;
+  styleTextTransformUppercase = $00000003;
+  styleTextTransformNone = $00000004;
+  styleTextTransform_Max = $7FFFFFFF;
+
+// Constants for enum _styleDataRepeat
+type
+  _styleDataRepeat = TOleEnum;
+const
+  styleDataRepeatNone = $00000000;
+  styleDataRepeatInner = $00000001;
+  styleDataRepeat_Max = $7FFFFFFF;
+
+// Constants for enum _styleOverflow
+type
+  _styleOverflow = TOleEnum;
+const
+  styleOverflowNotSet = $00000000;
+  styleOverflowAuto = $00000001;
+  styleOverflowHidden = $00000002;
+  styleOverflowVisible = $00000003;
+  styleOverflowScroll = $00000004;
+  styleOverflow_Max = $7FFFFFFF;
+
+// Constants for enum _styleTableLayout
+type
+  _styleTableLayout = TOleEnum;
+const
+  styleTableLayoutNotSet = $00000000;
+  styleTableLayoutAuto = $00000001;
+  styleTableLayoutFixed = $00000002;
+  styleTableLayout_Max = $7FFFFFFF;
+
+// Constants for enum _styleBorderCollapse
+type
+  _styleBorderCollapse = TOleEnum;
+const
+  styleBorderCollapseNotSet = $00000000;
+  styleBorderCollapseSeparate = $00000001;
+  styleBorderCollapseCollapse = $00000002;
+  styleBorderCollapse_Max = $7FFFFFFF;
+
+// Constants for enum _styleFontStyle
+type
+  _styleFontStyle = TOleEnum;
+const
+  styleFontStyleNotSet = $00000000;
+  styleFontStyleItalic = $00000001;
+  styleFontStyleOblique = $00000002;
+  styleFontStyleNormal = $00000003;
+  styleFontStyle_Max = $7FFFFFFF;
+
+// Constants for enum _styleFontVariant
+type
+  _styleFontVariant = TOleEnum;
+const
+  styleFontVariantNotSet = $00000000;
+  styleFontVariantSmallCaps = $00000001;
+  styleFontVariantNormal = $00000002;
+  styleFontVariant_Max = $7FFFFFFF;
+
+// Constants for enum _styleBackgroundRepeat
+type
+  _styleBackgroundRepeat = TOleEnum;
+const
+  styleBackgroundRepeatRepeat = $00000000;
+  styleBackgroundRepeatRepeatX = $00000001;
+  styleBackgroundRepeatRepeatY = $00000002;
+  styleBackgroundRepeatNoRepeat = $00000003;
+  styleBackgroundRepeatNotSet = $00000004;
+  styleBackgroundRepeat_Max = $7FFFFFFF;
+
+// Constants for enum _styleBackgroundAttachment
+type
+  _styleBackgroundAttachment = TOleEnum;
+const
+  styleBackgroundAttachmentFixed = $00000000;
+  styleBackgroundAttachmentScroll = $00000001;
+  styleBackgroundAttachmentNotSet = $00000002;
+  styleBackgroundAttachment_Max = $7FFFFFFF;
+
+// Constants for enum _styleVerticalAlign
+type
+  _styleVerticalAlign = TOleEnum;
+const
+  styleVerticalAlignAuto = $00000000;
+  styleVerticalAlignBaseline = $00000001;
+  styleVerticalAlignSub = $00000002;
+  styleVerticalAlignSuper = $00000003;
+  styleVerticalAlignTop = $00000004;
+  styleVerticalAlignTextTop = $00000005;
+  styleVerticalAlignMiddle = $00000006;
+  styleVerticalAlignBottom = $00000007;
+  styleVerticalAlignTextBottom = $00000008;
+  styleVerticalAlignInherit = $00000009;
+  styleVerticalAlignNotSet = $0000000A;
+  styleVerticalAlign_Max = $7FFFFFFF;
+
+// Constants for enum _styleFontWeight
+type
+  _styleFontWeight = TOleEnum;
+const
+  styleFontWeightNotSet = $00000000;
+  styleFontWeight100 = $00000001;
+  styleFontWeight200 = $00000002;
+  styleFontWeight300 = $00000003;
+  styleFontWeight400 = $00000004;
+  styleFontWeight500 = $00000005;
+  styleFontWeight600 = $00000006;
+  styleFontWeight700 = $00000007;
+  styleFontWeight800 = $00000008;
+  styleFontWeight900 = $00000009;
+  styleFontWeightNormal = $0000000A;
+  styleFontWeightBold = $0000000B;
+  styleFontWeightBolder = $0000000C;
+  styleFontWeightLighter = $0000000D;
+  styleFontWeight_Max = $7FFFFFFF;
+
+// Constants for enum _styleBackgroundPositionX
+type
+  _styleBackgroundPositionX = TOleEnum;
+const
+  styleBackgroundPositionXNotSet = $00000000;
+  styleBackgroundPositionXLeft = $00000001;
+  styleBackgroundPositionXCenter = $00000002;
+  styleBackgroundPositionXRight = $00000003;
+  styleBackgroundPositionX_Max = $7FFFFFFF;
+
+// Constants for enum _styleBackgroundPositionY
+type
+  _styleBackgroundPositionY = TOleEnum;
+const
+  styleBackgroundPositionYNotSet = $00000000;
+  styleBackgroundPositionYTop = $00000001;
+  styleBackgroundPositionYCenter = $00000002;
+  styleBackgroundPositionYBottom = $00000003;
+  styleBackgroundPositionY_Max = $7FFFFFFF;
+
+// Constants for enum _styleFontSize
+type
+  _styleFontSize = TOleEnum;
+const
+  styleFontSizeXXSmall = $00000000;
+  styleFontSizeXSmall = $00000001;
+  styleFontSizeSmall = $00000002;
+  styleFontSizeMedium = $00000003;
+  styleFontSizeLarge = $00000004;
+  styleFontSizeXLarge = $00000005;
+  styleFontSizeXXLarge = $00000006;
+  styleFontSizeSmaller = $00000007;
+  styleFontSizeLarger = $00000008;
+  styleFontSize_Max = $7FFFFFFF;
+
+// Constants for enum _styleAuto
+type
+  _styleAuto = TOleEnum;
+const
+  styleAutoAuto = $00000000;
+  styleAuto_Max = $7FFFFFFF;
+
+// Constants for enum _styleNormal
+type
+  _styleNormal = TOleEnum;
+const
+  styleNormalNormal = $00000000;
+  styleNormal_Max = $7FFFFFFF;
+
+// Constants for enum _styleBorderWidth
+type
+  _styleBorderWidth = TOleEnum;
+const
+  styleBorderWidthThin = $00000000;
+  styleBorderWidthMedium = $00000001;
+  styleBorderWidthThick = $00000002;
+  styleBorderWidth_Max = $7FFFFFFF;
+
+// Constants for enum _stylePosition
+type
+  _stylePosition = TOleEnum;
+const
+  stylePositionNotSet = $00000000;
+  stylePositionstatic = $00000001;
+  stylePositionrelative = $00000002;
+  stylePositionabsolute = $00000003;
+  stylePositionfixed = $00000004;
+  stylePosition_Max = $7FFFFFFF;
+
+// Constants for enum _styleBorderStyle
+type
+  _styleBorderStyle = TOleEnum;
+const
+  styleBorderStyleNotSet = $00000000;
+  styleBorderStyleDotted = $00000001;
+  styleBorderStyleDashed = $00000002;
+  styleBorderStyleSolid = $00000003;
+  styleBorderStyleDouble = $00000004;
+  styleBorderStyleGroove = $00000005;
+  styleBorderStyleRidge = $00000006;
+  styleBorderStyleInset = $00000007;
+  styleBorderStyleOutset = $00000008;
+  styleBorderStyleWindowInset = $00000009;
+  styleBorderStyleNone = $0000000A;
+  styleBorderStyle_Max = $7FFFFFFF;
+
+// Constants for enum _styleStyleFloat
+type
+  _styleStyleFloat = TOleEnum;
+const
+  styleStyleFloatNotSet = $00000000;
+  styleStyleFloatLeft = $00000001;
+  styleStyleFloatRight = $00000002;
+  styleStyleFloatNone = $00000003;
+  styleStyleFloat_Max = $7FFFFFFF;
+
+// Constants for enum _styleDisplay
+type
+  _styleDisplay = TOleEnum;
+const
+  styleDisplayNotSet = $00000000;
+  styleDisplayBlock = $00000001;
+  styleDisplayInline = $00000002;
+  styleDisplayListItem = $00000003;
+  styleDisplayNone = $00000004;
+  styleDisplayTableHeaderGroup = $00000005;
+  styleDisplayTableFooterGroup = $00000006;
+  styleDisplayInlineBlock = $00000007;
+  styleDisplay_Max = $7FFFFFFF;
+
+// Constants for enum _styleVisibility
+type
+  _styleVisibility = TOleEnum;
+const
+  styleVisibilityNotSet = $00000000;
+  styleVisibilityInherit = $00000001;
+  styleVisibilityVisible = $00000002;
+  styleVisibilityHidden = $00000003;
+  styleVisibility_Max = $7FFFFFFF;
+
+// Constants for enum _styleListStyleType
+type
+  _styleListStyleType = TOleEnum;
+const
+  styleListStyleTypeNotSet = $00000000;
+  styleListStyleTypeDisc = $00000001;
+  styleListStyleTypeCircle = $00000002;
+  styleListStyleTypeSquare = $00000003;
+  styleListStyleTypeDecimal = $00000004;
+  styleListStyleTypeLowerRoman = $00000005;
+  styleListStyleTypeUpperRoman = $00000006;
+  styleListStyleTypeLowerAlpha = $00000007;
+  styleListStyleTypeUpperAlpha = $00000008;
+  styleListStyleTypeNone = $00000009;
+  styleListStyleType_Max = $7FFFFFFF;
+
+// Constants for enum _styleListStylePosition
+type
+  _styleListStylePosition = TOleEnum;
+const
+  styleListStylePositionNotSet = $00000000;
+  styleListStylePositionInside = $00000001;
+  styleListStylePositionOutSide = $00000002;
+  styleListStylePosition_Max = $7FFFFFFF;
+
+// Constants for enum _styleWhiteSpace
+type
+  _styleWhiteSpace = TOleEnum;
+const
+  styleWhiteSpaceNotSet = $00000000;
+  styleWhiteSpaceNormal = $00000001;
+  styleWhiteSpacePre = $00000002;
+  styleWhiteSpaceNowrap = $00000003;
+  styleWhiteSpace_Max = $7FFFFFFF;
+
+// Constants for enum _stylePageBreak
+type
+  _stylePageBreak = TOleEnum;
+const
+  stylePageBreakNotSet = $00000000;
+  stylePageBreakAuto = $00000001;
+  stylePageBreakAlways = $00000002;
+  stylePageBreakLeft = $00000003;
+  stylePageBreakRight = $00000004;
+  stylePageBreak_Max = $7FFFFFFF;
+
+// Constants for enum _styleCursor
+type
+  _styleCursor = TOleEnum;
+const
+  styleCursorAuto = $00000000;
+  styleCursorCrosshair = $00000001;
+  styleCursorDefault = $00000002;
+  styleCursorHand = $00000003;
+  styleCursorMove = $00000004;
+  styleCursorE_resize = $00000005;
+  styleCursorNe_resize = $00000006;
+  styleCursorNw_resize = $00000007;
+  styleCursorN_resize = $00000008;
+  styleCursorSe_resize = $00000009;
+  styleCursorSw_resize = $0000000A;
+  styleCursorS_resize = $0000000B;
+  styleCursorW_resize = $0000000C;
+  styleCursorText = $0000000D;
+  styleCursorWait = $0000000E;
+  styleCursorHelp = $0000000F;
+  styleCursorPointer = $00000010;
+  styleCursorProgress = $00000011;
+  styleCursorNot_allowed = $00000012;
+  styleCursorNo_drop = $00000013;
+  styleCursorVertical_text = $00000014;
+  styleCursorall_scroll = $00000015;
+  styleCursorcol_resize = $00000016;
+  styleCursorrow_resize = $00000017;
+  styleCursorcustom = $00000018;
+  styleCursorNotSet = $00000019;
+  styleCursor_Max = $7FFFFFFF;
+
+// Constants for enum _styleDir
+type
+  _styleDir = TOleEnum;
+const
+  styleDirNotSet = $00000000;
+  styleDirLeftToRight = $00000001;
+  styleDirRightToLeft = $00000002;
+  styleDirInherit = $00000003;
+  styleDir_Max = $7FFFFFFF;
+
+// Constants for enum _styleBidi
+type
+  _styleBidi = TOleEnum;
+const
+  styleBidiNotSet = $00000000;
+  styleBidiNormal = $00000001;
+  styleBidiEmbed = $00000002;
+  styleBidiOverride = $00000003;
+  styleBidiInherit = $00000004;
+  styleBidi_Max = $7FFFFFFF;
+
+// Constants for enum _styleImeMode
+type
+  _styleImeMode = TOleEnum;
+const
+  styleImeModeAuto = $00000000;
+  styleImeModeActive = $00000001;
+  styleImeModeInactive = $00000002;
+  styleImeModeDisabled = $00000003;
+  styleImeModeNotSet = $00000004;
+  styleImeMode_Max = $7FFFFFFF;
+
+// Constants for enum _styleRubyAlign
+type
+  _styleRubyAlign = TOleEnum;
+const
+  styleRubyAlignNotSet = $00000000;
+  styleRubyAlignAuto = $00000001;
+  styleRubyAlignLeft = $00000002;
+  styleRubyAlignCenter = $00000003;
+  styleRubyAlignRight = $00000004;
+  styleRubyAlignDistributeLetter = $00000005;
+  styleRubyAlignDistributeSpace = $00000006;
+  styleRubyAlignLineEdge = $00000007;
+  styleRubyAlign_Max = $7FFFFFFF;
+
+// Constants for enum _styleRubyPosition
+type
+  _styleRubyPosition = TOleEnum;
+const
+  styleRubyPositionNotSet = $00000000;
+  styleRubyPositionAbove = $00000001;
+  styleRubyPositionInline = $00000002;
+  styleRubyPosition_Max = $7FFFFFFF;
+
+// Constants for enum _styleRubyOverhang
+type
+  _styleRubyOverhang = TOleEnum;
+const
+  styleRubyOverhangNotSet = $00000000;
+  styleRubyOverhangAuto = $00000001;
+  styleRubyOverhangWhitespace = $00000002;
+  styleRubyOverhangNone = $00000003;
+  styleRubyOverhang_Max = $7FFFFFFF;
+
+// Constants for enum _styleLayoutGridChar
+type
+  _styleLayoutGridChar = TOleEnum;
+const
+  styleLayoutGridCharNotSet = $00000000;
+  styleLayoutGridCharAuto = $00000001;
+  styleLayoutGridCharNone = $00000002;
+  styleLayoutGridChar_Max = $7FFFFFFF;
+
+// Constants for enum _styleLayoutGridLine
+type
+  _styleLayoutGridLine = TOleEnum;
+const
+  styleLayoutGridLineNotSet = $00000000;
+  styleLayoutGridLineAuto = $00000001;
+  styleLayoutGridLineNone = $00000002;
+  styleLayoutGridLine_Max = $7FFFFFFF;
+
+// Constants for enum _styleLayoutGridMode
+type
+  _styleLayoutGridMode = TOleEnum;
+const
+  styleLayoutGridModeNotSet = $00000000;
+  styleLayoutGridModeChar = $00000001;
+  styleLayoutGridModeLine = $00000002;
+  styleLayoutGridModeBoth = $00000003;
+  styleLayoutGridModeNone = $00000004;
+  styleLayoutGridMode_Max = $7FFFFFFF;
+
+// Constants for enum _styleLayoutGridType
+type
+  _styleLayoutGridType = TOleEnum;
+const
+  styleLayoutGridTypeNotSet = $00000000;
+  styleLayoutGridTypeLoose = $00000001;
+  styleLayoutGridTypeStrict = $00000002;
+  styleLayoutGridTypeFixed = $00000003;
+  styleLayoutGridType_Max = $7FFFFFFF;
+
+// Constants for enum _styleLineBreak
+type
+  _styleLineBreak = TOleEnum;
+const
+  styleLineBreakNotSet = $00000000;
+  styleLineBreakNormal = $00000001;
+  styleLineBreakStrict = $00000002;
+  styleLineBreak_Max = $7FFFFFFF;
+
+// Constants for enum _styleWordBreak
+type
+  _styleWordBreak = TOleEnum;
+const
+  styleWordBreakNotSet = $00000000;
+  styleWordBreakNormal = $00000001;
+  styleWordBreakBreakAll = $00000002;
+  styleWordBreakKeepAll = $00000003;
+  styleWordBreak_Max = $7FFFFFFF;
+
+// Constants for enum _styleWordWrap
+type
+  _styleWordWrap = TOleEnum;
+const
+  styleWordWrapNotSet = $00000000;
+  styleWordWrapOff = $00000001;
+  styleWordWrapOn = $00000002;
+  styleWordWrap_Max = $7FFFFFFF;
+
+// Constants for enum _styleTextJustify
+type
+  _styleTextJustify = TOleEnum;
+const
+  styleTextJustifyNotSet = $00000000;
+  styleTextJustifyInterWord = $00000001;
+  styleTextJustifyNewspaper = $00000002;
+  styleTextJustifyDistribute = $00000003;
+  styleTextJustifyDistributeAllLines = $00000004;
+  styleTextJustifyInterIdeograph = $00000005;
+  styleTextJustifyInterCluster = $00000006;
+  styleTextJustifyKashida = $00000007;
+  styleTextJustifyAuto = $00000008;
+  styleTextJustify_Max = $7FFFFFFF;
+
+// Constants for enum _styleTextAlignLast
+type
+  _styleTextAlignLast = TOleEnum;
+const
+  styleTextAlignLastNotSet = $00000000;
+  styleTextAlignLastLeft = $00000001;
+  styleTextAlignLastCenter = $00000002;
+  styleTextAlignLastRight = $00000003;
+  styleTextAlignLastJustify = $00000004;
+  styleTextAlignLastAuto = $00000005;
+  styleTextAlignLast_Max = $7FFFFFFF;
+
+// Constants for enum _styleTextJustifyTrim
+type
+  _styleTextJustifyTrim = TOleEnum;
+const
+  styleTextJustifyTrimNotSet = $00000000;
+  styleTextJustifyTrimNone = $00000001;
+  styleTextJustifyTrimPunctuation = $00000002;
+  styleTextJustifyTrimPunctAndKana = $00000003;
+  styleTextJustifyTrim_Max = $7FFFFFFF;
+
+// Constants for enum _styleAccelerator
+type
+  _styleAccelerator = TOleEnum;
+const
+  styleAcceleratorFalse = $00000000;
+  styleAcceleratorTrue = $00000001;
+  styleAccelerator_Max = $7FFFFFFF;
+
+// Constants for enum _styleLayoutFlow
+type
+  _styleLayoutFlow = TOleEnum;
+const
+  styleLayoutFlowHorizontal = $00000000;
+  styleLayoutFlowVerticalIdeographic = $00000001;
+  styleLayoutFlowNotSet = $00000002;
+  styleLayoutFlow_Max = $7FFFFFFF;
+
+// Constants for enum _styleWritingMode
+type
+  _styleWritingMode = TOleEnum;
+const
+  styleWritingModeLrtb = $00000000;
+  styleWritingModeTbrl = $00000001;
+  styleWritingModeNotSet = $00000002;
+  styleWritingMode_Max = $7FFFFFFF;
+
+// Constants for enum _styleBool
+type
+  _styleBool = TOleEnum;
+const
+  styleBoolFalse = $00000000;
+  styleBoolTrue = $00000001;
+  styleBool_Max = $7FFFFFFF;
+
+// Constants for enum _styleTextUnderlinePosition
+type
+  _styleTextUnderlinePosition = TOleEnum;
+const
+  styleTextUnderlinePositionBelow = $00000000;
+  styleTextUnderlinePositionAbove = $00000001;
+  styleTextUnderlinePositionAuto = $00000002;
+  styleTextUnderlinePositionNotSet = $00000003;
+  styleTextUnderlinePosition_Max = $7FFFFFFF;
+
+// Constants for enum _styleTextOverflow
+type
+  _styleTextOverflow = TOleEnum;
+const
+  styleTextOverflowClip = $00000000;
+  styleTextOverflowEllipsis = $00000001;
+  styleTextOverflowNotSet = $00000002;
+  styleTextOverflow_Max = $7FFFFFFF;
+
+// Constants for enum _styleTextLineThroughStyle
+type
+  _styleTextLineThroughStyle = TOleEnum;
+const
+  styleTextLineThroughStyleUndefined = $00000000;
+  styleTextLineThroughStyleSingle = $00000001;
+  styleTextLineThroughStyleDouble = $00000002;
+  styleTextLineThroughStyle_Max = $7FFFFFFF;
+
+// Constants for enum _styleTextUnderlineStyle
+type
+  _styleTextUnderlineStyle = TOleEnum;
+const
+  styleTextUnderlineStyleUndefined = $00000000;
+  styleTextUnderlineStyleSingle = $00000001;
+  styleTextUnderlineStyleDouble = $00000002;
+  styleTextUnderlineStyleWords = $00000003;
+  styleTextUnderlineStyleDotted = $00000004;
+  styleTextUnderlineStyleThick = $00000005;
+  styleTextUnderlineStyleDash = $00000006;
+  styleTextUnderlineStyleDotDash = $00000007;
+  styleTextUnderlineStyleDotDotDash = $00000008;
+  styleTextUnderlineStyleWave = $00000009;
+  styleTextUnderlineStyleSingleAccounting = $0000000A;
+  styleTextUnderlineStyleDoubleAccounting = $0000000B;
+  styleTextUnderlineStyleThickDash = $0000000C;
+  styleTextUnderlineStyle_Max = $7FFFFFFF;
+
+// Constants for enum _styleTextEffect
+type
+  _styleTextEffect = TOleEnum;
+const
+  styleTextEffectNone = $00000000;
+  styleTextEffectEmboss = $00000001;
+  styleTextEffectEngrave = $00000002;
+  styleTextEffectOutline = $00000003;
+  styleTextEffect_Max = $7FFFFFFF;
+
+// Constants for enum _styleDefaultTextSelection
+type
+  _styleDefaultTextSelection = TOleEnum;
+const
+  styleDefaultTextSelectionFalse = $00000000;
+  styleDefaultTextSelectionTrue = $00000001;
+  styleDefaultTextSelection_Max = $7FFFFFFF;
+
+// Constants for enum _styleTextDecoration
+type
+  _styleTextDecoration = TOleEnum;
+const
+  styleTextDecorationNone = $00000000;
+  styleTextDecorationUnderline = $00000001;
+  styleTextDecorationOverline = $00000002;
+  styleTextDecorationLineThrough = $00000003;
+  styleTextDecorationBlink = $00000004;
+  styleTextDecoration_Max = $7FFFFFFF;
+
+// Constants for enum _textDecoration
+type
+  _textDecoration = TOleEnum;
+const
+  textDecorationNone = $00000000;
+  textDecorationUnderline = $00000001;
+  textDecorationOverline = $00000002;
+  textDecorationLineThrough = $00000003;
+  textDecorationBlink = $00000004;
+  textDecoration_Max = $7FFFFFFF;
+
+// Constants for enum _htmlListType
+type
+  _htmlListType = TOleEnum;
+const
+  htmlListTypeNotSet = $00000000;
+  htmlListTypeLargeAlpha = $00000001;
+  htmlListTypeSmallAlpha = $00000002;
+  htmlListTypeLargeRoman = $00000003;
+  htmlListTypeSmallRoman = $00000004;
+  htmlListTypeNumbers = $00000005;
+  htmlListTypeDisc = $00000006;
+  htmlListTypeCircle = $00000007;
+  htmlListTypeSquare = $00000008;
+  htmlListType_Max = $7FFFFFFF;
+
+// Constants for enum _htmlMethod
+type
+  _htmlMethod = TOleEnum;
+const
+  htmlMethodNotSet = $00000000;
+  htmlMethodGet = $00000001;
+  htmlMethodPost = $00000002;
+  htmlMethod_Max = $7FFFFFFF;
+
+// Constants for enum _htmlWrap
+type
+  _htmlWrap = TOleEnum;
+const
+  htmlWrapOff = $00000001;
+  htmlWrapSoft = $00000002;
+  htmlWrapHard = $00000003;
+  htmlWrap_Max = $7FFFFFFF;
+
+// Constants for enum _htmlDir
+type
+  _htmlDir = TOleEnum;
+const
+  htmlDirNotSet = $00000000;
+  htmlDirLeftToRight = $00000001;
+  htmlDirRightToLeft = $00000002;
+  htmlDir_Max = $7FFFFFFF;
+
+// Constants for enum _htmlEditable
+type
+  _htmlEditable = TOleEnum;
+const
+  htmlEditableInherit = $00000000;
+  htmlEditableTrue = $00000001;
+  htmlEditableFalse = $00000002;
+  htmlEditable_Max = $7FFFFFFF;
+
+// Constants for enum _htmlInput
+type
+  _htmlInput = TOleEnum;
+const
+  htmlInputNotSet = $00000000;
+  htmlInputButton = $00000001;
+  htmlInputCheckbox = $00000002;
+  htmlInputFile = $00000003;
+  htmlInputHidden = $00000004;
+  htmlInputImage_ = $00000005;
+  htmlInputPassword = $00000006;
+  htmlInputRadio = $00000007;
+  htmlInputReset = $00000008;
+  htmlInputSelectOne = $00000009;
+  htmlInputSelectMultiple = $0000000A;
+  htmlInputSubmit = $0000000B;
+  htmlInputText = $0000000C;
+  htmlInputTextarea = $0000000D;
+  htmlInputRichtext = $0000000E;
+  htmlInput_Max = $7FFFFFFF;
+
+// Constants for enum _htmlEncoding
+type
+  _htmlEncoding = TOleEnum;
+const
+  htmlEncodingURL = $00000000;
+  htmlEncodingMultipart = $00000001;
+  htmlEncodingText = $00000002;
+  htmlEncoding_Max = $7FFFFFFF;
+
+// Constants for enum _htmlAdjacency
+type
+  _htmlAdjacency = TOleEnum;
+const
+  htmlAdjacencyBeforeBegin = $00000001;
+  htmlAdjacencyAfterBegin = $00000002;
+  htmlAdjacencyBeforeEnd = $00000003;
+  htmlAdjacencyAfterEnd = $00000004;
+  htmlAdjacency_Max = $7FFFFFFF;
+
+// Constants for enum _htmlTabIndex
+type
+  _htmlTabIndex = TOleEnum;
+const
+  htmlTabIndexNotSet = $FFFF8000;
+  htmlTabIndex_Max = $7FFFFFFF;
+
+// Constants for enum _htmlComponent
+type
+  _htmlComponent = TOleEnum;
+const
+  htmlComponentClient = $00000000;
+  htmlComponentSbLeft = $00000001;
+  htmlComponentSbPageLeft = $00000002;
+  htmlComponentSbHThumb = $00000003;
+  htmlComponentSbPageRight = $00000004;
+  htmlComponentSbRight = $00000005;
+  htmlComponentSbUp = $00000006;
+  htmlComponentSbPageUp = $00000007;
+  htmlComponentSbVThumb = $00000008;
+  htmlComponentSbPageDown = $00000009;
+  htmlComponentSbDown = $0000000A;
+  htmlComponentSbLeft2 = $0000000B;
+  htmlComponentSbPageLeft2 = $0000000C;
+  htmlComponentSbRight2 = $0000000D;
+  htmlComponentSbPageRight2 = $0000000E;
+  htmlComponentSbUp2 = $0000000F;
+  htmlComponentSbPageUp2 = $00000010;
+  htmlComponentSbDown2 = $00000011;
+  htmlComponentSbPageDown2 = $00000012;
+  htmlComponentSbTop = $00000013;
+  htmlComponentSbBottom = $00000014;
+  htmlComponentOutside = $00000015;
+  htmlComponentGHTopLeft = $00000016;
+  htmlComponentGHLeft = $00000017;
+  htmlComponentGHTop = $00000018;
+  htmlComponentGHBottomLeft = $00000019;
+  htmlComponentGHTopRight = $0000001A;
+  htmlComponentGHBottom = $0000001B;
+  htmlComponentGHRight = $0000001C;
+  htmlComponentGHBottomRight = $0000001D;
+  htmlComponent_Max = $7FFFFFFF;
+
+// Constants for enum _htmlApplyLocation
+type
+  _htmlApplyLocation = TOleEnum;
+const
+  htmlApplyLocationInside = $00000000;
+  htmlApplyLocationOutside = $00000001;
+  htmlApplyLocation_Max = $7FFFFFFF;
+
+// Constants for enum _htmlGlyphMode
+type
+  _htmlGlyphMode = TOleEnum;
+const
+  htmlGlyphModeNone = $00000000;
+  htmlGlyphModeBegin = $00000001;
+  htmlGlyphModeEnd = $00000002;
+  htmlGlyphModeBoth = $00000003;
+  htmlGlyphMode_Max = $7FFFFFFF;
+
+// Constants for enum _htmlUnit
+type
+  _htmlUnit = TOleEnum;
+const
+  htmlUnitCharacter = $00000001;
+  htmlUnitWord = $00000002;
+  htmlUnitSentence = $00000003;
+  htmlUnitTextEdit = $00000006;
+  htmlUnit_Max = $7FFFFFFF;
+
+// Constants for enum _htmlEndPoints
+type
+  _htmlEndPoints = TOleEnum;
+const
+  htmlEndPointsStartToStart = $00000001;
+  htmlEndPointsStartToEnd = $00000002;
+  htmlEndPointsEndToStart = $00000003;
+  htmlEndPointsEndToEnd = $00000004;
+  htmlEndPoints_Max = $7FFFFFFF;
+
+// Constants for enum _htmlDirection
+type
+  _htmlDirection = TOleEnum;
+const
+  htmlDirectionForward = $0001869F;
+  htmlDirectionBackward = $FFFE7961;
+  htmlDirection_Max = $7FFFFFFF;
+
+// Constants for enum _htmlStart
+type
+  _htmlStart = TOleEnum;
+const
+  htmlStartfileopen = $00000000;
+  htmlStartmouseover = $00000001;
+  htmlStart_Max = $7FFFFFFF;
+
+// Constants for enum _bodyScroll
+type
+  _bodyScroll = TOleEnum;
+const
+  bodyScrollyes = $00000001;
+  bodyScrollno = $00000002;
+  bodyScrollauto = $00000004;
+  bodyScrolldefault = $00000003;
+  bodyScroll_Max = $7FFFFFFF;
+
+// Constants for enum _htmlSelectType
+type
+  _htmlSelectType = TOleEnum;
+const
+  htmlSelectTypeSelectOne = $00000001;
+  htmlSelectTypeSelectMultiple = $00000002;
+  htmlSelectType_Max = $7FFFFFFF;
+
+// Constants for enum _htmlSelection
+type
+  _htmlSelection = TOleEnum;
+const
+  htmlSelectionNone = $00000000;
+  htmlSelectionText = $00000001;
+  htmlSelectionControl = $00000002;
+  htmlSelectionTable = $00000003;
+  htmlSelection_Max = $7FFFFFFF;
+
+// Constants for enum _htmlMarqueeBehavior
+type
+  _htmlMarqueeBehavior = TOleEnum;
+const
+  htmlMarqueeBehaviorscroll = $00000001;
+  htmlMarqueeBehaviorslide = $00000002;
+  htmlMarqueeBehavioralternate = $00000003;
+  htmlMarqueeBehavior_Max = $7FFFFFFF;
+
+// Constants for enum _htmlMarqueeDirection
+type
+  _htmlMarqueeDirection = TOleEnum;
+const
+  htmlMarqueeDirectionleft = $00000001;
+  htmlMarqueeDirectionright = $00000003;
+  htmlMarqueeDirectionup = $00000005;
+  htmlMarqueeDirectiondown = $00000007;
+  htmlMarqueeDirection_Max = $7FFFFFFF;
+
+// Constants for enum _htmlPersistState
+type
+  _htmlPersistState = TOleEnum;
+const
+  htmlPersistStateNormal = $00000000;
+  htmlPersistStateFavorite = $00000001;
+  htmlPersistStateHistory = $00000002;
+  htmlPersistStateSnapshot = $00000003;
+  htmlPersistStateUserData = $00000004;
+  htmlPersistState_Max = $7FFFFFFF;
+
+// Constants for enum _htmlDropEffect
+type
+  _htmlDropEffect = TOleEnum;
+const
+  htmlDropEffectCopy = $00000000;
+  htmlDropEffectLink = $00000001;
+  htmlDropEffectMove = $00000002;
+  htmlDropEffectNone = $00000003;
+  htmlDropEffect_Max = $7FFFFFFF;
+
+// Constants for enum _htmlEffectAllowed
+type
+  _htmlEffectAllowed = TOleEnum;
+const
+  htmlEffectAllowedCopy = $00000000;
+  htmlEffectAllowedLink = $00000001;
+  htmlEffectAllowedMove = $00000002;
+  htmlEffectAllowedCopyLink = $00000003;
+  htmlEffectAllowedCopyMove = $00000004;
+  htmlEffectAllowedLinkMove = $00000005;
+  htmlEffectAllowedAll = $00000006;
+  htmlEffectAllowedNone = $00000007;
+  htmlEffectAllowedUninitialized = $00000008;
+  htmlEffectAllowed_Max = $7FFFFFFF;
+
+// Constants for enum _htmlCompatMode
+type
+  _htmlCompatMode = TOleEnum;
+const
+  htmlCompatModeBackCompat = $00000000;
+  htmlCompatModeCSS1Compat = $00000001;
+  htmlCompatMode_Max = $7FFFFFFF;
+
+// Constants for enum _BoolValue
+type
+  _BoolValue = TOleEnum;
+const
+//  True = $00000001;
+//  False = $00000000;
+  BoolValue_Max = $7FFFFFFF;
+
+// Constants for enum _htmlCaptionAlign
+type
+  _htmlCaptionAlign = TOleEnum;
+const
+  htmlCaptionAlignNotSet = $00000000;
+  htmlCaptionAlignLeft = $00000001;
+  htmlCaptionAlignCenter = $00000002;
+  htmlCaptionAlignRight = $00000003;
+  htmlCaptionAlignJustify = $00000004;
+  htmlCaptionAlignTop = $00000005;
+  htmlCaptionAlignBottom = $00000006;
+  htmlCaptionAlign_Max = $7FFFFFFF;
+
+// Constants for enum _htmlCaptionVAlign
+type
+  _htmlCaptionVAlign = TOleEnum;
+const
+  htmlCaptionVAlignNotSet = $00000000;
+  htmlCaptionVAlignTop = $00000001;
+  htmlCaptionVAlignBottom = $00000002;
+  htmlCaptionVAlign_Max = $7FFFFFFF;
+
+// Constants for enum _htmlFrame
+type
+  _htmlFrame = TOleEnum;
+const
+  htmlFrameNotSet = $00000000;
+  htmlFramevoid = $00000001;
+  htmlFrameabove = $00000002;
+  htmlFramebelow = $00000003;
+  htmlFramehsides = $00000004;
+  htmlFramelhs = $00000005;
+  htmlFramerhs = $00000006;
+  htmlFramevsides = $00000007;
+  htmlFramebox = $00000008;
+  htmlFrameborder = $00000009;
+  htmlFrame_Max = $7FFFFFFF;
+
+// Constants for enum _htmlRules
+type
+  _htmlRules = TOleEnum;
+const
+  htmlRulesNotSet = $00000000;
+  htmlRulesnone = $00000001;
+  htmlRulesgroups = $00000002;
+  htmlRulesrows = $00000003;
+  htmlRulescols = $00000004;
+  htmlRulesall = $00000005;
+  htmlRules_Max = $7FFFFFFF;
+
+// Constants for enum _htmlCellAlign
+type
+  _htmlCellAlign = TOleEnum;
+const
+  htmlCellAlignNotSet = $00000000;
+  htmlCellAlignLeft = $00000001;
+  htmlCellAlignCenter = $00000002;
+  htmlCellAlignRight = $00000003;
+  htmlCellAlignMiddle = $00000002;
+  htmlCellAlign_Max = $7FFFFFFF;
+
+// Constants for enum _htmlCellVAlign
+type
+  _htmlCellVAlign = TOleEnum;
+const
+  htmlCellVAlignNotSet = $00000000;
+  htmlCellVAlignTop = $00000001;
+  htmlCellVAlignMiddle = $00000002;
+  htmlCellVAlignBottom = $00000003;
+  htmlCellVAlignBaseline = $00000004;
+  htmlCellVAlignCenter = $00000002;
+  htmlCellVAlign_Max = $7FFFFFFF;
+
+// Constants for enum _frameScrolling
+type
+  _frameScrolling = TOleEnum;
+const
+  frameScrollingyes = $00000001;
+  frameScrollingno = $00000002;
+  frameScrollingauto = $00000004;
+  frameScrolling_Max = $7FFFFFFF;
+
+// Constants for enum _ELEMENT_CORNER
+type
+  _ELEMENT_CORNER = TOleEnum;
+const
+  ELEMENT_CORNER_NONE = $00000000;
+  ELEMENT_CORNER_TOP = $00000001;
+  ELEMENT_CORNER_LEFT = $00000002;
+  ELEMENT_CORNER_BOTTOM = $00000003;
+  ELEMENT_CORNER_RIGHT = $00000004;
+  ELEMENT_CORNER_TOPLEFT = $00000005;
+  ELEMENT_CORNER_TOPRIGHT = $00000006;
+  ELEMENT_CORNER_BOTTOMLEFT = $00000007;
+  ELEMENT_CORNER_BOTTOMRIGHT = $00000008;
+  ELEMENT_CORNER_Max = $7FFFFFFF;
+
+// Constants for enum _SECUREURLHOSTVALIDATE_FLAGS
+type
+  _SECUREURLHOSTVALIDATE_FLAGS = TOleEnum;
+const
+  SUHV_PROMPTBEFORENO = $00000001;
+  SUHV_SILENTYES = $00000002;
+  SUHV_UNSECURESOURCE = $00000004;
+  SECUREURLHOSTVALIDATE_FLAGS_Max = $7FFFFFFF;
+
+// Constants for enum _POINTER_GRAVITY
+type
+  _POINTER_GRAVITY = TOleEnum;
+const
+  POINTER_GRAVITY_Left = $00000000;
+  POINTER_GRAVITY_Right = $00000001;
+  POINTER_GRAVITY_Max = $7FFFFFFF;
+
+// Constants for enum _ELEMENT_ADJACENCY
+type
+  _ELEMENT_ADJACENCY = TOleEnum;
+const
+  ELEM_ADJ_BeforeBegin = $00000000;
+  ELEM_ADJ_AfterBegin = $00000001;
+  ELEM_ADJ_BeforeEnd = $00000002;
+  ELEM_ADJ_AfterEnd = $00000003;
+  ELEMENT_ADJACENCY_Max = $7FFFFFFF;
+
+// Constants for enum _MARKUP_CONTEXT_TYPE
+type
+  _MARKUP_CONTEXT_TYPE = TOleEnum;
+const
+  CONTEXT_TYPE_None = $00000000;
+  CONTEXT_TYPE_Text = $00000001;
+  CONTEXT_TYPE_EnterScope = $00000002;
+  CONTEXT_TYPE_ExitScope = $00000003;
+  CONTEXT_TYPE_NoScope = $00000004;
+  MARKUP_CONTEXT_TYPE_Max = $7FFFFFFF;
+
+// Constants for enum _FINDTEXT_FLAGS
+type
+  _FINDTEXT_FLAGS = TOleEnum;
+const
+  FINDTEXT_BACKWARDS = $00000001;
+  FINDTEXT_WHOLEWORD = $00000002;
+  FINDTEXT_MATCHCASE = $00000004;
+  FINDTEXT_RAW = $00020000;
+  FINDTEXT_MATCHDIAC = $20000000;
+  FINDTEXT_MATCHKASHIDA = $40000000;
+  FINDTEXT_MATCHALEFHAMZA = $80000000;
+  FINDTEXT_FLAGS_Max = $7FFFFFFF;
+
+// Constants for enum _MOVEUNIT_ACTION
+type
+  _MOVEUNIT_ACTION = TOleEnum;
+const
+  MOVEUNIT_PREVCHAR = $00000000;
+  MOVEUNIT_NEXTCHAR = $00000001;
+  MOVEUNIT_PREVCLUSTERBEGIN = $00000002;
+  MOVEUNIT_NEXTCLUSTERBEGIN = $00000003;
+  MOVEUNIT_PREVCLUSTEREND = $00000004;
+  MOVEUNIT_NEXTCLUSTEREND = $00000005;
+  MOVEUNIT_PREVWORDBEGIN = $00000006;
+  MOVEUNIT_NEXTWORDBEGIN = $00000007;
+  MOVEUNIT_PREVWORDEND = $00000008;
+  MOVEUNIT_NEXTWORDEND = $00000009;
+  MOVEUNIT_PREVPROOFWORD = $0000000A;
+  MOVEUNIT_NEXTPROOFWORD = $0000000B;
+  MOVEUNIT_NEXTURLBEGIN = $0000000C;
+  MOVEUNIT_PREVURLBEGIN = $0000000D;
+  MOVEUNIT_NEXTURLEND = $0000000E;
+  MOVEUNIT_PREVURLEND = $0000000F;
+  MOVEUNIT_PREVSENTENCE = $00000010;
+  MOVEUNIT_NEXTSENTENCE = $00000011;
+  MOVEUNIT_PREVBLOCK = $00000012;
+  MOVEUNIT_NEXTBLOCK = $00000013;
+  MOVEUNIT_ACTION_Max = $7FFFFFFF;
+
+// Constants for enum _PARSE_FLAGS
+type
+  _PARSE_FLAGS = TOleEnum;
+const
+  PARSE_ABSOLUTIFYIE40URLS = $00000001;
+  PARSE_FLAGS_Max = $7FFFFFFF;
+
+// Constants for enum _ELEMENT_TAG_ID
+type
+  _ELEMENT_TAG_ID = TOleEnum;
+const
+  TAGID_NULL = $00000000;
+  TAGID_UNKNOWN = $00000001;
+  TAGID_A = $00000002;
+  TAGID_ACRONYM = $00000003;
+  TAGID_ADDRESS = $00000004;
+  TAGID_APPLET = $00000005;
+  TAGID_AREA = $00000006;
+  TAGID_B = $00000007;
+  TAGID_BASE = $00000008;
+  TAGID_BASEFONT = $00000009;
+  TAGID_BDO = $0000000A;
+  TAGID_BGSOUND = $0000000B;
+  TAGID_BIG = $0000000C;
+  TAGID_BLINK = $0000000D;
+  TAGID_BLOCKQUOTE = $0000000E;
+  TAGID_BODY = $0000000F;
+  TAGID_BR = $00000010;
+  TAGID_BUTTON = $00000011;
+  TAGID_CAPTION = $00000012;
+  TAGID_CENTER = $00000013;
+  TAGID_CITE = $00000014;
+  TAGID_CODE = $00000015;
+  TAGID_COL = $00000016;
+  TAGID_COLGROUP = $00000017;
+  TAGID_COMMENT = $00000018;
+  TAGID_COMMENT_RAW = $00000019;
+  TAGID_DD = $0000001A;
+  TAGID_DEL = $0000001B;
+  TAGID_DFN = $0000001C;
+  TAGID_DIR = $0000001D;
+  TAGID_DIV = $0000001E;
+  TAGID_DL = $0000001F;
+  TAGID_DT = $00000020;
+  TAGID_EM = $00000021;
+  TAGID_EMBED = $00000022;
+  TAGID_FIELDSET = $00000023;
+  TAGID_FONT = $00000024;
+  TAGID_FORM = $00000025;
+  TAGID_FRAME = $00000026;
+  TAGID_FRAMESET = $00000027;
+  TAGID_GENERIC = $00000028;
+  TAGID_H1 = $00000029;
+  TAGID_H2 = $0000002A;
+  TAGID_H3 = $0000002B;
+  TAGID_H4 = $0000002C;
+  TAGID_H5 = $0000002D;
+  TAGID_H6 = $0000002E;
+  TAGID_HEAD = $0000002F;
+  TAGID_HR = $00000030;
+  TAGID_HTML = $00000031;
+  TAGID_I = $00000032;
+  TAGID_IFRAME = $00000033;
+  TAGID_IMG = $00000034;
+  TAGID_INPUT = $00000035;
+  TAGID_INS = $00000036;
+  TAGID_KBD = $00000037;
+  TAGID_LABEL = $00000038;
+  TAGID_LEGEND = $00000039;
+  TAGID_LI = $0000003A;
+  TAGID_LINK = $0000003B;
+  TAGID_LISTING = $0000003C;
+  TAGID_MAP = $0000003D;
+  TAGID_MARQUEE = $0000003E;
+  TAGID_MENU = $0000003F;
+  TAGID_META = $00000040;
+  TAGID_NEXTID = $00000041;
+  TAGID_NOBR = $00000042;
+  TAGID_NOEMBED = $00000043;
+  TAGID_NOFRAMES = $00000044;
+  TAGID_NOSCRIPT = $00000045;
+  TAGID_OBJECT = $00000046;
+  TAGID_OL = $00000047;
+  TAGID_OPTION = $00000048;
+  TAGID_P = $00000049;
+  TAGID_PARAM = $0000004A;
+  TAGID_PLAINTEXT = $0000004B;
+  TAGID_PRE = $0000004C;
+  TAGID_Q = $0000004D;
+  TAGID_RP = $0000004E;
+  TAGID_RT = $0000004F;
+  TAGID_RUBY = $00000050;
+  TAGID_S = $00000051;
+  TAGID_SAMP = $00000052;
+  TAGID_SCRIPT = $00000053;
+  TAGID_SELECT = $00000054;
+  TAGID_SMALL = $00000055;
+  TAGID_SPAN = $00000056;
+  TAGID_STRIKE = $00000057;
+  TAGID_STRONG = $00000058;
+  TAGID_STYLE = $00000059;
+  TAGID_SUB = $0000005A;
+  TAGID_SUP = $0000005B;
+  TAGID_TABLE = $0000005C;
+  TAGID_TBODY = $0000005D;
+  TAGID_TC = $0000005E;
+  TAGID_TD = $0000005F;
+  TAGID_TEXTAREA = $00000060;
+  TAGID_TFOOT = $00000061;
+  TAGID_TH = $00000062;
+  TAGID_THEAD = $00000063;
+  TAGID_TITLE = $00000064;
+  TAGID_TR = $00000065;
+  TAGID_TT = $00000066;
+  TAGID_U = $00000067;
+  TAGID_UL = $00000068;
+  TAGID_VAR = $00000069;
+  TAGID_WBR = $0000006A;
+  TAGID_XMP = $0000006B;
+  TAGID_ROOT = $0000006C;
+  TAGID_OPTGROUP = $0000006D;
+  TAGID_COUNT = $0000006E;
+  TAGID_LAST_PREDEFINED = $00002710;
+  ELEMENT_TAG_ID_Max = $7FFFFFFF;
+
+// Constants for enum _SELECTION_TYPE
+type
+  _SELECTION_TYPE = TOleEnum;
+const
+  SELECTION_TYPE_None = $00000000;
+  SELECTION_TYPE_Caret = $00000001;
+  SELECTION_TYPE_Text = $00000002;
+  SELECTION_TYPE_Control = $00000003;
+  SELECTION_TYPE_Max = $7FFFFFFF;
+
+// Constants for enum _SAVE_SEGMENTS_FLAGS
+type
+  _SAVE_SEGMENTS_FLAGS = TOleEnum;
+const
+  SAVE_SEGMENTS_NoIE4SelectionCompat = $00000001;
+  SAVE_SEGMENTS_FLAGS_Max = $7FFFFFFF;
+
+// Constants for enum _CARET_DIRECTION
+type
+  _CARET_DIRECTION = TOleEnum;
+const
+  CARET_DIRECTION_INDETERMINATE = $00000000;
+  CARET_DIRECTION_SAME = $00000001;
+  CARET_DIRECTION_BACKWARD = $00000002;
+  CARET_DIRECTION_FORWARD = $00000003;
+  CARET_DIRECTION_Max = $7FFFFFFF;
+
+// Constants for enum _LINE_DIRECTION
+type
+  _LINE_DIRECTION = TOleEnum;
+const
+  LINE_DIRECTION_RightToLeft = $00000001;
+  LINE_DIRECTION_LeftToRight = $00000002;
+  LINE_DIRECTION_Max = $7FFFFFFF;
+
+// Constants for enum _HT_OPTIONS
+type
+  _HT_OPTIONS = TOleEnum;
+const
+  HT_OPT_AllowAfterEOL = $00000001;
+  HT_OPTIONS_Max = $7FFFFFFF;
+
+// Constants for enum _HT_RESULTS
+type
+  _HT_RESULTS = TOleEnum;
+const
+  HT_RESULTS_Glyph = $00000001;
+  HT_RESULTS_Max = $7FFFFFFF;
+
+// Constants for enum _DISPLAY_MOVEUNIT
+type
+  _DISPLAY_MOVEUNIT = TOleEnum;
+const
+  DISPLAY_MOVEUNIT_PreviousLine = $00000001;
+  DISPLAY_MOVEUNIT_NextLine = $00000002;
+  DISPLAY_MOVEUNIT_CurrentLineStart = $00000003;
+  DISPLAY_MOVEUNIT_CurrentLineEnd = $00000004;
+  DISPLAY_MOVEUNIT_TopOfWindow = $00000005;
+  DISPLAY_MOVEUNIT_BottomOfWindow = $00000006;
+  DISPLAY_MOVEUNIT_Max = $7FFFFFFF;
+
+// Constants for enum _DISPLAY_GRAVITY
+type
+  _DISPLAY_GRAVITY = TOleEnum;
+const
+  DISPLAY_GRAVITY_PreviousLine = $00000001;
+  DISPLAY_GRAVITY_NextLine = $00000002;
+  DISPLAY_GRAVITY_Max = $7FFFFFFF;
+
+// Constants for enum _DISPLAY_BREAK
+type
+  _DISPLAY_BREAK = TOleEnum;
+const
+  DISPLAY_BREAK_None = $00000000;
+  DISPLAY_BREAK_Block = $00000001;
+  DISPLAY_BREAK_Break = $00000002;
+  DISPLAY_BREAK_Max = $7FFFFFFF;
+
+// Constants for enum _COORD_SYSTEM
+type
+  _COORD_SYSTEM = TOleEnum;
+const
+  COORD_SYSTEM_GLOBAL = $00000000;
+  COORD_SYSTEM_PARENT = $00000001;
+  COORD_SYSTEM_CONTAINER = $00000002;
+  COORD_SYSTEM_CONTENT = $00000003;
+  COORD_SYSTEM_FRAME = $00000004;
+  COORD_SYSTEM_Max = $7FFFFFFF;
+
+// Constants for enum _HTML_PAINTER
+type
+  _HTML_PAINTER = TOleEnum;
+const
+  HTMLPAINTER_OPAQUE = $00000001;
+  HTMLPAINTER_TRANSPARENT = $00000002;
+  HTMLPAINTER_ALPHA = $00000004;
+  HTMLPAINTER_COMPLEX = $00000008;
+  HTMLPAINTER_OVERLAY = $00000010;
+  HTMLPAINTER_HITTEST = $00000020;
+  HTMLPAINTER_SURFACE = $00000100;
+  HTMLPAINTER_3DSURFACE = $00000200;
+  HTMLPAINTER_NOBAND = $00000400;
+  HTMLPAINTER_NODC = $00001000;
+  HTMLPAINTER_NOPHYSICALCLIP = $00002000;
+  HTMLPAINTER_NOSAVEDC = $00004000;
+  HTMLPAINTER_SUPPORTS_XFORM = $00008000;
+  HTMLPAINTER_EXPAND = $00010000;
+  HTMLPAINTER_NOSCROLLBITS = $00020000;
+  HTML_PAINTER_Max = $7FFFFFFF;
+
+// Constants for enum _HTML_PAINT_ZORDER
+type
+  _HTML_PAINT_ZORDER = TOleEnum;
+const
+  HTMLPAINT_ZORDER_NONE = $00000000;
+  HTMLPAINT_ZORDER_REPLACE_ALL = $00000001;
+  HTMLPAINT_ZORDER_REPLACE_CONTENT = $00000002;
+  HTMLPAINT_ZORDER_REPLACE_BACKGROUND = $00000003;
+  HTMLPAINT_ZORDER_BELOW_CONTENT = $00000004;
+  HTMLPAINT_ZORDER_BELOW_FLOW = $00000005;
+  HTMLPAINT_ZORDER_ABOVE_FLOW = $00000006;
+  HTMLPAINT_ZORDER_ABOVE_CONTENT = $00000007;
+  HTMLPAINT_ZORDER_WINDOW_TOP = $00000008;
+  HTML_PAINT_ZORDER_Max = $7FFFFFFF;
+
+// Constants for enum _HTML_PAINT_DRAW_FLAGS
+type
+  _HTML_PAINT_DRAW_FLAGS = TOleEnum;
+const
+  HTMLPAINT_DRAW_UPDATEREGION = $00000001;
+  HTMLPAINT_DRAW_USE_XFORM = $00000002;
+  HTML_PAINT_DRAW_FLAGS_Max = $7FFFFFFF;
+
+// Constants for enum _HTML_PAINT_EVENT_FLAGS
+type
+  _HTML_PAINT_EVENT_FLAGS = TOleEnum;
+const
+  HTMLPAINT_EVENT_TARGET = $00000001;
+  HTMLPAINT_EVENT_SETCURSOR = $00000002;
+  HTML_PAINT_EVENT_FLAGS_Max = $7FFFFFFF;
+
+// Constants for enum _HTML_PAINT_DRAW_INFO_FLAGS
+type
+  _HTML_PAINT_DRAW_INFO_FLAGS = TOleEnum;
+const
+  HTMLPAINT_DRAWINFO_VIEWPORT = $00000001;
+  HTMLPAINT_DRAWINFO_UPDATEREGION = $00000002;
+  HTMLPAINT_DRAWINFO_XFORM = $00000004;
+  HTML_PAINT_DRAW_INFO_FLAGS_Max = $7FFFFFFF;
+
+// Constants for enum _HTMLDlgFlag
+type
+  _HTMLDlgFlag = TOleEnum;
+const
+  HTMLDlgFlagNo = $00000000;
+  HTMLDlgFlagOff = $00000000;
+  HTMLDlgFlag0 = $00000000;
+  HTMLDlgFlagYes = $00000001;
+  HTMLDlgFlagOn = $00000001;
+  HTMLDlgFlag1 = $00000001;
+  HTMLDlgFlagNotSet = $FFFFFFFF;
+  HTMLDlgFlag_Max = $7FFFFFFF;
+
+// Constants for enum _HTMLDlgBorder
+type
+  _HTMLDlgBorder = TOleEnum;
+const
+  HTMLDlgBorderThin = $00000000;
+  HTMLDlgBorderThick = $00040000;
+  HTMLDlgBorder_Max = $7FFFFFFF;
+
+// Constants for enum _HTMLDlgEdge
+type
+  _HTMLDlgEdge = TOleEnum;
+const
+  HTMLDlgEdgeSunken = $00000000;
+  HTMLDlgEdgeRaised = $00000010;
+  HTMLDlgEdge_Max = $7FFFFFFF;
+
+// Constants for enum _HTMLDlgCenter
+type
+  _HTMLDlgCenter = TOleEnum;
+const
+  HTMLDlgCenterNo = $00000000;
+  HTMLDlgCenterOff = $00000000;
+  HTMLDlgCenter0 = $00000000;
+  HTMLDlgCenterYes = $00000001;
+  HTMLDlgCenterOn = $00000001;
+  HTMLDlgCenter1 = $00000001;
+  HTMLDlgCenterParent = $00000001;
+  HTMLDlgCenterDesktop = $00000002;
+  HTMLDlgCenter_Max = $7FFFFFFF;
+
+// Constants for enum _HTMLAppFlag
+type
+  _HTMLAppFlag = TOleEnum;
+const
+  HTMLAppFlagNo = $00000000;
+  HTMLAppFlagOff = $00000000;
+  HTMLAppFlag0 = $00000000;
+  HTMLAppFlagYes = $00000001;
+  HTMLAppFlagOn = $00000001;
+  HTMLAppFlag1 = $00000001;
+  HTMLAppFlag_Max = $7FFFFFFF;
+
+// Constants for enum _HTMLMinimizeFlag
+type
+  _HTMLMinimizeFlag = TOleEnum;
+const
+  HTMLMinimizeFlagNo = $00000000;
+  HTMLMinimizeFlagYes = $00020000;
+  HTMLMinimizeFlag_Max = $7FFFFFFF;
+
+// Constants for enum _HTMLMaximizeFlag
+type
+  _HTMLMaximizeFlag = TOleEnum;
+const
+  HTMLMaximizeFlagNo = $00000000;
+  HTMLMaximizeFlagYes = $00010000;
+  HTMLMaximizeFlag_Max = $7FFFFFFF;
+
+// Constants for enum _HTMLCaptionFlag
+type
+  _HTMLCaptionFlag = TOleEnum;
+const
+  HTMLCaptionFlagNo = $00000000;
+  HTMLCaptionFlagYes = $00C00000;
+  HTMLCaptionFlag_Max = $7FFFFFFF;
+
+// Constants for enum _HTMLSysMenuFlag
+type
+  _HTMLSysMenuFlag = TOleEnum;
+const
+  HTMLSysMenuFlagNo = $00000000;
+  HTMLSysMenuFlagYes = $00080000;
+  HTMLSysMenuFlag_Max = $7FFFFFFF;
+
+// Constants for enum _HTMLBorder
+type
+  _HTMLBorder = TOleEnum;
+const
+  HTMLBorderNone = $00000000;
+  HTMLBorderThick = $00040000;
+  HTMLBorderDialog = $00400000;
+  HTMLBorderThin = $00800000;
+  HTMLBorder_Max = $7FFFFFFF;
+
+// Constants for enum _HTMLBorderStyle
+type
+  _HTMLBorderStyle = TOleEnum;
+const
+  HTMLBorderStyleNormal = $00000000;
+  HTMLBorderStyleRaised = $00000100;
+  HTMLBorderStyleSunken = $00000200;
+  HTMLBorderStylecombined = $00000300;
+  HTMLBorderStyleStatic = $00020000;
+  HTMLBorderStyle_Max = $7FFFFFFF;
+
+// Constants for enum _HTMLWindowState
+type
+  _HTMLWindowState = TOleEnum;
+const
+  HTMLWindowStateNormal = $00000001;
+  HTMLWindowStateMaximize = $00000003;
+  HTMLWindowStateMinimize = $00000006;
+  HTMLWindowState_Max = $7FFFFFFF;
+
+// Constants for enum _BEHAVIOR_EVENT
+type
+  _BEHAVIOR_EVENT = TOleEnum;
+const
+  BEHAVIOREVENT_FIRST = $00000000;
+  BEHAVIOREVENT_CONTENTREADY = $00000000;
+  BEHAVIOREVENT_DOCUMENTREADY = $00000001;
+  BEHAVIOREVENT_APPLYSTYLE = $00000002;
+  BEHAVIOREVENT_DOCUMENTCONTEXTCHANGE = $00000003;
+  BEHAVIOREVENT_CONTENTSAVE = $00000004;
+  BEHAVIOREVENT_LAST = $00000004;
+  BEHAVIOR_EVENT_Max = $7FFFFFFF;
+
+// Constants for enum _BEHAVIOR_EVENT_FLAGS
+type
+  _BEHAVIOR_EVENT_FLAGS = TOleEnum;
+const
+  BEHAVIOREVENTFLAGS_BUBBLE = $00000001;
+  BEHAVIOREVENTFLAGS_STANDARDADDITIVE = $00000002;
+  BEHAVIOR_EVENT_FLAGS_Max = $7FFFFFFF;
+
+// Constants for enum _BEHAVIOR_RENDER_INFO
+type
+  _BEHAVIOR_RENDER_INFO = TOleEnum;
+const
+  BEHAVIORRENDERINFO_BEFOREBACKGROUND = $00000001;
+  BEHAVIORRENDERINFO_AFTERBACKGROUND = $00000002;
+  BEHAVIORRENDERINFO_BEFORECONTENT = $00000004;
+  BEHAVIORRENDERINFO_AFTERCONTENT = $00000008;
+  BEHAVIORRENDERINFO_AFTERFOREGROUND = $00000020;
+  BEHAVIORRENDERINFO_ABOVECONTENT = $00000028;
+  BEHAVIORRENDERINFO_ALLLAYERS = $000000FF;
+  BEHAVIORRENDERINFO_DISABLEBACKGROUND = $00000100;
+  BEHAVIORRENDERINFO_DISABLENEGATIVEZ = $00000200;
+  BEHAVIORRENDERINFO_DISABLECONTENT = $00000400;
+  BEHAVIORRENDERINFO_DISABLEPOSITIVEZ = $00000800;
+  BEHAVIORRENDERINFO_DISABLEALLLAYERS = $00000F00;
+  BEHAVIORRENDERINFO_HITTESTING = $00001000;
+  BEHAVIORRENDERINFO_SURFACE = $00100000;
+  BEHAVIORRENDERINFO_3DSURFACE = $00200000;
+  BEHAVIOR_RENDER_INFO_Max = $7FFFFFFF;
+
+// Constants for enum _BEHAVIOR_RELATION
+type
+  _BEHAVIOR_RELATION = TOleEnum;
+const
+  BEHAVIOR_FIRSTRELATION = $00000000;
+  BEHAVIOR_SAMEELEMENT = $00000000;
+  BEHAVIOR_PARENT = $00000001;
+  BEHAVIOR_CHILD = $00000002;
+  BEHAVIOR_SIBLING = $00000003;
+  BEHAVIOR_LASTRELATION = $00000003;
+  BEHAVIOR_RELATION_Max = $7FFFFFFF;
+
+// Constants for enum _BEHAVIOR_LAYOUT_INFO
+type
+  _BEHAVIOR_LAYOUT_INFO = TOleEnum;
+const
+  BEHAVIORLAYOUTINFO_FULLDELEGATION = $00000001;
+  BEHAVIORLAYOUTINFO_MODIFYNATURAL = $00000002;
+  BEHAVIORLAYOUTINFO_MAPSIZE = $00000004;
+  BEHAVIOR_LAYOUT_INFO_Max = $7FFFFFFF;
+
+// Constants for enum _BEHAVIOR_LAYOUT_MODE
+type
+  _BEHAVIOR_LAYOUT_MODE = TOleEnum;
+const
+  BEHAVIORLAYOUTMODE_NATURAL = $00000001;
+  BEHAVIORLAYOUTMODE_MINWIDTH = $00000002;
+  BEHAVIORLAYOUTMODE_MAXWIDTH = $00000004;
+  BEHAVIORLAYOUTMODE_MEDIA_RESOLUTION = $00004000;
+  BEHAVIORLAYOUTMODE_FINAL_PERCENT = $00008000;
+  BEHAVIOR_LAYOUT_MODE_Max = $7FFFFFFF;
+
+// Constants for enum _ELEMENTDESCRIPTOR_FLAGS
+type
+  _ELEMENTDESCRIPTOR_FLAGS = TOleEnum;
+const
+  ELEMENTDESCRIPTORFLAGS_LITERAL = $00000001;
+  ELEMENTDESCRIPTORFLAGS_NESTED_LITERAL = $00000002;
+  ELEMENTDESCRIPTOR_FLAGS_Max = $7FFFFFFF;
+
+// Constants for enum _ELEMENTNAMESPACE_FLAGS
+type
+  _ELEMENTNAMESPACE_FLAGS = TOleEnum;
+const
+  ELEMENTNAMESPACEFLAGS_ALLOWANYTAG = $00000001;
+  ELEMENTNAMESPACEFLAGS_QUERYFORUNKNOWNTAGS = $00000002;
+  ELEMENTNAMESPACE_FLAGS_Max = $7FFFFFFF;
+
+type
+// *********************************************************************//
+// Forward declaration of types defined in TypeLibrary
+// *********************************************************************//
+  IHTMLEventObj = interface;
+  IHTMLEventObjDisp = dispinterface;
+  IHTMLElement = interface;
+  IHTMLElementDisp = dispinterface;
+  IHTMLStyle = interface;
+  IHTMLStyleDisp = dispinterface;
+  IHTMLFiltersCollection = interface;
+  IHTMLFiltersCollectionDisp = dispinterface;
+  IElementBehaviorSite = interface;
+  IElementBehavior = interface;
+  IElementBehaviorFactory = interface;
+  IElementBehaviorSiteOM = interface;
+  IElementBehaviorRender = interface;
+  IElementBehaviorSiteRender = interface;
+  IHTMLStyle2 = interface;
+  IHTMLStyle2Disp = dispinterface;
+  IHTMLStyle3 = interface;
+  IHTMLStyle3Disp = dispinterface;
+  IHTMLStyle4 = interface;
+  IHTMLStyle4Disp = dispinterface;
+  IHTMLRuleStyle = interface;
+  IHTMLRuleStyleDisp = dispinterface;
+  IHTMLRuleStyle2 = interface;
+  IHTMLRuleStyle2Disp = dispinterface;
+  IHTMLRuleStyle3 = interface;
+  IHTMLRuleStyle3Disp = dispinterface;
+  IHTMLRuleStyle4 = interface;
+  IHTMLRuleStyle4Disp = dispinterface;
+  DispHTMLStyle = dispinterface;
+  DispHTMLRuleStyle = dispinterface;
+  IHTMLRenderStyle = interface;
+  IHTMLRenderStyleDisp = dispinterface;
+  DispHTMLRenderStyle = dispinterface;
+  IHTMLCurrentStyle = interface;
+  IHTMLCurrentStyleDisp = dispinterface;
+  IHTMLCurrentStyle2 = interface;
+  IHTMLCurrentStyle2Disp = dispinterface;
+  IHTMLCurrentStyle3 = interface;
+  IHTMLCurrentStyle3Disp = dispinterface;
+  DispHTMLCurrentStyle = dispinterface;
+  IHTMLRect = interface;
+  IHTMLRectDisp = dispinterface;
+  IHTMLRectCollection = interface;
+  IHTMLRectCollectionDisp = dispinterface;
+  IHTMLDOMNode = interface;
+  IHTMLDOMNodeDisp = dispinterface;
+  IHTMLDOMNode2 = interface;
+  IHTMLDOMNode2Disp = dispinterface;
+  IHTMLDOMAttribute = interface;
+  IHTMLDOMAttributeDisp = dispinterface;
+  IHTMLDOMAttribute2 = interface;
+  IHTMLDOMAttribute2Disp = dispinterface;
+  IHTMLDOMTextNode = interface;
+  IHTMLDOMTextNodeDisp = dispinterface;
+  IHTMLDOMTextNode2 = interface;
+  IHTMLDOMTextNode2Disp = dispinterface;
+  IHTMLDOMImplementation = interface;
+  IHTMLDOMImplementationDisp = dispinterface;
+  DispHTMLDOMAttribute = dispinterface;
+  DispHTMLDOMTextNode = dispinterface;
+  DispHTMLDOMImplementation = dispinterface;
+  IHTMLAttributeCollection = interface;
+  IHTMLAttributeCollectionDisp = dispinterface;
+  IHTMLAttributeCollection2 = interface;
+  IHTMLAttributeCollection2Disp = dispinterface;
+  IHTMLDOMChildrenCollection = interface;
+  IHTMLDOMChildrenCollectionDisp = dispinterface;
+  DispHTMLAttributeCollection = dispinterface;
+  DispDOMChildrenCollection = dispinterface;
+  HTMLElementEvents2 = dispinterface;
+  HTMLElementEvents = dispinterface;
+  IHTMLElementCollection = interface;
+  IHTMLElementCollectionDisp = dispinterface;
+  IHTMLElement2 = interface;
+  IHTMLElement2Disp = dispinterface;
+  IHTMLElement3 = interface;
+  IHTMLElement3Disp = dispinterface;
+  IHTMLElement4 = interface;
+  IHTMLElement4Disp = dispinterface;
+  IHTMLElementRender = interface;
+  IHTMLUniqueName = interface;
+  IHTMLUniqueNameDisp = dispinterface;
+  IHTMLDatabinding = interface;
+  IHTMLDatabindingDisp = dispinterface;
+  IHTMLDocument = interface;
+  IHTMLDocumentDisp = dispinterface;
+  IHTMLElementDefaults = interface;
+  IHTMLElementDefaultsDisp = dispinterface;
+  DispHTMLDefaults = dispinterface;
+  IHTCDefaultDispatch = interface;
+  IHTCDefaultDispatchDisp = dispinterface;
+  IHTCPropertyBehavior = interface;
+  IHTCPropertyBehaviorDisp = dispinterface;
+  IHTCMethodBehavior = interface;
+  IHTCMethodBehaviorDisp = dispinterface;
+  IHTCEventBehavior = interface;
+  IHTCEventBehaviorDisp = dispinterface;
+  IHTCAttachBehavior = interface;
+  IHTCAttachBehaviorDisp = dispinterface;
+  IHTCAttachBehavior2 = interface;
+  IHTCAttachBehavior2Disp = dispinterface;
+  IHTCDescBehavior = interface;
+  IHTCDescBehaviorDisp = dispinterface;
+  DispHTCDefaultDispatch = dispinterface;
+  DispHTCPropertyBehavior = dispinterface;
+  DispHTCMethodBehavior = dispinterface;
+  DispHTCEventBehavior = dispinterface;
+  DispHTCAttachBehavior = dispinterface;
+  DispHTCDescBehavior = dispinterface;
+  IHTMLUrnCollection = interface;
+  IHTMLUrnCollectionDisp = dispinterface;
+  IHTMLGenericElement = interface;
+  IHTMLGenericElementDisp = dispinterface;
+  DispHTMLGenericElement = dispinterface;
+  IHTMLStyleSheetRule = interface;
+  IHTMLStyleSheetRuleDisp = dispinterface;
+  IHTMLStyleSheetRulesCollection = interface;
+  IHTMLStyleSheetRulesCollectionDisp = dispinterface;
+  IHTMLStyleSheetPage = interface;
+  IHTMLStyleSheetPageDisp = dispinterface;
+  IHTMLStyleSheetPagesCollection = interface;
+  IHTMLStyleSheetPagesCollectionDisp = dispinterface;
+  IHTMLStyleSheetsCollection = interface;
+  IHTMLStyleSheetsCollectionDisp = dispinterface;
+  IHTMLStyleSheet = interface;
+  IHTMLStyleSheetDisp = dispinterface;
+  IHTMLStyleSheet2 = interface;
+  IHTMLStyleSheet2Disp = dispinterface;
+  DispHTMLStyleSheet = dispinterface;
+  HTMLLinkElementEvents2 = dispinterface;
+  HTMLLinkElementEvents = dispinterface;
+  IHTMLLinkElement = interface;
+  IHTMLLinkElementDisp = dispinterface;
+  IHTMLLinkElement2 = interface;
+  IHTMLLinkElement2Disp = dispinterface;
+  IHTMLLinkElement3 = interface;
+  IHTMLLinkElement3Disp = dispinterface;
+  DispHTMLLinkElement = dispinterface;
+  IHTMLTxtRange = interface;
+  IHTMLTxtRangeDisp = dispinterface;
+  IHTMLTextRangeMetrics = interface;
+  IHTMLTextRangeMetricsDisp = dispinterface;
+  IHTMLTextRangeMetrics2 = interface;
+  IHTMLTextRangeMetrics2Disp = dispinterface;
+  IHTMLTxtRangeCollection = interface;
+  IHTMLTxtRangeCollectionDisp = dispinterface;
+  HTMLFormElementEvents2 = dispinterface;
+  HTMLFormElementEvents = dispinterface;
+  IHTMLFormElement = interface;
+  IHTMLFormElementDisp = dispinterface;
+  IHTMLFormElement2 = interface;
+  IHTMLFormElement2Disp = dispinterface;
+  IHTMLFormElement3 = interface;
+  IHTMLFormElement3Disp = dispinterface;
+  IHTMLSubmitData = interface;
+  IHTMLSubmitDataDisp = dispinterface;
+  DispHTMLFormElement = dispinterface;
+  HTMLControlElementEvents2 = dispinterface;
+  HTMLControlElementEvents = dispinterface;
+  IHTMLControlElement = interface;
+  IHTMLControlElementDisp = dispinterface;
+  IHTMLTextElement = interface;
+  IHTMLTextElementDisp = dispinterface;
+  DispHTMLTextElement = dispinterface;
+  HTMLTextContainerEvents2 = dispinterface;
+  HTMLTextContainerEvents = dispinterface;
+  IHTMLTextContainer = interface;
+  IHTMLTextContainerDisp = dispinterface;
+  IHTMLControlRange = interface;
+  IHTMLControlRangeDisp = dispinterface;
+  IHTMLControlRange2 = interface;
+  IHTMLControlRange2Disp = dispinterface;
+  HTMLImgEvents2 = dispinterface;
+  HTMLImgEvents = dispinterface;
+  IHTMLImgElement = interface;
+  IHTMLImgElementDisp = dispinterface;
+  IHTMLImgElement2 = interface;
+  IHTMLImgElement2Disp = dispinterface;
+  IHTMLImageElementFactory = interface;
+  IHTMLImageElementFactoryDisp = dispinterface;
+  DispHTMLImg = dispinterface;
+  IHTMLBodyElement = interface;
+  IHTMLBodyElementDisp = dispinterface;
+  IHTMLBodyElement2 = interface;
+  IHTMLBodyElement2Disp = dispinterface;
+  DispHTMLBody = dispinterface;
+  IHTMLFontElement = interface;
+  IHTMLFontElementDisp = dispinterface;
+  DispHTMLFontElement = dispinterface;
+  HTMLAnchorEvents2 = dispinterface;
+  HTMLAnchorEvents = dispinterface;
+  IHTMLAnchorElement = interface;
+  IHTMLAnchorElementDisp = dispinterface;
+  IHTMLAnchorElement2 = interface;
+  IHTMLAnchorElement2Disp = dispinterface;
+  DispHTMLAnchorElement = dispinterface;
+  HTMLLabelEvents2 = dispinterface;
+  HTMLLabelEvents = dispinterface;
+  IHTMLLabelElement = interface;
+  IHTMLLabelElementDisp = dispinterface;
+  IHTMLLabelElement2 = interface;
+  IHTMLLabelElement2Disp = dispinterface;
+  DispHTMLLabelElement = dispinterface;
+  IHTMLListElement = interface;
+  IHTMLListElementDisp = dispinterface;
+  IHTMLListElement2 = interface;
+  IHTMLListElement2Disp = dispinterface;
+  DispHTMLListElement = dispinterface;
+  IHTMLUListElement = interface;
+  IHTMLUListElementDisp = dispinterface;
+  DispHTMLUListElement = dispinterface;
+  IHTMLOListElement = interface;
+  IHTMLOListElementDisp = dispinterface;
+  DispHTMLOListElement = dispinterface;
+  IHTMLLIElement = interface;
+  IHTMLLIElementDisp = dispinterface;
+  DispHTMLLIElement = dispinterface;
+  IHTMLBlockElement = interface;
+  IHTMLBlockElementDisp = dispinterface;
+  IHTMLBlockElement2 = interface;
+  IHTMLBlockElement2Disp = dispinterface;
+  DispHTMLBlockElement = dispinterface;
+  IHTMLDivElement = interface;
+  IHTMLDivElementDisp = dispinterface;
+  DispHTMLDivElement = dispinterface;
+  IHTMLDDElement = interface;
+  IHTMLDDElementDisp = dispinterface;
+  DispHTMLDDElement = dispinterface;
+  IHTMLDTElement = interface;
+  IHTMLDTElementDisp = dispinterface;
+  DispHTMLDTElement = dispinterface;
+  IHTMLBRElement = interface;
+  IHTMLBRElementDisp = dispinterface;
+  DispHTMLBRElement = dispinterface;
+  IHTMLDListElement = interface;
+  IHTMLDListElementDisp = dispinterface;
+  DispHTMLDListElement = dispinterface;
+  IHTMLHRElement = interface;
+  IHTMLHRElementDisp = dispinterface;
+  DispHTMLHRElement = dispinterface;
+  IHTMLParaElement = interface;
+  IHTMLParaElementDisp = dispinterface;
+  DispHTMLParaElement = dispinterface;
+  IHTMLElementCollection2 = interface;
+  IHTMLElementCollection2Disp = dispinterface;
+  IHTMLElementCollection3 = interface;
+  IHTMLElementCollection3Disp = dispinterface;
+  DispHTMLElementCollection = dispinterface;
+  IHTMLHeaderElement = interface;
+  IHTMLHeaderElementDisp = dispinterface;
+  DispHTMLHeaderElement = dispinterface;
+  HTMLSelectElementEvents2 = dispinterface;
+  HTMLSelectElementEvents = dispinterface;
+  IHTMLSelectElement = interface;
+  IHTMLSelectElementDisp = dispinterface;
+  IHTMLSelectElement2 = interface;
+  IHTMLSelectElement2Disp = dispinterface;
+  IHTMLSelectElement4 = interface;
+  IHTMLSelectElement4Disp = dispinterface;
+  DispHTMLSelectElement = dispinterface;
+  IHTMLSelectionObject = interface;
+  IHTMLSelectionObjectDisp = dispinterface;
+  IHTMLSelectionObject2 = interface;
+  IHTMLSelectionObject2Disp = dispinterface;
+  IHTMLOptionElement = interface;
+  IHTMLOptionElementDisp = dispinterface;
+  IHTMLOptionElement3 = interface;
+  IHTMLOptionElement3Disp = dispinterface;
+  IHTMLOptionElementFactory = interface;
+  IHTMLOptionElementFactoryDisp = dispinterface;
+  DispHTMLOptionElement = dispinterface;
+  HTMLButtonElementEvents2 = dispinterface;
+  HTMLButtonElementEvents = dispinterface;
+  HTMLInputTextElementEvents2 = dispinterface;
+  HTMLOptionButtonElementEvents2 = dispinterface;
+  HTMLInputFileElementEvents2 = dispinterface;
+  HTMLInputImageEvents2 = dispinterface;
+  HTMLInputTextElementEvents = dispinterface;
+  HTMLOptionButtonElementEvents = dispinterface;
+  HTMLInputFileElementEvents = dispinterface;
+  HTMLInputImageEvents = dispinterface;
+  IHTMLInputElement = interface;
+  IHTMLInputElementDisp = dispinterface;
+  IHTMLInputElement2 = interface;
+  IHTMLInputElement2Disp = dispinterface;
+  IHTMLInputButtonElement = interface;
+  IHTMLInputButtonElementDisp = dispinterface;
+  IHTMLInputHiddenElement = interface;
+  IHTMLInputHiddenElementDisp = dispinterface;
+  IHTMLInputTextElement = interface;
+  IHTMLInputTextElementDisp = dispinterface;
+  IHTMLInputFileElement = interface;
+  IHTMLInputFileElementDisp = dispinterface;
+  IHTMLOptionButtonElement = interface;
+  IHTMLOptionButtonElementDisp = dispinterface;
+  IHTMLInputImage = interface;
+  IHTMLInputImageDisp = dispinterface;
+  DispHTMLInputElement = dispinterface;
+  IHTMLTextAreaElement = interface;
+  IHTMLTextAreaElementDisp = dispinterface;
+  DispHTMLTextAreaElement = dispinterface;
+  DispHTMLRichtextElement = dispinterface;
+  IHTMLButtonElement = interface;
+  IHTMLButtonElementDisp = dispinterface;
+  DispHTMLButtonElement = dispinterface;
+  HTMLMarqueeElementEvents2 = dispinterface;
+  HTMLMarqueeElementEvents = dispinterface;
+  IHTMLMarqueeElement = interface;
+  IHTMLMarqueeElementDisp = dispinterface;
+  DispHTMLMarqueeElement = dispinterface;
+  IHTMLHtmlElement = interface;
+  IHTMLHtmlElementDisp = dispinterface;
+  IHTMLHeadElement = interface;
+  IHTMLHeadElementDisp = dispinterface;
+  IHTMLTitleElement = interface;
+  IHTMLTitleElementDisp = dispinterface;
+  IHTMLMetaElement = interface;
+  IHTMLMetaElementDisp = dispinterface;
+  IHTMLMetaElement2 = interface;
+  IHTMLMetaElement2Disp = dispinterface;
+  IHTMLBaseElement = interface;
+  IHTMLBaseElementDisp = dispinterface;
+  IHTMLIsIndexElement = interface;
+  IHTMLIsIndexElementDisp = dispinterface;
+  IHTMLIsIndexElement2 = interface;
+  IHTMLIsIndexElement2Disp = dispinterface;
+  IHTMLNextIdElement = interface;
+  IHTMLNextIdElementDisp = dispinterface;
+  DispHTMLHtmlElement = dispinterface;
+  DispHTMLHeadElement = dispinterface;
+  DispHTMLTitleElement = dispinterface;
+  DispHTMLMetaElement = dispinterface;
+  DispHTMLBaseElement = dispinterface;
+  DispHTMLIsIndexElement = dispinterface;
+  DispHTMLNextIdElement = dispinterface;
+  IHTMLBaseFontElement = interface;
+  IHTMLBaseFontElementDisp = dispinterface;
+  DispHTMLBaseFontElement = dispinterface;
+  IHTMLUnknownElement = interface;
+  IHTMLUnknownElementDisp = dispinterface;
+  DispHTMLUnknownElement = dispinterface;
+  IOmHistory = interface;
+  IOmHistoryDisp = dispinterface;
+  IHTMLMimeTypesCollection = interface;
+  IHTMLMimeTypesCollectionDisp = dispinterface;
+  IHTMLPluginsCollection = interface;
+  IHTMLPluginsCollectionDisp = dispinterface;
+  IHTMLOpsProfile = interface;
+  IHTMLOpsProfileDisp = dispinterface;
+  IOmNavigator = interface;
+  IOmNavigatorDisp = dispinterface;
+  IHTMLLocation = interface;
+  IHTMLLocationDisp = dispinterface;
+  IHTMLBookmarkCollection = interface;
+  IHTMLBookmarkCollectionDisp = dispinterface;
+  IHTMLDataTransfer = interface;
+  IHTMLDataTransferDisp = dispinterface;
+  IHTMLEventObj2 = interface;
+  IHTMLEventObj2Disp = dispinterface;
+  IHTMLEventObj3 = interface;
+  IHTMLEventObj3Disp = dispinterface;
+  IHTMLEventObj4 = interface;
+  IHTMLEventObj4Disp = dispinterface;
+  DispCEventObj = dispinterface;
+  HTMLWindowEvents2 = dispinterface;
+  HTMLWindowEvents = dispinterface;
+  IHTMLDocument2 = interface;
+  IHTMLDocument2Disp = dispinterface;
+  IHTMLFramesCollection2 = interface;
+  IHTMLFramesCollection2Disp = dispinterface;
+  IHTMLWindow2 = interface;
+  IHTMLWindow2Disp = dispinterface;
+  IHTMLScreen = interface;
+  IHTMLScreenDisp = dispinterface;
+  IHTMLWindow3 = interface;
+  IHTMLWindow3Disp = dispinterface;
+  IHTMLFrameBase = interface;
+  IHTMLFrameBaseDisp = dispinterface;
+  IHTMLScreen2 = interface;
+  IHTMLScreen2Disp = dispinterface;
+  IHTMLWindow4 = interface;
+  IHTMLWindow4Disp = dispinterface;
+  DispHTMLScreen = dispinterface;
+  DispHTMLWindow2 = dispinterface;
+  DispHTMLWindowProxy = dispinterface;
+  HTMLDocumentEvents2 = dispinterface;
+  HTMLDocumentEvents = dispinterface;
+  IHTMLDocument3 = interface;
+  IHTMLDocument3Disp = dispinterface;
+  IHTMLDocument4 = interface;
+  IHTMLDocument4Disp = dispinterface;
+  IHTMLDocument5 = interface;
+  IHTMLDocument5Disp = dispinterface;
+  DispHTMLDocument = dispinterface;
+  DWebBridgeEvents = dispinterface;
+  IWebBridge = interface;
+  IWebBridgeDisp = dispinterface;
+  IWBScriptControl = interface;
+  IWBScriptControlDisp = dispinterface;
+  IHTMLEmbedElement = interface;
+  IHTMLEmbedElementDisp = dispinterface;
+  DispHTMLEmbed = dispinterface;
+  HTMLMapEvents2 = dispinterface;
+  HTMLMapEvents = dispinterface;
+  IHTMLAreasCollection = interface;
+  IHTMLAreasCollectionDisp = dispinterface;
+  IHTMLAreasCollection2 = interface;
+  IHTMLAreasCollection2Disp = dispinterface;
+  IHTMLAreasCollection3 = interface;
+  IHTMLAreasCollection3Disp = dispinterface;
+  IHTMLMapElement = interface;
+  IHTMLMapElementDisp = dispinterface;
+  DispHTMLAreasCollection = dispinterface;
+  DispHTMLMapElement = dispinterface;
+  HTMLAreaEvents2 = dispinterface;
+  HTMLAreaEvents = dispinterface;
+  IHTMLAreaElement = interface;
+  IHTMLAreaElementDisp = dispinterface;
+  DispHTMLAreaElement = dispinterface;
+  IHTMLTableCaption = interface;
+  IHTMLTableCaptionDisp = dispinterface;
+  DispHTMLTableCaption = dispinterface;
+  IHTMLCommentElement = interface;
+  IHTMLCommentElementDisp = dispinterface;
+  IHTMLCommentElement2 = interface;
+  IHTMLCommentElement2Disp = dispinterface;
+  DispHTMLCommentElement = dispinterface;
+  IHTMLPhraseElement = interface;
+  IHTMLPhraseElementDisp = dispinterface;
+  IHTMLPhraseElement2 = interface;
+  IHTMLPhraseElement2Disp = dispinterface;
+  IHTMLSpanElement = interface;
+  IHTMLSpanElementDisp = dispinterface;
+  DispHTMLPhraseElement = dispinterface;
+  DispHTMLSpanElement = dispinterface;
+  HTMLTableEvents2 = dispinterface;
+  HTMLTableEvents = dispinterface;
+  IHTMLTableSection = interface;
+  IHTMLTableSectionDisp = dispinterface;
+  IHTMLTable = interface;
+  IHTMLTableDisp = dispinterface;
+  IHTMLTable2 = interface;
+  IHTMLTable2Disp = dispinterface;
+  IHTMLTable3 = interface;
+  IHTMLTable3Disp = dispinterface;
+  IHTMLTableCol = interface;
+  IHTMLTableColDisp = dispinterface;
+  IHTMLTableCol2 = interface;
+  IHTMLTableCol2Disp = dispinterface;
+  IHTMLTableSection2 = interface;
+  IHTMLTableSection2Disp = dispinterface;
+  IHTMLTableSection3 = interface;
+  IHTMLTableSection3Disp = dispinterface;
+  IHTMLTableRow = interface;
+  IHTMLTableRowDisp = dispinterface;
+  IHTMLTableRow2 = interface;
+  IHTMLTableRow2Disp = dispinterface;
+  IHTMLTableRow3 = interface;
+  IHTMLTableRow3Disp = dispinterface;
+  IHTMLTableRowMetrics = interface;
+  IHTMLTableRowMetricsDisp = dispinterface;
+  IHTMLTableCell = interface;
+  IHTMLTableCellDisp = dispinterface;
+  IHTMLTableCell2 = interface;
+  IHTMLTableCell2Disp = dispinterface;
+  DispHTMLTable = dispinterface;
+  DispHTMLTableCol = dispinterface;
+  DispHTMLTableSection = dispinterface;
+  DispHTMLTableRow = dispinterface;
+  DispHTMLTableCell = dispinterface;
+  HTMLScriptEvents2 = dispinterface;
+  HTMLScriptEvents = dispinterface;
+  IHTMLScriptElement = interface;
+  IHTMLScriptElementDisp = dispinterface;
+  IHTMLScriptElement2 = interface;
+  IHTMLScriptElement2Disp = dispinterface;
+  DispHTMLScriptElement = dispinterface;
+  IHTMLNoShowElement = interface;
+  IHTMLNoShowElementDisp = dispinterface;
+  DispHTMLNoShowElement = dispinterface;
+  HTMLObjectElementEvents2 = dispinterface;
+  HTMLObjectElementEvents = dispinterface;
+  IHTMLObjectElement = interface;
+  IHTMLObjectElementDisp = dispinterface;
+  IHTMLObjectElement2 = interface;
+  IHTMLObjectElement2Disp = dispinterface;
+  IHTMLObjectElement3 = interface;
+  IHTMLObjectElement3Disp = dispinterface;
+  IHTMLParamElement = interface;
+  IHTMLParamElementDisp = dispinterface;
+  DispHTMLObjectElement = dispinterface;
+  DispHTMLParamElement = dispinterface;
+  HTMLFrameSiteEvents2 = dispinterface;
+  HTMLFrameSiteEvents = dispinterface;
+  IHTMLFrameBase2 = interface;
+  IHTMLFrameBase2Disp = dispinterface;
+  IHTMLFrameBase3 = interface;
+  IHTMLFrameBase3Disp = dispinterface;
+  DispHTMLFrameBase = dispinterface;
+  IHTMLFrameElement = interface;
+  IHTMLFrameElementDisp = dispinterface;
+  IHTMLFrameElement2 = interface;
+  IHTMLFrameElement2Disp = dispinterface;
+  DispHTMLFrameElement = dispinterface;
+  IHTMLIFrameElement = interface;
+  IHTMLIFrameElementDisp = dispinterface;
+  IHTMLIFrameElement2 = interface;
+  IHTMLIFrameElement2Disp = dispinterface;
+  DispHTMLIFrame = dispinterface;
+  IHTMLDivPosition = interface;
+  IHTMLDivPositionDisp = dispinterface;
+  IHTMLFieldSetElement = interface;
+  IHTMLFieldSetElementDisp = dispinterface;
+  IHTMLFieldSetElement2 = interface;
+  IHTMLFieldSetElement2Disp = dispinterface;
+  IHTMLLegendElement = interface;
+  IHTMLLegendElementDisp = dispinterface;
+  IHTMLLegendElement2 = interface;
+  IHTMLLegendElement2Disp = dispinterface;
+  DispHTMLDivPosition = dispinterface;
+  DispHTMLFieldSetElement = dispinterface;
+  DispHTMLLegendElement = dispinterface;
+  IHTMLSpanFlow = interface;
+  IHTMLSpanFlowDisp = dispinterface;
+  DispHTMLSpanFlow = dispinterface;
+  IHTMLFrameSetElement = interface;
+  IHTMLFrameSetElementDisp = dispinterface;
+  IHTMLFrameSetElement2 = interface;
+  IHTMLFrameSetElement2Disp = dispinterface;
+  DispHTMLFrameSetSite = dispinterface;
+  IHTMLBGsound = interface;
+  IHTMLBGsoundDisp = dispinterface;
+  DispHTMLBGsound = dispinterface;
+  IHTMLFontNamesCollection = interface;
+  IHTMLFontNamesCollectionDisp = dispinterface;
+  IHTMLFontSizesCollection = interface;
+  IHTMLFontSizesCollectionDisp = dispinterface;
+  IHTMLOptionsHolder = interface;
+  IHTMLOptionsHolderDisp = dispinterface;
+  HTMLStyleElementEvents2 = dispinterface;
+  HTMLStyleElementEvents = dispinterface;
+  IHTMLStyleElement = interface;
+  IHTMLStyleElementDisp = dispinterface;
+  DispHTMLStyleElement = dispinterface;
+  IHTMLStyleFontFace = interface;
+  IHTMLStyleFontFaceDisp = dispinterface;
+  ICSSFilterSite = interface;
+  IMarkupPointer = interface;
+  IMarkupContainer = interface;
+  IMarkupContainer2 = interface;
+  IHTMLChangeSink = interface;
+  IHTMLChangeLog = interface;
+  IActiveIMMApp = interface;
+  IEnumRegisterWordA = interface;
+  IEnumRegisterWordW = interface;
+  IEnumInputContext = interface;
+  ISegmentList = interface;
+  ISegmentListIterator = interface;
+  ISegment = interface;
+  IHTMLCaret = interface;
+  IDisplayPointer = interface;
+  ILineInfo = interface;
+  IElementSegment = interface;
+  IHighlightSegment = interface;
+  IHighlightRenderingServices = interface;
+  IDisplayServices = interface;
+  IHTMLComputedStyle = interface;
+  IHtmlDlgSafeHelper = interface;
+  IBlockFormats = interface;
+  IFontNames = interface;
+  ICSSFilter = interface;
+  ISecureUrlHost = interface;
+  IMarkupServices = interface;
+  IMarkupServices2 = interface;
+  IHTMLChangePlayback = interface;
+  IMarkupPointer2 = interface;
+  IMarkupTextFrags = interface;
+  IXMLGenericParse = interface;
+  IHTMLEditHost = interface;
+  IHTMLEditHost2 = interface;
+  ISequenceNumber = interface;
+  IIMEServices = interface;
+  ISelectionServicesListener = interface;
+  ISelectionServices = interface;
+  IHTMLEditDesigner = interface;
+  IHTMLEditServices = interface;
+  IHTMLEditServices2 = interface;
+  HTMLNamespaceEvents = dispinterface;
+  IHTMLNamespace = interface;
+  IHTMLNamespaceDisp = dispinterface;
+  IHTMLNamespaceCollection = interface;
+  IHTMLNamespaceCollectionDisp = dispinterface;
+  IHTMLPainter = interface;
+  IHTMLPaintSite = interface;
+  IHTMLPainterEventInfo = interface;
+  IHTMLPainterOverlay = interface;
+  IHTMLIPrintCollection = interface;
+  IHTMLIPrintCollectionDisp = dispinterface;
+  IEnumPrivacyRecords = interface;
+  IHTMLDialog = interface;
+  IHTMLDialogDisp = dispinterface;
+  IHTMLDialog2 = interface;
+  IHTMLDialog2Disp = dispinterface;
+  IHTMLDialog3 = interface;
+  IHTMLDialog3Disp = dispinterface;
+  IHTMLModelessInit = interface;
+  IHTMLModelessInitDisp = dispinterface;
+  IHTMLPopup = interface;
+  IHTMLPopupDisp = dispinterface;
+  DispHTMLPopup = dispinterface;
+  IHTMLAppBehavior = interface;
+  IHTMLAppBehaviorDisp = dispinterface;
+  IHTMLAppBehavior2 = interface;
+  IHTMLAppBehavior2Disp = dispinterface;
+  IHTMLAppBehavior3 = interface;
+  IHTMLAppBehavior3Disp = dispinterface;
+  DispHTMLAppBehavior = dispinterface;
+  DispIHTMLInputButtonElement = dispinterface;
+  DispIHTMLInputTextElement = dispinterface;
+  DispIHTMLInputFileElement = dispinterface;
+  DispIHTMLOptionButtonElement = dispinterface;
+  DispIHTMLInputImage = dispinterface;
+  IElementNamespace = interface;
+  IElementNamespaceTable = interface;
+  IElementNamespaceFactory = interface;
+  IElementNamespaceFactory2 = interface;
+  IElementNamespaceFactoryCallback = interface;
+  IElementBehaviorSiteOM2 = interface;
+  IElementBehaviorCategory = interface;
+  IElementBehaviorSiteCategory = interface;
+  IEnumUnknown = interface;
+  IElementBehaviorSubmit = interface;
+  IElementBehaviorFocus = interface;
+  IElementBehaviorLayout = interface;
+  IElementBehaviorLayout2 = interface;
+  IElementBehaviorSiteLayout = interface;
+  IElementBehaviorSiteLayout2 = interface;
+  IHostBehaviorInit = interface;
+
+// *********************************************************************//
+// Declaration of CoClasses defined in Type Library
+// (NOTE: Here we map each CoClass to its Default Interface)
+// *********************************************************************//
+  HTMLStyle = DispHTMLStyle;
+  HTMLRuleStyle = DispHTMLRuleStyle;
+  HTMLCurrentStyle = DispHTMLCurrentStyle;
+  HTMLFiltersCollection = IHTMLFiltersCollection;
+  HTMLDOMAttribute = DispHTMLDOMAttribute;
+  HTMLDOMTextNode = DispHTMLDOMTextNode;
+  HTMLAttributeCollection = DispHTMLAttributeCollection;
+  DOMChildrenCollection = DispDOMChildrenCollection;
+  HTCDefaultDispatch = DispHTCDefaultDispatch;
+  HTCPropertyBehavior = DispHTCPropertyBehavior;
+  HTCMethodBehavior = DispHTCMethodBehavior;
+  HTCEventBehavior = DispHTCEventBehavior;
+  HTCAttachBehavior = DispHTCAttachBehavior;
+  HTCDescBehavior = DispHTCDescBehavior;
+  HTMLUrnCollection = IHTMLUrnCollection;
+  HTMLGenericElement = DispHTMLGenericElement;
+  HTMLStyleSheetRule = IHTMLStyleSheetRule;
+  HTMLStyleSheetRulesCollection = IHTMLStyleSheetRulesCollection;
+  HTMLStyleSheet = IHTMLStyleSheet;
+  HTMLStyleSheetsCollection = IHTMLStyleSheetsCollection;
+  HTMLLinkElement = DispHTMLLinkElement;
+  HTMLFormElement = DispHTMLFormElement;
+  HTMLTextElement = DispHTMLTextElement;
+  HTMLImg = DispHTMLImg;
+  HTMLImageElementFactory = IHTMLImageElementFactory;
+  HTMLBody = DispHTMLBody;
+  HTMLFontElement = DispHTMLFontElement;
+  HTMLAnchorElement = DispHTMLAnchorElement;
+  HTMLLabelElement = DispHTMLLabelElement;
+  HTMLListElement = DispHTMLListElement;
+  HTMLUListElement = DispHTMLUListElement;
+  HTMLOListElement = DispHTMLOListElement;
+  HTMLLIElement = DispHTMLLIElement;
+  HTMLBlockElement = DispHTMLBlockElement;
+  HTMLDivElement = DispHTMLDivElement;
+  HTMLDDElement = DispHTMLDDElement;
+  HTMLDTElement = DispHTMLDTElement;
+  HTMLBRElement = DispHTMLBRElement;
+  HTMLDListElement = DispHTMLDListElement;
+  HTMLHRElement = DispHTMLHRElement;
+  HTMLParaElement = DispHTMLParaElement;
+  HTMLElementCollection = DispHTMLElementCollection;
+  HTMLHeaderElement = DispHTMLHeaderElement;
+  HTMLSelectElement = DispHTMLSelectElement;
+  HTMLOptionElement = DispHTMLOptionElement;
+  HTMLOptionElementFactory = IHTMLOptionElementFactory;
+  HTMLInputElement = DispHTMLInputElement;
+  HTMLTextAreaElement = DispHTMLTextAreaElement;
+  HTMLRichtextElement = DispHTMLRichtextElement;
+  HTMLButtonElement = DispHTMLButtonElement;
+  HTMLMarqueeElement = DispHTMLMarqueeElement;
+  HTMLHtmlElement = DispHTMLHtmlElement;
+  HTMLHeadElement = DispHTMLHeadElement;
+  HTMLTitleElement = DispHTMLTitleElement;
+  HTMLMetaElement = DispHTMLMetaElement;
+  HTMLBaseElement = DispHTMLBaseElement;
+  HTMLIsIndexElement = DispHTMLIsIndexElement;
+  HTMLNextIdElement = DispHTMLNextIdElement;
+  HTMLBaseFontElement = DispHTMLBaseFontElement;
+  HTMLUnknownElement = DispHTMLUnknownElement;
+  HTMLHistory = IOmHistory;
+  CMimeTypes = IHTMLMimeTypesCollection;
+  CPlugins = IHTMLPluginsCollection;
+  COpsProfile = IHTMLOpsProfile;
+  HTMLNavigator = IOmNavigator;
+  HTMLLocation = IHTMLLocation;
+  CEventObj = DispCEventObj;
+  HTMLScreen = IHTMLScreen;
+  HTMLWindow2 = DispHTMLWindow2;
+  HTMLWindowProxy = DispHTMLWindowProxy;
+  HTMLDocument = DispHTMLDocument;
+  Scriptlet = IWebBridge;
+  HTMLEmbed = DispHTMLEmbed;
+  HTMLAreasCollection = DispHTMLAreasCollection;
+  HTMLMapElement = DispHTMLMapElement;
+  HTMLAreaElement = DispHTMLAreaElement;
+  HTMLTableCaption = DispHTMLTableCaption;
+  HTMLCommentElement = DispHTMLCommentElement;
+  HTMLPhraseElement = DispHTMLPhraseElement;
+  HTMLSpanElement = DispHTMLSpanElement;
+  HTMLTable = DispHTMLTable;
+  HTMLTableCol = DispHTMLTableCol;
+  HTMLTableSection = DispHTMLTableSection;
+  HTMLTableRow = DispHTMLTableRow;
+  HTMLTableCell = DispHTMLTableCell;
+  HTMLScriptElement = DispHTMLScriptElement;
+  HTMLNoShowElement = DispHTMLNoShowElement;
+  HTMLObjectElement = DispHTMLObjectElement;
+  HTMLFrameBase = DispHTMLFrameBase;
+  HTMLFrameElement = DispHTMLFrameElement;
+  HTMLIFrame = DispHTMLIFrame;
+  HTMLDivPosition = DispHTMLDivPosition;
+  HTMLFieldSetElement = DispHTMLFieldSetElement;
+  HTMLLegendElement = DispHTMLLegendElement;
+  HTMLSpanFlow = DispHTMLSpanFlow;
+  HTMLFrameSetSite = DispHTMLFrameSetSite;
+  HTMLBGsound = DispHTMLBGsound;
+  HTMLStyleElement = DispHTMLStyleElement;
+  HTMLStyleFontFace = IHTMLStyleFontFace;
+  ThreadDialogProcParam = IHTMLModelessInit;
+  HTMLDialog = IHTMLDialog;
+  HTMLAppBehavior = DispHTMLAppBehavior;
+  OldHTMLDocument = DispHTMLDocument;
+  OldHTMLFormElement = DispHTMLFormElement;
+  HTMLInputButtonElement = DispIHTMLInputButtonElement;
+  HTMLInputTextElement = DispIHTMLInputTextElement;
+  HTMLInputFileElement = DispIHTMLInputFileElement;
+  HTMLOptionButtonElement = DispIHTMLOptionButtonElement;
+  htmlInputImage = DispIHTMLInputImage;
+
+// *********************************************************************//
+// Declaration of structures, unions and aliases.
+// *********************************************************************//
+
+  LONG_PTR = LPARAM;
+
+  REGISTERWORDA = packed record
+    lpReading: PAnsiChar;
+    lpWord: PAnsiChar;
+  end;
+
+  REGISTERWORDW = packed record
+    lpReading: PWideChar;
+    lpWord: PWideChar;
+  end;
+
+  CANDIDATELIST = packed record
+    dwSize: LongWord;
+    dwStyle: LongWord;
+    dwCount: LongWord;
+    dwSelection: LongWord;
+    dwPageStart: LongWord;
+    dwPageSize: LongWord;
+    dwOffset: array[0..0] of LongWord;
+  end;
+
+  CANDIDATEFORM = packed record
+    dwIndex: LongWord;
+    dwStyle: LongWord;
+    ptCurrentPos: TPoint;
+    rcArea: TRect;
+  end;
+
+  COMPOSITIONFORM = packed record
+    dwStyle: LongWord;
+    ptCurrentPos: TPoint;
+    rcArea: TRect;
+  end;
+
+  STYLEBUFA = packed record
+    dwStyle: LongWord;
+    szDescription: array[0..31] of Byte;
+  end;
+
+  STYLEBUFW = packed record
+    dwStyle: LongWord;
+    szDescription: array[0..31] of Word;
+  end;
+
+  UINT_PTR = LongWord;
+
+  IMEMENUITEMINFOA = packed record
+    cbSize: SYSUINT;
+    fType: SYSUINT;
+    fState: SYSUINT;
+    wID: SYSUINT;
+    hbmpChecked: HBITMAP;
+    hbmpUnchecked: HBITMAP;
+    dwItemData: LongWord;
+    szString: array[0..79] of Byte;
+    hbmpItem: HBITMAP;
+  end;
+
+  IMEMENUITEMINFOW = packed record
+    cbSize: SYSUINT;
+    fType: SYSUINT;
+    fState: SYSUINT;
+    wID: SYSUINT;
+    hbmpChecked: HBITMAP;
+    hbmpUnchecked: HBITMAP;
+    dwItemData: LongWord;
+    szString: array[0..79] of Word;
+    hbmpItem: HBITMAP;
+  end;
+
+  P_HTML_PAINTER_INFO = ^_HTML_PAINTER_INFO;
+  _HTML_PAINTER_INFO = packed record
+    lFlags: Integer;
+    lZOrder: Integer;
+    iidDrawObject: TGUID;
+    rcExpand: TRect;
+  end;
+
+  _HTML_PAINT_XFORM = packed record
+    eM11: Single;
+    eM12: Single;
+    eM21: Single;
+    eM22: Single;
+    eDx: Single;
+    eDy: Single;
+  end;
+
+  P_HTML_PAINT_DRAW_INFO = ^_HTML_PAINT_DRAW_INFO;
+  _HTML_PAINT_DRAW_INFO = packed record
+    rcViewport: TRect;
+    hrgnUpdate: Pointer;
+    xform: _HTML_PAINT_XFORM;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLEventObj
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F32D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLEventObj = interface(IDispatch)
+    ['{3050F32D-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_srcElement: IHTMLElement; safecall;
+    function Get_altKey: WordBool; safecall;
+    function Get_ctrlKey: WordBool; safecall;
+    function Get_shiftKey: WordBool; safecall;
+    procedure Set_returnValue(p: OleVariant); safecall;
+    function Get_returnValue: OleVariant; safecall;
+    procedure Set_cancelBubble(p: WordBool); safecall;
+    function Get_cancelBubble: WordBool; safecall;
+    function Get_fromElement: IHTMLElement; safecall;
+    function Get_toElement: IHTMLElement; safecall;
+    procedure Set_keyCode(p: Integer); safecall;
+    function Get_keyCode: Integer; safecall;
+    function Get_button: Integer; safecall;
+    function Get_type_: WideString; safecall;
+    function Get_qualifier: WideString; safecall;
+    function Get_reason: Integer; safecall;
+    function Get_x: Integer; safecall;
+    function Get_y: Integer; safecall;
+    function Get_clientX: Integer; safecall;
+    function Get_clientY: Integer; safecall;
+    function Get_offsetX: Integer; safecall;
+    function Get_offsetY: Integer; safecall;
+    function Get_screenX: Integer; safecall;
+    function Get_screenY: Integer; safecall;
+    function Get_srcFilter: IDispatch; safecall;
+    property srcElement: IHTMLElement read Get_srcElement;
+    property altKey: WordBool read Get_altKey;
+    property ctrlKey: WordBool read Get_ctrlKey;
+    property shiftKey: WordBool read Get_shiftKey;
+    property returnValue: OleVariant read Get_returnValue write Set_returnValue;
+    property cancelBubble: WordBool read Get_cancelBubble write Set_cancelBubble;
+    property fromElement: IHTMLElement read Get_fromElement;
+    property toElement: IHTMLElement read Get_toElement;
+    property keyCode: Integer read Get_keyCode write Set_keyCode;
+    property button: Integer read Get_button;
+    property type_: WideString read Get_type_;
+    property qualifier: WideString read Get_qualifier;
+    property reason: Integer read Get_reason;
+    property x: Integer read Get_x;
+    property y: Integer read Get_y;
+    property clientX: Integer read Get_clientX;
+    property clientY: Integer read Get_clientY;
+    property offsetX: Integer read Get_offsetX;
+    property offsetY: Integer read Get_offsetY;
+    property screenX: Integer read Get_screenX;
+    property screenY: Integer read Get_screenY;
+    property srcFilter: IDispatch read Get_srcFilter;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLEventObjDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F32D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLEventObjDisp = dispinterface
+    ['{3050F32D-98B5-11CF-BB82-00AA00BDCE0B}']
+    property srcElement: IHTMLElement readonly dispid 1001;
+    property altKey: WordBool readonly dispid 1002;
+    property ctrlKey: WordBool readonly dispid 1003;
+    property shiftKey: WordBool readonly dispid 1004;
+    property returnValue: OleVariant dispid 1007;
+    property cancelBubble: WordBool dispid 1008;
+    property fromElement: IHTMLElement readonly dispid 1009;
+    property toElement: IHTMLElement readonly dispid 1010;
+    property keyCode: Integer dispid 1011;
+    property button: Integer readonly dispid 1012;
+    property type_: WideString readonly dispid 1013;
+    property qualifier: WideString readonly dispid 1014;
+    property reason: Integer readonly dispid 1015;
+    property x: Integer readonly dispid 1005;
+    property y: Integer readonly dispid 1006;
+    property clientX: Integer readonly dispid 1020;
+    property clientY: Integer readonly dispid 1021;
+    property offsetX: Integer readonly dispid 1022;
+    property offsetY: Integer readonly dispid 1023;
+    property screenX: Integer readonly dispid 1024;
+    property screenY: Integer readonly dispid 1025;
+    property srcFilter: IDispatch readonly dispid 1026;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1FF-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLElement = interface(IDispatch)
+    ['{3050F1FF-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); safecall;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; safecall;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; safecall;
+    procedure Set_className(const p: WideString); safecall;
+    function Get_className: WideString; safecall;
+    procedure Set_id(const p: WideString); safecall;
+    function Get_id: WideString; safecall;
+    function Get_tagName: WideString; safecall;
+    function Get_parentElement: IHTMLElement; safecall;
+    function Get_style: IHTMLStyle; safecall;
+    procedure Set_onhelp(p: OleVariant); safecall;
+    function Get_onhelp: OleVariant; safecall;
+    procedure Set_onclick(p: OleVariant); safecall;
+    function Get_onclick: OleVariant; safecall;
+    procedure Set_ondblclick(p: OleVariant); safecall;
+    function Get_ondblclick: OleVariant; safecall;
+    procedure Set_onkeydown(p: OleVariant); safecall;
+    function Get_onkeydown: OleVariant; safecall;
+    procedure Set_onkeyup(p: OleVariant); safecall;
+    function Get_onkeyup: OleVariant; safecall;
+    procedure Set_onkeypress(p: OleVariant); safecall;
+    function Get_onkeypress: OleVariant; safecall;
+    procedure Set_onmouseout(p: OleVariant); safecall;
+    function Get_onmouseout: OleVariant; safecall;
+    procedure Set_onmouseover(p: OleVariant); safecall;
+    function Get_onmouseover: OleVariant; safecall;
+    procedure Set_onmousemove(p: OleVariant); safecall;
+    function Get_onmousemove: OleVariant; safecall;
+    procedure Set_onmousedown(p: OleVariant); safecall;
+    function Get_onmousedown: OleVariant; safecall;
+    procedure Set_onmouseup(p: OleVariant); safecall;
+    function Get_onmouseup: OleVariant; safecall;
+    function Get_document: IDispatch; safecall;
+    procedure Set_title(const p: WideString); safecall;
+    function Get_title: WideString; safecall;
+    procedure Set_language(const p: WideString); safecall;
+    function Get_language: WideString; safecall;
+    procedure Set_onselectstart(p: OleVariant); safecall;
+    function Get_onselectstart: OleVariant; safecall;
+    procedure scrollIntoView(varargStart: OleVariant); safecall;
+    function contains(const pChild: IHTMLElement): WordBool; safecall;
+    function Get_sourceIndex: Integer; safecall;
+    function Get_recordNumber: OleVariant; safecall;
+    procedure Set_lang(const p: WideString); safecall;
+    function Get_lang: WideString; safecall;
+    function Get_offsetLeft: Integer; safecall;
+    function Get_offsetTop: Integer; safecall;
+    function Get_offsetWidth: Integer; safecall;
+    function Get_offsetHeight: Integer; safecall;
+    function Get_offsetParent: IHTMLElement; safecall;
+    procedure Set_innerHTML(const p: WideString); safecall;
+    function Get_innerHTML: WideString; safecall;
+    procedure Set_innerText(const p: WideString); safecall;
+    function Get_innerText: WideString; safecall;
+    procedure Set_outerHTML(const p: WideString); safecall;
+    function Get_outerHTML: WideString; safecall;
+    procedure Set_outerText(const p: WideString); safecall;
+    function Get_outerText: WideString; safecall;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); safecall;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); safecall;
+    function Get_parentTextEdit: IHTMLElement; safecall;
+    function Get_isTextEdit: WordBool; safecall;
+    procedure click; safecall;
+    function Get_filters: IHTMLFiltersCollection; safecall;
+    procedure Set_ondragstart(p: OleVariant); safecall;
+    function Get_ondragstart: OleVariant; safecall;
+    function toString: WideString; safecall;
+    procedure Set_onbeforeupdate(p: OleVariant); safecall;
+    function Get_onbeforeupdate: OleVariant; safecall;
+    procedure Set_onafterupdate(p: OleVariant); safecall;
+    function Get_onafterupdate: OleVariant; safecall;
+    procedure Set_onerrorupdate(p: OleVariant); safecall;
+    function Get_onerrorupdate: OleVariant; safecall;
+    procedure Set_onrowexit(p: OleVariant); safecall;
+    function Get_onrowexit: OleVariant; safecall;
+    procedure Set_onrowenter(p: OleVariant); safecall;
+    function Get_onrowenter: OleVariant; safecall;
+    procedure Set_ondatasetchanged(p: OleVariant); safecall;
+    function Get_ondatasetchanged: OleVariant; safecall;
+    procedure Set_ondataavailable(p: OleVariant); safecall;
+    function Get_ondataavailable: OleVariant; safecall;
+    procedure Set_ondatasetcomplete(p: OleVariant); safecall;
+    function Get_ondatasetcomplete: OleVariant; safecall;
+    procedure Set_onfilterchange(p: OleVariant); safecall;
+    function Get_onfilterchange: OleVariant; safecall;
+    function Get_children: IDispatch; safecall;
+    function Get_all: IDispatch; safecall;
+    property className: WideString read Get_className write Set_className;
+    property id: WideString read Get_id write Set_id;
+    property tagName: WideString read Get_tagName;
+    property parentElement: IHTMLElement read Get_parentElement;
+    property style: IHTMLStyle read Get_style;
+    property onhelp: OleVariant read Get_onhelp write Set_onhelp;
+    property onclick: OleVariant read Get_onclick write Set_onclick;
+    property ondblclick: OleVariant read Get_ondblclick write Set_ondblclick;
+    property onkeydown: OleVariant read Get_onkeydown write Set_onkeydown;
+    property onkeyup: OleVariant read Get_onkeyup write Set_onkeyup;
+    property onkeypress: OleVariant read Get_onkeypress write Set_onkeypress;
+    property onmouseout: OleVariant read Get_onmouseout write Set_onmouseout;
+    property onmouseover: OleVariant read Get_onmouseover write Set_onmouseover;
+    property onmousemove: OleVariant read Get_onmousemove write Set_onmousemove;
+    property onmousedown: OleVariant read Get_onmousedown write Set_onmousedown;
+    property onmouseup: OleVariant read Get_onmouseup write Set_onmouseup;
+    property document: IDispatch read Get_document;
+    property title: WideString read Get_title write Set_title;
+    property language: WideString read Get_language write Set_language;
+    property onselectstart: OleVariant read Get_onselectstart write Set_onselectstart;
+    property sourceIndex: Integer read Get_sourceIndex;
+    property recordNumber: OleVariant read Get_recordNumber;
+    property lang: WideString read Get_lang write Set_lang;
+    property offsetLeft: Integer read Get_offsetLeft;
+    property offsetTop: Integer read Get_offsetTop;
+    property offsetWidth: Integer read Get_offsetWidth;
+    property offsetHeight: Integer read Get_offsetHeight;
+    property offsetParent: IHTMLElement read Get_offsetParent;
+    property innerHTML: WideString read Get_innerHTML write Set_innerHTML;
+    property innerText: WideString read Get_innerText write Set_innerText;
+    property outerHTML: WideString read Get_outerHTML write Set_outerHTML;
+    property outerText: WideString read Get_outerText write Set_outerText;
+    property parentTextEdit: IHTMLElement read Get_parentTextEdit;
+    property isTextEdit: WordBool read Get_isTextEdit;
+    property filters: IHTMLFiltersCollection read Get_filters;
+    property ondragstart: OleVariant read Get_ondragstart write Set_ondragstart;
+    property onbeforeupdate: OleVariant read Get_onbeforeupdate write Set_onbeforeupdate;
+    property onafterupdate: OleVariant read Get_onafterupdate write Set_onafterupdate;
+    property onerrorupdate: OleVariant read Get_onerrorupdate write Set_onerrorupdate;
+    property onrowexit: OleVariant read Get_onrowexit write Set_onrowexit;
+    property onrowenter: OleVariant read Get_onrowenter write Set_onrowenter;
+    property ondatasetchanged: OleVariant read Get_ondatasetchanged write Set_ondatasetchanged;
+    property ondataavailable: OleVariant read Get_ondataavailable write Set_ondataavailable;
+    property ondatasetcomplete: OleVariant read Get_ondatasetcomplete write Set_ondatasetcomplete;
+    property onfilterchange: OleVariant read Get_onfilterchange write Set_onfilterchange;
+    property children: IDispatch read Get_children;
+    property all: IDispatch read Get_all;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1FF-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLElementDisp = dispinterface
+    ['{3050F1FF-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLStyle
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F25E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyle = interface(IDispatch)
+    ['{3050F25E-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_fontFamily(const p: WideString); safecall;
+    function Get_fontFamily: WideString; safecall;
+    procedure Set_fontStyle(const p: WideString); safecall;
+    function Get_fontStyle: WideString; safecall;
+    procedure Set_fontVariant(const p: WideString); safecall;
+    function Get_fontVariant: WideString; safecall;
+    procedure Set_fontWeight(const p: WideString); safecall;
+    function Get_fontWeight: WideString; safecall;
+    procedure Set_fontSize(p: OleVariant); safecall;
+    function Get_fontSize: OleVariant; safecall;
+    procedure Set_font(const p: WideString); safecall;
+    function Get_font: WideString; safecall;
+    procedure Set_color(p: OleVariant); safecall;
+    function Get_color: OleVariant; safecall;
+    procedure Set_background(const p: WideString); safecall;
+    function Get_background: WideString; safecall;
+    procedure Set_backgroundColor(p: OleVariant); safecall;
+    function Get_backgroundColor: OleVariant; safecall;
+    procedure Set_backgroundImage(const p: WideString); safecall;
+    function Get_backgroundImage: WideString; safecall;
+    procedure Set_backgroundRepeat(const p: WideString); safecall;
+    function Get_backgroundRepeat: WideString; safecall;
+    procedure Set_backgroundAttachment(const p: WideString); safecall;
+    function Get_backgroundAttachment: WideString; safecall;
+    procedure Set_backgroundPosition(const p: WideString); safecall;
+    function Get_backgroundPosition: WideString; safecall;
+    procedure Set_backgroundPositionX(p: OleVariant); safecall;
+    function Get_backgroundPositionX: OleVariant; safecall;
+    procedure Set_backgroundPositionY(p: OleVariant); safecall;
+    function Get_backgroundPositionY: OleVariant; safecall;
+    procedure Set_wordSpacing(p: OleVariant); safecall;
+    function Get_wordSpacing: OleVariant; safecall;
+    procedure Set_letterSpacing(p: OleVariant); safecall;
+    function Get_letterSpacing: OleVariant; safecall;
+    procedure Set_textDecoration(const p: WideString); safecall;
+    function Get_textDecoration: WideString; safecall;
+    procedure Set_textDecorationNone(p: WordBool); safecall;
+    function Get_textDecorationNone: WordBool; safecall;
+    procedure Set_textDecorationUnderline(p: WordBool); safecall;
+    function Get_textDecorationUnderline: WordBool; safecall;
+    procedure Set_textDecorationOverline(p: WordBool); safecall;
+    function Get_textDecorationOverline: WordBool; safecall;
+    procedure Set_textDecorationLineThrough(p: WordBool); safecall;
+    function Get_textDecorationLineThrough: WordBool; safecall;
+    procedure Set_textDecorationBlink(p: WordBool); safecall;
+    function Get_textDecorationBlink: WordBool; safecall;
+    procedure Set_verticalAlign(p: OleVariant); safecall;
+    function Get_verticalAlign: OleVariant; safecall;
+    procedure Set_textTransform(const p: WideString); safecall;
+    function Get_textTransform: WideString; safecall;
+    procedure Set_textAlign(const p: WideString); safecall;
+    function Get_textAlign: WideString; safecall;
+    procedure Set_textIndent(p: OleVariant); safecall;
+    function Get_textIndent: OleVariant; safecall;
+    procedure Set_lineHeight(p: OleVariant); safecall;
+    function Get_lineHeight: OleVariant; safecall;
+    procedure Set_marginTop(p: OleVariant); safecall;
+    function Get_marginTop: OleVariant; safecall;
+    procedure Set_marginRight(p: OleVariant); safecall;
+    function Get_marginRight: OleVariant; safecall;
+    procedure Set_marginBottom(p: OleVariant); safecall;
+    function Get_marginBottom: OleVariant; safecall;
+    procedure Set_marginLeft(p: OleVariant); safecall;
+    function Get_marginLeft: OleVariant; safecall;
+    procedure Set_margin(const p: WideString); safecall;
+    function Get_margin: WideString; safecall;
+    procedure Set_paddingTop(p: OleVariant); safecall;
+    function Get_paddingTop: OleVariant; safecall;
+    procedure Set_paddingRight(p: OleVariant); safecall;
+    function Get_paddingRight: OleVariant; safecall;
+    procedure Set_paddingBottom(p: OleVariant); safecall;
+    function Get_paddingBottom: OleVariant; safecall;
+    procedure Set_paddingLeft(p: OleVariant); safecall;
+    function Get_paddingLeft: OleVariant; safecall;
+    procedure Set_padding(const p: WideString); safecall;
+    function Get_padding: WideString; safecall;
+    procedure Set_border(const p: WideString); safecall;
+    function Get_border: WideString; safecall;
+    procedure Set_borderTop(const p: WideString); safecall;
+    function Get_borderTop: WideString; safecall;
+    procedure Set_borderRight(const p: WideString); safecall;
+    function Get_borderRight: WideString; safecall;
+    procedure Set_borderBottom(const p: WideString); safecall;
+    function Get_borderBottom: WideString; safecall;
+    procedure Set_borderLeft(const p: WideString); safecall;
+    function Get_borderLeft: WideString; safecall;
+    procedure Set_borderColor(const p: WideString); safecall;
+    function Get_borderColor: WideString; safecall;
+    procedure Set_borderTopColor(p: OleVariant); safecall;
+    function Get_borderTopColor: OleVariant; safecall;
+    procedure Set_borderRightColor(p: OleVariant); safecall;
+    function Get_borderRightColor: OleVariant; safecall;
+    procedure Set_borderBottomColor(p: OleVariant); safecall;
+    function Get_borderBottomColor: OleVariant; safecall;
+    procedure Set_borderLeftColor(p: OleVariant); safecall;
+    function Get_borderLeftColor: OleVariant; safecall;
+    procedure Set_borderWidth(const p: WideString); safecall;
+    function Get_borderWidth: WideString; safecall;
+    procedure Set_borderTopWidth(p: OleVariant); safecall;
+    function Get_borderTopWidth: OleVariant; safecall;
+    procedure Set_borderRightWidth(p: OleVariant); safecall;
+    function Get_borderRightWidth: OleVariant; safecall;
+    procedure Set_borderBottomWidth(p: OleVariant); safecall;
+    function Get_borderBottomWidth: OleVariant; safecall;
+    procedure Set_borderLeftWidth(p: OleVariant); safecall;
+    function Get_borderLeftWidth: OleVariant; safecall;
+    procedure Set_borderStyle(const p: WideString); safecall;
+    function Get_borderStyle: WideString; safecall;
+    procedure Set_borderTopStyle(const p: WideString); safecall;
+    function Get_borderTopStyle: WideString; safecall;
+    procedure Set_borderRightStyle(const p: WideString); safecall;
+    function Get_borderRightStyle: WideString; safecall;
+    procedure Set_borderBottomStyle(const p: WideString); safecall;
+    function Get_borderBottomStyle: WideString; safecall;
+    procedure Set_borderLeftStyle(const p: WideString); safecall;
+    function Get_borderLeftStyle: WideString; safecall;
+    procedure Set_width(p: OleVariant); safecall;
+    function Get_width: OleVariant; safecall;
+    procedure Set_height(p: OleVariant); safecall;
+    function Get_height: OleVariant; safecall;
+    procedure Set_styleFloat(const p: WideString); safecall;
+    function Get_styleFloat: WideString; safecall;
+    procedure Set_clear(const p: WideString); safecall;
+    function Get_clear: WideString; safecall;
+    procedure Set_display(const p: WideString); safecall;
+    function Get_display: WideString; safecall;
+    procedure Set_visibility(const p: WideString); safecall;
+    function Get_visibility: WideString; safecall;
+    procedure Set_listStyleType(const p: WideString); safecall;
+    function Get_listStyleType: WideString; safecall;
+    procedure Set_listStylePosition(const p: WideString); safecall;
+    function Get_listStylePosition: WideString; safecall;
+    procedure Set_listStyleImage(const p: WideString); safecall;
+    function Get_listStyleImage: WideString; safecall;
+    procedure Set_listStyle(const p: WideString); safecall;
+    function Get_listStyle: WideString; safecall;
+    procedure Set_whiteSpace(const p: WideString); safecall;
+    function Get_whiteSpace: WideString; safecall;
+    procedure Set_top(p: OleVariant); safecall;
+    function Get_top: OleVariant; safecall;
+    procedure Set_left(p: OleVariant); safecall;
+    function Get_left: OleVariant; safecall;
+    function Get_position: WideString; safecall;
+    procedure Set_zIndex(p: OleVariant); safecall;
+    function Get_zIndex: OleVariant; safecall;
+    procedure Set_overflow(const p: WideString); safecall;
+    function Get_overflow: WideString; safecall;
+    procedure Set_pageBreakBefore(const p: WideString); safecall;
+    function Get_pageBreakBefore: WideString; safecall;
+    procedure Set_pageBreakAfter(const p: WideString); safecall;
+    function Get_pageBreakAfter: WideString; safecall;
+    procedure Set_cssText(const p: WideString); safecall;
+    function Get_cssText: WideString; safecall;
+    procedure Set_pixelTop(p: Integer); safecall;
+    function Get_pixelTop: Integer; safecall;
+    procedure Set_pixelLeft(p: Integer); safecall;
+    function Get_pixelLeft: Integer; safecall;
+    procedure Set_pixelWidth(p: Integer); safecall;
+    function Get_pixelWidth: Integer; safecall;
+    procedure Set_pixelHeight(p: Integer); safecall;
+    function Get_pixelHeight: Integer; safecall;
+    procedure Set_posTop(p: Single); safecall;
+    function Get_posTop: Single; safecall;
+    procedure Set_posLeft(p: Single); safecall;
+    function Get_posLeft: Single; safecall;
+    procedure Set_posWidth(p: Single); safecall;
+    function Get_posWidth: Single; safecall;
+    procedure Set_posHeight(p: Single); safecall;
+    function Get_posHeight: Single; safecall;
+    procedure Set_cursor(const p: WideString); safecall;
+    function Get_cursor: WideString; safecall;
+    procedure Set_clip(const p: WideString); safecall;
+    function Get_clip: WideString; safecall;
+    procedure Set_filter(const p: WideString); safecall;
+    function Get_filter: WideString; safecall;
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); safecall;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; safecall;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; safecall;
+    function toString: WideString; safecall;
+    property fontFamily: WideString read Get_fontFamily write Set_fontFamily;
+    property fontStyle: WideString read Get_fontStyle write Set_fontStyle;
+    property fontVariant: WideString read Get_fontVariant write Set_fontVariant;
+    property fontWeight: WideString read Get_fontWeight write Set_fontWeight;
+    property fontSize: OleVariant read Get_fontSize write Set_fontSize;
+    property font: WideString read Get_font write Set_font;
+    property color: OleVariant read Get_color write Set_color;
+    property background: WideString read Get_background write Set_background;
+    property backgroundColor: OleVariant read Get_backgroundColor write Set_backgroundColor;
+    property backgroundImage: WideString read Get_backgroundImage write Set_backgroundImage;
+    property backgroundRepeat: WideString read Get_backgroundRepeat write Set_backgroundRepeat;
+    property backgroundAttachment: WideString read Get_backgroundAttachment write Set_backgroundAttachment;
+    property backgroundPosition: WideString read Get_backgroundPosition write Set_backgroundPosition;
+    property backgroundPositionX: OleVariant read Get_backgroundPositionX write Set_backgroundPositionX;
+    property backgroundPositionY: OleVariant read Get_backgroundPositionY write Set_backgroundPositionY;
+    property wordSpacing: OleVariant read Get_wordSpacing write Set_wordSpacing;
+    property letterSpacing: OleVariant read Get_letterSpacing write Set_letterSpacing;
+    property textDecoration: WideString read Get_textDecoration write Set_textDecoration;
+    property textDecorationNone: WordBool read Get_textDecorationNone write Set_textDecorationNone;
+    property textDecorationUnderline: WordBool read Get_textDecorationUnderline write Set_textDecorationUnderline;
+    property textDecorationOverline: WordBool read Get_textDecorationOverline write Set_textDecorationOverline;
+    property textDecorationLineThrough: WordBool read Get_textDecorationLineThrough write Set_textDecorationLineThrough;
+    property textDecorationBlink: WordBool read Get_textDecorationBlink write Set_textDecorationBlink;
+    property verticalAlign: OleVariant read Get_verticalAlign write Set_verticalAlign;
+    property textTransform: WideString read Get_textTransform write Set_textTransform;
+    property textAlign: WideString read Get_textAlign write Set_textAlign;
+    property textIndent: OleVariant read Get_textIndent write Set_textIndent;
+    property lineHeight: OleVariant read Get_lineHeight write Set_lineHeight;
+    property marginTop: OleVariant read Get_marginTop write Set_marginTop;
+    property marginRight: OleVariant read Get_marginRight write Set_marginRight;
+    property marginBottom: OleVariant read Get_marginBottom write Set_marginBottom;
+    property marginLeft: OleVariant read Get_marginLeft write Set_marginLeft;
+    property margin: WideString read Get_margin write Set_margin;
+    property paddingTop: OleVariant read Get_paddingTop write Set_paddingTop;
+    property paddingRight: OleVariant read Get_paddingRight write Set_paddingRight;
+    property paddingBottom: OleVariant read Get_paddingBottom write Set_paddingBottom;
+    property paddingLeft: OleVariant read Get_paddingLeft write Set_paddingLeft;
+    property padding: WideString read Get_padding write Set_padding;
+    property border: WideString read Get_border write Set_border;
+    property borderTop: WideString read Get_borderTop write Set_borderTop;
+    property borderRight: WideString read Get_borderRight write Set_borderRight;
+    property borderBottom: WideString read Get_borderBottom write Set_borderBottom;
+    property borderLeft: WideString read Get_borderLeft write Set_borderLeft;
+    property borderColor: WideString read Get_borderColor write Set_borderColor;
+    property borderTopColor: OleVariant read Get_borderTopColor write Set_borderTopColor;
+    property borderRightColor: OleVariant read Get_borderRightColor write Set_borderRightColor;
+    property borderBottomColor: OleVariant read Get_borderBottomColor write Set_borderBottomColor;
+    property borderLeftColor: OleVariant read Get_borderLeftColor write Set_borderLeftColor;
+    property borderWidth: WideString read Get_borderWidth write Set_borderWidth;
+    property borderTopWidth: OleVariant read Get_borderTopWidth write Set_borderTopWidth;
+    property borderRightWidth: OleVariant read Get_borderRightWidth write Set_borderRightWidth;
+    property borderBottomWidth: OleVariant read Get_borderBottomWidth write Set_borderBottomWidth;
+    property borderLeftWidth: OleVariant read Get_borderLeftWidth write Set_borderLeftWidth;
+    property borderStyle: WideString read Get_borderStyle write Set_borderStyle;
+    property borderTopStyle: WideString read Get_borderTopStyle write Set_borderTopStyle;
+    property borderRightStyle: WideString read Get_borderRightStyle write Set_borderRightStyle;
+    property borderBottomStyle: WideString read Get_borderBottomStyle write Set_borderBottomStyle;
+    property borderLeftStyle: WideString read Get_borderLeftStyle write Set_borderLeftStyle;
+    property width: OleVariant read Get_width write Set_width;
+    property height: OleVariant read Get_height write Set_height;
+    property styleFloat: WideString read Get_styleFloat write Set_styleFloat;
+    property clear: WideString read Get_clear write Set_clear;
+    property display: WideString read Get_display write Set_display;
+    property visibility: WideString read Get_visibility write Set_visibility;
+    property listStyleType: WideString read Get_listStyleType write Set_listStyleType;
+    property listStylePosition: WideString read Get_listStylePosition write Set_listStylePosition;
+    property listStyleImage: WideString read Get_listStyleImage write Set_listStyleImage;
+    property listStyle: WideString read Get_listStyle write Set_listStyle;
+    property whiteSpace: WideString read Get_whiteSpace write Set_whiteSpace;
+    property top: OleVariant read Get_top write Set_top;
+    property left: OleVariant read Get_left write Set_left;
+    property position: WideString read Get_position;
+    property zIndex: OleVariant read Get_zIndex write Set_zIndex;
+    property overflow: WideString read Get_overflow write Set_overflow;
+    property pageBreakBefore: WideString read Get_pageBreakBefore write Set_pageBreakBefore;
+    property pageBreakAfter: WideString read Get_pageBreakAfter write Set_pageBreakAfter;
+    property cssText: WideString read Get_cssText write Set_cssText;
+    property pixelTop: Integer read Get_pixelTop write Set_pixelTop;
+    property pixelLeft: Integer read Get_pixelLeft write Set_pixelLeft;
+    property pixelWidth: Integer read Get_pixelWidth write Set_pixelWidth;
+    property pixelHeight: Integer read Get_pixelHeight write Set_pixelHeight;
+    property posTop: Single read Get_posTop write Set_posTop;
+    property posLeft: Single read Get_posLeft write Set_posLeft;
+    property posWidth: Single read Get_posWidth write Set_posWidth;
+    property posHeight: Single read Get_posHeight write Set_posHeight;
+    property cursor: WideString read Get_cursor write Set_cursor;
+    property clip: WideString read Get_clip write Set_clip;
+    property filter: WideString read Get_filter write Set_filter;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLStyleDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F25E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleDisp = dispinterface
+    ['{3050F25E-98B5-11CF-BB82-00AA00BDCE0B}']
+    property fontFamily: WideString dispid - 2147413094;
+    property fontStyle: WideString dispid - 2147413088;
+    property fontVariant: WideString dispid - 2147413087;
+    property fontWeight: WideString dispid - 2147413085;
+    property fontSize: OleVariant dispid - 2147413093;
+    property font: WideString dispid - 2147413071;
+    property color: OleVariant dispid - 2147413110;
+    property background: WideString dispid - 2147413080;
+    property backgroundColor: OleVariant dispid - 501;
+    property backgroundImage: WideString dispid - 2147413111;
+    property backgroundRepeat: WideString dispid - 2147413068;
+    property backgroundAttachment: WideString dispid - 2147413067;
+    property backgroundPosition: WideString dispid - 2147413066;
+    property backgroundPositionX: OleVariant dispid - 2147413079;
+    property backgroundPositionY: OleVariant dispid - 2147413078;
+    property wordSpacing: OleVariant dispid - 2147413065;
+    property letterSpacing: OleVariant dispid - 2147413104;
+    property textDecoration: WideString dispid - 2147413077;
+    property textDecorationNone: WordBool dispid - 2147413089;
+    property textDecorationUnderline: WordBool dispid - 2147413091;
+    property textDecorationOverline: WordBool dispid - 2147413043;
+    property textDecorationLineThrough: WordBool dispid - 2147413092;
+    property textDecorationBlink: WordBool dispid - 2147413090;
+    property verticalAlign: OleVariant dispid - 2147413064;
+    property textTransform: WideString dispid - 2147413108;
+    property textAlign: WideString dispid - 2147418040;
+    property textIndent: OleVariant dispid - 2147413105;
+    property lineHeight: OleVariant dispid - 2147413106;
+    property marginTop: OleVariant dispid - 2147413075;
+    property marginRight: OleVariant dispid - 2147413074;
+    property marginBottom: OleVariant dispid - 2147413073;
+    property marginLeft: OleVariant dispid - 2147413072;
+    property margin: WideString dispid - 2147413076;
+    property paddingTop: OleVariant dispid - 2147413100;
+    property paddingRight: OleVariant dispid - 2147413099;
+    property paddingBottom: OleVariant dispid - 2147413098;
+    property paddingLeft: OleVariant dispid - 2147413097;
+    property padding: WideString dispid - 2147413101;
+    property border: WideString dispid - 2147413063;
+    property borderTop: WideString dispid - 2147413062;
+    property borderRight: WideString dispid - 2147413061;
+    property borderBottom: WideString dispid - 2147413060;
+    property borderLeft: WideString dispid - 2147413059;
+    property borderColor: WideString dispid - 2147413058;
+    property borderTopColor: OleVariant dispid - 2147413057;
+    property borderRightColor: OleVariant dispid - 2147413056;
+    property borderBottomColor: OleVariant dispid - 2147413055;
+    property borderLeftColor: OleVariant dispid - 2147413054;
+    property borderWidth: WideString dispid - 2147413053;
+    property borderTopWidth: OleVariant dispid - 2147413052;
+    property borderRightWidth: OleVariant dispid - 2147413051;
+    property borderBottomWidth: OleVariant dispid - 2147413050;
+    property borderLeftWidth: OleVariant dispid - 2147413049;
+    property borderStyle: WideString dispid - 2147413048;
+    property borderTopStyle: WideString dispid - 2147413047;
+    property borderRightStyle: WideString dispid - 2147413046;
+    property borderBottomStyle: WideString dispid - 2147413045;
+    property borderLeftStyle: WideString dispid - 2147413044;
+    property width: OleVariant dispid - 2147418107;
+    property height: OleVariant dispid - 2147418106;
+    property styleFloat: WideString dispid - 2147413042;
+    property clear: WideString dispid - 2147413096;
+    property display: WideString dispid - 2147413041;
+    property visibility: WideString dispid - 2147413032;
+    property listStyleType: WideString dispid - 2147413040;
+    property listStylePosition: WideString dispid - 2147413039;
+    property listStyleImage: WideString dispid - 2147413038;
+    property listStyle: WideString dispid - 2147413037;
+    property whiteSpace: WideString dispid - 2147413036;
+    property top: OleVariant dispid - 2147418108;
+    property left: OleVariant dispid - 2147418109;
+    property position: WideString readonly dispid - 2147413022;
+    property zIndex: OleVariant dispid - 2147413021;
+    property overflow: WideString dispid - 2147413102;
+    property pageBreakBefore: WideString dispid - 2147413035;
+    property pageBreakAfter: WideString dispid - 2147413034;
+    property cssText: WideString dispid - 2147413013;
+    property pixelTop: Integer dispid - 2147414112;
+    property pixelLeft: Integer dispid - 2147414111;
+    property pixelWidth: Integer dispid - 2147414110;
+    property pixelHeight: Integer dispid - 2147414109;
+    property posTop: Single dispid - 2147414108;
+    property posLeft: Single dispid - 2147414107;
+    property posWidth: Single dispid - 2147414106;
+    property posHeight: Single dispid - 2147414105;
+    property cursor: WideString dispid - 2147413010;
+    property clip: WideString dispid - 2147413020;
+    property filter: WideString dispid - 2147413030;
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    function toString: WideString; dispid - 2147414104;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLFiltersCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3EE-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFiltersCollection = interface(IDispatch)
+    ['{3050F3EE-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_length: Integer; safecall;
+    function Get__newEnum: IUnknown; safecall;
+    // !! API fix decl
+    function item(const pvarIndex: OleVariant): OleVariant; safecall;
+    property length: Integer read Get_length;
+    property _newEnum: IUnknown read Get__newEnum;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLFiltersCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3EE-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFiltersCollectionDisp = dispinterface
+    ['{3050F3EE-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1001;
+    property _newEnum: IUnknown readonly dispid - 4;
+    // !! API fix decl
+    function item(const pvarIndex: OleVariant): OleVariant; dispid 0;
+  end;
+
+// *********************************************************************//
+// Interface: IElementBehaviorSite
+// Flags:     (0)
+// GUID:      {3050F427-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementBehaviorSite = interface(IUnknown)
+    ['{3050F427-98B5-11CF-BB82-00AA00BDCE0B}']
+    function GetElement(out ppElement: IHTMLElement): HRESULT; stdcall;
+    function RegisterNotification(lEvent: Integer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementBehavior
+// Flags:     (0)
+// GUID:      {3050F425-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementBehavior = interface(IUnknown)
+    ['{3050F425-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Init(pBehaviorSite: IElementBehaviorSite): HRESULT; stdcall;
+    function Notify(lEvent: Integer; var pVar: OleVariant): HRESULT; stdcall;
+    function Detach: HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementBehaviorFactory
+// Flags:     (0)
+// GUID:      {3050F429-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementBehaviorFactory = interface(IUnknown)
+    ['{3050F429-98B5-11CF-BB82-00AA00BDCE0B}']
+    function FindBehavior(const bstrBehavior: WideString; const bstrBehaviorUrl: WideString;
+      const pSite: IElementBehaviorSite; out ppBehavior: IElementBehavior): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementBehaviorSiteOM
+// Flags:     (0)
+// GUID:      {3050F489-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementBehaviorSiteOM = interface(IUnknown)
+    ['{3050F489-98B5-11CF-BB82-00AA00BDCE0B}']
+    function RegisterEvent(pchEvent: PWideChar; lFlags: Integer; out plCookie: Integer): HRESULT; stdcall;
+    function GetEventCookie(pchEvent: PWideChar; out plCookie: Integer): HRESULT; stdcall;
+    function FireEvent(lCookie: Integer; const pEventObject: IHTMLEventObj): HRESULT; stdcall;
+    function CreateEventObject(out ppEventObject: IHTMLEventObj): HRESULT; stdcall;
+    function RegisterName(pchName: PWideChar): HRESULT; stdcall;
+    function RegisterUrn(pchUrn: PWideChar): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementBehaviorRender
+// Flags:     (0)
+// GUID:      {3050F4AA-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementBehaviorRender = interface(IUnknown)
+    ['{3050F4AA-98B5-11CF-BB82-00AA00BDCE0B}']
+    // !! API fix decl
+    function Draw(hdc: HDC; lLayer: Integer; var pRect: TRect;
+      const pReserved: IUnknown): HRESULT; stdcall;
+    function GetRenderInfo(out plRenderInfo: Integer): HRESULT; stdcall;
+    function HitTestPoint(var pPoint: TPoint; const pReserved: IUnknown; out pbHit: Integer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementBehaviorSiteRender
+// Flags:     (0)
+// GUID:      {3050F4A7-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementBehaviorSiteRender = interface(IUnknown)
+    ['{3050F4A7-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Invalidate(var pRect: TRect): HRESULT; stdcall;
+    function InvalidateRenderInfo: HRESULT; stdcall;
+    function InvalidateStyle: HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLStyle2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4A2-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyle2 = interface(IDispatch)
+    ['{3050F4A2-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_tableLayout(const p: WideString); safecall;
+    function Get_tableLayout: WideString; safecall;
+    procedure Set_borderCollapse(const p: WideString); safecall;
+    function Get_borderCollapse: WideString; safecall;
+    procedure Set_direction(const p: WideString); safecall;
+    function Get_direction: WideString; safecall;
+    procedure Set_behavior(const p: WideString); safecall;
+    function Get_behavior: WideString; safecall;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); safecall;
+    function getExpression(const propname: WideString): OleVariant; safecall;
+    function removeExpression(const propname: WideString): WordBool; safecall;
+    procedure Set_position(const p: WideString); safecall;
+    function Get_position: WideString; safecall;
+    procedure Set_unicodeBidi(const p: WideString); safecall;
+    function Get_unicodeBidi: WideString; safecall;
+    procedure Set_bottom(p: OleVariant); safecall;
+    function Get_bottom: OleVariant; safecall;
+    procedure Set_right(p: OleVariant); safecall;
+    function Get_right: OleVariant; safecall;
+    procedure Set_pixelBottom(p: Integer); safecall;
+    function Get_pixelBottom: Integer; safecall;
+    procedure Set_pixelRight(p: Integer); safecall;
+    function Get_pixelRight: Integer; safecall;
+    procedure Set_posBottom(p: Single); safecall;
+    function Get_posBottom: Single; safecall;
+    procedure Set_posRight(p: Single); safecall;
+    function Get_posRight: Single; safecall;
+    procedure Set_imeMode(const p: WideString); safecall;
+    function Get_imeMode: WideString; safecall;
+    procedure Set_rubyAlign(const p: WideString); safecall;
+    function Get_rubyAlign: WideString; safecall;
+    procedure Set_rubyPosition(const p: WideString); safecall;
+    function Get_rubyPosition: WideString; safecall;
+    procedure Set_rubyOverhang(const p: WideString); safecall;
+    function Get_rubyOverhang: WideString; safecall;
+    procedure Set_layoutGridChar(p: OleVariant); safecall;
+    function Get_layoutGridChar: OleVariant; safecall;
+    procedure Set_layoutGridLine(p: OleVariant); safecall;
+    function Get_layoutGridLine: OleVariant; safecall;
+    procedure Set_layoutGridMode(const p: WideString); safecall;
+    function Get_layoutGridMode: WideString; safecall;
+    procedure Set_layoutGridType(const p: WideString); safecall;
+    function Get_layoutGridType: WideString; safecall;
+    procedure Set_layoutGrid(const p: WideString); safecall;
+    function Get_layoutGrid: WideString; safecall;
+    procedure Set_wordBreak(const p: WideString); safecall;
+    function Get_wordBreak: WideString; safecall;
+    procedure Set_lineBreak(const p: WideString); safecall;
+    function Get_lineBreak: WideString; safecall;
+    procedure Set_textJustify(const p: WideString); safecall;
+    function Get_textJustify: WideString; safecall;
+    procedure Set_textJustifyTrim(const p: WideString); safecall;
+    function Get_textJustifyTrim: WideString; safecall;
+    procedure Set_textKashida(p: OleVariant); safecall;
+    function Get_textKashida: OleVariant; safecall;
+    procedure Set_textAutospace(const p: WideString); safecall;
+    function Get_textAutospace: WideString; safecall;
+    procedure Set_overflowX(const p: WideString); safecall;
+    function Get_overflowX: WideString; safecall;
+    procedure Set_overflowY(const p: WideString); safecall;
+    function Get_overflowY: WideString; safecall;
+    procedure Set_accelerator(const p: WideString); safecall;
+    function Get_accelerator: WideString; safecall;
+    property tableLayout: WideString read Get_tableLayout write Set_tableLayout;
+    property borderCollapse: WideString read Get_borderCollapse write Set_borderCollapse;
+    property direction: WideString read Get_direction write Set_direction;
+    property behavior: WideString read Get_behavior write Set_behavior;
+    property position: WideString read Get_position write Set_position;
+    property unicodeBidi: WideString read Get_unicodeBidi write Set_unicodeBidi;
+    property bottom: OleVariant read Get_bottom write Set_bottom;
+    property right: OleVariant read Get_right write Set_right;
+    property pixelBottom: Integer read Get_pixelBottom write Set_pixelBottom;
+    property pixelRight: Integer read Get_pixelRight write Set_pixelRight;
+    property posBottom: Single read Get_posBottom write Set_posBottom;
+    property posRight: Single read Get_posRight write Set_posRight;
+    property imeMode: WideString read Get_imeMode write Set_imeMode;
+    property rubyAlign: WideString read Get_rubyAlign write Set_rubyAlign;
+    property rubyPosition: WideString read Get_rubyPosition write Set_rubyPosition;
+    property rubyOverhang: WideString read Get_rubyOverhang write Set_rubyOverhang;
+    property layoutGridChar: OleVariant read Get_layoutGridChar write Set_layoutGridChar;
+    property layoutGridLine: OleVariant read Get_layoutGridLine write Set_layoutGridLine;
+    property layoutGridMode: WideString read Get_layoutGridMode write Set_layoutGridMode;
+    property layoutGridType: WideString read Get_layoutGridType write Set_layoutGridType;
+    property layoutGrid: WideString read Get_layoutGrid write Set_layoutGrid;
+    property wordBreak: WideString read Get_wordBreak write Set_wordBreak;
+    property lineBreak: WideString read Get_lineBreak write Set_lineBreak;
+    property textJustify: WideString read Get_textJustify write Set_textJustify;
+    property textJustifyTrim: WideString read Get_textJustifyTrim write Set_textJustifyTrim;
+    property textKashida: OleVariant read Get_textKashida write Set_textKashida;
+    property textAutospace: WideString read Get_textAutospace write Set_textAutospace;
+    property overflowX: WideString read Get_overflowX write Set_overflowX;
+    property overflowY: WideString read Get_overflowY write Set_overflowY;
+    property accelerator: WideString read Get_accelerator write Set_accelerator;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLStyle2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4A2-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyle2Disp = dispinterface
+    ['{3050F4A2-98B5-11CF-BB82-00AA00BDCE0B}']
+    property tableLayout: WideString dispid - 2147413014;
+    property borderCollapse: WideString dispid - 2147413028;
+    property direction: WideString dispid - 2147412993;
+    property behavior: WideString dispid - 2147412997;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property position: WideString dispid - 2147413022;
+    property unicodeBidi: WideString dispid - 2147412994;
+    property bottom: OleVariant dispid - 2147418034;
+    property right: OleVariant dispid - 2147418035;
+    property pixelBottom: Integer dispid - 2147414103;
+    property pixelRight: Integer dispid - 2147414102;
+    property posBottom: Single dispid - 2147414101;
+    property posRight: Single dispid - 2147414100;
+    property imeMode: WideString dispid - 2147412992;
+    property rubyAlign: WideString dispid - 2147412991;
+    property rubyPosition: WideString dispid - 2147412990;
+    property rubyOverhang: WideString dispid - 2147412989;
+    property layoutGridChar: OleVariant dispid - 2147412985;
+    property layoutGridLine: OleVariant dispid - 2147412984;
+    property layoutGridMode: WideString dispid - 2147412983;
+    property layoutGridType: WideString dispid - 2147412982;
+    property layoutGrid: WideString dispid - 2147412981;
+    property wordBreak: WideString dispid - 2147412978;
+    property lineBreak: WideString dispid - 2147412979;
+    property textJustify: WideString dispid - 2147412977;
+    property textJustifyTrim: WideString dispid - 2147412976;
+    property textKashida: OleVariant dispid - 2147412975;
+    property textAutospace: WideString dispid - 2147412980;
+    property overflowX: WideString dispid - 2147412973;
+    property overflowY: WideString dispid - 2147412972;
+    property accelerator: WideString dispid - 2147412965;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLStyle3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F656-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyle3 = interface(IDispatch)
+    ['{3050F656-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_layoutFlow(const p: WideString); safecall;
+    function Get_layoutFlow: WideString; safecall;
+    procedure Set_zoom(p: OleVariant); safecall;
+    function Get_zoom: OleVariant; safecall;
+    procedure Set_wordWrap(const p: WideString); safecall;
+    function Get_wordWrap: WideString; safecall;
+    procedure Set_textUnderlinePosition(const p: WideString); safecall;
+    function Get_textUnderlinePosition: WideString; safecall;
+    procedure Set_scrollbarBaseColor(p: OleVariant); safecall;
+    function Get_scrollbarBaseColor: OleVariant; safecall;
+    procedure Set_scrollbarFaceColor(p: OleVariant); safecall;
+    function Get_scrollbarFaceColor: OleVariant; safecall;
+    procedure Set_scrollbar3dLightColor(p: OleVariant); safecall;
+    function Get_scrollbar3dLightColor: OleVariant; safecall;
+    procedure Set_scrollbarShadowColor(p: OleVariant); safecall;
+    function Get_scrollbarShadowColor: OleVariant; safecall;
+    procedure Set_scrollbarHighlightColor(p: OleVariant); safecall;
+    function Get_scrollbarHighlightColor: OleVariant; safecall;
+    procedure Set_scrollbarDarkShadowColor(p: OleVariant); safecall;
+    function Get_scrollbarDarkShadowColor: OleVariant; safecall;
+    procedure Set_scrollbarArrowColor(p: OleVariant); safecall;
+    function Get_scrollbarArrowColor: OleVariant; safecall;
+    procedure Set_scrollbarTrackColor(p: OleVariant); safecall;
+    function Get_scrollbarTrackColor: OleVariant; safecall;
+    procedure Set_writingMode(const p: WideString); safecall;
+    function Get_writingMode: WideString; safecall;
+    procedure Set_textAlignLast(const p: WideString); safecall;
+    function Get_textAlignLast: WideString; safecall;
+    procedure Set_textKashidaSpace(p: OleVariant); safecall;
+    function Get_textKashidaSpace: OleVariant; safecall;
+    property layoutFlow: WideString read Get_layoutFlow write Set_layoutFlow;
+    property zoom: OleVariant read Get_zoom write Set_zoom;
+    property wordWrap: WideString read Get_wordWrap write Set_wordWrap;
+    property textUnderlinePosition: WideString read Get_textUnderlinePosition write Set_textUnderlinePosition;
+    property scrollbarBaseColor: OleVariant read Get_scrollbarBaseColor write Set_scrollbarBaseColor;
+    property scrollbarFaceColor: OleVariant read Get_scrollbarFaceColor write Set_scrollbarFaceColor;
+    property scrollbar3dLightColor: OleVariant read Get_scrollbar3dLightColor write Set_scrollbar3dLightColor;
+    property scrollbarShadowColor: OleVariant read Get_scrollbarShadowColor write Set_scrollbarShadowColor;
+    property scrollbarHighlightColor: OleVariant read Get_scrollbarHighlightColor write Set_scrollbarHighlightColor;
+    property scrollbarDarkShadowColor: OleVariant read Get_scrollbarDarkShadowColor write Set_scrollbarDarkShadowColor;
+    property scrollbarArrowColor: OleVariant read Get_scrollbarArrowColor write Set_scrollbarArrowColor;
+    property scrollbarTrackColor: OleVariant read Get_scrollbarTrackColor write Set_scrollbarTrackColor;
+    property writingMode: WideString read Get_writingMode write Set_writingMode;
+    property textAlignLast: WideString read Get_textAlignLast write Set_textAlignLast;
+    property textKashidaSpace: OleVariant read Get_textKashidaSpace write Set_textKashidaSpace;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLStyle3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F656-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyle3Disp = dispinterface
+    ['{3050F656-98B5-11CF-BB82-00AA00BDCE0B}']
+    property layoutFlow: WideString dispid - 2147412957;
+    property zoom: OleVariant dispid - 2147412959;
+    property wordWrap: WideString dispid - 2147412954;
+    property textUnderlinePosition: WideString dispid - 2147412953;
+    property scrollbarBaseColor: OleVariant dispid - 2147412932;
+    property scrollbarFaceColor: OleVariant dispid - 2147412931;
+    property scrollbar3dLightColor: OleVariant dispid - 2147412930;
+    property scrollbarShadowColor: OleVariant dispid - 2147412929;
+    property scrollbarHighlightColor: OleVariant dispid - 2147412928;
+    property scrollbarDarkShadowColor: OleVariant dispid - 2147412927;
+    property scrollbarArrowColor: OleVariant dispid - 2147412926;
+    property scrollbarTrackColor: OleVariant dispid - 2147412916;
+    property writingMode: WideString dispid - 2147412920;
+    property textAlignLast: WideString dispid - 2147412909;
+    property textKashidaSpace: OleVariant dispid - 2147412908;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLStyle4
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F816-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyle4 = interface(IDispatch)
+    ['{3050F816-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_textOverflow(const p: WideString); safecall;
+    function Get_textOverflow: WideString; safecall;
+    procedure Set_minHeight(p: OleVariant); safecall;
+    function Get_minHeight: OleVariant; safecall;
+    property textOverflow: WideString read Get_textOverflow write Set_textOverflow;
+    property minHeight: OleVariant read Get_minHeight write Set_minHeight;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLStyle4Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F816-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyle4Disp = dispinterface
+    ['{3050F816-98B5-11CF-BB82-00AA00BDCE0B}']
+    property textOverflow: WideString dispid - 2147412903;
+    property minHeight: OleVariant dispid - 2147412901;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLRuleStyle
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3CF-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLRuleStyle = interface(IDispatch)
+    ['{3050F3CF-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_fontFamily(const p: WideString); safecall;
+    function Get_fontFamily: WideString; safecall;
+    procedure Set_fontStyle(const p: WideString); safecall;
+    function Get_fontStyle: WideString; safecall;
+    procedure Set_fontVariant(const p: WideString); safecall;
+    function Get_fontVariant: WideString; safecall;
+    procedure Set_fontWeight(const p: WideString); safecall;
+    function Get_fontWeight: WideString; safecall;
+    procedure Set_fontSize(p: OleVariant); safecall;
+    function Get_fontSize: OleVariant; safecall;
+    procedure Set_font(const p: WideString); safecall;
+    function Get_font: WideString; safecall;
+    procedure Set_color(p: OleVariant); safecall;
+    function Get_color: OleVariant; safecall;
+    procedure Set_background(const p: WideString); safecall;
+    function Get_background: WideString; safecall;
+    procedure Set_backgroundColor(p: OleVariant); safecall;
+    function Get_backgroundColor: OleVariant; safecall;
+    procedure Set_backgroundImage(const p: WideString); safecall;
+    function Get_backgroundImage: WideString; safecall;
+    procedure Set_backgroundRepeat(const p: WideString); safecall;
+    function Get_backgroundRepeat: WideString; safecall;
+    procedure Set_backgroundAttachment(const p: WideString); safecall;
+    function Get_backgroundAttachment: WideString; safecall;
+    procedure Set_backgroundPosition(const p: WideString); safecall;
+    function Get_backgroundPosition: WideString; safecall;
+    procedure Set_backgroundPositionX(p: OleVariant); safecall;
+    function Get_backgroundPositionX: OleVariant; safecall;
+    procedure Set_backgroundPositionY(p: OleVariant); safecall;
+    function Get_backgroundPositionY: OleVariant; safecall;
+    procedure Set_wordSpacing(p: OleVariant); safecall;
+    function Get_wordSpacing: OleVariant; safecall;
+    procedure Set_letterSpacing(p: OleVariant); safecall;
+    function Get_letterSpacing: OleVariant; safecall;
+    procedure Set_textDecoration(const p: WideString); safecall;
+    function Get_textDecoration: WideString; safecall;
+    procedure Set_textDecorationNone(p: WordBool); safecall;
+    function Get_textDecorationNone: WordBool; safecall;
+    procedure Set_textDecorationUnderline(p: WordBool); safecall;
+    function Get_textDecorationUnderline: WordBool; safecall;
+    procedure Set_textDecorationOverline(p: WordBool); safecall;
+    function Get_textDecorationOverline: WordBool; safecall;
+    procedure Set_textDecorationLineThrough(p: WordBool); safecall;
+    function Get_textDecorationLineThrough: WordBool; safecall;
+    procedure Set_textDecorationBlink(p: WordBool); safecall;
+    function Get_textDecorationBlink: WordBool; safecall;
+    procedure Set_verticalAlign(p: OleVariant); safecall;
+    function Get_verticalAlign: OleVariant; safecall;
+    procedure Set_textTransform(const p: WideString); safecall;
+    function Get_textTransform: WideString; safecall;
+    procedure Set_textAlign(const p: WideString); safecall;
+    function Get_textAlign: WideString; safecall;
+    procedure Set_textIndent(p: OleVariant); safecall;
+    function Get_textIndent: OleVariant; safecall;
+    procedure Set_lineHeight(p: OleVariant); safecall;
+    function Get_lineHeight: OleVariant; safecall;
+    procedure Set_marginTop(p: OleVariant); safecall;
+    function Get_marginTop: OleVariant; safecall;
+    procedure Set_marginRight(p: OleVariant); safecall;
+    function Get_marginRight: OleVariant; safecall;
+    procedure Set_marginBottom(p: OleVariant); safecall;
+    function Get_marginBottom: OleVariant; safecall;
+    procedure Set_marginLeft(p: OleVariant); safecall;
+    function Get_marginLeft: OleVariant; safecall;
+    procedure Set_margin(const p: WideString); safecall;
+    function Get_margin: WideString; safecall;
+    procedure Set_paddingTop(p: OleVariant); safecall;
+    function Get_paddingTop: OleVariant; safecall;
+    procedure Set_paddingRight(p: OleVariant); safecall;
+    function Get_paddingRight: OleVariant; safecall;
+    procedure Set_paddingBottom(p: OleVariant); safecall;
+    function Get_paddingBottom: OleVariant; safecall;
+    procedure Set_paddingLeft(p: OleVariant); safecall;
+    function Get_paddingLeft: OleVariant; safecall;
+    procedure Set_padding(const p: WideString); safecall;
+    function Get_padding: WideString; safecall;
+    procedure Set_border(const p: WideString); safecall;
+    function Get_border: WideString; safecall;
+    procedure Set_borderTop(const p: WideString); safecall;
+    function Get_borderTop: WideString; safecall;
+    procedure Set_borderRight(const p: WideString); safecall;
+    function Get_borderRight: WideString; safecall;
+    procedure Set_borderBottom(const p: WideString); safecall;
+    function Get_borderBottom: WideString; safecall;
+    procedure Set_borderLeft(const p: WideString); safecall;
+    function Get_borderLeft: WideString; safecall;
+    procedure Set_borderColor(const p: WideString); safecall;
+    function Get_borderColor: WideString; safecall;
+    procedure Set_borderTopColor(p: OleVariant); safecall;
+    function Get_borderTopColor: OleVariant; safecall;
+    procedure Set_borderRightColor(p: OleVariant); safecall;
+    function Get_borderRightColor: OleVariant; safecall;
+    procedure Set_borderBottomColor(p: OleVariant); safecall;
+    function Get_borderBottomColor: OleVariant; safecall;
+    procedure Set_borderLeftColor(p: OleVariant); safecall;
+    function Get_borderLeftColor: OleVariant; safecall;
+    procedure Set_borderWidth(const p: WideString); safecall;
+    function Get_borderWidth: WideString; safecall;
+    procedure Set_borderTopWidth(p: OleVariant); safecall;
+    function Get_borderTopWidth: OleVariant; safecall;
+    procedure Set_borderRightWidth(p: OleVariant); safecall;
+    function Get_borderRightWidth: OleVariant; safecall;
+    procedure Set_borderBottomWidth(p: OleVariant); safecall;
+    function Get_borderBottomWidth: OleVariant; safecall;
+    procedure Set_borderLeftWidth(p: OleVariant); safecall;
+    function Get_borderLeftWidth: OleVariant; safecall;
+    procedure Set_borderStyle(const p: WideString); safecall;
+    function Get_borderStyle: WideString; safecall;
+    procedure Set_borderTopStyle(const p: WideString); safecall;
+    function Get_borderTopStyle: WideString; safecall;
+    procedure Set_borderRightStyle(const p: WideString); safecall;
+    function Get_borderRightStyle: WideString; safecall;
+    procedure Set_borderBottomStyle(const p: WideString); safecall;
+    function Get_borderBottomStyle: WideString; safecall;
+    procedure Set_borderLeftStyle(const p: WideString); safecall;
+    function Get_borderLeftStyle: WideString; safecall;
+    procedure Set_width(p: OleVariant); safecall;
+    function Get_width: OleVariant; safecall;
+    procedure Set_height(p: OleVariant); safecall;
+    function Get_height: OleVariant; safecall;
+    procedure Set_styleFloat(const p: WideString); safecall;
+    function Get_styleFloat: WideString; safecall;
+    procedure Set_clear(const p: WideString); safecall;
+    function Get_clear: WideString; safecall;
+    procedure Set_display(const p: WideString); safecall;
+    function Get_display: WideString; safecall;
+    procedure Set_visibility(const p: WideString); safecall;
+    function Get_visibility: WideString; safecall;
+    procedure Set_listStyleType(const p: WideString); safecall;
+    function Get_listStyleType: WideString; safecall;
+    procedure Set_listStylePosition(const p: WideString); safecall;
+    function Get_listStylePosition: WideString; safecall;
+    procedure Set_listStyleImage(const p: WideString); safecall;
+    function Get_listStyleImage: WideString; safecall;
+    procedure Set_listStyle(const p: WideString); safecall;
+    function Get_listStyle: WideString; safecall;
+    procedure Set_whiteSpace(const p: WideString); safecall;
+    function Get_whiteSpace: WideString; safecall;
+    procedure Set_top(p: OleVariant); safecall;
+    function Get_top: OleVariant; safecall;
+    procedure Set_left(p: OleVariant); safecall;
+    function Get_left: OleVariant; safecall;
+    function Get_position: WideString; safecall;
+    procedure Set_zIndex(p: OleVariant); safecall;
+    function Get_zIndex: OleVariant; safecall;
+    procedure Set_overflow(const p: WideString); safecall;
+    function Get_overflow: WideString; safecall;
+    procedure Set_pageBreakBefore(const p: WideString); safecall;
+    function Get_pageBreakBefore: WideString; safecall;
+    procedure Set_pageBreakAfter(const p: WideString); safecall;
+    function Get_pageBreakAfter: WideString; safecall;
+    procedure Set_cssText(const p: WideString); safecall;
+    function Get_cssText: WideString; safecall;
+    procedure Set_cursor(const p: WideString); safecall;
+    function Get_cursor: WideString; safecall;
+    procedure Set_clip(const p: WideString); safecall;
+    function Get_clip: WideString; safecall;
+    procedure Set_filter(const p: WideString); safecall;
+    function Get_filter: WideString; safecall;
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); safecall;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; safecall;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; safecall;
+    property fontFamily: WideString read Get_fontFamily write Set_fontFamily;
+    property fontStyle: WideString read Get_fontStyle write Set_fontStyle;
+    property fontVariant: WideString read Get_fontVariant write Set_fontVariant;
+    property fontWeight: WideString read Get_fontWeight write Set_fontWeight;
+    property fontSize: OleVariant read Get_fontSize write Set_fontSize;
+    property font: WideString read Get_font write Set_font;
+    property color: OleVariant read Get_color write Set_color;
+    property background: WideString read Get_background write Set_background;
+    property backgroundColor: OleVariant read Get_backgroundColor write Set_backgroundColor;
+    property backgroundImage: WideString read Get_backgroundImage write Set_backgroundImage;
+    property backgroundRepeat: WideString read Get_backgroundRepeat write Set_backgroundRepeat;
+    property backgroundAttachment: WideString read Get_backgroundAttachment write Set_backgroundAttachment;
+    property backgroundPosition: WideString read Get_backgroundPosition write Set_backgroundPosition;
+    property backgroundPositionX: OleVariant read Get_backgroundPositionX write Set_backgroundPositionX;
+    property backgroundPositionY: OleVariant read Get_backgroundPositionY write Set_backgroundPositionY;
+    property wordSpacing: OleVariant read Get_wordSpacing write Set_wordSpacing;
+    property letterSpacing: OleVariant read Get_letterSpacing write Set_letterSpacing;
+    property textDecoration: WideString read Get_textDecoration write Set_textDecoration;
+    property textDecorationNone: WordBool read Get_textDecorationNone write Set_textDecorationNone;
+    property textDecorationUnderline: WordBool read Get_textDecorationUnderline write Set_textDecorationUnderline;
+    property textDecorationOverline: WordBool read Get_textDecorationOverline write Set_textDecorationOverline;
+    property textDecorationLineThrough: WordBool read Get_textDecorationLineThrough write Set_textDecorationLineThrough;
+    property textDecorationBlink: WordBool read Get_textDecorationBlink write Set_textDecorationBlink;
+    property verticalAlign: OleVariant read Get_verticalAlign write Set_verticalAlign;
+    property textTransform: WideString read Get_textTransform write Set_textTransform;
+    property textAlign: WideString read Get_textAlign write Set_textAlign;
+    property textIndent: OleVariant read Get_textIndent write Set_textIndent;
+    property lineHeight: OleVariant read Get_lineHeight write Set_lineHeight;
+    property marginTop: OleVariant read Get_marginTop write Set_marginTop;
+    property marginRight: OleVariant read Get_marginRight write Set_marginRight;
+    property marginBottom: OleVariant read Get_marginBottom write Set_marginBottom;
+    property marginLeft: OleVariant read Get_marginLeft write Set_marginLeft;
+    property margin: WideString read Get_margin write Set_margin;
+    property paddingTop: OleVariant read Get_paddingTop write Set_paddingTop;
+    property paddingRight: OleVariant read Get_paddingRight write Set_paddingRight;
+    property paddingBottom: OleVariant read Get_paddingBottom write Set_paddingBottom;
+    property paddingLeft: OleVariant read Get_paddingLeft write Set_paddingLeft;
+    property padding: WideString read Get_padding write Set_padding;
+    property border: WideString read Get_border write Set_border;
+    property borderTop: WideString read Get_borderTop write Set_borderTop;
+    property borderRight: WideString read Get_borderRight write Set_borderRight;
+    property borderBottom: WideString read Get_borderBottom write Set_borderBottom;
+    property borderLeft: WideString read Get_borderLeft write Set_borderLeft;
+    property borderColor: WideString read Get_borderColor write Set_borderColor;
+    property borderTopColor: OleVariant read Get_borderTopColor write Set_borderTopColor;
+    property borderRightColor: OleVariant read Get_borderRightColor write Set_borderRightColor;
+    property borderBottomColor: OleVariant read Get_borderBottomColor write Set_borderBottomColor;
+    property borderLeftColor: OleVariant read Get_borderLeftColor write Set_borderLeftColor;
+    property borderWidth: WideString read Get_borderWidth write Set_borderWidth;
+    property borderTopWidth: OleVariant read Get_borderTopWidth write Set_borderTopWidth;
+    property borderRightWidth: OleVariant read Get_borderRightWidth write Set_borderRightWidth;
+    property borderBottomWidth: OleVariant read Get_borderBottomWidth write Set_borderBottomWidth;
+    property borderLeftWidth: OleVariant read Get_borderLeftWidth write Set_borderLeftWidth;
+    property borderStyle: WideString read Get_borderStyle write Set_borderStyle;
+    property borderTopStyle: WideString read Get_borderTopStyle write Set_borderTopStyle;
+    property borderRightStyle: WideString read Get_borderRightStyle write Set_borderRightStyle;
+    property borderBottomStyle: WideString read Get_borderBottomStyle write Set_borderBottomStyle;
+    property borderLeftStyle: WideString read Get_borderLeftStyle write Set_borderLeftStyle;
+    property width: OleVariant read Get_width write Set_width;
+    property height: OleVariant read Get_height write Set_height;
+    property styleFloat: WideString read Get_styleFloat write Set_styleFloat;
+    property clear: WideString read Get_clear write Set_clear;
+    property display: WideString read Get_display write Set_display;
+    property visibility: WideString read Get_visibility write Set_visibility;
+    property listStyleType: WideString read Get_listStyleType write Set_listStyleType;
+    property listStylePosition: WideString read Get_listStylePosition write Set_listStylePosition;
+    property listStyleImage: WideString read Get_listStyleImage write Set_listStyleImage;
+    property listStyle: WideString read Get_listStyle write Set_listStyle;
+    property whiteSpace: WideString read Get_whiteSpace write Set_whiteSpace;
+    property top: OleVariant read Get_top write Set_top;
+    property left: OleVariant read Get_left write Set_left;
+    property position: WideString read Get_position;
+    property zIndex: OleVariant read Get_zIndex write Set_zIndex;
+    property overflow: WideString read Get_overflow write Set_overflow;
+    property pageBreakBefore: WideString read Get_pageBreakBefore write Set_pageBreakBefore;
+    property pageBreakAfter: WideString read Get_pageBreakAfter write Set_pageBreakAfter;
+    property cssText: WideString read Get_cssText write Set_cssText;
+    property cursor: WideString read Get_cursor write Set_cursor;
+    property clip: WideString read Get_clip write Set_clip;
+    property filter: WideString read Get_filter write Set_filter;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLRuleStyleDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3CF-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLRuleStyleDisp = dispinterface
+    ['{3050F3CF-98B5-11CF-BB82-00AA00BDCE0B}']
+    property fontFamily: WideString dispid - 2147413094;
+    property fontStyle: WideString dispid - 2147413088;
+    property fontVariant: WideString dispid - 2147413087;
+    property fontWeight: WideString dispid - 2147413085;
+    property fontSize: OleVariant dispid - 2147413093;
+    property font: WideString dispid - 2147413071;
+    property color: OleVariant dispid - 2147413110;
+    property background: WideString dispid - 2147413080;
+    property backgroundColor: OleVariant dispid - 501;
+    property backgroundImage: WideString dispid - 2147413111;
+    property backgroundRepeat: WideString dispid - 2147413068;
+    property backgroundAttachment: WideString dispid - 2147413067;
+    property backgroundPosition: WideString dispid - 2147413066;
+    property backgroundPositionX: OleVariant dispid - 2147413079;
+    property backgroundPositionY: OleVariant dispid - 2147413078;
+    property wordSpacing: OleVariant dispid - 2147413065;
+    property letterSpacing: OleVariant dispid - 2147413104;
+    property textDecoration: WideString dispid - 2147413077;
+    property textDecorationNone: WordBool dispid - 2147413089;
+    property textDecorationUnderline: WordBool dispid - 2147413091;
+    property textDecorationOverline: WordBool dispid - 2147413043;
+    property textDecorationLineThrough: WordBool dispid - 2147413092;
+    property textDecorationBlink: WordBool dispid - 2147413090;
+    property verticalAlign: OleVariant dispid - 2147413064;
+    property textTransform: WideString dispid - 2147413108;
+    property textAlign: WideString dispid - 2147418040;
+    property textIndent: OleVariant dispid - 2147413105;
+    property lineHeight: OleVariant dispid - 2147413106;
+    property marginTop: OleVariant dispid - 2147413075;
+    property marginRight: OleVariant dispid - 2147413074;
+    property marginBottom: OleVariant dispid - 2147413073;
+    property marginLeft: OleVariant dispid - 2147413072;
+    property margin: WideString dispid - 2147413076;
+    property paddingTop: OleVariant dispid - 2147413100;
+    property paddingRight: OleVariant dispid - 2147413099;
+    property paddingBottom: OleVariant dispid - 2147413098;
+    property paddingLeft: OleVariant dispid - 2147413097;
+    property padding: WideString dispid - 2147413101;
+    property border: WideString dispid - 2147413063;
+    property borderTop: WideString dispid - 2147413062;
+    property borderRight: WideString dispid - 2147413061;
+    property borderBottom: WideString dispid - 2147413060;
+    property borderLeft: WideString dispid - 2147413059;
+    property borderColor: WideString dispid - 2147413058;
+    property borderTopColor: OleVariant dispid - 2147413057;
+    property borderRightColor: OleVariant dispid - 2147413056;
+    property borderBottomColor: OleVariant dispid - 2147413055;
+    property borderLeftColor: OleVariant dispid - 2147413054;
+    property borderWidth: WideString dispid - 2147413053;
+    property borderTopWidth: OleVariant dispid - 2147413052;
+    property borderRightWidth: OleVariant dispid - 2147413051;
+    property borderBottomWidth: OleVariant dispid - 2147413050;
+    property borderLeftWidth: OleVariant dispid - 2147413049;
+    property borderStyle: WideString dispid - 2147413048;
+    property borderTopStyle: WideString dispid - 2147413047;
+    property borderRightStyle: WideString dispid - 2147413046;
+    property borderBottomStyle: WideString dispid - 2147413045;
+    property borderLeftStyle: WideString dispid - 2147413044;
+    property width: OleVariant dispid - 2147418107;
+    property height: OleVariant dispid - 2147418106;
+    property styleFloat: WideString dispid - 2147413042;
+    property clear: WideString dispid - 2147413096;
+    property display: WideString dispid - 2147413041;
+    property visibility: WideString dispid - 2147413032;
+    property listStyleType: WideString dispid - 2147413040;
+    property listStylePosition: WideString dispid - 2147413039;
+    property listStyleImage: WideString dispid - 2147413038;
+    property listStyle: WideString dispid - 2147413037;
+    property whiteSpace: WideString dispid - 2147413036;
+    property top: OleVariant dispid - 2147418108;
+    property left: OleVariant dispid - 2147418109;
+    property position: WideString readonly dispid - 2147413022;
+    property zIndex: OleVariant dispid - 2147413021;
+    property overflow: WideString dispid - 2147413102;
+    property pageBreakBefore: WideString dispid - 2147413035;
+    property pageBreakAfter: WideString dispid - 2147413034;
+    property cssText: WideString dispid - 2147413013;
+    property cursor: WideString dispid - 2147413010;
+    property clip: WideString dispid - 2147413020;
+    property filter: WideString dispid - 2147413030;
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLRuleStyle2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4AC-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLRuleStyle2 = interface(IDispatch)
+    ['{3050F4AC-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_tableLayout(const p: WideString); safecall;
+    function Get_tableLayout: WideString; safecall;
+    procedure Set_borderCollapse(const p: WideString); safecall;
+    function Get_borderCollapse: WideString; safecall;
+    procedure Set_direction(const p: WideString); safecall;
+    function Get_direction: WideString; safecall;
+    procedure Set_behavior(const p: WideString); safecall;
+    function Get_behavior: WideString; safecall;
+    procedure Set_position(const p: WideString); safecall;
+    function Get_position: WideString; safecall;
+    procedure Set_unicodeBidi(const p: WideString); safecall;
+    function Get_unicodeBidi: WideString; safecall;
+    procedure Set_bottom(p: OleVariant); safecall;
+    function Get_bottom: OleVariant; safecall;
+    procedure Set_right(p: OleVariant); safecall;
+    function Get_right: OleVariant; safecall;
+    procedure Set_pixelBottom(p: Integer); safecall;
+    function Get_pixelBottom: Integer; safecall;
+    procedure Set_pixelRight(p: Integer); safecall;
+    function Get_pixelRight: Integer; safecall;
+    procedure Set_posBottom(p: Single); safecall;
+    function Get_posBottom: Single; safecall;
+    procedure Set_posRight(p: Single); safecall;
+    function Get_posRight: Single; safecall;
+    procedure Set_imeMode(const p: WideString); safecall;
+    function Get_imeMode: WideString; safecall;
+    procedure Set_rubyAlign(const p: WideString); safecall;
+    function Get_rubyAlign: WideString; safecall;
+    procedure Set_rubyPosition(const p: WideString); safecall;
+    function Get_rubyPosition: WideString; safecall;
+    procedure Set_rubyOverhang(const p: WideString); safecall;
+    function Get_rubyOverhang: WideString; safecall;
+    procedure Set_layoutGridChar(p: OleVariant); safecall;
+    function Get_layoutGridChar: OleVariant; safecall;
+    procedure Set_layoutGridLine(p: OleVariant); safecall;
+    function Get_layoutGridLine: OleVariant; safecall;
+    procedure Set_layoutGridMode(const p: WideString); safecall;
+    function Get_layoutGridMode: WideString; safecall;
+    procedure Set_layoutGridType(const p: WideString); safecall;
+    function Get_layoutGridType: WideString; safecall;
+    procedure Set_layoutGrid(const p: WideString); safecall;
+    function Get_layoutGrid: WideString; safecall;
+    procedure Set_textAutospace(const p: WideString); safecall;
+    function Get_textAutospace: WideString; safecall;
+    procedure Set_wordBreak(const p: WideString); safecall;
+    function Get_wordBreak: WideString; safecall;
+    procedure Set_lineBreak(const p: WideString); safecall;
+    function Get_lineBreak: WideString; safecall;
+    procedure Set_textJustify(const p: WideString); safecall;
+    function Get_textJustify: WideString; safecall;
+    procedure Set_textJustifyTrim(const p: WideString); safecall;
+    function Get_textJustifyTrim: WideString; safecall;
+    procedure Set_textKashida(p: OleVariant); safecall;
+    function Get_textKashida: OleVariant; safecall;
+    procedure Set_overflowX(const p: WideString); safecall;
+    function Get_overflowX: WideString; safecall;
+    procedure Set_overflowY(const p: WideString); safecall;
+    function Get_overflowY: WideString; safecall;
+    procedure Set_accelerator(const p: WideString); safecall;
+    function Get_accelerator: WideString; safecall;
+    property tableLayout: WideString read Get_tableLayout write Set_tableLayout;
+    property borderCollapse: WideString read Get_borderCollapse write Set_borderCollapse;
+    property direction: WideString read Get_direction write Set_direction;
+    property behavior: WideString read Get_behavior write Set_behavior;
+    property position: WideString read Get_position write Set_position;
+    property unicodeBidi: WideString read Get_unicodeBidi write Set_unicodeBidi;
+    property bottom: OleVariant read Get_bottom write Set_bottom;
+    property right: OleVariant read Get_right write Set_right;
+    property pixelBottom: Integer read Get_pixelBottom write Set_pixelBottom;
+    property pixelRight: Integer read Get_pixelRight write Set_pixelRight;
+    property posBottom: Single read Get_posBottom write Set_posBottom;
+    property posRight: Single read Get_posRight write Set_posRight;
+    property imeMode: WideString read Get_imeMode write Set_imeMode;
+    property rubyAlign: WideString read Get_rubyAlign write Set_rubyAlign;
+    property rubyPosition: WideString read Get_rubyPosition write Set_rubyPosition;
+    property rubyOverhang: WideString read Get_rubyOverhang write Set_rubyOverhang;
+    property layoutGridChar: OleVariant read Get_layoutGridChar write Set_layoutGridChar;
+    property layoutGridLine: OleVariant read Get_layoutGridLine write Set_layoutGridLine;
+    property layoutGridMode: WideString read Get_layoutGridMode write Set_layoutGridMode;
+    property layoutGridType: WideString read Get_layoutGridType write Set_layoutGridType;
+    property layoutGrid: WideString read Get_layoutGrid write Set_layoutGrid;
+    property textAutospace: WideString read Get_textAutospace write Set_textAutospace;
+    property wordBreak: WideString read Get_wordBreak write Set_wordBreak;
+    property lineBreak: WideString read Get_lineBreak write Set_lineBreak;
+    property textJustify: WideString read Get_textJustify write Set_textJustify;
+    property textJustifyTrim: WideString read Get_textJustifyTrim write Set_textJustifyTrim;
+    property textKashida: OleVariant read Get_textKashida write Set_textKashida;
+    property overflowX: WideString read Get_overflowX write Set_overflowX;
+    property overflowY: WideString read Get_overflowY write Set_overflowY;
+    property accelerator: WideString read Get_accelerator write Set_accelerator;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLRuleStyle2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4AC-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLRuleStyle2Disp = dispinterface
+    ['{3050F4AC-98B5-11CF-BB82-00AA00BDCE0B}']
+    property tableLayout: WideString dispid - 2147413014;
+    property borderCollapse: WideString dispid - 2147413028;
+    property direction: WideString dispid - 2147412993;
+    property behavior: WideString dispid - 2147412997;
+    property position: WideString dispid - 2147413022;
+    property unicodeBidi: WideString dispid - 2147412994;
+    property bottom: OleVariant dispid - 2147418034;
+    property right: OleVariant dispid - 2147418035;
+    property pixelBottom: Integer dispid - 2147414103;
+    property pixelRight: Integer dispid - 2147414102;
+    property posBottom: Single dispid - 2147414101;
+    property posRight: Single dispid - 2147414100;
+    property imeMode: WideString dispid - 2147412992;
+    property rubyAlign: WideString dispid - 2147412991;
+    property rubyPosition: WideString dispid - 2147412990;
+    property rubyOverhang: WideString dispid - 2147412989;
+    property layoutGridChar: OleVariant dispid - 2147412985;
+    property layoutGridLine: OleVariant dispid - 2147412984;
+    property layoutGridMode: WideString dispid - 2147412983;
+    property layoutGridType: WideString dispid - 2147412982;
+    property layoutGrid: WideString dispid - 2147412981;
+    property textAutospace: WideString dispid - 2147412980;
+    property wordBreak: WideString dispid - 2147412978;
+    property lineBreak: WideString dispid - 2147412979;
+    property textJustify: WideString dispid - 2147412977;
+    property textJustifyTrim: WideString dispid - 2147412976;
+    property textKashida: OleVariant dispid - 2147412975;
+    property overflowX: WideString dispid - 2147412973;
+    property overflowY: WideString dispid - 2147412972;
+    property accelerator: WideString dispid - 2147412965;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLRuleStyle3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F657-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLRuleStyle3 = interface(IDispatch)
+    ['{3050F657-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_layoutFlow(const p: WideString); safecall;
+    function Get_layoutFlow: WideString; safecall;
+    procedure Set_zoom(p: OleVariant); safecall;
+    function Get_zoom: OleVariant; safecall;
+    procedure Set_wordWrap(const p: WideString); safecall;
+    function Get_wordWrap: WideString; safecall;
+    procedure Set_textUnderlinePosition(const p: WideString); safecall;
+    function Get_textUnderlinePosition: WideString; safecall;
+    procedure Set_scrollbarBaseColor(p: OleVariant); safecall;
+    function Get_scrollbarBaseColor: OleVariant; safecall;
+    procedure Set_scrollbarFaceColor(p: OleVariant); safecall;
+    function Get_scrollbarFaceColor: OleVariant; safecall;
+    procedure Set_scrollbar3dLightColor(p: OleVariant); safecall;
+    function Get_scrollbar3dLightColor: OleVariant; safecall;
+    procedure Set_scrollbarShadowColor(p: OleVariant); safecall;
+    function Get_scrollbarShadowColor: OleVariant; safecall;
+    procedure Set_scrollbarHighlightColor(p: OleVariant); safecall;
+    function Get_scrollbarHighlightColor: OleVariant; safecall;
+    procedure Set_scrollbarDarkShadowColor(p: OleVariant); safecall;
+    function Get_scrollbarDarkShadowColor: OleVariant; safecall;
+    procedure Set_scrollbarArrowColor(p: OleVariant); safecall;
+    function Get_scrollbarArrowColor: OleVariant; safecall;
+    procedure Set_scrollbarTrackColor(p: OleVariant); safecall;
+    function Get_scrollbarTrackColor: OleVariant; safecall;
+    procedure Set_writingMode(const p: WideString); safecall;
+    function Get_writingMode: WideString; safecall;
+    procedure Set_textAlignLast(const p: WideString); safecall;
+    function Get_textAlignLast: WideString; safecall;
+    procedure Set_textKashidaSpace(p: OleVariant); safecall;
+    function Get_textKashidaSpace: OleVariant; safecall;
+    property layoutFlow: WideString read Get_layoutFlow write Set_layoutFlow;
+    property zoom: OleVariant read Get_zoom write Set_zoom;
+    property wordWrap: WideString read Get_wordWrap write Set_wordWrap;
+    property textUnderlinePosition: WideString read Get_textUnderlinePosition write Set_textUnderlinePosition;
+    property scrollbarBaseColor: OleVariant read Get_scrollbarBaseColor write Set_scrollbarBaseColor;
+    property scrollbarFaceColor: OleVariant read Get_scrollbarFaceColor write Set_scrollbarFaceColor;
+    property scrollbar3dLightColor: OleVariant read Get_scrollbar3dLightColor write Set_scrollbar3dLightColor;
+    property scrollbarShadowColor: OleVariant read Get_scrollbarShadowColor write Set_scrollbarShadowColor;
+    property scrollbarHighlightColor: OleVariant read Get_scrollbarHighlightColor write Set_scrollbarHighlightColor;
+    property scrollbarDarkShadowColor: OleVariant read Get_scrollbarDarkShadowColor write Set_scrollbarDarkShadowColor;
+    property scrollbarArrowColor: OleVariant read Get_scrollbarArrowColor write Set_scrollbarArrowColor;
+    property scrollbarTrackColor: OleVariant read Get_scrollbarTrackColor write Set_scrollbarTrackColor;
+    property writingMode: WideString read Get_writingMode write Set_writingMode;
+    property textAlignLast: WideString read Get_textAlignLast write Set_textAlignLast;
+    property textKashidaSpace: OleVariant read Get_textKashidaSpace write Set_textKashidaSpace;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLRuleStyle3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F657-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLRuleStyle3Disp = dispinterface
+    ['{3050F657-98B5-11CF-BB82-00AA00BDCE0B}']
+    property layoutFlow: WideString dispid - 2147412957;
+    property zoom: OleVariant dispid - 2147412959;
+    property wordWrap: WideString dispid - 2147412954;
+    property textUnderlinePosition: WideString dispid - 2147412953;
+    property scrollbarBaseColor: OleVariant dispid - 2147412932;
+    property scrollbarFaceColor: OleVariant dispid - 2147412931;
+    property scrollbar3dLightColor: OleVariant dispid - 2147412930;
+    property scrollbarShadowColor: OleVariant dispid - 2147412929;
+    property scrollbarHighlightColor: OleVariant dispid - 2147412928;
+    property scrollbarDarkShadowColor: OleVariant dispid - 2147412927;
+    property scrollbarArrowColor: OleVariant dispid - 2147412926;
+    property scrollbarTrackColor: OleVariant dispid - 2147412916;
+    property writingMode: WideString dispid - 2147412920;
+    property textAlignLast: WideString dispid - 2147412909;
+    property textKashidaSpace: OleVariant dispid - 2147412908;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLRuleStyle4
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F817-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLRuleStyle4 = interface(IDispatch)
+    ['{3050F817-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_textOverflow(const p: WideString); safecall;
+    function Get_textOverflow: WideString; safecall;
+    procedure Set_minHeight(p: OleVariant); safecall;
+    function Get_minHeight: OleVariant; safecall;
+    property textOverflow: WideString read Get_textOverflow write Set_textOverflow;
+    property minHeight: OleVariant read Get_minHeight write Set_minHeight;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLRuleStyle4Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F817-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLRuleStyle4Disp = dispinterface
+    ['{3050F817-98B5-11CF-BB82-00AA00BDCE0B}']
+    property textOverflow: WideString dispid - 2147412903;
+    property minHeight: OleVariant dispid - 2147412901;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLStyle
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F55A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLStyle = dispinterface
+    ['{3050F55A-98B5-11CF-BB82-00AA00BDCE0B}']
+    property fontFamily: WideString dispid - 2147413094;
+    property fontStyle: WideString dispid - 2147413088;
+    property fontVariant: WideString dispid - 2147413087;
+    property fontWeight: WideString dispid - 2147413085;
+    property fontSize: OleVariant dispid - 2147413093;
+    property font: WideString dispid - 2147413071;
+    property color: OleVariant dispid - 2147413110;
+    property background: WideString dispid - 2147413080;
+    property backgroundColor: OleVariant dispid - 501;
+    property backgroundImage: WideString dispid - 2147413111;
+    property backgroundRepeat: WideString dispid - 2147413068;
+    property backgroundAttachment: WideString dispid - 2147413067;
+    property backgroundPosition: WideString dispid - 2147413066;
+    property backgroundPositionX: OleVariant dispid - 2147413079;
+    property backgroundPositionY: OleVariant dispid - 2147413078;
+    property wordSpacing: OleVariant dispid - 2147413065;
+    property letterSpacing: OleVariant dispid - 2147413104;
+    property textDecoration: WideString dispid - 2147413077;
+    property textDecorationNone: WordBool dispid - 2147413089;
+    property textDecorationUnderline: WordBool dispid - 2147413091;
+    property textDecorationOverline: WordBool dispid - 2147413043;
+    property textDecorationLineThrough: WordBool dispid - 2147413092;
+    property textDecorationBlink: WordBool dispid - 2147413090;
+    property verticalAlign: OleVariant dispid - 2147413064;
+    property textTransform: WideString dispid - 2147413108;
+    property textAlign: WideString dispid - 2147418040;
+    property textIndent: OleVariant dispid - 2147413105;
+    property lineHeight: OleVariant dispid - 2147413106;
+    property marginTop: OleVariant dispid - 2147413075;
+    property marginRight: OleVariant dispid - 2147413074;
+    property marginBottom: OleVariant dispid - 2147413073;
+    property marginLeft: OleVariant dispid - 2147413072;
+    property margin: WideString dispid - 2147413076;
+    property paddingTop: OleVariant dispid - 2147413100;
+    property paddingRight: OleVariant dispid - 2147413099;
+    property paddingBottom: OleVariant dispid - 2147413098;
+    property paddingLeft: OleVariant dispid - 2147413097;
+    property padding: WideString dispid - 2147413101;
+    property border: WideString dispid - 2147413063;
+    property borderTop: WideString dispid - 2147413062;
+    property borderRight: WideString dispid - 2147413061;
+    property borderBottom: WideString dispid - 2147413060;
+    property borderLeft: WideString dispid - 2147413059;
+    property borderColor: WideString dispid - 2147413058;
+    property borderTopColor: OleVariant dispid - 2147413057;
+    property borderRightColor: OleVariant dispid - 2147413056;
+    property borderBottomColor: OleVariant dispid - 2147413055;
+    property borderLeftColor: OleVariant dispid - 2147413054;
+    property borderWidth: WideString dispid - 2147413053;
+    property borderTopWidth: OleVariant dispid - 2147413052;
+    property borderRightWidth: OleVariant dispid - 2147413051;
+    property borderBottomWidth: OleVariant dispid - 2147413050;
+    property borderLeftWidth: OleVariant dispid - 2147413049;
+    property borderStyle: WideString dispid - 2147413048;
+    property borderTopStyle: WideString dispid - 2147413047;
+    property borderRightStyle: WideString dispid - 2147413046;
+    property borderBottomStyle: WideString dispid - 2147413045;
+    property borderLeftStyle: WideString dispid - 2147413044;
+    property width: OleVariant dispid - 2147418107;
+    property height: OleVariant dispid - 2147418106;
+    property styleFloat: WideString dispid - 2147413042;
+    property clear: WideString dispid - 2147413096;
+    property display: WideString dispid - 2147413041;
+    property visibility: WideString dispid - 2147413032;
+    property listStyleType: WideString dispid - 2147413040;
+    property listStylePosition: WideString dispid - 2147413039;
+    property listStyleImage: WideString dispid - 2147413038;
+    property listStyle: WideString dispid - 2147413037;
+    property whiteSpace: WideString dispid - 2147413036;
+    property top: OleVariant dispid - 2147418108;
+    property left: OleVariant dispid - 2147418109;
+    property zIndex: OleVariant dispid - 2147413021;
+    property overflow: WideString dispid - 2147413102;
+    property pageBreakBefore: WideString dispid - 2147413035;
+    property pageBreakAfter: WideString dispid - 2147413034;
+    property cssText: WideString dispid - 2147413013;
+    property pixelTop: Integer dispid - 2147414112;
+    property pixelLeft: Integer dispid - 2147414111;
+    property pixelWidth: Integer dispid - 2147414110;
+    property pixelHeight: Integer dispid - 2147414109;
+    property posTop: Single dispid - 2147414108;
+    property posLeft: Single dispid - 2147414107;
+    property posWidth: Single dispid - 2147414106;
+    property posHeight: Single dispid - 2147414105;
+    property cursor: WideString dispid - 2147413010;
+    property clip: WideString dispid - 2147413020;
+    property filter: WideString dispid - 2147413030;
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    function toString: WideString; dispid - 2147414104;
+    property tableLayout: WideString dispid - 2147413014;
+    property borderCollapse: WideString dispid - 2147413028;
+    property direction: WideString dispid - 2147412993;
+    property behavior: WideString dispid - 2147412997;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property position: WideString dispid - 2147413022;
+    property unicodeBidi: WideString dispid - 2147412994;
+    property bottom: OleVariant dispid - 2147418034;
+    property right: OleVariant dispid - 2147418035;
+    property pixelBottom: Integer dispid - 2147414103;
+    property pixelRight: Integer dispid - 2147414102;
+    property posBottom: Single dispid - 2147414101;
+    property posRight: Single dispid - 2147414100;
+    property imeMode: WideString dispid - 2147412992;
+    property rubyAlign: WideString dispid - 2147412991;
+    property rubyPosition: WideString dispid - 2147412990;
+    property rubyOverhang: WideString dispid - 2147412989;
+    property layoutGridChar: OleVariant dispid - 2147412985;
+    property layoutGridLine: OleVariant dispid - 2147412984;
+    property layoutGridMode: WideString dispid - 2147412983;
+    property layoutGridType: WideString dispid - 2147412982;
+    property layoutGrid: WideString dispid - 2147412981;
+    property wordBreak: WideString dispid - 2147412978;
+    property lineBreak: WideString dispid - 2147412979;
+    property textJustify: WideString dispid - 2147412977;
+    property textJustifyTrim: WideString dispid - 2147412976;
+    property textKashida: OleVariant dispid - 2147412975;
+    property textAutospace: WideString dispid - 2147412980;
+    property overflowX: WideString dispid - 2147412973;
+    property overflowY: WideString dispid - 2147412972;
+    property accelerator: WideString dispid - 2147412965;
+    property layoutFlow: WideString dispid - 2147412957;
+    property zoom: OleVariant dispid - 2147412959;
+    property wordWrap: WideString dispid - 2147412954;
+    property textUnderlinePosition: WideString dispid - 2147412953;
+    property scrollbarBaseColor: OleVariant dispid - 2147412932;
+    property scrollbarFaceColor: OleVariant dispid - 2147412931;
+    property scrollbar3dLightColor: OleVariant dispid - 2147412930;
+    property scrollbarShadowColor: OleVariant dispid - 2147412929;
+    property scrollbarHighlightColor: OleVariant dispid - 2147412928;
+    property scrollbarDarkShadowColor: OleVariant dispid - 2147412927;
+    property scrollbarArrowColor: OleVariant dispid - 2147412926;
+    property scrollbarTrackColor: OleVariant dispid - 2147412916;
+    property writingMode: WideString dispid - 2147412920;
+    property textAlignLast: WideString dispid - 2147412909;
+    property textKashidaSpace: OleVariant dispid - 2147412908;
+    property textOverflow: WideString dispid - 2147412903;
+    property minHeight: OleVariant dispid - 2147412901;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLRuleStyle
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F55C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLRuleStyle = dispinterface
+    ['{3050F55C-98B5-11CF-BB82-00AA00BDCE0B}']
+    property fontFamily: WideString dispid - 2147413094;
+    property fontStyle: WideString dispid - 2147413088;
+    property fontVariant: WideString dispid - 2147413087;
+    property fontWeight: WideString dispid - 2147413085;
+    property fontSize: OleVariant dispid - 2147413093;
+    property font: WideString dispid - 2147413071;
+    property color: OleVariant dispid - 2147413110;
+    property background: WideString dispid - 2147413080;
+    property backgroundColor: OleVariant dispid - 501;
+    property backgroundImage: WideString dispid - 2147413111;
+    property backgroundRepeat: WideString dispid - 2147413068;
+    property backgroundAttachment: WideString dispid - 2147413067;
+    property backgroundPosition: WideString dispid - 2147413066;
+    property backgroundPositionX: OleVariant dispid - 2147413079;
+    property backgroundPositionY: OleVariant dispid - 2147413078;
+    property wordSpacing: OleVariant dispid - 2147413065;
+    property letterSpacing: OleVariant dispid - 2147413104;
+    property textDecoration: WideString dispid - 2147413077;
+    property textDecorationNone: WordBool dispid - 2147413089;
+    property textDecorationUnderline: WordBool dispid - 2147413091;
+    property textDecorationOverline: WordBool dispid - 2147413043;
+    property textDecorationLineThrough: WordBool dispid - 2147413092;
+    property textDecorationBlink: WordBool dispid - 2147413090;
+    property verticalAlign: OleVariant dispid - 2147413064;
+    property textTransform: WideString dispid - 2147413108;
+    property textAlign: WideString dispid - 2147418040;
+    property textIndent: OleVariant dispid - 2147413105;
+    property lineHeight: OleVariant dispid - 2147413106;
+    property marginTop: OleVariant dispid - 2147413075;
+    property marginRight: OleVariant dispid - 2147413074;
+    property marginBottom: OleVariant dispid - 2147413073;
+    property marginLeft: OleVariant dispid - 2147413072;
+    property margin: WideString dispid - 2147413076;
+    property paddingTop: OleVariant dispid - 2147413100;
+    property paddingRight: OleVariant dispid - 2147413099;
+    property paddingBottom: OleVariant dispid - 2147413098;
+    property paddingLeft: OleVariant dispid - 2147413097;
+    property padding: WideString dispid - 2147413101;
+    property border: WideString dispid - 2147413063;
+    property borderTop: WideString dispid - 2147413062;
+    property borderRight: WideString dispid - 2147413061;
+    property borderBottom: WideString dispid - 2147413060;
+    property borderLeft: WideString dispid - 2147413059;
+    property borderColor: WideString dispid - 2147413058;
+    property borderTopColor: OleVariant dispid - 2147413057;
+    property borderRightColor: OleVariant dispid - 2147413056;
+    property borderBottomColor: OleVariant dispid - 2147413055;
+    property borderLeftColor: OleVariant dispid - 2147413054;
+    property borderWidth: WideString dispid - 2147413053;
+    property borderTopWidth: OleVariant dispid - 2147413052;
+    property borderRightWidth: OleVariant dispid - 2147413051;
+    property borderBottomWidth: OleVariant dispid - 2147413050;
+    property borderLeftWidth: OleVariant dispid - 2147413049;
+    property borderStyle: WideString dispid - 2147413048;
+    property borderTopStyle: WideString dispid - 2147413047;
+    property borderRightStyle: WideString dispid - 2147413046;
+    property borderBottomStyle: WideString dispid - 2147413045;
+    property borderLeftStyle: WideString dispid - 2147413044;
+    property width: OleVariant dispid - 2147418107;
+    property height: OleVariant dispid - 2147418106;
+    property styleFloat: WideString dispid - 2147413042;
+    property clear: WideString dispid - 2147413096;
+    property display: WideString dispid - 2147413041;
+    property visibility: WideString dispid - 2147413032;
+    property listStyleType: WideString dispid - 2147413040;
+    property listStylePosition: WideString dispid - 2147413039;
+    property listStyleImage: WideString dispid - 2147413038;
+    property listStyle: WideString dispid - 2147413037;
+    property whiteSpace: WideString dispid - 2147413036;
+    property top: OleVariant dispid - 2147418108;
+    property left: OleVariant dispid - 2147418109;
+    property zIndex: OleVariant dispid - 2147413021;
+    property overflow: WideString dispid - 2147413102;
+    property pageBreakBefore: WideString dispid - 2147413035;
+    property pageBreakAfter: WideString dispid - 2147413034;
+    property cssText: WideString dispid - 2147413013;
+    property cursor: WideString dispid - 2147413010;
+    property clip: WideString dispid - 2147413020;
+    property filter: WideString dispid - 2147413030;
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property tableLayout: WideString dispid - 2147413014;
+    property borderCollapse: WideString dispid - 2147413028;
+    property direction: WideString dispid - 2147412993;
+    property behavior: WideString dispid - 2147412997;
+    property position: WideString dispid - 2147413022;
+    property unicodeBidi: WideString dispid - 2147412994;
+    property bottom: OleVariant dispid - 2147418034;
+    property right: OleVariant dispid - 2147418035;
+    property pixelBottom: Integer dispid - 2147414103;
+    property pixelRight: Integer dispid - 2147414102;
+    property posBottom: Single dispid - 2147414101;
+    property posRight: Single dispid - 2147414100;
+    property imeMode: WideString dispid - 2147412992;
+    property rubyAlign: WideString dispid - 2147412991;
+    property rubyPosition: WideString dispid - 2147412990;
+    property rubyOverhang: WideString dispid - 2147412989;
+    property layoutGridChar: OleVariant dispid - 2147412985;
+    property layoutGridLine: OleVariant dispid - 2147412984;
+    property layoutGridMode: WideString dispid - 2147412983;
+    property layoutGridType: WideString dispid - 2147412982;
+    property layoutGrid: WideString dispid - 2147412981;
+    property textAutospace: WideString dispid - 2147412980;
+    property wordBreak: WideString dispid - 2147412978;
+    property lineBreak: WideString dispid - 2147412979;
+    property textJustify: WideString dispid - 2147412977;
+    property textJustifyTrim: WideString dispid - 2147412976;
+    property textKashida: OleVariant dispid - 2147412975;
+    property overflowX: WideString dispid - 2147412973;
+    property overflowY: WideString dispid - 2147412972;
+    property accelerator: WideString dispid - 2147412965;
+    property layoutFlow: WideString dispid - 2147412957;
+    property zoom: OleVariant dispid - 2147412959;
+    property wordWrap: WideString dispid - 2147412954;
+    property textUnderlinePosition: WideString dispid - 2147412953;
+    property scrollbarBaseColor: OleVariant dispid - 2147412932;
+    property scrollbarFaceColor: OleVariant dispid - 2147412931;
+    property scrollbar3dLightColor: OleVariant dispid - 2147412930;
+    property scrollbarShadowColor: OleVariant dispid - 2147412929;
+    property scrollbarHighlightColor: OleVariant dispid - 2147412928;
+    property scrollbarDarkShadowColor: OleVariant dispid - 2147412927;
+    property scrollbarArrowColor: OleVariant dispid - 2147412926;
+    property scrollbarTrackColor: OleVariant dispid - 2147412916;
+    property writingMode: WideString dispid - 2147412920;
+    property textAlignLast: WideString dispid - 2147412909;
+    property textKashidaSpace: OleVariant dispid - 2147412908;
+    property textOverflow: WideString dispid - 2147412903;
+    property minHeight: OleVariant dispid - 2147412901;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLRenderStyle
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F6AE-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLRenderStyle = interface(IDispatch)
+    ['{3050F6AE-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_textLineThroughStyle(const p: WideString); safecall;
+    function Get_textLineThroughStyle: WideString; safecall;
+    procedure Set_textUnderlineStyle(const p: WideString); safecall;
+    function Get_textUnderlineStyle: WideString; safecall;
+    procedure Set_textEffect(const p: WideString); safecall;
+    function Get_textEffect: WideString; safecall;
+    procedure Set_textColor(p: OleVariant); safecall;
+    function Get_textColor: OleVariant; safecall;
+    procedure Set_textBackgroundColor(p: OleVariant); safecall;
+    function Get_textBackgroundColor: OleVariant; safecall;
+    procedure Set_textDecorationColor(p: OleVariant); safecall;
+    function Get_textDecorationColor: OleVariant; safecall;
+    procedure Set_renderingPriority(p: Integer); safecall;
+    function Get_renderingPriority: Integer; safecall;
+    procedure Set_defaultTextSelection(const p: WideString); safecall;
+    function Get_defaultTextSelection: WideString; safecall;
+    procedure Set_textDecoration(const p: WideString); safecall;
+    function Get_textDecoration: WideString; safecall;
+    property textLineThroughStyle: WideString read Get_textLineThroughStyle write Set_textLineThroughStyle;
+    property textUnderlineStyle: WideString read Get_textUnderlineStyle write Set_textUnderlineStyle;
+    property textEffect: WideString read Get_textEffect write Set_textEffect;
+    property textColor: OleVariant read Get_textColor write Set_textColor;
+    property textBackgroundColor: OleVariant read Get_textBackgroundColor write Set_textBackgroundColor;
+    property textDecorationColor: OleVariant read Get_textDecorationColor write Set_textDecorationColor;
+    property renderingPriority: Integer read Get_renderingPriority write Set_renderingPriority;
+    property defaultTextSelection: WideString read Get_defaultTextSelection write Set_defaultTextSelection;
+    property textDecoration: WideString read Get_textDecoration write Set_textDecoration;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLRenderStyleDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F6AE-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLRenderStyleDisp = dispinterface
+    ['{3050F6AE-98B5-11CF-BB82-00AA00BDCE0B}']
+    property textLineThroughStyle: WideString dispid - 2147412946;
+    property textUnderlineStyle: WideString dispid - 2147412945;
+    property textEffect: WideString dispid - 2147412944;
+    property textColor: OleVariant dispid - 2147412922;
+    property textBackgroundColor: OleVariant dispid - 2147412943;
+    property textDecorationColor: OleVariant dispid - 2147412923;
+    property renderingPriority: Integer dispid - 2147412942;
+    property defaultTextSelection: WideString dispid - 2147412924;
+    property textDecoration: WideString dispid - 2147412921;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLRenderStyle
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F58B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLRenderStyle = dispinterface
+    ['{3050F58B-98B5-11CF-BB82-00AA00BDCE0B}']
+    property textLineThroughStyle: WideString dispid - 2147412946;
+    property textUnderlineStyle: WideString dispid - 2147412945;
+    property textEffect: WideString dispid - 2147412944;
+    property textColor: OleVariant dispid - 2147412922;
+    property textBackgroundColor: OleVariant dispid - 2147412943;
+    property textDecorationColor: OleVariant dispid - 2147412923;
+    property renderingPriority: Integer dispid - 2147412942;
+    property defaultTextSelection: WideString dispid - 2147412924;
+    property textDecoration: WideString dispid - 2147412921;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLCurrentStyle
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3DB-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLCurrentStyle = interface(IDispatch)
+    ['{3050F3DB-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_position: WideString; safecall;
+    function Get_styleFloat: WideString; safecall;
+    function Get_color: OleVariant; safecall;
+    function Get_backgroundColor: OleVariant; safecall;
+    function Get_fontFamily: WideString; safecall;
+    function Get_fontStyle: WideString; safecall;
+    function Get_fontVariant: WideString; safecall;
+    function Get_fontWeight: OleVariant; safecall;
+    function Get_fontSize: OleVariant; safecall;
+    function Get_backgroundImage: WideString; safecall;
+    function Get_backgroundPositionX: OleVariant; safecall;
+    function Get_backgroundPositionY: OleVariant; safecall;
+    function Get_backgroundRepeat: WideString; safecall;
+    function Get_borderLeftColor: OleVariant; safecall;
+    function Get_borderTopColor: OleVariant; safecall;
+    function Get_borderRightColor: OleVariant; safecall;
+    function Get_borderBottomColor: OleVariant; safecall;
+    function Get_borderTopStyle: WideString; safecall;
+    function Get_borderRightStyle: WideString; safecall;
+    function Get_borderBottomStyle: WideString; safecall;
+    function Get_borderLeftStyle: WideString; safecall;
+    function Get_borderTopWidth: OleVariant; safecall;
+    function Get_borderRightWidth: OleVariant; safecall;
+    function Get_borderBottomWidth: OleVariant; safecall;
+    function Get_borderLeftWidth: OleVariant; safecall;
+    function Get_left: OleVariant; safecall;
+    function Get_top: OleVariant; safecall;
+    function Get_width: OleVariant; safecall;
+    function Get_height: OleVariant; safecall;
+    function Get_paddingLeft: OleVariant; safecall;
+    function Get_paddingTop: OleVariant; safecall;
+    function Get_paddingRight: OleVariant; safecall;
+    function Get_paddingBottom: OleVariant; safecall;
+    function Get_textAlign: WideString; safecall;
+    function Get_textDecoration: WideString; safecall;
+    function Get_display: WideString; safecall;
+    function Get_visibility: WideString; safecall;
+    function Get_zIndex: OleVariant; safecall;
+    function Get_letterSpacing: OleVariant; safecall;
+    function Get_lineHeight: OleVariant; safecall;
+    function Get_textIndent: OleVariant; safecall;
+    function Get_verticalAlign: OleVariant; safecall;
+    function Get_backgroundAttachment: WideString; safecall;
+    function Get_marginTop: OleVariant; safecall;
+    function Get_marginRight: OleVariant; safecall;
+    function Get_marginBottom: OleVariant; safecall;
+    function Get_marginLeft: OleVariant; safecall;
+    function Get_clear: WideString; safecall;
+    function Get_listStyleType: WideString; safecall;
+    function Get_listStylePosition: WideString; safecall;
+    function Get_listStyleImage: WideString; safecall;
+    function Get_clipTop: OleVariant; safecall;
+    function Get_clipRight: OleVariant; safecall;
+    function Get_clipBottom: OleVariant; safecall;
+    function Get_clipLeft: OleVariant; safecall;
+    function Get_overflow: WideString; safecall;
+    function Get_pageBreakBefore: WideString; safecall;
+    function Get_pageBreakAfter: WideString; safecall;
+    function Get_cursor: WideString; safecall;
+    function Get_tableLayout: WideString; safecall;
+    function Get_borderCollapse: WideString; safecall;
+    function Get_direction: WideString; safecall;
+    function Get_behavior: WideString; safecall;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; safecall;
+    function Get_unicodeBidi: WideString; safecall;
+    function Get_right: OleVariant; safecall;
+    function Get_bottom: OleVariant; safecall;
+    function Get_imeMode: WideString; safecall;
+    function Get_rubyAlign: WideString; safecall;
+    function Get_rubyPosition: WideString; safecall;
+    function Get_rubyOverhang: WideString; safecall;
+    function Get_textAutospace: WideString; safecall;
+    function Get_lineBreak: WideString; safecall;
+    function Get_wordBreak: WideString; safecall;
+    function Get_textJustify: WideString; safecall;
+    function Get_textJustifyTrim: WideString; safecall;
+    function Get_textKashida: OleVariant; safecall;
+    function Get_blockDirection: WideString; safecall;
+    function Get_layoutGridChar: OleVariant; safecall;
+    function Get_layoutGridLine: OleVariant; safecall;
+    function Get_layoutGridMode: WideString; safecall;
+    function Get_layoutGridType: WideString; safecall;
+    function Get_borderStyle: WideString; safecall;
+    function Get_borderColor: WideString; safecall;
+    function Get_borderWidth: WideString; safecall;
+    function Get_padding: WideString; safecall;
+    function Get_margin: WideString; safecall;
+    function Get_accelerator: WideString; safecall;
+    function Get_overflowX: WideString; safecall;
+    function Get_overflowY: WideString; safecall;
+    function Get_textTransform: WideString; safecall;
+    property position: WideString read Get_position;
+    property styleFloat: WideString read Get_styleFloat;
+    property color: OleVariant read Get_color;
+    property backgroundColor: OleVariant read Get_backgroundColor;
+    property fontFamily: WideString read Get_fontFamily;
+    property fontStyle: WideString read Get_fontStyle;
+    property fontVariant: WideString read Get_fontVariant;
+    property fontWeight: OleVariant read Get_fontWeight;
+    property fontSize: OleVariant read Get_fontSize;
+    property backgroundImage: WideString read Get_backgroundImage;
+    property backgroundPositionX: OleVariant read Get_backgroundPositionX;
+    property backgroundPositionY: OleVariant read Get_backgroundPositionY;
+    property backgroundRepeat: WideString read Get_backgroundRepeat;
+    property borderLeftColor: OleVariant read Get_borderLeftColor;
+    property borderTopColor: OleVariant read Get_borderTopColor;
+    property borderRightColor: OleVariant read Get_borderRightColor;
+    property borderBottomColor: OleVariant read Get_borderBottomColor;
+    property borderTopStyle: WideString read Get_borderTopStyle;
+    property borderRightStyle: WideString read Get_borderRightStyle;
+    property borderBottomStyle: WideString read Get_borderBottomStyle;
+    property borderLeftStyle: WideString read Get_borderLeftStyle;
+    property borderTopWidth: OleVariant read Get_borderTopWidth;
+    property borderRightWidth: OleVariant read Get_borderRightWidth;
+    property borderBottomWidth: OleVariant read Get_borderBottomWidth;
+    property borderLeftWidth: OleVariant read Get_borderLeftWidth;
+    property left: OleVariant read Get_left;
+    property top: OleVariant read Get_top;
+    property width: OleVariant read Get_width;
+    property height: OleVariant read Get_height;
+    property paddingLeft: OleVariant read Get_paddingLeft;
+    property paddingTop: OleVariant read Get_paddingTop;
+    property paddingRight: OleVariant read Get_paddingRight;
+    property paddingBottom: OleVariant read Get_paddingBottom;
+    property textAlign: WideString read Get_textAlign;
+    property textDecoration: WideString read Get_textDecoration;
+    property display: WideString read Get_display;
+    property visibility: WideString read Get_visibility;
+    property zIndex: OleVariant read Get_zIndex;
+    property letterSpacing: OleVariant read Get_letterSpacing;
+    property lineHeight: OleVariant read Get_lineHeight;
+    property textIndent: OleVariant read Get_textIndent;
+    property verticalAlign: OleVariant read Get_verticalAlign;
+    property backgroundAttachment: WideString read Get_backgroundAttachment;
+    property marginTop: OleVariant read Get_marginTop;
+    property marginRight: OleVariant read Get_marginRight;
+    property marginBottom: OleVariant read Get_marginBottom;
+    property marginLeft: OleVariant read Get_marginLeft;
+    property clear: WideString read Get_clear;
+    property listStyleType: WideString read Get_listStyleType;
+    property listStylePosition: WideString read Get_listStylePosition;
+    property listStyleImage: WideString read Get_listStyleImage;
+    property clipTop: OleVariant read Get_clipTop;
+    property clipRight: OleVariant read Get_clipRight;
+    property clipBottom: OleVariant read Get_clipBottom;
+    property clipLeft: OleVariant read Get_clipLeft;
+    property overflow: WideString read Get_overflow;
+    property pageBreakBefore: WideString read Get_pageBreakBefore;
+    property pageBreakAfter: WideString read Get_pageBreakAfter;
+    property cursor: WideString read Get_cursor;
+    property tableLayout: WideString read Get_tableLayout;
+    property borderCollapse: WideString read Get_borderCollapse;
+    property direction: WideString read Get_direction;
+    property behavior: WideString read Get_behavior;
+    property unicodeBidi: WideString read Get_unicodeBidi;
+    property right: OleVariant read Get_right;
+    property bottom: OleVariant read Get_bottom;
+    property imeMode: WideString read Get_imeMode;
+    property rubyAlign: WideString read Get_rubyAlign;
+    property rubyPosition: WideString read Get_rubyPosition;
+    property rubyOverhang: WideString read Get_rubyOverhang;
+    property textAutospace: WideString read Get_textAutospace;
+    property lineBreak: WideString read Get_lineBreak;
+    property wordBreak: WideString read Get_wordBreak;
+    property textJustify: WideString read Get_textJustify;
+    property textJustifyTrim: WideString read Get_textJustifyTrim;
+    property textKashida: OleVariant read Get_textKashida;
+    property blockDirection: WideString read Get_blockDirection;
+    property layoutGridChar: OleVariant read Get_layoutGridChar;
+    property layoutGridLine: OleVariant read Get_layoutGridLine;
+    property layoutGridMode: WideString read Get_layoutGridMode;
+    property layoutGridType: WideString read Get_layoutGridType;
+    property borderStyle: WideString read Get_borderStyle;
+    property borderColor: WideString read Get_borderColor;
+    property borderWidth: WideString read Get_borderWidth;
+    property padding: WideString read Get_padding;
+    property margin: WideString read Get_margin;
+    property accelerator: WideString read Get_accelerator;
+    property overflowX: WideString read Get_overflowX;
+    property overflowY: WideString read Get_overflowY;
+    property textTransform: WideString read Get_textTransform;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLCurrentStyleDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3DB-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLCurrentStyleDisp = dispinterface
+    ['{3050F3DB-98B5-11CF-BB82-00AA00BDCE0B}']
+    property position: WideString readonly dispid - 2147413022;
+    property styleFloat: WideString readonly dispid - 2147413042;
+    property color: OleVariant readonly dispid - 2147413110;
+    property backgroundColor: OleVariant readonly dispid - 501;
+    property fontFamily: WideString readonly dispid - 2147413094;
+    property fontStyle: WideString readonly dispid - 2147413088;
+    property fontVariant: WideString readonly dispid - 2147413087;
+    property fontWeight: OleVariant readonly dispid - 2147413085;
+    property fontSize: OleVariant readonly dispid - 2147413093;
+    property backgroundImage: WideString readonly dispid - 2147413111;
+    property backgroundPositionX: OleVariant readonly dispid - 2147413079;
+    property backgroundPositionY: OleVariant readonly dispid - 2147413078;
+    property backgroundRepeat: WideString readonly dispid - 2147413068;
+    property borderLeftColor: OleVariant readonly dispid - 2147413054;
+    property borderTopColor: OleVariant readonly dispid - 2147413057;
+    property borderRightColor: OleVariant readonly dispid - 2147413056;
+    property borderBottomColor: OleVariant readonly dispid - 2147413055;
+    property borderTopStyle: WideString readonly dispid - 2147413047;
+    property borderRightStyle: WideString readonly dispid - 2147413046;
+    property borderBottomStyle: WideString readonly dispid - 2147413045;
+    property borderLeftStyle: WideString readonly dispid - 2147413044;
+    property borderTopWidth: OleVariant readonly dispid - 2147413052;
+    property borderRightWidth: OleVariant readonly dispid - 2147413051;
+    property borderBottomWidth: OleVariant readonly dispid - 2147413050;
+    property borderLeftWidth: OleVariant readonly dispid - 2147413049;
+    property left: OleVariant readonly dispid - 2147418109;
+    property top: OleVariant readonly dispid - 2147418108;
+    property width: OleVariant readonly dispid - 2147418107;
+    property height: OleVariant readonly dispid - 2147418106;
+    property paddingLeft: OleVariant readonly dispid - 2147413097;
+    property paddingTop: OleVariant readonly dispid - 2147413100;
+    property paddingRight: OleVariant readonly dispid - 2147413099;
+    property paddingBottom: OleVariant readonly dispid - 2147413098;
+    property textAlign: WideString readonly dispid - 2147418040;
+    property textDecoration: WideString readonly dispid - 2147413077;
+    property display: WideString readonly dispid - 2147413041;
+    property visibility: WideString readonly dispid - 2147413032;
+    property zIndex: OleVariant readonly dispid - 2147413021;
+    property letterSpacing: OleVariant readonly dispid - 2147413104;
+    property lineHeight: OleVariant readonly dispid - 2147413106;
+    property textIndent: OleVariant readonly dispid - 2147413105;
+    property verticalAlign: OleVariant readonly dispid - 2147413064;
+    property backgroundAttachment: WideString readonly dispid - 2147413067;
+    property marginTop: OleVariant readonly dispid - 2147413075;
+    property marginRight: OleVariant readonly dispid - 2147413074;
+    property marginBottom: OleVariant readonly dispid - 2147413073;
+    property marginLeft: OleVariant readonly dispid - 2147413072;
+    property clear: WideString readonly dispid - 2147413096;
+    property listStyleType: WideString readonly dispid - 2147413040;
+    property listStylePosition: WideString readonly dispid - 2147413039;
+    property listStyleImage: WideString readonly dispid - 2147413038;
+    property clipTop: OleVariant readonly dispid - 2147413019;
+    property clipRight: OleVariant readonly dispid - 2147413018;
+    property clipBottom: OleVariant readonly dispid - 2147413017;
+    property clipLeft: OleVariant readonly dispid - 2147413016;
+    property overflow: WideString readonly dispid - 2147413102;
+    property pageBreakBefore: WideString readonly dispid - 2147413035;
+    property pageBreakAfter: WideString readonly dispid - 2147413034;
+    property cursor: WideString readonly dispid - 2147413010;
+    property tableLayout: WideString readonly dispid - 2147413014;
+    property borderCollapse: WideString readonly dispid - 2147413028;
+    property direction: WideString readonly dispid - 2147412993;
+    property behavior: WideString readonly dispid - 2147412997;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    property unicodeBidi: WideString readonly dispid - 2147412994;
+    property right: OleVariant readonly dispid - 2147418035;
+    property bottom: OleVariant readonly dispid - 2147418034;
+    property imeMode: WideString readonly dispid - 2147412992;
+    property rubyAlign: WideString readonly dispid - 2147412991;
+    property rubyPosition: WideString readonly dispid - 2147412990;
+    property rubyOverhang: WideString readonly dispid - 2147412989;
+    property textAutospace: WideString readonly dispid - 2147412980;
+    property lineBreak: WideString readonly dispid - 2147412979;
+    property wordBreak: WideString readonly dispid - 2147412978;
+    property textJustify: WideString readonly dispid - 2147412977;
+    property textJustifyTrim: WideString readonly dispid - 2147412976;
+    property textKashida: OleVariant readonly dispid - 2147412975;
+    property blockDirection: WideString readonly dispid - 2147412995;
+    property layoutGridChar: OleVariant readonly dispid - 2147412985;
+    property layoutGridLine: OleVariant readonly dispid - 2147412984;
+    property layoutGridMode: WideString readonly dispid - 2147412983;
+    property layoutGridType: WideString readonly dispid - 2147412982;
+    property borderStyle: WideString readonly dispid - 2147413048;
+    property borderColor: WideString readonly dispid - 2147413058;
+    property borderWidth: WideString readonly dispid - 2147413053;
+    property padding: WideString readonly dispid - 2147413101;
+    property margin: WideString readonly dispid - 2147413076;
+    property accelerator: WideString readonly dispid - 2147412965;
+    property overflowX: WideString readonly dispid - 2147412973;
+    property overflowY: WideString readonly dispid - 2147412972;
+    property textTransform: WideString readonly dispid - 2147413108;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLCurrentStyle2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F658-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLCurrentStyle2 = interface(IDispatch)
+    ['{3050F658-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_layoutFlow: WideString; safecall;
+    function Get_wordWrap: WideString; safecall;
+    function Get_textUnderlinePosition: WideString; safecall;
+    function Get_hasLayout: WordBool; safecall;
+    function Get_scrollbarBaseColor: OleVariant; safecall;
+    function Get_scrollbarFaceColor: OleVariant; safecall;
+    function Get_scrollbar3dLightColor: OleVariant; safecall;
+    function Get_scrollbarShadowColor: OleVariant; safecall;
+    function Get_scrollbarHighlightColor: OleVariant; safecall;
+    function Get_scrollbarDarkShadowColor: OleVariant; safecall;
+    function Get_scrollbarArrowColor: OleVariant; safecall;
+    function Get_scrollbarTrackColor: OleVariant; safecall;
+    function Get_writingMode: WideString; safecall;
+    function Get_zoom: OleVariant; safecall;
+    function Get_filter: WideString; safecall;
+    function Get_textAlignLast: WideString; safecall;
+    function Get_textKashidaSpace: OleVariant; safecall;
+    function Get_isBlock: WordBool; safecall;
+    property layoutFlow: WideString read Get_layoutFlow;
+    property wordWrap: WideString read Get_wordWrap;
+    property textUnderlinePosition: WideString read Get_textUnderlinePosition;
+    property hasLayout: WordBool read Get_hasLayout;
+    property scrollbarBaseColor: OleVariant read Get_scrollbarBaseColor;
+    property scrollbarFaceColor: OleVariant read Get_scrollbarFaceColor;
+    property scrollbar3dLightColor: OleVariant read Get_scrollbar3dLightColor;
+    property scrollbarShadowColor: OleVariant read Get_scrollbarShadowColor;
+    property scrollbarHighlightColor: OleVariant read Get_scrollbarHighlightColor;
+    property scrollbarDarkShadowColor: OleVariant read Get_scrollbarDarkShadowColor;
+    property scrollbarArrowColor: OleVariant read Get_scrollbarArrowColor;
+    property scrollbarTrackColor: OleVariant read Get_scrollbarTrackColor;
+    property writingMode: WideString read Get_writingMode;
+    property zoom: OleVariant read Get_zoom;
+    property filter: WideString read Get_filter;
+    property textAlignLast: WideString read Get_textAlignLast;
+    property textKashidaSpace: OleVariant read Get_textKashidaSpace;
+    property isBlock: WordBool read Get_isBlock;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLCurrentStyle2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F658-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLCurrentStyle2Disp = dispinterface
+    ['{3050F658-98B5-11CF-BB82-00AA00BDCE0B}']
+    property layoutFlow: WideString readonly dispid - 2147412957;
+    property wordWrap: WideString readonly dispid - 2147412954;
+    property textUnderlinePosition: WideString readonly dispid - 2147412953;
+    property hasLayout: WordBool readonly dispid - 2147412952;
+    property scrollbarBaseColor: OleVariant readonly dispid - 2147412932;
+    property scrollbarFaceColor: OleVariant readonly dispid - 2147412931;
+    property scrollbar3dLightColor: OleVariant readonly dispid - 2147412930;
+    property scrollbarShadowColor: OleVariant readonly dispid - 2147412929;
+    property scrollbarHighlightColor: OleVariant readonly dispid - 2147412928;
+    property scrollbarDarkShadowColor: OleVariant readonly dispid - 2147412927;
+    property scrollbarArrowColor: OleVariant readonly dispid - 2147412926;
+    property scrollbarTrackColor: OleVariant readonly dispid - 2147412916;
+    property writingMode: WideString readonly dispid - 2147412920;
+    property zoom: OleVariant readonly dispid - 2147412959;
+    property filter: WideString readonly dispid - 2147413030;
+    property textAlignLast: WideString readonly dispid - 2147412909;
+    property textKashidaSpace: OleVariant readonly dispid - 2147412908;
+    property isBlock: WordBool readonly dispid - 2147412904;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLCurrentStyle3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F818-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLCurrentStyle3 = interface(IDispatch)
+    ['{3050F818-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_textOverflow: WideString; safecall;
+    function Get_minHeight: OleVariant; safecall;
+    function Get_wordSpacing: OleVariant; safecall;
+    function Get_whiteSpace: WideString; safecall;
+    property textOverflow: WideString read Get_textOverflow;
+    property minHeight: OleVariant read Get_minHeight;
+    property wordSpacing: OleVariant read Get_wordSpacing;
+    property whiteSpace: WideString read Get_whiteSpace;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLCurrentStyle3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F818-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLCurrentStyle3Disp = dispinterface
+    ['{3050F818-98B5-11CF-BB82-00AA00BDCE0B}']
+    property textOverflow: WideString readonly dispid - 2147412903;
+    property minHeight: OleVariant readonly dispid - 2147412901;
+    property wordSpacing: OleVariant readonly dispid - 2147413065;
+    property whiteSpace: WideString readonly dispid - 2147413036;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLCurrentStyle
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F557-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLCurrentStyle = dispinterface
+    ['{3050F557-98B5-11CF-BB82-00AA00BDCE0B}']
+    property position: WideString readonly dispid - 2147413022;
+    property styleFloat: WideString readonly dispid - 2147413042;
+    property color: OleVariant readonly dispid - 2147413110;
+    property backgroundColor: OleVariant readonly dispid - 501;
+    property fontFamily: WideString readonly dispid - 2147413094;
+    property fontStyle: WideString readonly dispid - 2147413088;
+    property fontVariant: WideString readonly dispid - 2147413087;
+    property fontWeight: OleVariant readonly dispid - 2147413085;
+    property fontSize: OleVariant readonly dispid - 2147413093;
+    property backgroundImage: WideString readonly dispid - 2147413111;
+    property backgroundPositionX: OleVariant readonly dispid - 2147413079;
+    property backgroundPositionY: OleVariant readonly dispid - 2147413078;
+    property backgroundRepeat: WideString readonly dispid - 2147413068;
+    property borderLeftColor: OleVariant readonly dispid - 2147413054;
+    property borderTopColor: OleVariant readonly dispid - 2147413057;
+    property borderRightColor: OleVariant readonly dispid - 2147413056;
+    property borderBottomColor: OleVariant readonly dispid - 2147413055;
+    property borderTopStyle: WideString readonly dispid - 2147413047;
+    property borderRightStyle: WideString readonly dispid - 2147413046;
+    property borderBottomStyle: WideString readonly dispid - 2147413045;
+    property borderLeftStyle: WideString readonly dispid - 2147413044;
+    property borderTopWidth: OleVariant readonly dispid - 2147413052;
+    property borderRightWidth: OleVariant readonly dispid - 2147413051;
+    property borderBottomWidth: OleVariant readonly dispid - 2147413050;
+    property borderLeftWidth: OleVariant readonly dispid - 2147413049;
+    property left: OleVariant readonly dispid - 2147418109;
+    property top: OleVariant readonly dispid - 2147418108;
+    property width: OleVariant readonly dispid - 2147418107;
+    property height: OleVariant readonly dispid - 2147418106;
+    property paddingLeft: OleVariant readonly dispid - 2147413097;
+    property paddingTop: OleVariant readonly dispid - 2147413100;
+    property paddingRight: OleVariant readonly dispid - 2147413099;
+    property paddingBottom: OleVariant readonly dispid - 2147413098;
+    property textAlign: WideString readonly dispid - 2147418040;
+    property textDecoration: WideString readonly dispid - 2147413077;
+    property display: WideString readonly dispid - 2147413041;
+    property visibility: WideString readonly dispid - 2147413032;
+    property zIndex: OleVariant readonly dispid - 2147413021;
+    property letterSpacing: OleVariant readonly dispid - 2147413104;
+    property lineHeight: OleVariant readonly dispid - 2147413106;
+    property textIndent: OleVariant readonly dispid - 2147413105;
+    property verticalAlign: OleVariant readonly dispid - 2147413064;
+    property backgroundAttachment: WideString readonly dispid - 2147413067;
+    property marginTop: OleVariant readonly dispid - 2147413075;
+    property marginRight: OleVariant readonly dispid - 2147413074;
+    property marginBottom: OleVariant readonly dispid - 2147413073;
+    property marginLeft: OleVariant readonly dispid - 2147413072;
+    property clear: WideString readonly dispid - 2147413096;
+    property listStyleType: WideString readonly dispid - 2147413040;
+    property listStylePosition: WideString readonly dispid - 2147413039;
+    property listStyleImage: WideString readonly dispid - 2147413038;
+    property clipTop: OleVariant readonly dispid - 2147413019;
+    property clipRight: OleVariant readonly dispid - 2147413018;
+    property clipBottom: OleVariant readonly dispid - 2147413017;
+    property clipLeft: OleVariant readonly dispid - 2147413016;
+    property overflow: WideString readonly dispid - 2147413102;
+    property pageBreakBefore: WideString readonly dispid - 2147413035;
+    property pageBreakAfter: WideString readonly dispid - 2147413034;
+    property cursor: WideString readonly dispid - 2147413010;
+    property tableLayout: WideString readonly dispid - 2147413014;
+    property borderCollapse: WideString readonly dispid - 2147413028;
+    property direction: WideString readonly dispid - 2147412993;
+    property behavior: WideString readonly dispid - 2147412997;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    property unicodeBidi: WideString readonly dispid - 2147412994;
+    property right: OleVariant readonly dispid - 2147418035;
+    property bottom: OleVariant readonly dispid - 2147418034;
+    property imeMode: WideString readonly dispid - 2147412992;
+    property rubyAlign: WideString readonly dispid - 2147412991;
+    property rubyPosition: WideString readonly dispid - 2147412990;
+    property rubyOverhang: WideString readonly dispid - 2147412989;
+    property textAutospace: WideString readonly dispid - 2147412980;
+    property lineBreak: WideString readonly dispid - 2147412979;
+    property wordBreak: WideString readonly dispid - 2147412978;
+    property textJustify: WideString readonly dispid - 2147412977;
+    property textJustifyTrim: WideString readonly dispid - 2147412976;
+    property textKashida: OleVariant readonly dispid - 2147412975;
+    property blockDirection: WideString readonly dispid - 2147412995;
+    property layoutGridChar: OleVariant readonly dispid - 2147412985;
+    property layoutGridLine: OleVariant readonly dispid - 2147412984;
+    property layoutGridMode: WideString readonly dispid - 2147412983;
+    property layoutGridType: WideString readonly dispid - 2147412982;
+    property borderStyle: WideString readonly dispid - 2147413048;
+    property borderColor: WideString readonly dispid - 2147413058;
+    property borderWidth: WideString readonly dispid - 2147413053;
+    property padding: WideString readonly dispid - 2147413101;
+    property margin: WideString readonly dispid - 2147413076;
+    property accelerator: WideString readonly dispid - 2147412965;
+    property overflowX: WideString readonly dispid - 2147412973;
+    property overflowY: WideString readonly dispid - 2147412972;
+    property textTransform: WideString readonly dispid - 2147413108;
+    property layoutFlow: WideString readonly dispid - 2147412957;
+    property wordWrap: WideString readonly dispid - 2147412954;
+    property textUnderlinePosition: WideString readonly dispid - 2147412953;
+    property hasLayout: WordBool readonly dispid - 2147412952;
+    property scrollbarBaseColor: OleVariant readonly dispid - 2147412932;
+    property scrollbarFaceColor: OleVariant readonly dispid - 2147412931;
+    property scrollbar3dLightColor: OleVariant readonly dispid - 2147412930;
+    property scrollbarShadowColor: OleVariant readonly dispid - 2147412929;
+    property scrollbarHighlightColor: OleVariant readonly dispid - 2147412928;
+    property scrollbarDarkShadowColor: OleVariant readonly dispid - 2147412927;
+    property scrollbarArrowColor: OleVariant readonly dispid - 2147412926;
+    property scrollbarTrackColor: OleVariant readonly dispid - 2147412916;
+    property writingMode: WideString readonly dispid - 2147412920;
+    property zoom: OleVariant readonly dispid - 2147412959;
+    property filter: WideString readonly dispid - 2147413030;
+    property textAlignLast: WideString readonly dispid - 2147412909;
+    property textKashidaSpace: OleVariant readonly dispid - 2147412908;
+    property isBlock: WordBool readonly dispid - 2147412904;
+    property textOverflow: WideString readonly dispid - 2147412903;
+    property minHeight: OleVariant readonly dispid - 2147412901;
+    property wordSpacing: OleVariant readonly dispid - 2147413065;
+    property whiteSpace: WideString readonly dispid - 2147413036;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLRect
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4A3-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLRect = interface(IDispatch)
+    ['{3050F4A3-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_left(p: Integer); safecall;
+    function Get_left: Integer; safecall;
+    procedure Set_top(p: Integer); safecall;
+    function Get_top: Integer; safecall;
+    procedure Set_right(p: Integer); safecall;
+    function Get_right: Integer; safecall;
+    procedure Set_bottom(p: Integer); safecall;
+    function Get_bottom: Integer; safecall;
+    property left: Integer read Get_left write Set_left;
+    property top: Integer read Get_top write Set_top;
+    property right: Integer read Get_right write Set_right;
+    property bottom: Integer read Get_bottom write Set_bottom;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLRectDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4A3-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLRectDisp = dispinterface
+    ['{3050F4A3-98B5-11CF-BB82-00AA00BDCE0B}']
+    property left: Integer dispid 1001;
+    property top: Integer dispid 1002;
+    property right: Integer dispid 1003;
+    property bottom: Integer dispid 1004;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLRectCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4A4-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLRectCollection = interface(IDispatch)
+    ['{3050F4A4-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_length: Integer; safecall;
+    function Get__newEnum: IUnknown; safecall;
+    // !! API fix decl
+    function item(const pvarIndex: OleVariant): OleVariant; safecall;
+    property length: Integer read Get_length;
+    property _newEnum: IUnknown read Get__newEnum;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLRectCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4A4-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLRectCollectionDisp = dispinterface
+    ['{3050F4A4-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1500;
+    property _newEnum: IUnknown readonly dispid - 4;
+    // !! API fix decl
+    function item(const pvarIndex: OleVariant): OleVariant; dispid 0;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDOMNode
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5DA-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDOMNode = interface(IDispatch)
+    ['{3050F5DA-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_nodeType: Integer; safecall;
+    function Get_parentNode: IHTMLDOMNode; safecall;
+    function hasChildNodes: WordBool; safecall;
+    function Get_childNodes: IDispatch; safecall;
+    function Get_attributes: IDispatch; safecall;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; safecall;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; safecall;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; safecall;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; safecall;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; safecall;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; safecall;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; safecall;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; safecall;
+    function Get_nodeName: WideString; safecall;
+    procedure Set_nodeValue(p: OleVariant); safecall;
+    function Get_nodeValue: OleVariant; safecall;
+    function Get_firstChild: IHTMLDOMNode; safecall;
+    function Get_lastChild: IHTMLDOMNode; safecall;
+    function Get_previousSibling: IHTMLDOMNode; safecall;
+    function Get_nextSibling: IHTMLDOMNode; safecall;
+    property nodeType: Integer read Get_nodeType;
+    property parentNode: IHTMLDOMNode read Get_parentNode;
+    property childNodes: IDispatch read Get_childNodes;
+    property attributes: IDispatch read Get_attributes;
+    property nodeName: WideString read Get_nodeName;
+    property nodeValue: OleVariant read Get_nodeValue write Set_nodeValue;
+    property firstChild: IHTMLDOMNode read Get_firstChild;
+    property lastChild: IHTMLDOMNode read Get_lastChild;
+    property previousSibling: IHTMLDOMNode read Get_previousSibling;
+    property nextSibling: IHTMLDOMNode read Get_nextSibling;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDOMNodeDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5DA-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDOMNodeDisp = dispinterface
+    ['{3050F5DA-98B5-11CF-BB82-00AA00BDCE0B}']
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDOMNode2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F80B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDOMNode2 = interface(IDispatch)
+    ['{3050F80B-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_ownerDocument: IDispatch; safecall;
+    property ownerDocument: IDispatch read Get_ownerDocument;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDOMNode2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F80B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDOMNode2Disp = dispinterface
+    ['{3050F80B-98B5-11CF-BB82-00AA00BDCE0B}']
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDOMAttribute
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4B0-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDOMAttribute = interface(IDispatch)
+    ['{3050F4B0-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_nodeName: WideString; safecall;
+    procedure Set_nodeValue(p: OleVariant); safecall;
+    function Get_nodeValue: OleVariant; safecall;
+    function Get_specified: WordBool; safecall;
+    property nodeName: WideString read Get_nodeName;
+    property nodeValue: OleVariant read Get_nodeValue write Set_nodeValue;
+    property specified: WordBool read Get_specified;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDOMAttributeDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4B0-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDOMAttributeDisp = dispinterface
+    ['{3050F4B0-98B5-11CF-BB82-00AA00BDCE0B}']
+    property nodeName: WideString readonly dispid 1000;
+    property nodeValue: OleVariant dispid 1002;
+    property specified: WordBool readonly dispid 1001;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDOMAttribute2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F810-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDOMAttribute2 = interface(IDispatch)
+    ['{3050F810-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_name: WideString; safecall;
+    procedure Set_value(const p: WideString); safecall;
+    function Get_value: WideString; safecall;
+    function Get_expando: WordBool; safecall;
+    function Get_nodeType: Integer; safecall;
+    function Get_parentNode: IHTMLDOMNode; safecall;
+    function Get_childNodes: IDispatch; safecall;
+    function Get_firstChild: IHTMLDOMNode; safecall;
+    function Get_lastChild: IHTMLDOMNode; safecall;
+    function Get_previousSibling: IHTMLDOMNode; safecall;
+    function Get_nextSibling: IHTMLDOMNode; safecall;
+    function Get_attributes: IDispatch; safecall;
+    function Get_ownerDocument: IDispatch; safecall;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; safecall;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; safecall;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; safecall;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; safecall;
+    function hasChildNodes: WordBool; safecall;
+    function cloneNode(fDeep: WordBool): IHTMLDOMAttribute; safecall;
+    property name: WideString read Get_name;
+    property value: WideString read Get_value write Set_value;
+    property expando: WordBool read Get_expando;
+    property nodeType: Integer read Get_nodeType;
+    property parentNode: IHTMLDOMNode read Get_parentNode;
+    property childNodes: IDispatch read Get_childNodes;
+    property firstChild: IHTMLDOMNode read Get_firstChild;
+    property lastChild: IHTMLDOMNode read Get_lastChild;
+    property previousSibling: IHTMLDOMNode read Get_previousSibling;
+    property nextSibling: IHTMLDOMNode read Get_nextSibling;
+    property attributes: IDispatch read Get_attributes;
+    property ownerDocument: IDispatch read Get_ownerDocument;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDOMAttribute2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F810-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDOMAttribute2Disp = dispinterface
+    ['{3050F810-98B5-11CF-BB82-00AA00BDCE0B}']
+    property name: WideString readonly dispid 1003;
+    property value: WideString dispid 1004;
+    property expando: WordBool readonly dispid 1005;
+    property nodeType: Integer readonly dispid 1006;
+    property parentNode: IHTMLDOMNode readonly dispid 1007;
+    property childNodes: IDispatch readonly dispid 1008;
+    property firstChild: IHTMLDOMNode readonly dispid 1009;
+    property lastChild: IHTMLDOMNode readonly dispid 1010;
+    property previousSibling: IHTMLDOMNode readonly dispid 1011;
+    property nextSibling: IHTMLDOMNode readonly dispid 1012;
+    property attributes: IDispatch readonly dispid 1013;
+    property ownerDocument: IDispatch readonly dispid 1014;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid 1015;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid 1016;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid 1017;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid 1018;
+    function hasChildNodes: WordBool; dispid 1019;
+    function cloneNode(fDeep: WordBool): IHTMLDOMAttribute; dispid 1020;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDOMTextNode
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4B1-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDOMTextNode = interface(IDispatch)
+    ['{3050F4B1-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_data(const p: WideString); safecall;
+    function Get_data: WideString; safecall;
+    function toString: WideString; safecall;
+    function Get_length: Integer; safecall;
+    function splitText(offset: Integer): IHTMLDOMNode; safecall;
+    property data: WideString read Get_data write Set_data;
+    property length: Integer read Get_length;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDOMTextNodeDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4B1-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDOMTextNodeDisp = dispinterface
+    ['{3050F4B1-98B5-11CF-BB82-00AA00BDCE0B}']
+    property data: WideString dispid 1000;
+    function toString: WideString; dispid 1001;
+    property length: Integer readonly dispid 1002;
+    function splitText(offset: Integer): IHTMLDOMNode; dispid 1003;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDOMTextNode2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F809-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDOMTextNode2 = interface(IDispatch)
+    ['{3050F809-98B5-11CF-BB82-00AA00BDCE0B}']
+    function substringData(offset: Integer; Count: Integer): WideString; safecall;
+    procedure appendData(const bstrstring: WideString); safecall;
+    procedure insertData(offset: Integer; const bstrstring: WideString); safecall;
+    procedure deleteData(offset: Integer; Count: Integer); safecall;
+    procedure replaceData(offset: Integer; Count: Integer; const bstrstring: WideString); safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDOMTextNode2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F809-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDOMTextNode2Disp = dispinterface
+    ['{3050F809-98B5-11CF-BB82-00AA00BDCE0B}']
+    function substringData(offset: Integer; Count: Integer): WideString; dispid 1004;
+    procedure appendData(const bstrstring: WideString); dispid 1005;
+    procedure insertData(offset: Integer; const bstrstring: WideString); dispid 1006;
+    procedure deleteData(offset: Integer; Count: Integer); dispid 1007;
+    procedure replaceData(offset: Integer; Count: Integer; const bstrstring: WideString); dispid 1008;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDOMImplementation
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F80D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDOMImplementation = interface(IDispatch)
+    ['{3050F80D-98B5-11CF-BB82-00AA00BDCE0B}']
+    function hasFeature(const bstrfeature: WideString; version: OleVariant): WordBool; safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDOMImplementationDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F80D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDOMImplementationDisp = dispinterface
+    ['{3050F80D-98B5-11CF-BB82-00AA00BDCE0B}']
+    function hasFeature(const bstrfeature: WideString; version: OleVariant): WordBool; dispid 1000;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLDOMAttribute
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F564-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLDOMAttribute = dispinterface
+    ['{3050F564-98B5-11CF-BB82-00AA00BDCE0B}']
+    property nodeName: WideString readonly dispid 1000;
+    property nodeValue: OleVariant dispid 1002;
+    property specified: WordBool readonly dispid 1001;
+    property name: WideString readonly dispid 1003;
+    property value: WideString dispid 1004;
+    property expando: WordBool readonly dispid 1005;
+    property nodeType: Integer readonly dispid 1006;
+    property parentNode: IHTMLDOMNode readonly dispid 1007;
+    property childNodes: IDispatch readonly dispid 1008;
+    property firstChild: IHTMLDOMNode readonly dispid 1009;
+    property lastChild: IHTMLDOMNode readonly dispid 1010;
+    property previousSibling: IHTMLDOMNode readonly dispid 1011;
+    property nextSibling: IHTMLDOMNode readonly dispid 1012;
+    property attributes: IDispatch readonly dispid 1013;
+    property ownerDocument: IDispatch readonly dispid 1014;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid 1015;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid 1016;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid 1017;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid 1018;
+    function hasChildNodes: WordBool; dispid 1019;
+    function cloneNode(fDeep: WordBool): IHTMLDOMAttribute; dispid 1020;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLDOMTextNode
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F565-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLDOMTextNode = dispinterface
+    ['{3050F565-98B5-11CF-BB82-00AA00BDCE0B}']
+    property data: WideString dispid 1000;
+    function toString: WideString; dispid 1001;
+    property length: Integer readonly dispid 1002;
+    function splitText(offset: Integer): IHTMLDOMNode; dispid 1003;
+    function substringData(offset: Integer; Count: Integer): WideString; dispid 1004;
+    procedure appendData(const bstrstring: WideString); dispid 1005;
+    procedure insertData(offset: Integer; const bstrstring: WideString); dispid 1006;
+    procedure deleteData(offset: Integer; Count: Integer); dispid 1007;
+    procedure replaceData(offset: Integer; Count: Integer; const bstrstring: WideString); dispid 1008;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLDOMImplementation
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F58F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLDOMImplementation = dispinterface
+    ['{3050F58F-98B5-11CF-BB82-00AA00BDCE0B}']
+    function hasFeature(const bstrfeature: WideString; version: OleVariant): WordBool; dispid 1000;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLAttributeCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4C3-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAttributeCollection = interface(IDispatch)
+    ['{3050F4C3-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_length: Integer; safecall;
+    function Get__newEnum: IUnknown; safecall;
+    // !! API fix decl
+    function item(const name: OleVariant): IDispatch; safecall;
+    property length: Integer read Get_length;
+    property _newEnum: IUnknown read Get__newEnum;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLAttributeCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4C3-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAttributeCollectionDisp = dispinterface
+    ['{3050F4C3-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1500;
+    property _newEnum: IUnknown readonly dispid - 4;
+    // !! API fix decl
+    function item(const name: OleVariant): IDispatch; dispid 0;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLAttributeCollection2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F80A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAttributeCollection2 = interface(IDispatch)
+    ['{3050F80A-98B5-11CF-BB82-00AA00BDCE0B}']
+    function getNamedItem(const bstrName: WideString): IHTMLDOMAttribute; safecall;
+    function setNamedItem(const ppNode: IHTMLDOMAttribute): IHTMLDOMAttribute; safecall;
+    function removeNamedItem(const bstrName: WideString): IHTMLDOMAttribute; safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLAttributeCollection2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F80A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAttributeCollection2Disp = dispinterface
+    ['{3050F80A-98B5-11CF-BB82-00AA00BDCE0B}']
+    function getNamedItem(const bstrName: WideString): IHTMLDOMAttribute; dispid 1501;
+    function setNamedItem(const ppNode: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid 1502;
+    function removeNamedItem(const bstrName: WideString): IHTMLDOMAttribute; dispid 1503;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDOMChildrenCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5AB-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDOMChildrenCollection = interface(IDispatch)
+    ['{3050F5AB-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_length: Integer; safecall;
+    function Get__newEnum: IUnknown; safecall;
+    function item(index: Integer): IDispatch; safecall;
+    property length: Integer read Get_length;
+    property _newEnum: IUnknown read Get__newEnum;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDOMChildrenCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5AB-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDOMChildrenCollectionDisp = dispinterface
+    ['{3050F5AB-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1500;
+    property _newEnum: IUnknown readonly dispid - 4;
+    function item(index: Integer): IDispatch; dispid 0;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLAttributeCollection
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F56C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLAttributeCollection = dispinterface
+    ['{3050F56C-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1500;
+    property _newEnum: IUnknown readonly dispid - 4;
+    function item(var name: OleVariant): IDispatch; dispid 0;
+    function getNamedItem(const bstrName: WideString): IHTMLDOMAttribute; dispid 1501;
+    function setNamedItem(const ppNode: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid 1502;
+    function removeNamedItem(const bstrName: WideString): IHTMLDOMAttribute; dispid 1503;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispDOMChildrenCollection
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F577-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispDOMChildrenCollection = dispinterface
+    ['{3050F577-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1500;
+    property _newEnum: IUnknown readonly dispid - 4;
+    function item(index: Integer): IDispatch; dispid 0;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLElementEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F60F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLElementEvents2 = dispinterface
+    ['{3050F60F-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLElementEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F33C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLElementEvents = dispinterface
+    ['{3050F33C-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLElementCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F21F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLElementCollection = interface(IDispatch)
+    ['{3050F21F-98B5-11CF-BB82-00AA00BDCE0B}']
+    function toString: WideString; safecall;
+    procedure Set_length(p: Integer); safecall;
+    function Get_length: Integer; safecall;
+    function Get__newEnum: IUnknown; safecall;
+    function item(name: OleVariant; index: OleVariant): IDispatch; safecall;
+    function tags(tagName: OleVariant): IDispatch; safecall;
+    property length: Integer read Get_length write Set_length;
+    property _newEnum: IUnknown read Get__newEnum;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLElementCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F21F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLElementCollectionDisp = dispinterface
+    ['{3050F21F-98B5-11CF-BB82-00AA00BDCE0B}']
+    function toString: WideString; dispid 1501;
+    property length: Integer dispid 1500;
+    property _newEnum: IUnknown readonly dispid - 4;
+    function item(name: OleVariant; index: OleVariant): IDispatch; dispid 0;
+    function tags(tagName: OleVariant): IDispatch; dispid 1502;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F434-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLElement2 = interface(IDispatch)
+    ['{3050F434-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_scopeName: WideString; safecall;
+    procedure setCapture(containerCapture: WordBool); safecall;
+    procedure releaseCapture; safecall;
+    procedure Set_onlosecapture(p: OleVariant); safecall;
+    function Get_onlosecapture: OleVariant; safecall;
+    function componentFromPoint(x: Integer; y: Integer): WideString; safecall;
+    procedure doScroll(component: OleVariant); safecall;
+    procedure Set_onscroll(p: OleVariant); safecall;
+    function Get_onscroll: OleVariant; safecall;
+    procedure Set_ondrag(p: OleVariant); safecall;
+    function Get_ondrag: OleVariant; safecall;
+    procedure Set_ondragend(p: OleVariant); safecall;
+    function Get_ondragend: OleVariant; safecall;
+    procedure Set_ondragenter(p: OleVariant); safecall;
+    function Get_ondragenter: OleVariant; safecall;
+    procedure Set_ondragover(p: OleVariant); safecall;
+    function Get_ondragover: OleVariant; safecall;
+    procedure Set_ondragleave(p: OleVariant); safecall;
+    function Get_ondragleave: OleVariant; safecall;
+    procedure Set_ondrop(p: OleVariant); safecall;
+    function Get_ondrop: OleVariant; safecall;
+    procedure Set_onbeforecut(p: OleVariant); safecall;
+    function Get_onbeforecut: OleVariant; safecall;
+    procedure Set_oncut(p: OleVariant); safecall;
+    function Get_oncut: OleVariant; safecall;
+    procedure Set_onbeforecopy(p: OleVariant); safecall;
+    function Get_onbeforecopy: OleVariant; safecall;
+    procedure Set_oncopy(p: OleVariant); safecall;
+    function Get_oncopy: OleVariant; safecall;
+    procedure Set_onbeforepaste(p: OleVariant); safecall;
+    function Get_onbeforepaste: OleVariant; safecall;
+    procedure Set_onpaste(p: OleVariant); safecall;
+    function Get_onpaste: OleVariant; safecall;
+    function Get_currentStyle: IHTMLCurrentStyle; safecall;
+    procedure Set_onpropertychange(p: OleVariant); safecall;
+    function Get_onpropertychange: OleVariant; safecall;
+    function getClientRects: IHTMLRectCollection; safecall;
+    function getBoundingClientRect: IHTMLRect; safecall;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); safecall;
+    function getExpression(const propname: WideString): OleVariant; safecall;
+    function removeExpression(const propname: WideString): WordBool; safecall;
+    procedure Set_tabIndex(p: Smallint); safecall;
+    function Get_tabIndex: Smallint; safecall;
+    procedure focus; safecall;
+    procedure Set_accessKey(const p: WideString); safecall;
+    function Get_accessKey: WideString; safecall;
+    procedure Set_onblur(p: OleVariant); safecall;
+    function Get_onblur: OleVariant; safecall;
+    procedure Set_onfocus(p: OleVariant); safecall;
+    function Get_onfocus: OleVariant; safecall;
+    procedure Set_onresize(p: OleVariant); safecall;
+    function Get_onresize: OleVariant; safecall;
+    procedure blur; safecall;
+    procedure addFilter(const pUnk: IUnknown); safecall;
+    procedure removeFilter(const pUnk: IUnknown); safecall;
+    function Get_clientHeight: Integer; safecall;
+    function Get_clientWidth: Integer; safecall;
+    function Get_clientTop: Integer; safecall;
+    function Get_clientLeft: Integer; safecall;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; safecall;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); safecall;
+    function Get_readyState: OleVariant; safecall;
+    procedure Set_onreadystatechange(p: OleVariant); safecall;
+    function Get_onreadystatechange: OleVariant; safecall;
+    procedure Set_onrowsdelete(p: OleVariant); safecall;
+    function Get_onrowsdelete: OleVariant; safecall;
+    procedure Set_onrowsinserted(p: OleVariant); safecall;
+    function Get_onrowsinserted: OleVariant; safecall;
+    procedure Set_oncellchange(p: OleVariant); safecall;
+    function Get_oncellchange: OleVariant; safecall;
+    procedure Set_dir(const p: WideString); safecall;
+    function Get_dir: WideString; safecall;
+    function createControlRange: IDispatch; safecall;
+    function Get_scrollHeight: Integer; safecall;
+    function Get_scrollWidth: Integer; safecall;
+    procedure Set_scrollTop(p: Integer); safecall;
+    function Get_scrollTop: Integer; safecall;
+    procedure Set_scrollLeft(p: Integer); safecall;
+    function Get_scrollLeft: Integer; safecall;
+    procedure clearAttributes; safecall;
+    procedure mergeAttributes(const mergeThis: IHTMLElement); safecall;
+    procedure Set_oncontextmenu(p: OleVariant); safecall;
+    function Get_oncontextmenu: OleVariant; safecall;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; safecall;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; safecall;
+    function getAdjacentText(const where: WideString): WideString; safecall;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; safecall;
+    function Get_canHaveChildren: WordBool; safecall;
+    function addBehavior(const bstrUrl: WideString; const pvarFactory: OleVariant): Integer; safecall;
+    function removeBehavior(cookie: Integer): WordBool; safecall;
+    function Get_runtimeStyle: IHTMLStyle; safecall;
+    function Get_behaviorUrns: IDispatch; safecall;
+    procedure Set_tagUrn(const p: WideString); safecall;
+    function Get_tagUrn: WideString; safecall;
+    procedure Set_onbeforeeditfocus(p: OleVariant); safecall;
+    function Get_onbeforeeditfocus: OleVariant; safecall;
+    function Get_readyStateValue: Integer; safecall;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; safecall;
+    property scopeName: WideString read Get_scopeName;
+    property onlosecapture: OleVariant read Get_onlosecapture write Set_onlosecapture;
+    property onscroll: OleVariant read Get_onscroll write Set_onscroll;
+    property ondrag: OleVariant read Get_ondrag write Set_ondrag;
+    property ondragend: OleVariant read Get_ondragend write Set_ondragend;
+    property ondragenter: OleVariant read Get_ondragenter write Set_ondragenter;
+    property ondragover: OleVariant read Get_ondragover write Set_ondragover;
+    property ondragleave: OleVariant read Get_ondragleave write Set_ondragleave;
+    property ondrop: OleVariant read Get_ondrop write Set_ondrop;
+    property onbeforecut: OleVariant read Get_onbeforecut write Set_onbeforecut;
+    property oncut: OleVariant read Get_oncut write Set_oncut;
+    property onbeforecopy: OleVariant read Get_onbeforecopy write Set_onbeforecopy;
+    property oncopy: OleVariant read Get_oncopy write Set_oncopy;
+    property onbeforepaste: OleVariant read Get_onbeforepaste write Set_onbeforepaste;
+    property onpaste: OleVariant read Get_onpaste write Set_onpaste;
+    property currentStyle: IHTMLCurrentStyle read Get_currentStyle;
+    property onpropertychange: OleVariant read Get_onpropertychange write Set_onpropertychange;
+    property tabIndex: Smallint read Get_tabIndex write Set_tabIndex;
+    property accessKey: WideString read Get_accessKey write Set_accessKey;
+    property onblur: OleVariant read Get_onblur write Set_onblur;
+    property onfocus: OleVariant read Get_onfocus write Set_onfocus;
+    property onresize: OleVariant read Get_onresize write Set_onresize;
+    property clientHeight: Integer read Get_clientHeight;
+    property clientWidth: Integer read Get_clientWidth;
+    property clientTop: Integer read Get_clientTop;
+    property clientLeft: Integer read Get_clientLeft;
+    property readyState: OleVariant read Get_readyState;
+    property onreadystatechange: OleVariant read Get_onreadystatechange write Set_onreadystatechange;
+    property onrowsdelete: OleVariant read Get_onrowsdelete write Set_onrowsdelete;
+    property onrowsinserted: OleVariant read Get_onrowsinserted write Set_onrowsinserted;
+    property oncellchange: OleVariant read Get_oncellchange write Set_oncellchange;
+    property dir: WideString read Get_dir write Set_dir;
+    property scrollHeight: Integer read Get_scrollHeight;
+    property scrollWidth: Integer read Get_scrollWidth;
+    property scrollTop: Integer read Get_scrollTop write Set_scrollTop;
+    property scrollLeft: Integer read Get_scrollLeft write Set_scrollLeft;
+    property oncontextmenu: OleVariant read Get_oncontextmenu write Set_oncontextmenu;
+    property canHaveChildren: WordBool read Get_canHaveChildren;
+    property runtimeStyle: IHTMLStyle read Get_runtimeStyle;
+    property behaviorUrns: IDispatch read Get_behaviorUrns;
+    property tagUrn: WideString read Get_tagUrn write Set_tagUrn;
+    property onbeforeeditfocus: OleVariant read Get_onbeforeeditfocus write Set_onbeforeeditfocus;
+    property readyStateValue: Integer read Get_readyStateValue;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F434-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLElement2Disp = dispinterface
+    ['{3050F434-98B5-11CF-BB82-00AA00BDCE0B}']
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    procedure mergeAttributes(const mergeThis: IHTMLElement); dispid - 2147417049;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLElement3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F673-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLElement3 = interface(IDispatch)
+    ['{3050F673-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); safecall;
+    function Get_isMultiLine: WordBool; safecall;
+    function Get_canHaveHTML: WordBool; safecall;
+    procedure Set_onlayoutcomplete(p: OleVariant); safecall;
+    function Get_onlayoutcomplete: OleVariant; safecall;
+    procedure Set_onpage(p: OleVariant); safecall;
+    function Get_onpage: OleVariant; safecall;
+    procedure Set_inflateBlock(p: WordBool); safecall;
+    function Get_inflateBlock: WordBool; safecall;
+    procedure Set_onbeforedeactivate(p: OleVariant); safecall;
+    function Get_onbeforedeactivate: OleVariant; safecall;
+    procedure setActive; safecall;
+    procedure Set_contentEditable(const p: WideString); safecall;
+    function Get_contentEditable: WideString; safecall;
+    function Get_isContentEditable: WordBool; safecall;
+    procedure Set_hideFocus(p: WordBool); safecall;
+    function Get_hideFocus: WordBool; safecall;
+    procedure Set_disabled(p: WordBool); safecall;
+    function Get_disabled: WordBool; safecall;
+    function Get_isDisabled: WordBool; safecall;
+    procedure Set_onmove(p: OleVariant); safecall;
+    function Get_onmove: OleVariant; safecall;
+    procedure Set_oncontrolselect(p: OleVariant); safecall;
+    function Get_oncontrolselect: OleVariant; safecall;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; safecall;
+    procedure Set_onresizestart(p: OleVariant); safecall;
+    function Get_onresizestart: OleVariant; safecall;
+    procedure Set_onresizeend(p: OleVariant); safecall;
+    function Get_onresizeend: OleVariant; safecall;
+    procedure Set_onmovestart(p: OleVariant); safecall;
+    function Get_onmovestart: OleVariant; safecall;
+    procedure Set_onmoveend(p: OleVariant); safecall;
+    function Get_onmoveend: OleVariant; safecall;
+    procedure Set_onmouseenter(p: OleVariant); safecall;
+    function Get_onmouseenter: OleVariant; safecall;
+    procedure Set_onmouseleave(p: OleVariant); safecall;
+    function Get_onmouseleave: OleVariant; safecall;
+    procedure Set_onactivate(p: OleVariant); safecall;
+    function Get_onactivate: OleVariant; safecall;
+    procedure Set_ondeactivate(p: OleVariant); safecall;
+    function Get_ondeactivate: OleVariant; safecall;
+    function dragDrop: WordBool; safecall;
+    function Get_glyphMode: Integer; safecall;
+    property isMultiLine: WordBool read Get_isMultiLine;
+    property canHaveHTML: WordBool read Get_canHaveHTML;
+    property onlayoutcomplete: OleVariant read Get_onlayoutcomplete write Set_onlayoutcomplete;
+    property onpage: OleVariant read Get_onpage write Set_onpage;
+    property inflateBlock: WordBool read Get_inflateBlock write Set_inflateBlock;
+    property onbeforedeactivate: OleVariant read Get_onbeforedeactivate write Set_onbeforedeactivate;
+    property contentEditable: WideString read Get_contentEditable write Set_contentEditable;
+    property isContentEditable: WordBool read Get_isContentEditable;
+    property hideFocus: WordBool read Get_hideFocus write Set_hideFocus;
+    property disabled: WordBool read Get_disabled write Set_disabled;
+    property isDisabled: WordBool read Get_isDisabled;
+    property onmove: OleVariant read Get_onmove write Set_onmove;
+    property oncontrolselect: OleVariant read Get_oncontrolselect write Set_oncontrolselect;
+    property onresizestart: OleVariant read Get_onresizestart write Set_onresizestart;
+    property onresizeend: OleVariant read Get_onresizeend write Set_onresizeend;
+    property onmovestart: OleVariant read Get_onmovestart write Set_onmovestart;
+    property onmoveend: OleVariant read Get_onmoveend write Set_onmoveend;
+    property onmouseenter: OleVariant read Get_onmouseenter write Set_onmouseenter;
+    property onmouseleave: OleVariant read Get_onmouseleave write Set_onmouseleave;
+    property onactivate: OleVariant read Get_onactivate write Set_onactivate;
+    property ondeactivate: OleVariant read Get_ondeactivate write Set_ondeactivate;
+    property glyphMode: Integer read Get_glyphMode;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLElement3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F673-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLElement3Disp = dispinterface
+    ['{3050F673-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLElement4
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F80F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLElement4 = interface(IDispatch)
+    ['{3050F80F-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_onmousewheel(p: OleVariant); safecall;
+    function Get_onmousewheel: OleVariant; safecall;
+    procedure normalize; safecall;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; safecall;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; safecall;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; safecall;
+    procedure Set_onbeforeactivate(p: OleVariant); safecall;
+    function Get_onbeforeactivate: OleVariant; safecall;
+    procedure Set_onfocusin(p: OleVariant); safecall;
+    function Get_onfocusin: OleVariant; safecall;
+    procedure Set_onfocusout(p: OleVariant); safecall;
+    function Get_onfocusout: OleVariant; safecall;
+    property onmousewheel: OleVariant read Get_onmousewheel write Set_onmousewheel;
+    property onbeforeactivate: OleVariant read Get_onbeforeactivate write Set_onbeforeactivate;
+    property onfocusin: OleVariant read Get_onfocusin write Set_onfocusin;
+    property onfocusout: OleVariant read Get_onfocusout write Set_onfocusout;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLElement4Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F80F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLElement4Disp = dispinterface
+    ['{3050F80F-98B5-11CF-BB82-00AA00BDCE0B}']
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLElementRender
+// Flags:     (0)
+// GUID:      {3050F669-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLElementRender = interface(IUnknown)
+    ['{3050F669-98B5-11CF-BB82-00AA00BDCE0B}']
+    // !! API fix decl
+    function DrawToDC(hdc: HDC): HRESULT; stdcall;
+    // !! API fix decl
+    function SetDocumentPrinter(const bstrPrinterName: WideString; hdc: HDC): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLUniqueName
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4D0-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLUniqueName = interface(IDispatch)
+    ['{3050F4D0-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_uniqueNumber: Integer; safecall;
+    function Get_uniqueID: WideString; safecall;
+    property uniqueNumber: Integer read Get_uniqueNumber;
+    property uniqueID: WideString read Get_uniqueID;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLUniqueNameDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4D0-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLUniqueNameDisp = dispinterface
+    ['{3050F4D0-98B5-11CF-BB82-00AA00BDCE0B}']
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDatabinding
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3F2-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDatabinding = interface(IDispatch)
+    ['{3050F3F2-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_dataFld(const p: WideString); safecall;
+    function Get_dataFld: WideString; safecall;
+    procedure Set_dataSrc(const p: WideString); safecall;
+    function Get_dataSrc: WideString; safecall;
+    procedure Set_dataFormatAs(const p: WideString); safecall;
+    function Get_dataFormatAs: WideString; safecall;
+    property dataFld: WideString read Get_dataFld write Set_dataFld;
+    property dataSrc: WideString read Get_dataSrc write Set_dataSrc;
+    property dataFormatAs: WideString read Get_dataFormatAs write Set_dataFormatAs;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDatabindingDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3F2-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDatabindingDisp = dispinterface
+    ['{3050F3F2-98B5-11CF-BB82-00AA00BDCE0B}']
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDocument
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {626FC520-A41E-11CF-A731-00A0C9082637}
+// *********************************************************************//
+  IHTMLDocument = interface(IDispatch)
+    ['{626FC520-A41E-11CF-A731-00A0C9082637}']
+    function Get_Script: IDispatch; safecall;
+    property Script: IDispatch read Get_Script;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDocumentDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {626FC520-A41E-11CF-A731-00A0C9082637}
+// *********************************************************************//
+  IHTMLDocumentDisp = dispinterface
+    ['{626FC520-A41E-11CF-A731-00A0C9082637}']
+    property Script: IDispatch readonly dispid 1001;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLElementDefaults
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F6C9-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLElementDefaults = interface(IDispatch)
+    ['{3050F6C9-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_style: IHTMLStyle; safecall;
+    procedure Set_tabStop(p: WordBool); safecall;
+    function Get_tabStop: WordBool; safecall;
+    procedure Set_viewInheritStyle(p: WordBool); safecall;
+    function Get_viewInheritStyle: WordBool; safecall;
+    procedure Set_viewMasterTab(p: WordBool); safecall;
+    function Get_viewMasterTab: WordBool; safecall;
+    procedure Set_scrollSegmentX(p: Integer); safecall;
+    function Get_scrollSegmentX: Integer; safecall;
+    procedure Set_scrollSegmentY(p: Integer); safecall;
+    function Get_scrollSegmentY: Integer; safecall;
+    procedure Set_isMultiLine(p: WordBool); safecall;
+    function Get_isMultiLine: WordBool; safecall;
+    procedure Set_contentEditable(const p: WideString); safecall;
+    function Get_contentEditable: WideString; safecall;
+    procedure Set_canHaveHTML(p: WordBool); safecall;
+    function Get_canHaveHTML: WordBool; safecall;
+    procedure _Set_viewLink(const p: IHTMLDocument); safecall;
+    function Get_viewLink: IHTMLDocument; safecall;
+    procedure Set_frozen(p: WordBool); safecall;
+    function Get_frozen: WordBool; safecall;
+    property style: IHTMLStyle read Get_style;
+    property tabStop: WordBool read Get_tabStop write Set_tabStop;
+    property viewInheritStyle: WordBool read Get_viewInheritStyle write Set_viewInheritStyle;
+    property viewMasterTab: WordBool read Get_viewMasterTab write Set_viewMasterTab;
+    property scrollSegmentX: Integer read Get_scrollSegmentX write Set_scrollSegmentX;
+    property scrollSegmentY: Integer read Get_scrollSegmentY write Set_scrollSegmentY;
+    property isMultiLine: WordBool read Get_isMultiLine write Set_isMultiLine;
+    property contentEditable: WideString read Get_contentEditable write Set_contentEditable;
+    property canHaveHTML: WordBool read Get_canHaveHTML write Set_canHaveHTML;
+    property viewLink: IHTMLDocument read Get_viewLink write _Set_viewLink;
+    property frozen: WordBool read Get_frozen write Set_frozen;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLElementDefaultsDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F6C9-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLElementDefaultsDisp = dispinterface
+    ['{3050F6C9-98B5-11CF-BB82-00AA00BDCE0B}']
+    property style: IHTMLStyle readonly dispid 1001;
+    property tabStop: WordBool dispid 1002;
+    property viewInheritStyle: WordBool dispid - 2147412913;
+    property viewMasterTab: WordBool dispid 1006;
+    property scrollSegmentX: Integer dispid 1003;
+    property scrollSegmentY: Integer dispid 1004;
+    property isMultiLine: WordBool dispid 1008;
+    property contentEditable: WideString dispid - 2147412950;
+    property canHaveHTML: WordBool dispid 1009;
+    property viewLink: IHTMLDocument dispid 1011;
+    property frozen: WordBool dispid - 2147412914;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLDefaults
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F58C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLDefaults = dispinterface
+    ['{3050F58C-98B5-11CF-BB82-00AA00BDCE0B}']
+    property style: IHTMLStyle readonly dispid 1001;
+    property tabStop: WordBool dispid 1002;
+    property viewInheritStyle: WordBool dispid - 2147412913;
+    property viewMasterTab: WordBool dispid 1006;
+    property scrollSegmentX: Integer dispid 1003;
+    property scrollSegmentY: Integer dispid 1004;
+    property isMultiLine: WordBool dispid 1008;
+    property contentEditable: WideString dispid - 2147412950;
+    property canHaveHTML: WordBool dispid 1009;
+    property viewLink: IHTMLDocument dispid 1011;
+    property frozen: WordBool dispid - 2147412914;
+  end;
+
+// *********************************************************************//
+// Interface: IHTCDefaultDispatch
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4FD-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTCDefaultDispatch = interface(IDispatch)
+    ['{3050F4FD-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_element: IHTMLElement; safecall;
+    function CreateEventObject: IHTMLEventObj; safecall;
+    function Get_defaults: IDispatch; safecall;
+    function Get_document: IDispatch; safecall;
+    property element: IHTMLElement read Get_element;
+    property defaults: IDispatch read Get_defaults;
+    property document: IDispatch read Get_document;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTCDefaultDispatchDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4FD-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTCDefaultDispatchDisp = dispinterface
+    ['{3050F4FD-98B5-11CF-BB82-00AA00BDCE0B}']
+    property element: IHTMLElement readonly dispid - 2147412969;
+    function CreateEventObject: IHTMLEventObj; dispid - 2147412968;
+    property defaults: IDispatch readonly dispid - 2147412947;
+    property document: IDispatch readonly dispid - 2147412970;
+  end;
+
+// *********************************************************************//
+// Interface: IHTCPropertyBehavior
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5DF-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTCPropertyBehavior = interface(IDispatch)
+    ['{3050F5DF-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure fireChange; safecall;
+    procedure Set_value(p: OleVariant); safecall;
+    function Get_value: OleVariant; safecall;
+    property value: OleVariant read Get_value write Set_value;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTCPropertyBehaviorDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5DF-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTCPropertyBehaviorDisp = dispinterface
+    ['{3050F5DF-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure fireChange; dispid - 2147417612;
+    property value: OleVariant dispid - 2147412971;
+  end;
+
+// *********************************************************************//
+// Interface: IHTCMethodBehavior
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F631-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTCMethodBehavior = interface(IDispatch)
+    ['{3050F631-98B5-11CF-BB82-00AA00BDCE0B}']
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTCMethodBehaviorDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F631-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTCMethodBehaviorDisp = dispinterface
+    ['{3050F631-98B5-11CF-BB82-00AA00BDCE0B}']
+  end;
+
+// *********************************************************************//
+// Interface: IHTCEventBehavior
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4FF-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTCEventBehavior = interface(IDispatch)
+    ['{3050F4FF-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure fire(const pVar: IHTMLEventObj); safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTCEventBehaviorDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4FF-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTCEventBehaviorDisp = dispinterface
+    ['{3050F4FF-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure fire(const pVar: IHTMLEventObj); dispid - 2147417612;
+  end;
+
+// *********************************************************************//
+// Interface: IHTCAttachBehavior
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5F4-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTCAttachBehavior = interface(IDispatch)
+    ['{3050F5F4-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure FireEvent(const evt: IDispatch); safecall;
+    procedure detachEvent; safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTCAttachBehaviorDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5F4-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTCAttachBehaviorDisp = dispinterface
+    ['{3050F5F4-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure FireEvent(const evt: IDispatch); dispid 0;
+    procedure detachEvent; dispid - 2147417612;
+  end;
+
+// *********************************************************************//
+// Interface: IHTCAttachBehavior2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F7EB-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTCAttachBehavior2 = interface(IDispatch)
+    ['{3050F7EB-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure FireEvent(evt: OleVariant); safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTCAttachBehavior2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F7EB-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTCAttachBehavior2Disp = dispinterface
+    ['{3050F7EB-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure FireEvent(evt: OleVariant); dispid 0;
+  end;
+
+// *********************************************************************//
+// Interface: IHTCDescBehavior
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5DC-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTCDescBehavior = interface(IDispatch)
+    ['{3050F5DC-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_urn: WideString; safecall;
+    function Get_name: WideString; safecall;
+    property urn: WideString read Get_urn;
+    property name: WideString read Get_name;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTCDescBehaviorDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5DC-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTCDescBehaviorDisp = dispinterface
+    ['{3050F5DC-98B5-11CF-BB82-00AA00BDCE0B}']
+    property urn: WideString readonly dispid - 2147417612;
+    property name: WideString readonly dispid - 2147417611;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTCDefaultDispatch
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F573-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTCDefaultDispatch = dispinterface
+    ['{3050F573-98B5-11CF-BB82-00AA00BDCE0B}']
+    property element: IHTMLElement readonly dispid - 2147412969;
+    function CreateEventObject: IHTMLEventObj; dispid - 2147412968;
+    property defaults: IDispatch readonly dispid - 2147412947;
+    property document: IDispatch readonly dispid - 2147412970;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTCPropertyBehavior
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F57F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTCPropertyBehavior = dispinterface
+    ['{3050F57F-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure fireChange; dispid - 2147417612;
+    property value: OleVariant dispid - 2147412971;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTCMethodBehavior
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F587-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTCMethodBehavior = dispinterface
+    ['{3050F587-98B5-11CF-BB82-00AA00BDCE0B}']
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTCEventBehavior
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F574-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTCEventBehavior = dispinterface
+    ['{3050F574-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure fire(const pVar: IHTMLEventObj); dispid - 2147417612;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTCAttachBehavior
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F583-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTCAttachBehavior = dispinterface
+    ['{3050F583-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure FireEvent(evt: OleVariant); dispid 0;
+    procedure detachEvent; dispid - 2147417612;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTCDescBehavior
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F57E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTCDescBehavior = dispinterface
+    ['{3050F57E-98B5-11CF-BB82-00AA00BDCE0B}']
+    property urn: WideString readonly dispid - 2147417612;
+    property name: WideString readonly dispid - 2147417611;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLUrnCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5E2-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLUrnCollection = interface(IDispatch)
+    ['{3050F5E2-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_length: Integer; safecall;
+    function item(index: Integer): WideString; safecall;
+    property length: Integer read Get_length;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLUrnCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5E2-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLUrnCollectionDisp = dispinterface
+    ['{3050F5E2-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1001;
+    function item(index: Integer): WideString; dispid 0;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLGenericElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4B7-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLGenericElement = interface(IDispatch)
+    ['{3050F4B7-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_recordset: IDispatch; safecall;
+    function namedRecordset(const dataMember: WideString; var hierarchy: OleVariant): IDispatch; safecall;
+    property recordset: IDispatch read Get_recordset;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLGenericElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4B7-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLGenericElementDisp = dispinterface
+    ['{3050F4B7-98B5-11CF-BB82-00AA00BDCE0B}']
+    property recordset: IDispatch readonly dispid 1001;
+    function namedRecordset(const dataMember: WideString; var hierarchy: OleVariant): IDispatch; dispid 1002;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLGenericElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F563-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLGenericElement = dispinterface
+    ['{3050F563-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property recordset: IDispatch readonly dispid 1001;
+    function namedRecordset(const dataMember: WideString; var hierarchy: OleVariant): IDispatch; dispid 1002;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLStyleSheetRule
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F357-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleSheetRule = interface(IDispatch)
+    ['{3050F357-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_selectorText(const p: WideString); safecall;
+    function Get_selectorText: WideString; safecall;
+    function Get_style: IHTMLRuleStyle; safecall;
+    function Get_readOnly: WordBool; safecall;
+    property selectorText: WideString read Get_selectorText write Set_selectorText;
+    property style: IHTMLRuleStyle read Get_style;
+    property readOnly: WordBool read Get_readOnly;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLStyleSheetRuleDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F357-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleSheetRuleDisp = dispinterface
+    ['{3050F357-98B5-11CF-BB82-00AA00BDCE0B}']
+    property selectorText: WideString dispid 1001;
+    property style: IHTMLRuleStyle readonly dispid - 2147418038;
+    property readOnly: WordBool readonly dispid 1002;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLStyleSheetRulesCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2E5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleSheetRulesCollection = interface(IDispatch)
+    ['{3050F2E5-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_length: Integer; safecall;
+    function item(index: Integer): IHTMLStyleSheetRule; safecall;
+    property length: Integer read Get_length;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLStyleSheetRulesCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2E5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleSheetRulesCollectionDisp = dispinterface
+    ['{3050F2E5-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1001;
+    function item(index: Integer): IHTMLStyleSheetRule; dispid 0;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLStyleSheetPage
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F7EE-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleSheetPage = interface(IDispatch)
+    ['{3050F7EE-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_selector: WideString; safecall;
+    function Get_pseudoClass: WideString; safecall;
+    property selector: WideString read Get_selector;
+    property pseudoClass: WideString read Get_pseudoClass;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLStyleSheetPageDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F7EE-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleSheetPageDisp = dispinterface
+    ['{3050F7EE-98B5-11CF-BB82-00AA00BDCE0B}']
+    property selector: WideString readonly dispid 1001;
+    property pseudoClass: WideString readonly dispid 1002;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLStyleSheetPagesCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F7F0-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleSheetPagesCollection = interface(IDispatch)
+    ['{3050F7F0-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_length: Integer; safecall;
+    function item(index: Integer): IHTMLStyleSheetPage; safecall;
+    property length: Integer read Get_length;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLStyleSheetPagesCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F7F0-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleSheetPagesCollectionDisp = dispinterface
+    ['{3050F7F0-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1001;
+    function item(index: Integer): IHTMLStyleSheetPage; dispid 0;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLStyleSheetsCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F37E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleSheetsCollection = interface(IDispatch)
+    ['{3050F37E-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_length: Integer; safecall;
+    function Get__newEnum: IUnknown; safecall;
+    // !! API fix decl
+    function item(const pvarIndex: OleVariant): OleVariant; safecall;
+    property length: Integer read Get_length;
+    property _newEnum: IUnknown read Get__newEnum;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLStyleSheetsCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F37E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleSheetsCollectionDisp = dispinterface
+    ['{3050F37E-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1001;
+    property _newEnum: IUnknown readonly dispid - 4;
+    // !! API fix decl
+    function item(const pvarIndex: OleVariant): OleVariant; dispid 0;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLStyleSheet
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2E3-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleSheet = interface(IDispatch)
+    ['{3050F2E3-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_title(const p: WideString); safecall;
+    function Get_title: WideString; safecall;
+    function Get_parentStyleSheet: IHTMLStyleSheet; safecall;
+    function Get_owningElement: IHTMLElement; safecall;
+    procedure Set_disabled(p: WordBool); safecall;
+    function Get_disabled: WordBool; safecall;
+    function Get_readOnly: WordBool; safecall;
+    function Get_imports: IHTMLStyleSheetsCollection; safecall;
+    procedure Set_href(const p: WideString); safecall;
+    function Get_href: WideString; safecall;
+    function Get_type_: WideString; safecall;
+    function Get_id: WideString; safecall;
+    function addImport(const bstrUrl: WideString; lIndex: Integer): Integer; safecall;
+    function addRule(const bstrSelector: WideString; const bstrStyle: WideString; lIndex: Integer): Integer; safecall;
+    procedure removeImport(lIndex: Integer); safecall;
+    procedure removeRule(lIndex: Integer); safecall;
+    procedure Set_media(const p: WideString); safecall;
+    function Get_media: WideString; safecall;
+    procedure Set_cssText(const p: WideString); safecall;
+    function Get_cssText: WideString; safecall;
+    function Get_rules: IHTMLStyleSheetRulesCollection; safecall;
+    property title: WideString read Get_title write Set_title;
+    property parentStyleSheet: IHTMLStyleSheet read Get_parentStyleSheet;
+    property owningElement: IHTMLElement read Get_owningElement;
+    property disabled: WordBool read Get_disabled write Set_disabled;
+    property readOnly: WordBool read Get_readOnly;
+    property imports: IHTMLStyleSheetsCollection read Get_imports;
+    property href: WideString read Get_href write Set_href;
+    property type_: WideString read Get_type_;
+    property id: WideString read Get_id;
+    property media: WideString read Get_media write Set_media;
+    property cssText: WideString read Get_cssText write Set_cssText;
+    property rules: IHTMLStyleSheetRulesCollection read Get_rules;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLStyleSheetDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2E3-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleSheetDisp = dispinterface
+    ['{3050F2E3-98B5-11CF-BB82-00AA00BDCE0B}']
+    property title: WideString dispid 1001;
+    property parentStyleSheet: IHTMLStyleSheet readonly dispid 1002;
+    property owningElement: IHTMLElement readonly dispid 1003;
+    property disabled: WordBool dispid - 2147418036;
+    property readOnly: WordBool readonly dispid 1004;
+    property imports: IHTMLStyleSheetsCollection readonly dispid 1005;
+    property href: WideString dispid 1006;
+    property type_: WideString readonly dispid 1007;
+    property id: WideString readonly dispid 1008;
+    function addImport(const bstrUrl: WideString; lIndex: Integer): Integer; dispid 1009;
+    function addRule(const bstrSelector: WideString; const bstrStyle: WideString; lIndex: Integer): Integer; dispid 1010;
+    procedure removeImport(lIndex: Integer); dispid 1011;
+    procedure removeRule(lIndex: Integer); dispid 1012;
+    property media: WideString dispid 1013;
+    property cssText: WideString dispid 1014;
+    property rules: IHTMLStyleSheetRulesCollection readonly dispid 1015;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLStyleSheet2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3D1-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleSheet2 = interface(IDispatch)
+    ['{3050F3D1-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_pages: IHTMLStyleSheetPagesCollection; safecall;
+    function addPageRule(const bstrSelector: WideString; const bstrStyle: WideString;
+      lIndex: Integer): Integer; safecall;
+    property pages: IHTMLStyleSheetPagesCollection read Get_pages;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLStyleSheet2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3D1-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleSheet2Disp = dispinterface
+    ['{3050F3D1-98B5-11CF-BB82-00AA00BDCE0B}']
+    property pages: IHTMLStyleSheetPagesCollection readonly dispid 1016;
+    function addPageRule(const bstrSelector: WideString; const bstrStyle: WideString;
+      lIndex: Integer): Integer; dispid 1017;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLStyleSheet
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F58D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLStyleSheet = dispinterface
+    ['{3050F58D-98B5-11CF-BB82-00AA00BDCE0B}']
+    property title: WideString dispid 1001;
+    property parentStyleSheet: IHTMLStyleSheet readonly dispid 1002;
+    property owningElement: IHTMLElement readonly dispid 1003;
+    property disabled: WordBool dispid - 2147418036;
+    property readOnly: WordBool readonly dispid 1004;
+    property imports: IHTMLStyleSheetsCollection readonly dispid 1005;
+    property href: WideString dispid 1006;
+    property type_: WideString readonly dispid 1007;
+    property id: WideString readonly dispid 1008;
+    function addImport(const bstrUrl: WideString; lIndex: Integer): Integer; dispid 1009;
+    function addRule(const bstrSelector: WideString; const bstrStyle: WideString; lIndex: Integer): Integer; dispid 1010;
+    procedure removeImport(lIndex: Integer); dispid 1011;
+    procedure removeRule(lIndex: Integer); dispid 1012;
+    property media: WideString dispid 1013;
+    property cssText: WideString dispid 1014;
+    property rules: IHTMLStyleSheetRulesCollection readonly dispid 1015;
+    property pages: IHTMLStyleSheetPagesCollection readonly dispid 1016;
+    function addPageRule(const bstrSelector: WideString; const bstrStyle: WideString;
+      lIndex: Integer): Integer; dispid 1017;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLLinkElementEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F61D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLLinkElementEvents2 = dispinterface
+    ['{3050F61D-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+    procedure onload(const pEvtObj: IHTMLEventObj); dispid 1003;
+    procedure onerror(const pEvtObj: IHTMLEventObj); dispid 1002;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLLinkElementEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F3CC-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLLinkElementEvents = dispinterface
+    ['{3050F3CC-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+    procedure onload; dispid 1003;
+    procedure onerror; dispid 1002;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLLinkElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F205-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLLinkElement = interface(IDispatch)
+    ['{3050F205-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_href(const p: WideString); safecall;
+    function Get_href: WideString; safecall;
+    procedure Set_rel(const p: WideString); safecall;
+    function Get_rel: WideString; safecall;
+    procedure Set_rev(const p: WideString); safecall;
+    function Get_rev: WideString; safecall;
+    procedure Set_type_(const p: WideString); safecall;
+    function Get_type_: WideString; safecall;
+    function Get_readyState: WideString; safecall;
+    procedure Set_onreadystatechange(p: OleVariant); safecall;
+    function Get_onreadystatechange: OleVariant; safecall;
+    procedure Set_onload(p: OleVariant); safecall;
+    function Get_onload: OleVariant; safecall;
+    procedure Set_onerror(p: OleVariant); safecall;
+    function Get_onerror: OleVariant; safecall;
+    function Get_styleSheet: IHTMLStyleSheet; safecall;
+    procedure Set_disabled(p: WordBool); safecall;
+    function Get_disabled: WordBool; safecall;
+    procedure Set_media(const p: WideString); safecall;
+    function Get_media: WideString; safecall;
+    property href: WideString read Get_href write Set_href;
+    property rel: WideString read Get_rel write Set_rel;
+    property rev: WideString read Get_rev write Set_rev;
+    property type_: WideString read Get_type_ write Set_type_;
+    property readyState: WideString read Get_readyState;
+    property onreadystatechange: OleVariant read Get_onreadystatechange write Set_onreadystatechange;
+    property onload: OleVariant read Get_onload write Set_onload;
+    property onerror: OleVariant read Get_onerror write Set_onerror;
+    property styleSheet: IHTMLStyleSheet read Get_styleSheet;
+    property disabled: WordBool read Get_disabled write Set_disabled;
+    property media: WideString read Get_media write Set_media;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLLinkElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F205-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLLinkElementDisp = dispinterface
+    ['{3050F205-98B5-11CF-BB82-00AA00BDCE0B}']
+    property href: WideString dispid 1005;
+    property rel: WideString dispid 1006;
+    property rev: WideString dispid 1007;
+    property type_: WideString dispid 1008;
+    property readyState: WideString readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onload: OleVariant dispid - 2147412080;
+    property onerror: OleVariant dispid - 2147412083;
+    property styleSheet: IHTMLStyleSheet readonly dispid 1014;
+    property disabled: WordBool dispid - 2147418036;
+    property media: WideString dispid 1016;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLLinkElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4E5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLLinkElement2 = interface(IDispatch)
+    ['{3050F4E5-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_target(const p: WideString); safecall;
+    function Get_target: WideString; safecall;
+    property target: WideString read Get_target write Set_target;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLLinkElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4E5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLLinkElement2Disp = dispinterface
+    ['{3050F4E5-98B5-11CF-BB82-00AA00BDCE0B}']
+    property target: WideString dispid 1017;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLLinkElement3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F81E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLLinkElement3 = interface(IDispatch)
+    ['{3050F81E-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_charset(const p: WideString); safecall;
+    function Get_charset: WideString; safecall;
+    procedure Set_hreflang(const p: WideString); safecall;
+    function Get_hreflang: WideString; safecall;
+    property charset: WideString read Get_charset write Set_charset;
+    property hreflang: WideString read Get_hreflang write Set_hreflang;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLLinkElement3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F81E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLLinkElement3Disp = dispinterface
+    ['{3050F81E-98B5-11CF-BB82-00AA00BDCE0B}']
+    property charset: WideString dispid 1018;
+    property hreflang: WideString dispid 1019;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLLinkElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F524-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLLinkElement = dispinterface
+    ['{3050F524-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property href: WideString dispid 1005;
+    property rel: WideString dispid 1006;
+    property rev: WideString dispid 1007;
+    property type_: WideString dispid 1008;
+    property onload: OleVariant dispid - 2147412080;
+    property onerror: OleVariant dispid - 2147412083;
+    property styleSheet: IHTMLStyleSheet readonly dispid 1014;
+    property media: WideString dispid 1016;
+    property target: WideString dispid 1017;
+    property charset: WideString dispid 1018;
+    property hreflang: WideString dispid 1019;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTxtRange
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F220-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTxtRange = interface(IDispatch)
+    ['{3050F220-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_htmlText: WideString; safecall;
+    procedure Set_text(const p: WideString); safecall;
+    function Get_text: WideString; safecall;
+    function parentElement: IHTMLElement; safecall;
+    function duplicate: IHTMLTxtRange; safecall;
+    function inRange(const range: IHTMLTxtRange): WordBool; safecall;
+    function isEqual(const range: IHTMLTxtRange): WordBool; safecall;
+    procedure scrollIntoView(fStart: WordBool); safecall;
+    procedure collapse(Start: WordBool); safecall;
+    function expand(const Unit_: WideString): WordBool; safecall;
+    function move(const Unit_: WideString; Count: Integer): Integer; safecall;
+    function moveStart(const Unit_: WideString; Count: Integer): Integer; safecall;
+    function moveEnd(const Unit_: WideString; Count: Integer): Integer; safecall;
+    procedure select; safecall;
+    procedure pasteHTML(const html: WideString); safecall;
+    procedure moveToElementText(const element: IHTMLElement); safecall;
+    procedure setEndPoint(const how: WideString; const SourceRange: IHTMLTxtRange); safecall;
+    function compareEndPoints(const how: WideString; const SourceRange: IHTMLTxtRange): Integer; safecall;
+    function findText(const String_: WideString; Count: Integer; Flags: Integer): WordBool; safecall;
+    procedure moveToPoint(x: Integer; y: Integer); safecall;
+    function getBookmark: WideString; safecall;
+    function moveToBookmark(const Bookmark: WideString): WordBool; safecall;
+    function queryCommandSupported(const cmdID: WideString): WordBool; safecall;
+    function queryCommandEnabled(const cmdID: WideString): WordBool; safecall;
+    function queryCommandState(const cmdID: WideString): WordBool; safecall;
+    function queryCommandIndeterm(const cmdID: WideString): WordBool; safecall;
+    function queryCommandText(const cmdID: WideString): WideString; safecall;
+    function queryCommandValue(const cmdID: WideString): OleVariant; safecall;
+    function execCommand(const cmdID: WideString; showUI: WordBool; value: OleVariant): WordBool; safecall;
+    function execCommandShowHelp(const cmdID: WideString): WordBool; safecall;
+    property htmlText: WideString read Get_htmlText;
+    property text: WideString read Get_text write Set_text;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTxtRangeDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F220-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTxtRangeDisp = dispinterface
+    ['{3050F220-98B5-11CF-BB82-00AA00BDCE0B}']
+    property htmlText: WideString readonly dispid 1003;
+    property text: WideString dispid 1004;
+    function parentElement: IHTMLElement; dispid 1006;
+    function duplicate: IHTMLTxtRange; dispid 1008;
+    function inRange(const range: IHTMLTxtRange): WordBool; dispid 1010;
+    function isEqual(const range: IHTMLTxtRange): WordBool; dispid 1011;
+    procedure scrollIntoView(fStart: WordBool); dispid 1012;
+    procedure collapse(Start: WordBool); dispid 1013;
+    function expand(const Unit_: WideString): WordBool; dispid 1014;
+    function move(const Unit_: WideString; Count: Integer): Integer; dispid 1015;
+    function moveStart(const Unit_: WideString; Count: Integer): Integer; dispid 1016;
+    function moveEnd(const Unit_: WideString; Count: Integer): Integer; dispid 1017;
+    procedure select; dispid 1024;
+    procedure pasteHTML(const html: WideString); dispid 1026;
+    procedure moveToElementText(const element: IHTMLElement); dispid 1001;
+    procedure setEndPoint(const how: WideString; const SourceRange: IHTMLTxtRange); dispid 1025;
+    function compareEndPoints(const how: WideString; const SourceRange: IHTMLTxtRange): Integer; dispid 1018;
+    function findText(const String_: WideString; Count: Integer; Flags: Integer): WordBool; dispid 1019;
+    procedure moveToPoint(x: Integer; y: Integer); dispid 1020;
+    function getBookmark: WideString; dispid 1021;
+    function moveToBookmark(const Bookmark: WideString): WordBool; dispid 1009;
+    function queryCommandSupported(const cmdID: WideString): WordBool; dispid 1027;
+    function queryCommandEnabled(const cmdID: WideString): WordBool; dispid 1028;
+    function queryCommandState(const cmdID: WideString): WordBool; dispid 1029;
+    function queryCommandIndeterm(const cmdID: WideString): WordBool; dispid 1030;
+    function queryCommandText(const cmdID: WideString): WideString; dispid 1031;
+    function queryCommandValue(const cmdID: WideString): OleVariant; dispid 1032;
+    function execCommand(const cmdID: WideString; showUI: WordBool; value: OleVariant): WordBool; dispid 1033;
+    function execCommandShowHelp(const cmdID: WideString): WordBool; dispid 1034;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTextRangeMetrics
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F40B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTextRangeMetrics = interface(IDispatch)
+    ['{3050F40B-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_offsetTop: Integer; safecall;
+    function Get_offsetLeft: Integer; safecall;
+    function Get_boundingTop: Integer; safecall;
+    function Get_boundingLeft: Integer; safecall;
+    function Get_boundingWidth: Integer; safecall;
+    function Get_boundingHeight: Integer; safecall;
+    property offsetTop: Integer read Get_offsetTop;
+    property offsetLeft: Integer read Get_offsetLeft;
+    property boundingTop: Integer read Get_boundingTop;
+    property boundingLeft: Integer read Get_boundingLeft;
+    property boundingWidth: Integer read Get_boundingWidth;
+    property boundingHeight: Integer read Get_boundingHeight;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTextRangeMetricsDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F40B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTextRangeMetricsDisp = dispinterface
+    ['{3050F40B-98B5-11CF-BB82-00AA00BDCE0B}']
+    property offsetTop: Integer readonly dispid 1035;
+    property offsetLeft: Integer readonly dispid 1036;
+    property boundingTop: Integer readonly dispid 1037;
+    property boundingLeft: Integer readonly dispid 1038;
+    property boundingWidth: Integer readonly dispid 1039;
+    property boundingHeight: Integer readonly dispid 1040;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTextRangeMetrics2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4A6-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTextRangeMetrics2 = interface(IDispatch)
+    ['{3050F4A6-98B5-11CF-BB82-00AA00BDCE0B}']
+    function getClientRects: IHTMLRectCollection; safecall;
+    function getBoundingClientRect: IHTMLRect; safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTextRangeMetrics2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4A6-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTextRangeMetrics2Disp = dispinterface
+    ['{3050F4A6-98B5-11CF-BB82-00AA00BDCE0B}']
+    function getClientRects: IHTMLRectCollection; dispid 1041;
+    function getBoundingClientRect: IHTMLRect; dispid 1042;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTxtRangeCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F7ED-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTxtRangeCollection = interface(IDispatch)
+    ['{3050F7ED-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_length: Integer; safecall;
+    function Get__newEnum: IUnknown; safecall;
+    // !! API fix decl
+    function item(const pvarIndex: OleVariant): OleVariant; safecall;
+    property length: Integer read Get_length;
+    property _newEnum: IUnknown read Get__newEnum;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTxtRangeCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F7ED-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTxtRangeCollectionDisp = dispinterface
+    ['{3050F7ED-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1500;
+    property _newEnum: IUnknown readonly dispid - 4;
+    // !! API fix decl
+    function item(const pvarIndex: OleVariant): OleVariant; dispid 0;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLFormElementEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F614-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLFormElementEvents2 = dispinterface
+    ['{3050F614-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+    function onsubmit(const pEvtObj: IHTMLEventObj): WordBool; dispid 1007;
+    function onreset(const pEvtObj: IHTMLEventObj): WordBool; dispid 1015;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLFormElementEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F364-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLFormElementEvents = dispinterface
+    ['{3050F364-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+    function onsubmit: WordBool; dispid 1007;
+    function onreset: WordBool; dispid 1015;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLFormElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1F7-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFormElement = interface(IDispatch)
+    ['{3050F1F7-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_action(const p: WideString); safecall;
+    function Get_action: WideString; safecall;
+    procedure Set_dir(const p: WideString); safecall;
+    function Get_dir: WideString; safecall;
+    procedure Set_encoding(const p: WideString); safecall;
+    function Get_encoding: WideString; safecall;
+    procedure Set_method(const p: WideString); safecall;
+    function Get_method: WideString; safecall;
+    function Get_elements: IDispatch; safecall;
+    procedure Set_target(const p: WideString); safecall;
+    function Get_target: WideString; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_onsubmit(p: OleVariant); safecall;
+    function Get_onsubmit: OleVariant; safecall;
+    procedure Set_onreset(p: OleVariant); safecall;
+    function Get_onreset: OleVariant; safecall;
+    procedure submit; safecall;
+    procedure reset; safecall;
+    procedure Set_length(p: Integer); safecall;
+    function Get_length: Integer; safecall;
+    function Get__newEnum: IUnknown; safecall;
+    function item(name: OleVariant; index: OleVariant): IDispatch; safecall;
+    function tags(tagName: OleVariant): IDispatch; safecall;
+    property action: WideString read Get_action write Set_action;
+    property dir: WideString read Get_dir write Set_dir;
+    property encoding: WideString read Get_encoding write Set_encoding;
+    property method: WideString read Get_method write Set_method;
+    property elements: IDispatch read Get_elements;
+    property target: WideString read Get_target write Set_target;
+    property name: WideString read Get_name write Set_name;
+    property onsubmit: OleVariant read Get_onsubmit write Set_onsubmit;
+    property onreset: OleVariant read Get_onreset write Set_onreset;
+    property length: Integer read Get_length write Set_length;
+    property _newEnum: IUnknown read Get__newEnum;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLFormElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1F7-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFormElementDisp = dispinterface
+    ['{3050F1F7-98B5-11CF-BB82-00AA00BDCE0B}']
+    property action: WideString dispid 1001;
+    property dir: WideString dispid - 2147412995;
+    property encoding: WideString dispid 1003;
+    property method: WideString dispid 1004;
+    property elements: IDispatch readonly dispid 1005;
+    property target: WideString dispid 1006;
+    property name: WideString dispid - 2147418112;
+    property onsubmit: OleVariant dispid - 2147412101;
+    property onreset: OleVariant dispid - 2147412100;
+    procedure submit; dispid 1009;
+    procedure reset; dispid 1010;
+    property length: Integer dispid 1500;
+    property _newEnum: IUnknown readonly dispid - 4;
+    function item(name: OleVariant; index: OleVariant): IDispatch; dispid 0;
+    function tags(tagName: OleVariant): IDispatch; dispid 1502;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLFormElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4F6-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFormElement2 = interface(IDispatch)
+    ['{3050F4F6-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_acceptCharset(const p: WideString); safecall;
+    function Get_acceptCharset: WideString; safecall;
+    function urns(urn: OleVariant): IDispatch; safecall;
+    property acceptCharset: WideString read Get_acceptCharset write Set_acceptCharset;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLFormElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4F6-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFormElement2Disp = dispinterface
+    ['{3050F4F6-98B5-11CF-BB82-00AA00BDCE0B}']
+    property acceptCharset: WideString dispid 1011;
+    function urns(urn: OleVariant): IDispatch; dispid 1505;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLFormElement3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F836-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFormElement3 = interface(IDispatch)
+    ['{3050F836-98B5-11CF-BB82-00AA00BDCE0B}']
+    function namedItem(const name: WideString): IDispatch; safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLFormElement3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F836-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFormElement3Disp = dispinterface
+    ['{3050F836-98B5-11CF-BB82-00AA00BDCE0B}']
+    function namedItem(const name: WideString): IDispatch; dispid 1506;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLSubmitData
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F645-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLSubmitData = interface(IDispatch)
+    ['{3050F645-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure appendNameValuePair(const name: WideString; const value: WideString); safecall;
+    procedure appendNameFilePair(const name: WideString; const filename: WideString); safecall;
+    procedure appendItemSeparator; safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLSubmitDataDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F645-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLSubmitDataDisp = dispinterface
+    ['{3050F645-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure appendNameValuePair(const name: WideString; const value: WideString); dispid 1012;
+    procedure appendNameFilePair(const name: WideString; const filename: WideString); dispid 1013;
+    procedure appendItemSeparator; dispid 1014;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLFormElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F510-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLFormElement = dispinterface
+    ['{3050F510-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property action: WideString dispid 1001;
+    property encoding: WideString dispid 1003;
+    property method: WideString dispid 1004;
+    property elements: IDispatch readonly dispid 1005;
+    property target: WideString dispid 1006;
+    property name: WideString dispid - 2147418112;
+    property onsubmit: OleVariant dispid - 2147412101;
+    property onreset: OleVariant dispid - 2147412100;
+    procedure submit; dispid 1009;
+    procedure reset; dispid 1010;
+    property length: Integer dispid 1500;
+    property _newEnum: IUnknown readonly dispid - 4;
+    function item(name: OleVariant; index: OleVariant): IDispatch; dispid 0;
+    function tags(tagName: OleVariant): IDispatch; dispid 1502;
+    property acceptCharset: WideString dispid 1011;
+    function urns(urn: OleVariant): IDispatch; dispid 1505;
+    function namedItem(const name: WideString): IDispatch; dispid 1506;
+    procedure appendNameValuePair(const name: WideString; const value: WideString); dispid 1012;
+    procedure appendNameFilePair(const name: WideString; const filename: WideString); dispid 1013;
+    procedure appendItemSeparator; dispid 1014;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLControlElementEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F612-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLControlElementEvents2 = dispinterface
+    ['{3050F612-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLControlElementEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F4EA-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLControlElementEvents = dispinterface
+    ['{3050F4EA-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLControlElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4E9-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLControlElement = interface(IDispatch)
+    ['{3050F4E9-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_tabIndex(p: Smallint); safecall;
+    function Get_tabIndex: Smallint; safecall;
+    procedure focus; safecall;
+    procedure Set_accessKey(const p: WideString); safecall;
+    function Get_accessKey: WideString; safecall;
+    procedure Set_onblur(p: OleVariant); safecall;
+    function Get_onblur: OleVariant; safecall;
+    procedure Set_onfocus(p: OleVariant); safecall;
+    function Get_onfocus: OleVariant; safecall;
+    procedure Set_onresize(p: OleVariant); safecall;
+    function Get_onresize: OleVariant; safecall;
+    procedure blur; safecall;
+    procedure addFilter(const pUnk: IUnknown); safecall;
+    procedure removeFilter(const pUnk: IUnknown); safecall;
+    function Get_clientHeight: Integer; safecall;
+    function Get_clientWidth: Integer; safecall;
+    function Get_clientTop: Integer; safecall;
+    function Get_clientLeft: Integer; safecall;
+    property tabIndex: Smallint read Get_tabIndex write Set_tabIndex;
+    property accessKey: WideString read Get_accessKey write Set_accessKey;
+    property onblur: OleVariant read Get_onblur write Set_onblur;
+    property onfocus: OleVariant read Get_onfocus write Set_onfocus;
+    property onresize: OleVariant read Get_onresize write Set_onresize;
+    property clientHeight: Integer read Get_clientHeight;
+    property clientWidth: Integer read Get_clientWidth;
+    property clientTop: Integer read Get_clientTop;
+    property clientLeft: Integer read Get_clientLeft;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLControlElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4E9-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLControlElementDisp = dispinterface
+    ['{3050F4E9-98B5-11CF-BB82-00AA00BDCE0B}']
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTextElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F218-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTextElement = interface(IDispatch)
+    ['{3050F218-98B5-11CF-BB82-00AA00BDCE0B}']
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTextElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F218-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTextElementDisp = dispinterface
+    ['{3050F218-98B5-11CF-BB82-00AA00BDCE0B}']
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLTextElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F537-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLTextElement = dispinterface
+    ['{3050F537-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLTextContainerEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F624-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLTextContainerEvents2 = dispinterface
+    ['{3050F624-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+    procedure onchange(const pEvtObj: IHTMLEventObj); dispid 1001;
+    procedure onselect(const pEvtObj: IHTMLEventObj); dispid 1006;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLTextContainerEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {1FF6AA72-5842-11CF-A707-00AA00C0098D}
+// *********************************************************************//
+  HTMLTextContainerEvents = dispinterface
+    ['{1FF6AA72-5842-11CF-A707-00AA00C0098D}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+    procedure onchange; dispid 1001;
+    procedure onselect; dispid 1006;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTextContainer
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F230-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTextContainer = interface(IDispatch)
+    ['{3050F230-98B5-11CF-BB82-00AA00BDCE0B}']
+    function createControlRange: IDispatch; safecall;
+    function Get_scrollHeight: Integer; safecall;
+    function Get_scrollWidth: Integer; safecall;
+    procedure Set_scrollTop(p: Integer); safecall;
+    function Get_scrollTop: Integer; safecall;
+    procedure Set_scrollLeft(p: Integer); safecall;
+    function Get_scrollLeft: Integer; safecall;
+    procedure Set_onscroll(p: OleVariant); safecall;
+    function Get_onscroll: OleVariant; safecall;
+    property scrollHeight: Integer read Get_scrollHeight;
+    property scrollWidth: Integer read Get_scrollWidth;
+    property scrollTop: Integer read Get_scrollTop write Set_scrollTop;
+    property scrollLeft: Integer read Get_scrollLeft write Set_scrollLeft;
+    property onscroll: OleVariant read Get_onscroll write Set_onscroll;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTextContainerDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F230-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTextContainerDisp = dispinterface
+    ['{3050F230-98B5-11CF-BB82-00AA00BDCE0B}']
+    function createControlRange: IDispatch; dispid 1001;
+    property scrollHeight: Integer readonly dispid 1002;
+    property scrollWidth: Integer readonly dispid 1003;
+    property scrollTop: Integer dispid 1004;
+    property scrollLeft: Integer dispid 1005;
+    property onscroll: OleVariant dispid - 2147412081;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLControlRange
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F29C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLControlRange = interface(IDispatch)
+    ['{3050F29C-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure select; safecall;
+    procedure add(const item: IHTMLControlElement); safecall;
+    procedure remove(index: Integer); safecall;
+    function item(index: Integer): IHTMLElement; safecall;
+    procedure scrollIntoView(varargStart: OleVariant); safecall;
+    function queryCommandSupported(const cmdID: WideString): WordBool; safecall;
+    function queryCommandEnabled(const cmdID: WideString): WordBool; safecall;
+    function queryCommandState(const cmdID: WideString): WordBool; safecall;
+    function queryCommandIndeterm(const cmdID: WideString): WordBool; safecall;
+    function queryCommandText(const cmdID: WideString): WideString; safecall;
+    function queryCommandValue(const cmdID: WideString): OleVariant; safecall;
+    function execCommand(const cmdID: WideString; showUI: WordBool; value: OleVariant): WordBool; safecall;
+    function execCommandShowHelp(const cmdID: WideString): WordBool; safecall;
+    function commonParentElement: IHTMLElement; safecall;
+    function Get_length: Integer; safecall;
+    property length: Integer read Get_length;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLControlRangeDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F29C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLControlRangeDisp = dispinterface
+    ['{3050F29C-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure select; dispid 1002;
+    procedure add(const item: IHTMLControlElement); dispid 1003;
+    procedure remove(index: Integer); dispid 1004;
+    function item(index: Integer): IHTMLElement; dispid 0;
+    procedure scrollIntoView(varargStart: OleVariant); dispid 1006;
+    function queryCommandSupported(const cmdID: WideString): WordBool; dispid 1007;
+    function queryCommandEnabled(const cmdID: WideString): WordBool; dispid 1008;
+    function queryCommandState(const cmdID: WideString): WordBool; dispid 1009;
+    function queryCommandIndeterm(const cmdID: WideString): WordBool; dispid 1010;
+    function queryCommandText(const cmdID: WideString): WideString; dispid 1011;
+    function queryCommandValue(const cmdID: WideString): OleVariant; dispid 1012;
+    function execCommand(const cmdID: WideString; showUI: WordBool; value: OleVariant): WordBool; dispid 1013;
+    function execCommandShowHelp(const cmdID: WideString): WordBool; dispid 1014;
+    function commonParentElement: IHTMLElement; dispid 1015;
+    property length: Integer readonly dispid 1005;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLControlRange2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F65E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLControlRange2 = interface(IDispatch)
+    ['{3050F65E-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure addElement(const item: IHTMLElement); safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLControlRange2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F65E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLControlRange2Disp = dispinterface
+    ['{3050F65E-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure addElement(const item: IHTMLElement); dispid 1016;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLImgEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F616-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLImgEvents2 = dispinterface
+    ['{3050F616-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+    procedure onload(const pEvtObj: IHTMLEventObj); dispid 1003;
+    procedure onerror(const pEvtObj: IHTMLEventObj); dispid 1002;
+    procedure onabort(const pEvtObj: IHTMLEventObj); dispid 1000;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLImgEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F25B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLImgEvents = dispinterface
+    ['{3050F25B-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+    procedure onload; dispid 1003;
+    procedure onerror; dispid 1002;
+    procedure onabort; dispid 1000;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLImgElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F240-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLImgElement = interface(IDispatch)
+    ['{3050F240-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_isMap(p: WordBool); safecall;
+    function Get_isMap: WordBool; safecall;
+    procedure Set_useMap(const p: WideString); safecall;
+    function Get_useMap: WideString; safecall;
+    function Get_mimeType: WideString; safecall;
+    function Get_fileSize: WideString; safecall;
+    function Get_fileCreatedDate: WideString; safecall;
+    function Get_fileModifiedDate: WideString; safecall;
+    function Get_fileUpdatedDate: WideString; safecall;
+    function Get_protocol: WideString; safecall;
+    function Get_href: WideString; safecall;
+    function Get_nameProp: WideString; safecall;
+    procedure Set_border(p: OleVariant); safecall;
+    function Get_border: OleVariant; safecall;
+    procedure Set_vspace(p: Integer); safecall;
+    function Get_vspace: Integer; safecall;
+    procedure Set_hspace(p: Integer); safecall;
+    function Get_hspace: Integer; safecall;
+    procedure Set_alt(const p: WideString); safecall;
+    function Get_alt: WideString; safecall;
+    procedure Set_src(const p: WideString); safecall;
+    function Get_src: WideString; safecall;
+    procedure Set_lowsrc(const p: WideString); safecall;
+    function Get_lowsrc: WideString; safecall;
+    procedure Set_vrml(const p: WideString); safecall;
+    function Get_vrml: WideString; safecall;
+    procedure Set_dynsrc(const p: WideString); safecall;
+    function Get_dynsrc: WideString; safecall;
+    function Get_readyState: WideString; safecall;
+    function Get_complete: WordBool; safecall;
+    procedure Set_loop(p: OleVariant); safecall;
+    function Get_loop: OleVariant; safecall;
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    procedure Set_onload(p: OleVariant); safecall;
+    function Get_onload: OleVariant; safecall;
+    procedure Set_onerror(p: OleVariant); safecall;
+    function Get_onerror: OleVariant; safecall;
+    procedure Set_onabort(p: OleVariant); safecall;
+    function Get_onabort: OleVariant; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_width(p: Integer); safecall;
+    function Get_width: Integer; safecall;
+    procedure Set_height(p: Integer); safecall;
+    function Get_height: Integer; safecall;
+    procedure Set_Start(const p: WideString); safecall;
+    function Get_Start: WideString; safecall;
+    property isMap: WordBool read Get_isMap write Set_isMap;
+    property useMap: WideString read Get_useMap write Set_useMap;
+    property mimeType: WideString read Get_mimeType;
+    property fileSize: WideString read Get_fileSize;
+    property fileCreatedDate: WideString read Get_fileCreatedDate;
+    property fileModifiedDate: WideString read Get_fileModifiedDate;
+    property fileUpdatedDate: WideString read Get_fileUpdatedDate;
+    property protocol: WideString read Get_protocol;
+    property href: WideString read Get_href;
+    property nameProp: WideString read Get_nameProp;
+    property border: OleVariant read Get_border write Set_border;
+    property vspace: Integer read Get_vspace write Set_vspace;
+    property hspace: Integer read Get_hspace write Set_hspace;
+    property alt: WideString read Get_alt write Set_alt;
+    property src: WideString read Get_src write Set_src;
+    property lowsrc: WideString read Get_lowsrc write Set_lowsrc;
+    property vrml: WideString read Get_vrml write Set_vrml;
+    property dynsrc: WideString read Get_dynsrc write Set_dynsrc;
+    property readyState: WideString read Get_readyState;
+    property complete: WordBool read Get_complete;
+    property loop: OleVariant read Get_loop write Set_loop;
+    property align: WideString read Get_align write Set_align;
+    property onload: OleVariant read Get_onload write Set_onload;
+    property onerror: OleVariant read Get_onerror write Set_onerror;
+    property onabort: OleVariant read Get_onabort write Set_onabort;
+    property name: WideString read Get_name write Set_name;
+    property width: Integer read Get_width write Set_width;
+    property height: Integer read Get_height write Set_height;
+    property Start: WideString read Get_Start write Set_Start;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLImgElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F240-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLImgElementDisp = dispinterface
+    ['{3050F240-98B5-11CF-BB82-00AA00BDCE0B}']
+    property isMap: WordBool dispid 2002;
+    property useMap: WideString dispid 2008;
+    property mimeType: WideString readonly dispid 2010;
+    property fileSize: WideString readonly dispid 2011;
+    property fileCreatedDate: WideString readonly dispid 2012;
+    property fileModifiedDate: WideString readonly dispid 2013;
+    property fileUpdatedDate: WideString readonly dispid 2014;
+    property protocol: WideString readonly dispid 2015;
+    property href: WideString readonly dispid 2016;
+    property nameProp: WideString readonly dispid 2017;
+    property border: OleVariant dispid 1004;
+    property vspace: Integer dispid 1005;
+    property hspace: Integer dispid 1006;
+    property alt: WideString dispid 1002;
+    property src: WideString dispid 1003;
+    property lowsrc: WideString dispid 1007;
+    property vrml: WideString dispid 1008;
+    property dynsrc: WideString dispid 1009;
+    property readyState: WideString readonly dispid - 2147412996;
+    property complete: WordBool readonly dispid 1010;
+    property loop: OleVariant dispid 1011;
+    property align: WideString dispid - 2147418039;
+    property onload: OleVariant dispid - 2147412080;
+    property onerror: OleVariant dispid - 2147412083;
+    property onabort: OleVariant dispid - 2147412084;
+    property name: WideString dispid - 2147418112;
+    property width: Integer dispid - 2147418107;
+    property height: Integer dispid - 2147418106;
+    property Start: WideString dispid 1013;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLImgElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F826-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLImgElement2 = interface(IDispatch)
+    ['{3050F826-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_longDesc(const p: WideString); safecall;
+    function Get_longDesc: WideString; safecall;
+    property longDesc: WideString read Get_longDesc write Set_longDesc;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLImgElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F826-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLImgElement2Disp = dispinterface
+    ['{3050F826-98B5-11CF-BB82-00AA00BDCE0B}']
+    property longDesc: WideString dispid 2019;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLImageElementFactory
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F38E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLImageElementFactory = interface(IDispatch)
+    ['{3050F38E-98B5-11CF-BB82-00AA00BDCE0B}']
+    function create(width: OleVariant; height: OleVariant): IHTMLImgElement; safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLImageElementFactoryDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F38E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLImageElementFactoryDisp = dispinterface
+    ['{3050F38E-98B5-11CF-BB82-00AA00BDCE0B}']
+    function create(width: OleVariant; height: OleVariant): IHTMLImgElement; dispid 0;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLImg
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F51C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLImg = dispinterface
+    ['{3050F51C-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property isMap: WordBool dispid 2002;
+    property useMap: WideString dispid 2008;
+    property mimeType: WideString readonly dispid 2010;
+    property fileSize: WideString readonly dispid 2011;
+    property fileCreatedDate: WideString readonly dispid 2012;
+    property fileModifiedDate: WideString readonly dispid 2013;
+    property fileUpdatedDate: WideString readonly dispid 2014;
+    property protocol: WideString readonly dispid 2015;
+    property href: WideString readonly dispid 2016;
+    property nameProp: WideString readonly dispid 2017;
+    property border: OleVariant dispid 1004;
+    property vspace: Integer dispid 1005;
+    property hspace: Integer dispid 1006;
+    property alt: WideString dispid 1002;
+    property src: WideString dispid 1003;
+    property lowsrc: WideString dispid 1007;
+    property vrml: WideString dispid 1008;
+    property dynsrc: WideString dispid 1009;
+    property complete: WordBool readonly dispid 1010;
+    property loop: OleVariant dispid 1011;
+    property align: WideString dispid - 2147418039;
+    property onload: OleVariant dispid - 2147412080;
+    property onerror: OleVariant dispid - 2147412083;
+    property onabort: OleVariant dispid - 2147412084;
+    property name: WideString dispid - 2147418112;
+    property width: Integer dispid - 2147418107;
+    property height: Integer dispid - 2147418106;
+    property Start: WideString dispid 1013;
+    property longDesc: WideString dispid 2019;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLBodyElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1D8-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBodyElement = interface(IDispatch)
+    ['{3050F1D8-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_background(const p: WideString); safecall;
+    function Get_background: WideString; safecall;
+    procedure Set_bgProperties(const p: WideString); safecall;
+    function Get_bgProperties: WideString; safecall;
+    procedure Set_leftMargin(p: OleVariant); safecall;
+    function Get_leftMargin: OleVariant; safecall;
+    procedure Set_topMargin(p: OleVariant); safecall;
+    function Get_topMargin: OleVariant; safecall;
+    procedure Set_rightMargin(p: OleVariant); safecall;
+    function Get_rightMargin: OleVariant; safecall;
+    procedure Set_bottomMargin(p: OleVariant); safecall;
+    function Get_bottomMargin: OleVariant; safecall;
+    procedure Set_noWrap(p: WordBool); safecall;
+    function Get_noWrap: WordBool; safecall;
+    procedure Set_bgColor(p: OleVariant); safecall;
+    function Get_bgColor: OleVariant; safecall;
+    procedure Set_text(p: OleVariant); safecall;
+    function Get_text: OleVariant; safecall;
+    procedure Set_link(p: OleVariant); safecall;
+    function Get_link: OleVariant; safecall;
+    procedure Set_vLink(p: OleVariant); safecall;
+    function Get_vLink: OleVariant; safecall;
+    procedure Set_aLink(p: OleVariant); safecall;
+    function Get_aLink: OleVariant; safecall;
+    procedure Set_onload(p: OleVariant); safecall;
+    function Get_onload: OleVariant; safecall;
+    procedure Set_onunload(p: OleVariant); safecall;
+    function Get_onunload: OleVariant; safecall;
+    procedure Set_scroll(const p: WideString); safecall;
+    function Get_scroll: WideString; safecall;
+    procedure Set_onselect(p: OleVariant); safecall;
+    function Get_onselect: OleVariant; safecall;
+    procedure Set_onbeforeunload(p: OleVariant); safecall;
+    function Get_onbeforeunload: OleVariant; safecall;
+    function createTextRange: IHTMLTxtRange; safecall;
+    property background: WideString read Get_background write Set_background;
+    property bgProperties: WideString read Get_bgProperties write Set_bgProperties;
+    property leftMargin: OleVariant read Get_leftMargin write Set_leftMargin;
+    property topMargin: OleVariant read Get_topMargin write Set_topMargin;
+    property rightMargin: OleVariant read Get_rightMargin write Set_rightMargin;
+    property bottomMargin: OleVariant read Get_bottomMargin write Set_bottomMargin;
+    property noWrap: WordBool read Get_noWrap write Set_noWrap;
+    property bgColor: OleVariant read Get_bgColor write Set_bgColor;
+    property text: OleVariant read Get_text write Set_text;
+    property link: OleVariant read Get_link write Set_link;
+    property vLink: OleVariant read Get_vLink write Set_vLink;
+    property aLink: OleVariant read Get_aLink write Set_aLink;
+    property onload: OleVariant read Get_onload write Set_onload;
+    property onunload: OleVariant read Get_onunload write Set_onunload;
+    property scroll: WideString read Get_scroll write Set_scroll;
+    property onselect: OleVariant read Get_onselect write Set_onselect;
+    property onbeforeunload: OleVariant read Get_onbeforeunload write Set_onbeforeunload;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLBodyElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1D8-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBodyElementDisp = dispinterface
+    ['{3050F1D8-98B5-11CF-BB82-00AA00BDCE0B}']
+    property background: WideString dispid - 2147413111;
+    property bgProperties: WideString dispid - 2147413067;
+    property leftMargin: OleVariant dispid - 2147413072;
+    property topMargin: OleVariant dispid - 2147413075;
+    property rightMargin: OleVariant dispid - 2147413074;
+    property bottomMargin: OleVariant dispid - 2147413073;
+    property noWrap: WordBool dispid - 2147413107;
+    property bgColor: OleVariant dispid - 501;
+    property text: OleVariant dispid - 2147413110;
+    property link: OleVariant dispid 2010;
+    property vLink: OleVariant dispid 2012;
+    property aLink: OleVariant dispid 2011;
+    property onload: OleVariant dispid - 2147412080;
+    property onunload: OleVariant dispid - 2147412079;
+    property scroll: WideString dispid - 2147413033;
+    property onselect: OleVariant dispid - 2147412102;
+    property onbeforeunload: OleVariant dispid - 2147412073;
+    function createTextRange: IHTMLTxtRange; dispid 2013;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLBodyElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5C5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBodyElement2 = interface(IDispatch)
+    ['{3050F5C5-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_onbeforeprint(p: OleVariant); safecall;
+    function Get_onbeforeprint: OleVariant; safecall;
+    procedure Set_onafterprint(p: OleVariant); safecall;
+    function Get_onafterprint: OleVariant; safecall;
+    property onbeforeprint: OleVariant read Get_onbeforeprint write Set_onbeforeprint;
+    property onafterprint: OleVariant read Get_onafterprint write Set_onafterprint;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLBodyElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5C5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBodyElement2Disp = dispinterface
+    ['{3050F5C5-98B5-11CF-BB82-00AA00BDCE0B}']
+    property onbeforeprint: OleVariant dispid - 2147412046;
+    property onafterprint: OleVariant dispid - 2147412045;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLBody
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F507-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLBody = dispinterface
+    ['{3050F507-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property background: WideString dispid - 2147413111;
+    property bgProperties: WideString dispid - 2147413067;
+    property leftMargin: OleVariant dispid - 2147413072;
+    property topMargin: OleVariant dispid - 2147413075;
+    property rightMargin: OleVariant dispid - 2147413074;
+    property bottomMargin: OleVariant dispid - 2147413073;
+    property noWrap: WordBool dispid - 2147413107;
+    property bgColor: OleVariant dispid - 501;
+    property text: OleVariant dispid - 2147413110;
+    property link: OleVariant dispid 2010;
+    property vLink: OleVariant dispid 2012;
+    property aLink: OleVariant dispid 2011;
+    property onload: OleVariant dispid - 2147412080;
+    property onunload: OleVariant dispid - 2147412079;
+    property scroll: WideString dispid - 2147413033;
+    property onselect: OleVariant dispid - 2147412102;
+    property onbeforeunload: OleVariant dispid - 2147412073;
+    function createTextRange: IHTMLTxtRange; dispid 2013;
+    property onbeforeprint: OleVariant dispid - 2147412046;
+    property onafterprint: OleVariant dispid - 2147412045;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLFontElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1D9-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFontElement = interface(IDispatch)
+    ['{3050F1D9-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_color(p: OleVariant); safecall;
+    function Get_color: OleVariant; safecall;
+    procedure Set_face(const p: WideString); safecall;
+    function Get_face: WideString; safecall;
+    procedure Set_size(p: OleVariant); safecall;
+    function Get_size: OleVariant; safecall;
+    property color: OleVariant read Get_color write Set_color;
+    property face: WideString read Get_face write Set_face;
+    property size: OleVariant read Get_size write Set_size;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLFontElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1D9-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFontElementDisp = dispinterface
+    ['{3050F1D9-98B5-11CF-BB82-00AA00BDCE0B}']
+    property color: OleVariant dispid - 2147413110;
+    property face: WideString dispid - 2147413094;
+    property size: OleVariant dispid - 2147413093;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLFontElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F512-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLFontElement = dispinterface
+    ['{3050F512-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property color: OleVariant dispid - 2147413110;
+    property face: WideString dispid - 2147413094;
+    property size: OleVariant dispid - 2147413093;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLAnchorEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F610-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLAnchorEvents2 = dispinterface
+    ['{3050F610-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLAnchorEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F29D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLAnchorEvents = dispinterface
+    ['{3050F29D-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLAnchorElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1DA-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAnchorElement = interface(IDispatch)
+    ['{3050F1DA-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_href(const p: WideString); safecall;
+    function Get_href: WideString; safecall;
+    procedure Set_target(const p: WideString); safecall;
+    function Get_target: WideString; safecall;
+    procedure Set_rel(const p: WideString); safecall;
+    function Get_rel: WideString; safecall;
+    procedure Set_rev(const p: WideString); safecall;
+    function Get_rev: WideString; safecall;
+    procedure Set_urn(const p: WideString); safecall;
+    function Get_urn: WideString; safecall;
+    procedure Set_Methods(const p: WideString); safecall;
+    function Get_Methods: WideString; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_host(const p: WideString); safecall;
+    function Get_host: WideString; safecall;
+    procedure Set_hostname(const p: WideString); safecall;
+    function Get_hostname: WideString; safecall;
+    procedure Set_pathname(const p: WideString); safecall;
+    function Get_pathname: WideString; safecall;
+    procedure Set_port(const p: WideString); safecall;
+    function Get_port: WideString; safecall;
+    procedure Set_protocol(const p: WideString); safecall;
+    function Get_protocol: WideString; safecall;
+    procedure Set_search(const p: WideString); safecall;
+    function Get_search: WideString; safecall;
+    procedure Set_hash(const p: WideString); safecall;
+    function Get_hash: WideString; safecall;
+    procedure Set_onblur(p: OleVariant); safecall;
+    function Get_onblur: OleVariant; safecall;
+    procedure Set_onfocus(p: OleVariant); safecall;
+    function Get_onfocus: OleVariant; safecall;
+    procedure Set_accessKey(const p: WideString); safecall;
+    function Get_accessKey: WideString; safecall;
+    function Get_protocolLong: WideString; safecall;
+    function Get_mimeType: WideString; safecall;
+    function Get_nameProp: WideString; safecall;
+    procedure Set_tabIndex(p: Smallint); safecall;
+    function Get_tabIndex: Smallint; safecall;
+    procedure focus; safecall;
+    procedure blur; safecall;
+    property href: WideString read Get_href write Set_href;
+    property target: WideString read Get_target write Set_target;
+    property rel: WideString read Get_rel write Set_rel;
+    property rev: WideString read Get_rev write Set_rev;
+    property urn: WideString read Get_urn write Set_urn;
+    property Methods: WideString read Get_Methods write Set_Methods;
+    property name: WideString read Get_name write Set_name;
+    property host: WideString read Get_host write Set_host;
+    property hostname: WideString read Get_hostname write Set_hostname;
+    property pathname: WideString read Get_pathname write Set_pathname;
+    property port: WideString read Get_port write Set_port;
+    property protocol: WideString read Get_protocol write Set_protocol;
+    property search: WideString read Get_search write Set_search;
+    property hash: WideString read Get_hash write Set_hash;
+    property onblur: OleVariant read Get_onblur write Set_onblur;
+    property onfocus: OleVariant read Get_onfocus write Set_onfocus;
+    property accessKey: WideString read Get_accessKey write Set_accessKey;
+    property protocolLong: WideString read Get_protocolLong;
+    property mimeType: WideString read Get_mimeType;
+    property nameProp: WideString read Get_nameProp;
+    property tabIndex: Smallint read Get_tabIndex write Set_tabIndex;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLAnchorElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1DA-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAnchorElementDisp = dispinterface
+    ['{3050F1DA-98B5-11CF-BB82-00AA00BDCE0B}']
+    property href: WideString dispid 0;
+    property target: WideString dispid 1003;
+    property rel: WideString dispid 1005;
+    property rev: WideString dispid 1006;
+    property urn: WideString dispid 1007;
+    property Methods: WideString dispid 1008;
+    property name: WideString dispid - 2147418112;
+    property host: WideString dispid 1012;
+    property hostname: WideString dispid 1013;
+    property pathname: WideString dispid 1014;
+    property port: WideString dispid 1015;
+    property protocol: WideString dispid 1016;
+    property search: WideString dispid 1017;
+    property hash: WideString dispid 1018;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property accessKey: WideString dispid - 2147416107;
+    property protocolLong: WideString readonly dispid 1031;
+    property mimeType: WideString readonly dispid 1030;
+    property nameProp: WideString readonly dispid 1032;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    procedure blur; dispid - 2147416110;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLAnchorElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F825-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAnchorElement2 = interface(IDispatch)
+    ['{3050F825-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_charset(const p: WideString); safecall;
+    function Get_charset: WideString; safecall;
+    procedure Set_coords(const p: WideString); safecall;
+    function Get_coords: WideString; safecall;
+    procedure Set_hreflang(const p: WideString); safecall;
+    function Get_hreflang: WideString; safecall;
+    procedure Set_shape(const p: WideString); safecall;
+    function Get_shape: WideString; safecall;
+    procedure Set_type_(const p: WideString); safecall;
+    function Get_type_: WideString; safecall;
+    property charset: WideString read Get_charset write Set_charset;
+    property coords: WideString read Get_coords write Set_coords;
+    property hreflang: WideString read Get_hreflang write Set_hreflang;
+    property shape: WideString read Get_shape write Set_shape;
+    property type_: WideString read Get_type_ write Set_type_;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLAnchorElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F825-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAnchorElement2Disp = dispinterface
+    ['{3050F825-98B5-11CF-BB82-00AA00BDCE0B}']
+    property charset: WideString dispid 1023;
+    property coords: WideString dispid 1024;
+    property hreflang: WideString dispid 1025;
+    property shape: WideString dispid 1026;
+    property type_: WideString dispid 1027;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLAnchorElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F502-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLAnchorElement = dispinterface
+    ['{3050F502-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property href: WideString dispid 0;
+    property target: WideString dispid 1003;
+    property rel: WideString dispid 1005;
+    property rev: WideString dispid 1006;
+    property urn: WideString dispid 1007;
+    property Methods: WideString dispid 1008;
+    property name: WideString dispid - 2147418112;
+    property host: WideString dispid 1012;
+    property hostname: WideString dispid 1013;
+    property pathname: WideString dispid 1014;
+    property port: WideString dispid 1015;
+    property protocol: WideString dispid 1016;
+    property search: WideString dispid 1017;
+    property hash: WideString dispid 1018;
+    property protocolLong: WideString readonly dispid 1031;
+    property mimeType: WideString readonly dispid 1030;
+    property nameProp: WideString readonly dispid 1032;
+    property charset: WideString dispid 1023;
+    property coords: WideString dispid 1024;
+    property hreflang: WideString dispid 1025;
+    property shape: WideString dispid 1026;
+    property type_: WideString dispid 1027;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLLabelEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F61C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLLabelEvents2 = dispinterface
+    ['{3050F61C-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLLabelEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F329-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLLabelEvents = dispinterface
+    ['{3050F329-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLLabelElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F32A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLLabelElement = interface(IDispatch)
+    ['{3050F32A-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_htmlFor(const p: WideString); safecall;
+    function Get_htmlFor: WideString; safecall;
+    procedure Set_accessKey(const p: WideString); safecall;
+    function Get_accessKey: WideString; safecall;
+    property htmlFor: WideString read Get_htmlFor write Set_htmlFor;
+    property accessKey: WideString read Get_accessKey write Set_accessKey;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLLabelElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F32A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLLabelElementDisp = dispinterface
+    ['{3050F32A-98B5-11CF-BB82-00AA00BDCE0B}']
+    property htmlFor: WideString dispid 1000;
+    property accessKey: WideString dispid - 2147416107;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLLabelElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F832-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLLabelElement2 = interface(IDispatch)
+    ['{3050F832-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_form: IHTMLFormElement; safecall;
+    property form: IHTMLFormElement read Get_form;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLLabelElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F832-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLLabelElement2Disp = dispinterface
+    ['{3050F832-98B5-11CF-BB82-00AA00BDCE0B}']
+    property form: IHTMLFormElement readonly dispid 1002;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLLabelElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F522-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLLabelElement = dispinterface
+    ['{3050F522-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property htmlFor: WideString dispid 1000;
+    property form: IHTMLFormElement readonly dispid 1002;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLListElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F20E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLListElement = interface(IDispatch)
+    ['{3050F20E-98B5-11CF-BB82-00AA00BDCE0B}']
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLListElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F20E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLListElementDisp = dispinterface
+    ['{3050F20E-98B5-11CF-BB82-00AA00BDCE0B}']
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLListElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F822-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLListElement2 = interface(IDispatch)
+    ['{3050F822-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_compact(p: WordBool); safecall;
+    function Get_compact: WordBool; safecall;
+    property compact: WordBool read Get_compact write Set_compact;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLListElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F822-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLListElement2Disp = dispinterface
+    ['{3050F822-98B5-11CF-BB82-00AA00BDCE0B}']
+    property compact: WordBool dispid 1001;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLListElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F525-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLListElement = dispinterface
+    ['{3050F525-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property compact: WordBool dispid 1001;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLUListElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1DD-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLUListElement = interface(IDispatch)
+    ['{3050F1DD-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_compact(p: WordBool); safecall;
+    function Get_compact: WordBool; safecall;
+    procedure Set_type_(const p: WideString); safecall;
+    function Get_type_: WideString; safecall;
+    property compact: WordBool read Get_compact write Set_compact;
+    property type_: WideString read Get_type_ write Set_type_;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLUListElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1DD-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLUListElementDisp = dispinterface
+    ['{3050F1DD-98B5-11CF-BB82-00AA00BDCE0B}']
+    property compact: WordBool dispid 1001;
+    property type_: WideString dispid - 2147413095;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLUListElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F538-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLUListElement = dispinterface
+    ['{3050F538-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property compact: WordBool dispid 1001;
+    property type_: WideString dispid - 2147413095;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLOListElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1DE-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLOListElement = interface(IDispatch)
+    ['{3050F1DE-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_compact(p: WordBool); safecall;
+    function Get_compact: WordBool; safecall;
+    procedure Set_Start(p: Integer); safecall;
+    function Get_Start: Integer; safecall;
+    procedure Set_type_(const p: WideString); safecall;
+    function Get_type_: WideString; safecall;
+    property compact: WordBool read Get_compact write Set_compact;
+    property Start: Integer read Get_Start write Set_Start;
+    property type_: WideString read Get_type_ write Set_type_;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLOListElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1DE-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLOListElementDisp = dispinterface
+    ['{3050F1DE-98B5-11CF-BB82-00AA00BDCE0B}']
+    property compact: WordBool dispid 1001;
+    property Start: Integer dispid 1003;
+    property type_: WideString dispid - 2147413095;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLOListElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F52A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLOListElement = dispinterface
+    ['{3050F52A-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property compact: WordBool dispid 1001;
+    property Start: Integer dispid 1003;
+    property type_: WideString dispid - 2147413095;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLLIElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1E0-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLLIElement = interface(IDispatch)
+    ['{3050F1E0-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_type_(const p: WideString); safecall;
+    function Get_type_: WideString; safecall;
+    procedure Set_value(p: Integer); safecall;
+    function Get_value: Integer; safecall;
+    property type_: WideString read Get_type_ write Set_type_;
+    property value: Integer read Get_value write Set_value;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLLIElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1E0-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLLIElementDisp = dispinterface
+    ['{3050F1E0-98B5-11CF-BB82-00AA00BDCE0B}']
+    property type_: WideString dispid - 2147413095;
+    property value: Integer dispid 1001;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLLIElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F523-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLLIElement = dispinterface
+    ['{3050F523-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property type_: WideString dispid - 2147413095;
+    property value: Integer dispid 1001;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLBlockElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F208-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBlockElement = interface(IDispatch)
+    ['{3050F208-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_clear(const p: WideString); safecall;
+    function Get_clear: WideString; safecall;
+    property clear: WideString read Get_clear write Set_clear;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLBlockElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F208-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBlockElementDisp = dispinterface
+    ['{3050F208-98B5-11CF-BB82-00AA00BDCE0B}']
+    property clear: WideString dispid - 2147413096;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLBlockElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F823-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBlockElement2 = interface(IDispatch)
+    ['{3050F823-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_cite(const p: WideString); safecall;
+    function Get_cite: WideString; safecall;
+    procedure Set_width(const p: WideString); safecall;
+    function Get_width: WideString; safecall;
+    property cite: WideString read Get_cite write Set_cite;
+    property width: WideString read Get_width write Set_width;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLBlockElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F823-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBlockElement2Disp = dispinterface
+    ['{3050F823-98B5-11CF-BB82-00AA00BDCE0B}']
+    property cite: WideString dispid 1001;
+    property width: WideString dispid 1002;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLBlockElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F506-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLBlockElement = dispinterface
+    ['{3050F506-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property clear: WideString dispid - 2147413096;
+    property cite: WideString dispid 1001;
+    property width: WideString dispid 1002;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDivElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F200-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDivElement = interface(IDispatch)
+    ['{3050F200-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    procedure Set_noWrap(p: WordBool); safecall;
+    function Get_noWrap: WordBool; safecall;
+    property align: WideString read Get_align write Set_align;
+    property noWrap: WordBool read Get_noWrap write Set_noWrap;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDivElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F200-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDivElementDisp = dispinterface
+    ['{3050F200-98B5-11CF-BB82-00AA00BDCE0B}']
+    property align: WideString dispid - 2147418040;
+    property noWrap: WordBool dispid - 2147413107;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLDivElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F50C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLDivElement = dispinterface
+    ['{3050F50C-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property align: WideString dispid - 2147418040;
+    property noWrap: WordBool dispid - 2147413107;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDDElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1F2-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDDElement = interface(IDispatch)
+    ['{3050F1F2-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_noWrap(p: WordBool); safecall;
+    function Get_noWrap: WordBool; safecall;
+    property noWrap: WordBool read Get_noWrap write Set_noWrap;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDDElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1F2-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDDElementDisp = dispinterface
+    ['{3050F1F2-98B5-11CF-BB82-00AA00BDCE0B}']
+    property noWrap: WordBool dispid - 2147413107;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLDDElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F50B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLDDElement = dispinterface
+    ['{3050F50B-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property noWrap: WordBool dispid - 2147413107;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDTElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1F3-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDTElement = interface(IDispatch)
+    ['{3050F1F3-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_noWrap(p: WordBool); safecall;
+    function Get_noWrap: WordBool; safecall;
+    property noWrap: WordBool read Get_noWrap write Set_noWrap;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDTElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1F3-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDTElementDisp = dispinterface
+    ['{3050F1F3-98B5-11CF-BB82-00AA00BDCE0B}']
+    property noWrap: WordBool dispid - 2147413107;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLDTElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F50D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLDTElement = dispinterface
+    ['{3050F50D-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property noWrap: WordBool dispid - 2147413107;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLBRElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1F0-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBRElement = interface(IDispatch)
+    ['{3050F1F0-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_clear(const p: WideString); safecall;
+    function Get_clear: WideString; safecall;
+    property clear: WideString read Get_clear write Set_clear;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLBRElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1F0-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBRElementDisp = dispinterface
+    ['{3050F1F0-98B5-11CF-BB82-00AA00BDCE0B}']
+    property clear: WideString dispid - 2147413096;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLBRElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F53A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLBRElement = dispinterface
+    ['{3050F53A-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property clear: WideString dispid - 2147413096;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDListElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1F1-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDListElement = interface(IDispatch)
+    ['{3050F1F1-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_compact(p: WordBool); safecall;
+    function Get_compact: WordBool; safecall;
+    property compact: WordBool read Get_compact write Set_compact;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDListElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1F1-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDListElementDisp = dispinterface
+    ['{3050F1F1-98B5-11CF-BB82-00AA00BDCE0B}']
+    property compact: WordBool dispid 1001;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLDListElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F53B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLDListElement = dispinterface
+    ['{3050F53B-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property compact: WordBool dispid 1001;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLHRElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1F4-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLHRElement = interface(IDispatch)
+    ['{3050F1F4-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    procedure Set_color(p: OleVariant); safecall;
+    function Get_color: OleVariant; safecall;
+    procedure Set_noShade(p: WordBool); safecall;
+    function Get_noShade: WordBool; safecall;
+    procedure Set_width(p: OleVariant); safecall;
+    function Get_width: OleVariant; safecall;
+    procedure Set_size(p: OleVariant); safecall;
+    function Get_size: OleVariant; safecall;
+    property align: WideString read Get_align write Set_align;
+    property color: OleVariant read Get_color write Set_color;
+    property noShade: WordBool read Get_noShade write Set_noShade;
+    property width: OleVariant read Get_width write Set_width;
+    property size: OleVariant read Get_size write Set_size;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLHRElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1F4-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLHRElementDisp = dispinterface
+    ['{3050F1F4-98B5-11CF-BB82-00AA00BDCE0B}']
+    property align: WideString dispid - 2147418040;
+    property color: OleVariant dispid - 2147413110;
+    property noShade: WordBool dispid 1001;
+    property width: OleVariant dispid - 2147418107;
+    property size: OleVariant dispid - 2147418106;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLHRElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F53D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLHRElement = dispinterface
+    ['{3050F53D-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property align: WideString dispid - 2147418040;
+    property color: OleVariant dispid - 2147413110;
+    property noShade: WordBool dispid 1001;
+    property width: OleVariant dispid - 2147418107;
+    property size: OleVariant dispid - 2147418106;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLParaElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1F5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLParaElement = interface(IDispatch)
+    ['{3050F1F5-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    property align: WideString read Get_align write Set_align;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLParaElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1F5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLParaElementDisp = dispinterface
+    ['{3050F1F5-98B5-11CF-BB82-00AA00BDCE0B}']
+    property align: WideString dispid - 2147418040;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLParaElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F52C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLParaElement = dispinterface
+    ['{3050F52C-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property clear: WideString dispid - 2147413096;
+    property align: WideString dispid - 2147418040;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLElementCollection2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5EE-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLElementCollection2 = interface(IDispatch)
+    ['{3050F5EE-98B5-11CF-BB82-00AA00BDCE0B}']
+    function urns(urn: OleVariant): IDispatch; safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLElementCollection2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5EE-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLElementCollection2Disp = dispinterface
+    ['{3050F5EE-98B5-11CF-BB82-00AA00BDCE0B}']
+    function urns(urn: OleVariant): IDispatch; dispid 1505;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLElementCollection3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F835-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLElementCollection3 = interface(IDispatch)
+    ['{3050F835-98B5-11CF-BB82-00AA00BDCE0B}']
+    function namedItem(const name: WideString): IDispatch; safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLElementCollection3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F835-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLElementCollection3Disp = dispinterface
+    ['{3050F835-98B5-11CF-BB82-00AA00BDCE0B}']
+    function namedItem(const name: WideString): IDispatch; dispid 1506;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLElementCollection
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F56B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLElementCollection = dispinterface
+    ['{3050F56B-98B5-11CF-BB82-00AA00BDCE0B}']
+    function toString: WideString; dispid 1501;
+    property length: Integer dispid 1500;
+    property _newEnum: IUnknown readonly dispid - 4;
+    function item(name: OleVariant; index: OleVariant): IDispatch; dispid 0;
+    function tags(tagName: OleVariant): IDispatch; dispid 1502;
+    function urns(urn: OleVariant): IDispatch; dispid 1505;
+    function namedItem(const name: WideString): IDispatch; dispid 1506;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLHeaderElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1F6-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLHeaderElement = interface(IDispatch)
+    ['{3050F1F6-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    property align: WideString read Get_align write Set_align;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLHeaderElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F1F6-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLHeaderElementDisp = dispinterface
+    ['{3050F1F6-98B5-11CF-BB82-00AA00BDCE0B}']
+    property align: WideString dispid - 2147418040;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLHeaderElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F515-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLHeaderElement = dispinterface
+    ['{3050F515-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property clear: WideString dispid - 2147413096;
+    property align: WideString dispid - 2147418040;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLSelectElementEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F622-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLSelectElementEvents2 = dispinterface
+    ['{3050F622-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+    procedure onchange(const pEvtObj: IHTMLEventObj); dispid 1001;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLSelectElementEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F302-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLSelectElementEvents = dispinterface
+    ['{3050F302-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+    procedure onchange; dispid 1001;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLSelectElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F244-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLSelectElement = interface(IDispatch)
+    ['{3050F244-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_size(p: Integer); safecall;
+    function Get_size: Integer; safecall;
+    procedure Set_multiple(p: WordBool); safecall;
+    function Get_multiple: WordBool; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    function Get_options: IDispatch; safecall;
+    procedure Set_onchange(p: OleVariant); safecall;
+    function Get_onchange: OleVariant; safecall;
+    procedure Set_selectedIndex(p: Integer); safecall;
+    function Get_selectedIndex: Integer; safecall;
+    function Get_type_: WideString; safecall;
+    procedure Set_value(const p: WideString); safecall;
+    function Get_value: WideString; safecall;
+    procedure Set_disabled(p: WordBool); safecall;
+    function Get_disabled: WordBool; safecall;
+    function Get_form: IHTMLFormElement; safecall;
+    procedure add(const element: IHTMLElement; before: OleVariant); safecall;
+    procedure remove(index: Integer); safecall;
+    procedure Set_length(p: Integer); safecall;
+    function Get_length: Integer; safecall;
+    function Get__newEnum: IUnknown; safecall;
+    function item(name: OleVariant; index: OleVariant): IDispatch; safecall;
+    function tags(tagName: OleVariant): IDispatch; safecall;
+    property size: Integer read Get_size write Set_size;
+    property multiple: WordBool read Get_multiple write Set_multiple;
+    property name: WideString read Get_name write Set_name;
+    property options: IDispatch read Get_options;
+    property onchange: OleVariant read Get_onchange write Set_onchange;
+    property selectedIndex: Integer read Get_selectedIndex write Set_selectedIndex;
+    property type_: WideString read Get_type_;
+    property value: WideString read Get_value write Set_value;
+    property disabled: WordBool read Get_disabled write Set_disabled;
+    property form: IHTMLFormElement read Get_form;
+    property length: Integer read Get_length write Set_length;
+    property _newEnum: IUnknown read Get__newEnum;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLSelectElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F244-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLSelectElementDisp = dispinterface
+    ['{3050F244-98B5-11CF-BB82-00AA00BDCE0B}']
+    property size: Integer dispid 1002;
+    property multiple: WordBool dispid 1003;
+    property name: WideString dispid - 2147418112;
+    property options: IDispatch readonly dispid 1005;
+    property onchange: OleVariant dispid - 2147412082;
+    property selectedIndex: Integer dispid 1010;
+    property type_: WideString readonly dispid 1012;
+    property value: WideString dispid 1011;
+    property disabled: WordBool dispid - 2147418036;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    procedure add(const element: IHTMLElement; before: OleVariant); dispid 1503;
+    procedure remove(index: Integer); dispid 1504;
+    property length: Integer dispid 1500;
+    property _newEnum: IUnknown readonly dispid - 4;
+    function item(name: OleVariant; index: OleVariant): IDispatch; dispid 0;
+    function tags(tagName: OleVariant): IDispatch; dispid 1502;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLSelectElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5ED-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLSelectElement2 = interface(IDispatch)
+    ['{3050F5ED-98B5-11CF-BB82-00AA00BDCE0B}']
+    function urns(urn: OleVariant): IDispatch; safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLSelectElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5ED-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLSelectElement2Disp = dispinterface
+    ['{3050F5ED-98B5-11CF-BB82-00AA00BDCE0B}']
+    function urns(urn: OleVariant): IDispatch; dispid 1505;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLSelectElement4
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F838-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLSelectElement4 = interface(IDispatch)
+    ['{3050F838-98B5-11CF-BB82-00AA00BDCE0B}']
+    function namedItem(const name: WideString): IDispatch; safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLSelectElement4Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F838-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLSelectElement4Disp = dispinterface
+    ['{3050F838-98B5-11CF-BB82-00AA00BDCE0B}']
+    function namedItem(const name: WideString): IDispatch; dispid 1506;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLSelectElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F531-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLSelectElement = dispinterface
+    ['{3050F531-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property size: Integer dispid 1002;
+    property multiple: WordBool dispid 1003;
+    property name: WideString dispid - 2147418112;
+    property options: IDispatch readonly dispid 1005;
+    property onchange: OleVariant dispid - 2147412082;
+    property selectedIndex: Integer dispid 1010;
+    property type_: WideString readonly dispid 1012;
+    property value: WideString dispid 1011;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    procedure add(const element: IHTMLElement; before: OleVariant); dispid 1503;
+    procedure remove(index: Integer); dispid 1504;
+    property length: Integer dispid 1500;
+    property _newEnum: IUnknown readonly dispid - 4;
+    function item(name: OleVariant; index: OleVariant): IDispatch; dispid 0;
+    function tags(tagName: OleVariant): IDispatch; dispid 1502;
+    function urns(urn: OleVariant): IDispatch; dispid 1505;
+    function namedItem(const name: WideString): IDispatch; dispid 1506;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLSelectionObject
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F25A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLSelectionObject = interface(IDispatch)
+    ['{3050F25A-98B5-11CF-BB82-00AA00BDCE0B}']
+    function createRange: IDispatch; safecall;
+    procedure empty; safecall;
+    procedure clear; safecall;
+    function Get_type_: WideString; safecall;
+    property type_: WideString read Get_type_;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLSelectionObjectDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F25A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLSelectionObjectDisp = dispinterface
+    ['{3050F25A-98B5-11CF-BB82-00AA00BDCE0B}']
+    function createRange: IDispatch; dispid 1001;
+    procedure empty; dispid 1002;
+    procedure clear; dispid 1003;
+    property type_: WideString readonly dispid 1004;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLSelectionObject2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F7EC-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLSelectionObject2 = interface(IDispatch)
+    ['{3050F7EC-98B5-11CF-BB82-00AA00BDCE0B}']
+    function createRangeCollection: IDispatch; safecall;
+    function Get_typeDetail: WideString; safecall;
+    property typeDetail: WideString read Get_typeDetail;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLSelectionObject2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F7EC-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLSelectionObject2Disp = dispinterface
+    ['{3050F7EC-98B5-11CF-BB82-00AA00BDCE0B}']
+    function createRangeCollection: IDispatch; dispid 1005;
+    property typeDetail: WideString readonly dispid 1006;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLOptionElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F211-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLOptionElement = interface(IDispatch)
+    ['{3050F211-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_selected(p: WordBool); safecall;
+    function Get_selected: WordBool; safecall;
+    procedure Set_value(const p: WideString); safecall;
+    function Get_value: WideString; safecall;
+    procedure Set_defaultSelected(p: WordBool); safecall;
+    function Get_defaultSelected: WordBool; safecall;
+    procedure Set_index(p: Integer); safecall;
+    function Get_index: Integer; safecall;
+    procedure Set_text(const p: WideString); safecall;
+    function Get_text: WideString; safecall;
+    function Get_form: IHTMLFormElement; safecall;
+    property selected: WordBool read Get_selected write Set_selected;
+    property value: WideString read Get_value write Set_value;
+    property defaultSelected: WordBool read Get_defaultSelected write Set_defaultSelected;
+    property index: Integer read Get_index write Set_index;
+    property text: WideString read Get_text write Set_text;
+    property form: IHTMLFormElement read Get_form;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLOptionElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F211-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLOptionElementDisp = dispinterface
+    ['{3050F211-98B5-11CF-BB82-00AA00BDCE0B}']
+    property selected: WordBool dispid 1001;
+    property value: WideString dispid 1002;
+    property defaultSelected: WordBool dispid 1003;
+    property index: Integer dispid 1005;
+    property text: WideString dispid 1004;
+    property form: IHTMLFormElement readonly dispid 1006;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLOptionElement3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F820-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLOptionElement3 = interface(IDispatch)
+    ['{3050F820-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_label_(const p: WideString); safecall;
+    function Get_label_: WideString; safecall;
+    property label_: WideString read Get_label_ write Set_label_;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLOptionElement3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F820-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLOptionElement3Disp = dispinterface
+    ['{3050F820-98B5-11CF-BB82-00AA00BDCE0B}']
+    property label_: WideString dispid 1007;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLOptionElementFactory
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F38C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLOptionElementFactory = interface(IDispatch)
+    ['{3050F38C-98B5-11CF-BB82-00AA00BDCE0B}']
+    function create(text: OleVariant; value: OleVariant; defaultSelected: OleVariant;
+      selected: OleVariant): IHTMLOptionElement; safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLOptionElementFactoryDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F38C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLOptionElementFactoryDisp = dispinterface
+    ['{3050F38C-98B5-11CF-BB82-00AA00BDCE0B}']
+    function create(text: OleVariant; value: OleVariant; defaultSelected: OleVariant;
+      selected: OleVariant): IHTMLOptionElement; dispid 0;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLOptionElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F52B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLOptionElement = dispinterface
+    ['{3050F52B-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property selected: WordBool dispid 1001;
+    property value: WideString dispid 1002;
+    property defaultSelected: WordBool dispid 1003;
+    property index: Integer dispid 1005;
+    property text: WideString dispid 1004;
+    property form: IHTMLFormElement readonly dispid 1006;
+    property label_: WideString dispid 1007;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLButtonElementEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F617-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLButtonElementEvents2 = dispinterface
+    ['{3050F617-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLButtonElementEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F2B3-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLButtonElementEvents = dispinterface
+    ['{3050F2B3-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLInputTextElementEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F618-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLInputTextElementEvents2 = dispinterface
+    ['{3050F618-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+    function onchange(const pEvtObj: IHTMLEventObj): WordBool; dispid 1001;
+    procedure onselect(const pEvtObj: IHTMLEventObj); dispid 1006;
+    procedure onload(const pEvtObj: IHTMLEventObj); dispid 1003;
+    procedure onerror(const pEvtObj: IHTMLEventObj); dispid 1002;
+    procedure onabort(const pEvtObj: IHTMLEventObj); dispid 1000;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLOptionButtonElementEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F619-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLOptionButtonElementEvents2 = dispinterface
+    ['{3050F619-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+    function onchange(const pEvtObj: IHTMLEventObj): WordBool; dispid 1001;
+    procedure onselect(const pEvtObj: IHTMLEventObj); dispid 1006;
+    procedure onload(const pEvtObj: IHTMLEventObj); dispid 1003;
+    procedure onerror(const pEvtObj: IHTMLEventObj); dispid 1002;
+    procedure onabort(const pEvtObj: IHTMLEventObj); dispid 1000;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLInputFileElementEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F61A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLInputFileElementEvents2 = dispinterface
+    ['{3050F61A-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+    function onchange(const pEvtObj: IHTMLEventObj): WordBool; dispid 1001;
+    procedure onselect(const pEvtObj: IHTMLEventObj); dispid 1006;
+    procedure onload(const pEvtObj: IHTMLEventObj); dispid 1003;
+    procedure onerror(const pEvtObj: IHTMLEventObj); dispid 1002;
+    procedure onabort(const pEvtObj: IHTMLEventObj); dispid 1000;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLInputImageEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F61B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLInputImageEvents2 = dispinterface
+    ['{3050F61B-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+    procedure onload(const pEvtObj: IHTMLEventObj); dispid 1003;
+    procedure onerror(const pEvtObj: IHTMLEventObj); dispid 1002;
+    procedure onabort(const pEvtObj: IHTMLEventObj); dispid 1000;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLInputTextElementEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F2A7-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLInputTextElementEvents = dispinterface
+    ['{3050F2A7-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+    function onchange: WordBool; dispid 1001;
+    procedure onselect; dispid 1006;
+    procedure onload; dispid 1003;
+    procedure onerror; dispid 1002;
+    procedure onabort; dispid 1000;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLOptionButtonElementEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F2BD-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLOptionButtonElementEvents = dispinterface
+    ['{3050F2BD-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+    function onchange: WordBool; dispid 1001;
+    procedure onselect; dispid 1006;
+    procedure onload; dispid 1003;
+    procedure onerror; dispid 1002;
+    procedure onabort; dispid 1000;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLInputFileElementEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F2AF-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLInputFileElementEvents = dispinterface
+    ['{3050F2AF-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+    function onchange: WordBool; dispid 1001;
+    procedure onselect; dispid 1006;
+    procedure onload; dispid 1003;
+    procedure onerror; dispid 1002;
+    procedure onabort; dispid 1000;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLInputImageEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F2C3-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLInputImageEvents = dispinterface
+    ['{3050F2C3-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+    procedure onload; dispid 1003;
+    procedure onerror; dispid 1002;
+    procedure onabort; dispid 1000;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLInputElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5D2-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLInputElement = interface(IDispatch)
+    ['{3050F5D2-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_type_(const p: WideString); safecall;
+    function Get_type_: WideString; safecall;
+    procedure Set_value(const p: WideString); safecall;
+    function Get_value: WideString; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_status(p: WordBool); safecall;
+    function Get_status: WordBool; safecall;
+    procedure Set_disabled(p: WordBool); safecall;
+    function Get_disabled: WordBool; safecall;
+    function Get_form: IHTMLFormElement; safecall;
+    procedure Set_size(p: Integer); safecall;
+    function Get_size: Integer; safecall;
+    procedure Set_maxLength(p: Integer); safecall;
+    function Get_maxLength: Integer; safecall;
+    procedure select; safecall;
+    procedure Set_onchange(p: OleVariant); safecall;
+    function Get_onchange: OleVariant; safecall;
+    procedure Set_onselect(p: OleVariant); safecall;
+    function Get_onselect: OleVariant; safecall;
+    procedure Set_defaultValue(const p: WideString); safecall;
+    function Get_defaultValue: WideString; safecall;
+    procedure Set_readOnly(p: WordBool); safecall;
+    function Get_readOnly: WordBool; safecall;
+    function createTextRange: IHTMLTxtRange; safecall;
+    procedure Set_indeterminate(p: WordBool); safecall;
+    function Get_indeterminate: WordBool; safecall;
+    procedure Set_defaultChecked(p: WordBool); safecall;
+    function Get_defaultChecked: WordBool; safecall;
+    procedure Set_checked(p: WordBool); safecall;
+    function Get_checked: WordBool; safecall;
+    procedure Set_border(p: OleVariant); safecall;
+    function Get_border: OleVariant; safecall;
+    procedure Set_vspace(p: Integer); safecall;
+    function Get_vspace: Integer; safecall;
+    procedure Set_hspace(p: Integer); safecall;
+    function Get_hspace: Integer; safecall;
+    procedure Set_alt(const p: WideString); safecall;
+    function Get_alt: WideString; safecall;
+    procedure Set_src(const p: WideString); safecall;
+    function Get_src: WideString; safecall;
+    procedure Set_lowsrc(const p: WideString); safecall;
+    function Get_lowsrc: WideString; safecall;
+    procedure Set_vrml(const p: WideString); safecall;
+    function Get_vrml: WideString; safecall;
+    procedure Set_dynsrc(const p: WideString); safecall;
+    function Get_dynsrc: WideString; safecall;
+    function Get_readyState: WideString; safecall;
+    function Get_complete: WordBool; safecall;
+    procedure Set_loop(p: OleVariant); safecall;
+    function Get_loop: OleVariant; safecall;
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    procedure Set_onload(p: OleVariant); safecall;
+    function Get_onload: OleVariant; safecall;
+    procedure Set_onerror(p: OleVariant); safecall;
+    function Get_onerror: OleVariant; safecall;
+    procedure Set_onabort(p: OleVariant); safecall;
+    function Get_onabort: OleVariant; safecall;
+    procedure Set_width(p: Integer); safecall;
+    function Get_width: Integer; safecall;
+    procedure Set_height(p: Integer); safecall;
+    function Get_height: Integer; safecall;
+    procedure Set_Start(const p: WideString); safecall;
+    function Get_Start: WideString; safecall;
+    property type_: WideString read Get_type_ write Set_type_;
+    property value: WideString read Get_value write Set_value;
+    property name: WideString read Get_name write Set_name;
+    property status: WordBool read Get_status write Set_status;
+    property disabled: WordBool read Get_disabled write Set_disabled;
+    property form: IHTMLFormElement read Get_form;
+    property size: Integer read Get_size write Set_size;
+    property maxLength: Integer read Get_maxLength write Set_maxLength;
+    property onchange: OleVariant read Get_onchange write Set_onchange;
+    property onselect: OleVariant read Get_onselect write Set_onselect;
+    property defaultValue: WideString read Get_defaultValue write Set_defaultValue;
+    property readOnly: WordBool read Get_readOnly write Set_readOnly;
+    property indeterminate: WordBool read Get_indeterminate write Set_indeterminate;
+    property defaultChecked: WordBool read Get_defaultChecked write Set_defaultChecked;
+    property checked: WordBool read Get_checked write Set_checked;
+    property border: OleVariant read Get_border write Set_border;
+    property vspace: Integer read Get_vspace write Set_vspace;
+    property hspace: Integer read Get_hspace write Set_hspace;
+    property alt: WideString read Get_alt write Set_alt;
+    property src: WideString read Get_src write Set_src;
+    property lowsrc: WideString read Get_lowsrc write Set_lowsrc;
+    property vrml: WideString read Get_vrml write Set_vrml;
+    property dynsrc: WideString read Get_dynsrc write Set_dynsrc;
+    property readyState: WideString read Get_readyState;
+    property complete: WordBool read Get_complete;
+    property loop: OleVariant read Get_loop write Set_loop;
+    property align: WideString read Get_align write Set_align;
+    property onload: OleVariant read Get_onload write Set_onload;
+    property onerror: OleVariant read Get_onerror write Set_onerror;
+    property onabort: OleVariant read Get_onabort write Set_onabort;
+    property width: Integer read Get_width write Set_width;
+    property height: Integer read Get_height write Set_height;
+    property Start: WideString read Get_Start write Set_Start;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLInputElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5D2-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLInputElementDisp = dispinterface
+    ['{3050F5D2-98B5-11CF-BB82-00AA00BDCE0B}']
+    property type_: WideString dispid 2000;
+    property value: WideString dispid - 2147413011;
+    property name: WideString dispid - 2147418112;
+    property status: WordBool dispid 2001;
+    property disabled: WordBool dispid - 2147418036;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    property size: Integer dispid 2002;
+    property maxLength: Integer dispid 2003;
+    procedure select; dispid 2004;
+    property onchange: OleVariant dispid - 2147412082;
+    property onselect: OleVariant dispid - 2147412102;
+    property defaultValue: WideString dispid - 2147413029;
+    property readOnly: WordBool dispid 2005;
+    function createTextRange: IHTMLTxtRange; dispid 2006;
+    property indeterminate: WordBool dispid 2007;
+    property defaultChecked: WordBool dispid 2008;
+    property checked: WordBool dispid 2009;
+    property border: OleVariant dispid 2012;
+    property vspace: Integer dispid 2013;
+    property hspace: Integer dispid 2014;
+    property alt: WideString dispid 2010;
+    property src: WideString dispid 2011;
+    property lowsrc: WideString dispid 2015;
+    property vrml: WideString dispid 2016;
+    property dynsrc: WideString dispid 2017;
+    property readyState: WideString readonly dispid - 2147412996;
+    property complete: WordBool readonly dispid 2018;
+    property loop: OleVariant dispid 2019;
+    property align: WideString dispid - 2147418039;
+    property onload: OleVariant dispid - 2147412080;
+    property onerror: OleVariant dispid - 2147412083;
+    property onabort: OleVariant dispid - 2147412084;
+    property width: Integer dispid - 2147418107;
+    property height: Integer dispid - 2147418106;
+    property Start: WideString dispid 2020;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLInputElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F821-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLInputElement2 = interface(IDispatch)
+    ['{3050F821-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_accept(const p: WideString); safecall;
+    function Get_accept: WideString; safecall;
+    procedure Set_useMap(const p: WideString); safecall;
+    function Get_useMap: WideString; safecall;
+    property accept: WideString read Get_accept write Set_accept;
+    property useMap: WideString read Get_useMap write Set_useMap;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLInputElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F821-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLInputElement2Disp = dispinterface
+    ['{3050F821-98B5-11CF-BB82-00AA00BDCE0B}']
+    property accept: WideString dispid 2022;
+    property useMap: WideString dispid 2023;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLInputButtonElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2B2-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLInputButtonElement = interface(IDispatch)
+    ['{3050F2B2-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_type_: WideString; safecall;
+    procedure Set_value(const p: WideString); safecall;
+    function Get_value: WideString; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_status(p: OleVariant); safecall;
+    function Get_status: OleVariant; safecall;
+    procedure Set_disabled(p: WordBool); safecall;
+    function Get_disabled: WordBool; safecall;
+    function Get_form: IHTMLFormElement; safecall;
+    function createTextRange: IHTMLTxtRange; safecall;
+    property type_: WideString read Get_type_;
+    property value: WideString read Get_value write Set_value;
+    property name: WideString read Get_name write Set_name;
+    property status: OleVariant read Get_status write Set_status;
+    property disabled: WordBool read Get_disabled write Set_disabled;
+    property form: IHTMLFormElement read Get_form;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLInputButtonElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2B2-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLInputButtonElementDisp = dispinterface
+    ['{3050F2B2-98B5-11CF-BB82-00AA00BDCE0B}']
+    property type_: WideString readonly dispid 2000;
+    property value: WideString dispid - 2147413011;
+    property name: WideString dispid - 2147418112;
+    property status: OleVariant dispid 2021;
+    property disabled: WordBool dispid - 2147418036;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    function createTextRange: IHTMLTxtRange; dispid 2006;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLInputHiddenElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2A4-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLInputHiddenElement = interface(IDispatch)
+    ['{3050F2A4-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_type_: WideString; safecall;
+    procedure Set_value(const p: WideString); safecall;
+    function Get_value: WideString; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_status(p: OleVariant); safecall;
+    function Get_status: OleVariant; safecall;
+    procedure Set_disabled(p: WordBool); safecall;
+    function Get_disabled: WordBool; safecall;
+    function Get_form: IHTMLFormElement; safecall;
+    function createTextRange: IHTMLTxtRange; safecall;
+    property type_: WideString read Get_type_;
+    property value: WideString read Get_value write Set_value;
+    property name: WideString read Get_name write Set_name;
+    property status: OleVariant read Get_status write Set_status;
+    property disabled: WordBool read Get_disabled write Set_disabled;
+    property form: IHTMLFormElement read Get_form;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLInputHiddenElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2A4-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLInputHiddenElementDisp = dispinterface
+    ['{3050F2A4-98B5-11CF-BB82-00AA00BDCE0B}']
+    property type_: WideString readonly dispid 2000;
+    property value: WideString dispid - 2147413011;
+    property name: WideString dispid - 2147418112;
+    property status: OleVariant dispid 2021;
+    property disabled: WordBool dispid - 2147418036;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    function createTextRange: IHTMLTxtRange; dispid 2006;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLInputTextElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2A6-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLInputTextElement = interface(IDispatch)
+    ['{3050F2A6-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_type_: WideString; safecall;
+    procedure Set_value(const p: WideString); safecall;
+    function Get_value: WideString; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_status(p: OleVariant); safecall;
+    function Get_status: OleVariant; safecall;
+    procedure Set_disabled(p: WordBool); safecall;
+    function Get_disabled: WordBool; safecall;
+    function Get_form: IHTMLFormElement; safecall;
+    procedure Set_defaultValue(const p: WideString); safecall;
+    function Get_defaultValue: WideString; safecall;
+    procedure Set_size(p: Integer); safecall;
+    function Get_size: Integer; safecall;
+    procedure Set_maxLength(p: Integer); safecall;
+    function Get_maxLength: Integer; safecall;
+    procedure select; safecall;
+    procedure Set_onchange(p: OleVariant); safecall;
+    function Get_onchange: OleVariant; safecall;
+    procedure Set_onselect(p: OleVariant); safecall;
+    function Get_onselect: OleVariant; safecall;
+    procedure Set_readOnly(p: WordBool); safecall;
+    function Get_readOnly: WordBool; safecall;
+    function createTextRange: IHTMLTxtRange; safecall;
+    property type_: WideString read Get_type_;
+    property value: WideString read Get_value write Set_value;
+    property name: WideString read Get_name write Set_name;
+    property status: OleVariant read Get_status write Set_status;
+    property disabled: WordBool read Get_disabled write Set_disabled;
+    property form: IHTMLFormElement read Get_form;
+    property defaultValue: WideString read Get_defaultValue write Set_defaultValue;
+    property size: Integer read Get_size write Set_size;
+    property maxLength: Integer read Get_maxLength write Set_maxLength;
+    property onchange: OleVariant read Get_onchange write Set_onchange;
+    property onselect: OleVariant read Get_onselect write Set_onselect;
+    property readOnly: WordBool read Get_readOnly write Set_readOnly;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLInputTextElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2A6-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLInputTextElementDisp = dispinterface
+    ['{3050F2A6-98B5-11CF-BB82-00AA00BDCE0B}']
+    property type_: WideString readonly dispid 2000;
+    property value: WideString dispid - 2147413011;
+    property name: WideString dispid - 2147418112;
+    property status: OleVariant dispid 2021;
+    property disabled: WordBool dispid - 2147418036;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    property defaultValue: WideString dispid - 2147413029;
+    property size: Integer dispid 2002;
+    property maxLength: Integer dispid 2003;
+    procedure select; dispid 2004;
+    property onchange: OleVariant dispid - 2147412082;
+    property onselect: OleVariant dispid - 2147412102;
+    property readOnly: WordBool dispid 2005;
+    function createTextRange: IHTMLTxtRange; dispid 2006;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLInputFileElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2AD-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLInputFileElement = interface(IDispatch)
+    ['{3050F2AD-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_type_: WideString; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_status(p: OleVariant); safecall;
+    function Get_status: OleVariant; safecall;
+    procedure Set_disabled(p: WordBool); safecall;
+    function Get_disabled: WordBool; safecall;
+    function Get_form: IHTMLFormElement; safecall;
+    procedure Set_size(p: Integer); safecall;
+    function Get_size: Integer; safecall;
+    procedure Set_maxLength(p: Integer); safecall;
+    function Get_maxLength: Integer; safecall;
+    procedure select; safecall;
+    procedure Set_onchange(p: OleVariant); safecall;
+    function Get_onchange: OleVariant; safecall;
+    procedure Set_onselect(p: OleVariant); safecall;
+    function Get_onselect: OleVariant; safecall;
+    procedure Set_value(const p: WideString); safecall;
+    function Get_value: WideString; safecall;
+    property type_: WideString read Get_type_;
+    property name: WideString read Get_name write Set_name;
+    property status: OleVariant read Get_status write Set_status;
+    property disabled: WordBool read Get_disabled write Set_disabled;
+    property form: IHTMLFormElement read Get_form;
+    property size: Integer read Get_size write Set_size;
+    property maxLength: Integer read Get_maxLength write Set_maxLength;
+    property onchange: OleVariant read Get_onchange write Set_onchange;
+    property onselect: OleVariant read Get_onselect write Set_onselect;
+    property value: WideString read Get_value write Set_value;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLInputFileElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2AD-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLInputFileElementDisp = dispinterface
+    ['{3050F2AD-98B5-11CF-BB82-00AA00BDCE0B}']
+    property type_: WideString readonly dispid 2000;
+    property name: WideString dispid - 2147418112;
+    property status: OleVariant dispid 2021;
+    property disabled: WordBool dispid - 2147418036;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    property size: Integer dispid 2002;
+    property maxLength: Integer dispid 2003;
+    procedure select; dispid 2004;
+    property onchange: OleVariant dispid - 2147412082;
+    property onselect: OleVariant dispid - 2147412102;
+    property value: WideString dispid - 2147413011;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLOptionButtonElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2BC-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLOptionButtonElement = interface(IDispatch)
+    ['{3050F2BC-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_value(const p: WideString); safecall;
+    function Get_value: WideString; safecall;
+    function Get_type_: WideString; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_checked(p: WordBool); safecall;
+    function Get_checked: WordBool; safecall;
+    procedure Set_defaultChecked(p: WordBool); safecall;
+    function Get_defaultChecked: WordBool; safecall;
+    procedure Set_onchange(p: OleVariant); safecall;
+    function Get_onchange: OleVariant; safecall;
+    procedure Set_disabled(p: WordBool); safecall;
+    function Get_disabled: WordBool; safecall;
+    procedure Set_status(p: WordBool); safecall;
+    function Get_status: WordBool; safecall;
+    procedure Set_indeterminate(p: WordBool); safecall;
+    function Get_indeterminate: WordBool; safecall;
+    function Get_form: IHTMLFormElement; safecall;
+    property value: WideString read Get_value write Set_value;
+    property type_: WideString read Get_type_;
+    property name: WideString read Get_name write Set_name;
+    property checked: WordBool read Get_checked write Set_checked;
+    property defaultChecked: WordBool read Get_defaultChecked write Set_defaultChecked;
+    property onchange: OleVariant read Get_onchange write Set_onchange;
+    property disabled: WordBool read Get_disabled write Set_disabled;
+    property status: WordBool read Get_status write Set_status;
+    property indeterminate: WordBool read Get_indeterminate write Set_indeterminate;
+    property form: IHTMLFormElement read Get_form;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLOptionButtonElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2BC-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLOptionButtonElementDisp = dispinterface
+    ['{3050F2BC-98B5-11CF-BB82-00AA00BDCE0B}']
+    property value: WideString dispid - 2147413011;
+    property type_: WideString readonly dispid 2000;
+    property name: WideString dispid - 2147418112;
+    property checked: WordBool dispid 2009;
+    property defaultChecked: WordBool dispid 2008;
+    property onchange: OleVariant dispid - 2147412082;
+    property disabled: WordBool dispid - 2147418036;
+    property status: WordBool dispid 2001;
+    property indeterminate: WordBool dispid 2007;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLInputImage
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2C2-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLInputImage = interface(IDispatch)
+    ['{3050F2C2-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_type_: WideString; safecall;
+    procedure Set_disabled(p: WordBool); safecall;
+    function Get_disabled: WordBool; safecall;
+    procedure Set_border(p: OleVariant); safecall;
+    function Get_border: OleVariant; safecall;
+    procedure Set_vspace(p: Integer); safecall;
+    function Get_vspace: Integer; safecall;
+    procedure Set_hspace(p: Integer); safecall;
+    function Get_hspace: Integer; safecall;
+    procedure Set_alt(const p: WideString); safecall;
+    function Get_alt: WideString; safecall;
+    procedure Set_src(const p: WideString); safecall;
+    function Get_src: WideString; safecall;
+    procedure Set_lowsrc(const p: WideString); safecall;
+    function Get_lowsrc: WideString; safecall;
+    procedure Set_vrml(const p: WideString); safecall;
+    function Get_vrml: WideString; safecall;
+    procedure Set_dynsrc(const p: WideString); safecall;
+    function Get_dynsrc: WideString; safecall;
+    function Get_readyState: WideString; safecall;
+    function Get_complete: WordBool; safecall;
+    procedure Set_loop(p: OleVariant); safecall;
+    function Get_loop: OleVariant; safecall;
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    procedure Set_onload(p: OleVariant); safecall;
+    function Get_onload: OleVariant; safecall;
+    procedure Set_onerror(p: OleVariant); safecall;
+    function Get_onerror: OleVariant; safecall;
+    procedure Set_onabort(p: OleVariant); safecall;
+    function Get_onabort: OleVariant; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_width(p: Integer); safecall;
+    function Get_width: Integer; safecall;
+    procedure Set_height(p: Integer); safecall;
+    function Get_height: Integer; safecall;
+    procedure Set_Start(const p: WideString); safecall;
+    function Get_Start: WideString; safecall;
+    property type_: WideString read Get_type_;
+    property disabled: WordBool read Get_disabled write Set_disabled;
+    property border: OleVariant read Get_border write Set_border;
+    property vspace: Integer read Get_vspace write Set_vspace;
+    property hspace: Integer read Get_hspace write Set_hspace;
+    property alt: WideString read Get_alt write Set_alt;
+    property src: WideString read Get_src write Set_src;
+    property lowsrc: WideString read Get_lowsrc write Set_lowsrc;
+    property vrml: WideString read Get_vrml write Set_vrml;
+    property dynsrc: WideString read Get_dynsrc write Set_dynsrc;
+    property readyState: WideString read Get_readyState;
+    property complete: WordBool read Get_complete;
+    property loop: OleVariant read Get_loop write Set_loop;
+    property align: WideString read Get_align write Set_align;
+    property onload: OleVariant read Get_onload write Set_onload;
+    property onerror: OleVariant read Get_onerror write Set_onerror;
+    property onabort: OleVariant read Get_onabort write Set_onabort;
+    property name: WideString read Get_name write Set_name;
+    property width: Integer read Get_width write Set_width;
+    property height: Integer read Get_height write Set_height;
+    property Start: WideString read Get_Start write Set_Start;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLInputImageDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2C2-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLInputImageDisp = dispinterface
+    ['{3050F2C2-98B5-11CF-BB82-00AA00BDCE0B}']
+    property type_: WideString readonly dispid 2000;
+    property disabled: WordBool dispid - 2147418036;
+    property border: OleVariant dispid 2012;
+    property vspace: Integer dispid 2013;
+    property hspace: Integer dispid 2014;
+    property alt: WideString dispid 2010;
+    property src: WideString dispid 2011;
+    property lowsrc: WideString dispid 2015;
+    property vrml: WideString dispid 2016;
+    property dynsrc: WideString dispid 2017;
+    property readyState: WideString readonly dispid - 2147412996;
+    property complete: WordBool readonly dispid 2018;
+    property loop: OleVariant dispid 2019;
+    property align: WideString dispid - 2147418039;
+    property onload: OleVariant dispid - 2147412080;
+    property onerror: OleVariant dispid - 2147412083;
+    property onabort: OleVariant dispid - 2147412084;
+    property name: WideString dispid - 2147418112;
+    property width: Integer dispid - 2147418107;
+    property height: Integer dispid - 2147418106;
+    property Start: WideString dispid 2020;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLInputElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F57D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLInputElement = dispinterface
+    ['{3050F57D-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property type_: WideString dispid 2000;
+    property value: WideString dispid - 2147413011;
+    property name: WideString dispid - 2147418112;
+    property status: WordBool dispid 2001;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    property size: Integer dispid 2002;
+    property maxLength: Integer dispid 2003;
+    procedure select; dispid 2004;
+    property onchange: OleVariant dispid - 2147412082;
+    property onselect: OleVariant dispid - 2147412102;
+    property defaultValue: WideString dispid - 2147413029;
+    property readOnly: WordBool dispid 2005;
+    function createTextRange: IHTMLTxtRange; dispid 2006;
+    property indeterminate: WordBool dispid 2007;
+    property defaultChecked: WordBool dispid 2008;
+    property checked: WordBool dispid 2009;
+    property border: OleVariant dispid 2012;
+    property vspace: Integer dispid 2013;
+    property hspace: Integer dispid 2014;
+    property alt: WideString dispid 2010;
+    property src: WideString dispid 2011;
+    property lowsrc: WideString dispid 2015;
+    property vrml: WideString dispid 2016;
+    property dynsrc: WideString dispid 2017;
+    property complete: WordBool readonly dispid 2018;
+    property loop: OleVariant dispid 2019;
+    property align: WideString dispid - 2147418039;
+    property onload: OleVariant dispid - 2147412080;
+    property onerror: OleVariant dispid - 2147412083;
+    property onabort: OleVariant dispid - 2147412084;
+    property width: Integer dispid - 2147418107;
+    property height: Integer dispid - 2147418106;
+    property Start: WideString dispid 2020;
+    property accept: WideString dispid 2022;
+    property useMap: WideString dispid 2023;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTextAreaElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2AA-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTextAreaElement = interface(IDispatch)
+    ['{3050F2AA-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_type_: WideString; safecall;
+    procedure Set_value(const p: WideString); safecall;
+    function Get_value: WideString; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_status(p: OleVariant); safecall;
+    function Get_status: OleVariant; safecall;
+    procedure Set_disabled(p: WordBool); safecall;
+    function Get_disabled: WordBool; safecall;
+    function Get_form: IHTMLFormElement; safecall;
+    procedure Set_defaultValue(const p: WideString); safecall;
+    function Get_defaultValue: WideString; safecall;
+    procedure select; safecall;
+    procedure Set_onchange(p: OleVariant); safecall;
+    function Get_onchange: OleVariant; safecall;
+    procedure Set_onselect(p: OleVariant); safecall;
+    function Get_onselect: OleVariant; safecall;
+    procedure Set_readOnly(p: WordBool); safecall;
+    function Get_readOnly: WordBool; safecall;
+    procedure Set_rows(p: Integer); safecall;
+    function Get_rows: Integer; safecall;
+    procedure Set_cols(p: Integer); safecall;
+    function Get_cols: Integer; safecall;
+    procedure Set_wrap(const p: WideString); safecall;
+    function Get_wrap: WideString; safecall;
+    function createTextRange: IHTMLTxtRange; safecall;
+    property type_: WideString read Get_type_;
+    property value: WideString read Get_value write Set_value;
+    property name: WideString read Get_name write Set_name;
+    property status: OleVariant read Get_status write Set_status;
+    property disabled: WordBool read Get_disabled write Set_disabled;
+    property form: IHTMLFormElement read Get_form;
+    property defaultValue: WideString read Get_defaultValue write Set_defaultValue;
+    property onchange: OleVariant read Get_onchange write Set_onchange;
+    property onselect: OleVariant read Get_onselect write Set_onselect;
+    property readOnly: WordBool read Get_readOnly write Set_readOnly;
+    property rows: Integer read Get_rows write Set_rows;
+    property cols: Integer read Get_cols write Set_cols;
+    property wrap: WideString read Get_wrap write Set_wrap;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTextAreaElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2AA-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTextAreaElementDisp = dispinterface
+    ['{3050F2AA-98B5-11CF-BB82-00AA00BDCE0B}']
+    property type_: WideString readonly dispid 2000;
+    property value: WideString dispid - 2147413011;
+    property name: WideString dispid - 2147418112;
+    property status: OleVariant dispid 2001;
+    property disabled: WordBool dispid - 2147418036;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    property defaultValue: WideString dispid - 2147413029;
+    procedure select; dispid 7005;
+    property onchange: OleVariant dispid - 2147412082;
+    property onselect: OleVariant dispid - 2147412102;
+    property readOnly: WordBool dispid 7004;
+    property rows: Integer dispid 7001;
+    property cols: Integer dispid 7002;
+    property wrap: WideString dispid 7003;
+    function createTextRange: IHTMLTxtRange; dispid 7006;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLTextAreaElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F521-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLTextAreaElement = dispinterface
+    ['{3050F521-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property type_: WideString readonly dispid 2000;
+    property value: WideString dispid - 2147413011;
+    property name: WideString dispid - 2147418112;
+    property status: OleVariant dispid 2001;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    property defaultValue: WideString dispid - 2147413029;
+    procedure select; dispid 7005;
+    property onchange: OleVariant dispid - 2147412082;
+    property onselect: OleVariant dispid - 2147412102;
+    property readOnly: WordBool dispid 7004;
+    property rows: Integer dispid 7001;
+    property cols: Integer dispid 7002;
+    property wrap: WideString dispid 7003;
+    function createTextRange: IHTMLTxtRange; dispid 7006;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLRichtextElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F54D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLRichtextElement = dispinterface
+    ['{3050F54D-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property type_: WideString readonly dispid 2000;
+    property value: WideString dispid - 2147413011;
+    property name: WideString dispid - 2147418112;
+    property status: OleVariant dispid 2001;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    property defaultValue: WideString dispid - 2147413029;
+    procedure select; dispid 7005;
+    property onchange: OleVariant dispid - 2147412082;
+    property onselect: OleVariant dispid - 2147412102;
+    property readOnly: WordBool dispid 7004;
+    property rows: Integer dispid 7001;
+    property cols: Integer dispid 7002;
+    property wrap: WideString dispid 7003;
+    function createTextRange: IHTMLTxtRange; dispid 7006;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLButtonElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2BB-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLButtonElement = interface(IDispatch)
+    ['{3050F2BB-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_type_: WideString; safecall;
+    procedure Set_value(const p: WideString); safecall;
+    function Get_value: WideString; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_status(p: OleVariant); safecall;
+    function Get_status: OleVariant; safecall;
+    procedure Set_disabled(p: WordBool); safecall;
+    function Get_disabled: WordBool; safecall;
+    function Get_form: IHTMLFormElement; safecall;
+    function createTextRange: IHTMLTxtRange; safecall;
+    property type_: WideString read Get_type_;
+    property value: WideString read Get_value write Set_value;
+    property name: WideString read Get_name write Set_name;
+    property status: OleVariant read Get_status write Set_status;
+    property disabled: WordBool read Get_disabled write Set_disabled;
+    property form: IHTMLFormElement read Get_form;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLButtonElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2BB-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLButtonElementDisp = dispinterface
+    ['{3050F2BB-98B5-11CF-BB82-00AA00BDCE0B}']
+    property type_: WideString readonly dispid 2000;
+    property value: WideString dispid - 2147413011;
+    property name: WideString dispid - 2147418112;
+    property status: OleVariant dispid 8001;
+    property disabled: WordBool dispid - 2147418036;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    function createTextRange: IHTMLTxtRange; dispid 8002;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLButtonElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F51F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLButtonElement = dispinterface
+    ['{3050F51F-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property type_: WideString readonly dispid 2000;
+    property value: WideString dispid - 2147413011;
+    property name: WideString dispid - 2147418112;
+    property status: OleVariant dispid 8001;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    function createTextRange: IHTMLTxtRange; dispid 8002;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLMarqueeElementEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F61F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLMarqueeElementEvents2 = dispinterface
+    ['{3050F61F-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+    procedure onchange(const pEvtObj: IHTMLEventObj); dispid 1001;
+    procedure onselect(const pEvtObj: IHTMLEventObj); dispid 1006;
+    procedure onbounce(const pEvtObj: IHTMLEventObj); dispid 1009;
+    procedure onfinish(const pEvtObj: IHTMLEventObj); dispid 1010;
+    procedure onstart(const pEvtObj: IHTMLEventObj); dispid 1011;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLMarqueeElementEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F2B8-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLMarqueeElementEvents = dispinterface
+    ['{3050F2B8-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+    procedure onchange; dispid 1001;
+    procedure onselect; dispid 1006;
+    procedure onbounce; dispid 1009;
+    procedure onfinish; dispid 1010;
+    procedure onstart; dispid 1011;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLMarqueeElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2B5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLMarqueeElement = interface(IDispatch)
+    ['{3050F2B5-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_bgColor(p: OleVariant); safecall;
+    function Get_bgColor: OleVariant; safecall;
+    procedure Set_scrollDelay(p: Integer); safecall;
+    function Get_scrollDelay: Integer; safecall;
+    procedure Set_direction(const p: WideString); safecall;
+    function Get_direction: WideString; safecall;
+    procedure Set_behavior(const p: WideString); safecall;
+    function Get_behavior: WideString; safecall;
+    procedure Set_scrollAmount(p: Integer); safecall;
+    function Get_scrollAmount: Integer; safecall;
+    procedure Set_loop(p: Integer); safecall;
+    function Get_loop: Integer; safecall;
+    procedure Set_vspace(p: Integer); safecall;
+    function Get_vspace: Integer; safecall;
+    procedure Set_hspace(p: Integer); safecall;
+    function Get_hspace: Integer; safecall;
+    procedure Set_onfinish(p: OleVariant); safecall;
+    function Get_onfinish: OleVariant; safecall;
+    procedure Set_onstart(p: OleVariant); safecall;
+    function Get_onstart: OleVariant; safecall;
+    procedure Set_onbounce(p: OleVariant); safecall;
+    function Get_onbounce: OleVariant; safecall;
+    procedure Set_width(p: OleVariant); safecall;
+    function Get_width: OleVariant; safecall;
+    procedure Set_height(p: OleVariant); safecall;
+    function Get_height: OleVariant; safecall;
+    procedure Set_trueSpeed(p: WordBool); safecall;
+    function Get_trueSpeed: WordBool; safecall;
+    procedure Start; safecall;
+    procedure stop; safecall;
+    property bgColor: OleVariant read Get_bgColor write Set_bgColor;
+    property scrollDelay: Integer read Get_scrollDelay write Set_scrollDelay;
+    property direction: WideString read Get_direction write Set_direction;
+    property behavior: WideString read Get_behavior write Set_behavior;
+    property scrollAmount: Integer read Get_scrollAmount write Set_scrollAmount;
+    property loop: Integer read Get_loop write Set_loop;
+    property vspace: Integer read Get_vspace write Set_vspace;
+    property hspace: Integer read Get_hspace write Set_hspace;
+    property onfinish: OleVariant read Get_onfinish write Set_onfinish;
+    property onstart: OleVariant read Get_onstart write Set_onstart;
+    property onbounce: OleVariant read Get_onbounce write Set_onbounce;
+    property width: OleVariant read Get_width write Set_width;
+    property height: OleVariant read Get_height write Set_height;
+    property trueSpeed: WordBool read Get_trueSpeed write Set_trueSpeed;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLMarqueeElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2B5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLMarqueeElementDisp = dispinterface
+    ['{3050F2B5-98B5-11CF-BB82-00AA00BDCE0B}']
+    property bgColor: OleVariant dispid - 501;
+    property scrollDelay: Integer dispid 6000;
+    property direction: WideString dispid 6001;
+    property behavior: WideString dispid 6002;
+    property scrollAmount: Integer dispid 6003;
+    property loop: Integer dispid 6004;
+    property vspace: Integer dispid 6005;
+    property hspace: Integer dispid 6006;
+    property onfinish: OleVariant dispid - 2147412086;
+    property onstart: OleVariant dispid - 2147412085;
+    property onbounce: OleVariant dispid - 2147412092;
+    property width: OleVariant dispid - 2147418107;
+    property height: OleVariant dispid - 2147418106;
+    property trueSpeed: WordBool dispid 6007;
+    procedure Start; dispid 6010;
+    procedure stop; dispid 6011;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLMarqueeElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F527-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLMarqueeElement = dispinterface
+    ['{3050F527-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property bgColor: OleVariant dispid - 501;
+    property scrollDelay: Integer dispid 6000;
+    property direction: WideString dispid 6001;
+    property behavior: WideString dispid 6002;
+    property scrollAmount: Integer dispid 6003;
+    property loop: Integer dispid 6004;
+    property vspace: Integer dispid 6005;
+    property hspace: Integer dispid 6006;
+    property onfinish: OleVariant dispid - 2147412086;
+    property onstart: OleVariant dispid - 2147412085;
+    property onbounce: OleVariant dispid - 2147412092;
+    property width: OleVariant dispid - 2147418107;
+    property height: OleVariant dispid - 2147418106;
+    property trueSpeed: WordBool dispid 6007;
+    procedure Start; dispid 6010;
+    procedure stop; dispid 6011;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLHtmlElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F81C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLHtmlElement = interface(IDispatch)
+    ['{3050F81C-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_version(const p: WideString); safecall;
+    function Get_version: WideString; safecall;
+    property version: WideString read Get_version write Set_version;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLHtmlElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F81C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLHtmlElementDisp = dispinterface
+    ['{3050F81C-98B5-11CF-BB82-00AA00BDCE0B}']
+    property version: WideString dispid 1001;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLHeadElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F81D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLHeadElement = interface(IDispatch)
+    ['{3050F81D-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_profile(const p: WideString); safecall;
+    function Get_profile: WideString; safecall;
+    property profile: WideString read Get_profile write Set_profile;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLHeadElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F81D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLHeadElementDisp = dispinterface
+    ['{3050F81D-98B5-11CF-BB82-00AA00BDCE0B}']
+    property profile: WideString dispid 1001;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTitleElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F322-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTitleElement = interface(IDispatch)
+    ['{3050F322-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_text(const p: WideString); safecall;
+    function Get_text: WideString; safecall;
+    property text: WideString read Get_text write Set_text;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTitleElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F322-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTitleElementDisp = dispinterface
+    ['{3050F322-98B5-11CF-BB82-00AA00BDCE0B}']
+    property text: WideString dispid - 2147413011;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLMetaElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F203-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLMetaElement = interface(IDispatch)
+    ['{3050F203-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_httpEquiv(const p: WideString); safecall;
+    function Get_httpEquiv: WideString; safecall;
+    procedure Set_content(const p: WideString); safecall;
+    function Get_content: WideString; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_url(const p: WideString); safecall;
+    function Get_url: WideString; safecall;
+    procedure Set_charset(const p: WideString); safecall;
+    function Get_charset: WideString; safecall;
+    property httpEquiv: WideString read Get_httpEquiv write Set_httpEquiv;
+    property content: WideString read Get_content write Set_content;
+    property name: WideString read Get_name write Set_name;
+    property url: WideString read Get_url write Set_url;
+    property charset: WideString read Get_charset write Set_charset;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLMetaElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F203-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLMetaElementDisp = dispinterface
+    ['{3050F203-98B5-11CF-BB82-00AA00BDCE0B}']
+    property httpEquiv: WideString dispid 1001;
+    property content: WideString dispid 1002;
+    property name: WideString dispid - 2147418112;
+    property url: WideString dispid 1003;
+    property charset: WideString dispid 1013;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLMetaElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F81F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLMetaElement2 = interface(IDispatch)
+    ['{3050F81F-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_scheme(const p: WideString); safecall;
+    function Get_scheme: WideString; safecall;
+    property scheme: WideString read Get_scheme write Set_scheme;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLMetaElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F81F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLMetaElement2Disp = dispinterface
+    ['{3050F81F-98B5-11CF-BB82-00AA00BDCE0B}']
+    property scheme: WideString dispid 1020;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLBaseElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F204-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBaseElement = interface(IDispatch)
+    ['{3050F204-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_href(const p: WideString); safecall;
+    function Get_href: WideString; safecall;
+    procedure Set_target(const p: WideString); safecall;
+    function Get_target: WideString; safecall;
+    property href: WideString read Get_href write Set_href;
+    property target: WideString read Get_target write Set_target;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLBaseElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F204-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBaseElementDisp = dispinterface
+    ['{3050F204-98B5-11CF-BB82-00AA00BDCE0B}']
+    property href: WideString dispid 1003;
+    property target: WideString dispid 1004;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLIsIndexElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F206-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLIsIndexElement = interface(IDispatch)
+    ['{3050F206-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_prompt(const p: WideString); safecall;
+    function Get_prompt: WideString; safecall;
+    procedure Set_action(const p: WideString); safecall;
+    function Get_action: WideString; safecall;
+    property prompt: WideString read Get_prompt write Set_prompt;
+    property action: WideString read Get_action write Set_action;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLIsIndexElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F206-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLIsIndexElementDisp = dispinterface
+    ['{3050F206-98B5-11CF-BB82-00AA00BDCE0B}']
+    property prompt: WideString dispid 1010;
+    property action: WideString dispid 1011;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLIsIndexElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F82F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLIsIndexElement2 = interface(IDispatch)
+    ['{3050F82F-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_form: IHTMLFormElement; safecall;
+    property form: IHTMLFormElement read Get_form;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLIsIndexElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F82F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLIsIndexElement2Disp = dispinterface
+    ['{3050F82F-98B5-11CF-BB82-00AA00BDCE0B}']
+    property form: IHTMLFormElement readonly dispid 1012;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLNextIdElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F207-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLNextIdElement = interface(IDispatch)
+    ['{3050F207-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_n(const p: WideString); safecall;
+    function Get_n: WideString; safecall;
+    property n: WideString read Get_n write Set_n;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLNextIdElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F207-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLNextIdElementDisp = dispinterface
+    ['{3050F207-98B5-11CF-BB82-00AA00BDCE0B}']
+    property n: WideString dispid 1012;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLHtmlElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F560-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLHtmlElement = dispinterface
+    ['{3050F560-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property version: WideString dispid 1001;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLHeadElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F561-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLHeadElement = dispinterface
+    ['{3050F561-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property profile: WideString dispid 1001;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLTitleElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F516-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLTitleElement = dispinterface
+    ['{3050F516-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property text: WideString dispid - 2147413011;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLMetaElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F517-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLMetaElement = dispinterface
+    ['{3050F517-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property httpEquiv: WideString dispid 1001;
+    property content: WideString dispid 1002;
+    property name: WideString dispid - 2147418112;
+    property url: WideString dispid 1003;
+    property charset: WideString dispid 1013;
+    property scheme: WideString dispid 1020;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLBaseElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F518-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLBaseElement = dispinterface
+    ['{3050F518-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property href: WideString dispid 1003;
+    property target: WideString dispid 1004;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLIsIndexElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F519-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLIsIndexElement = dispinterface
+    ['{3050F519-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property prompt: WideString dispid 1010;
+    property action: WideString dispid 1011;
+    property form: IHTMLFormElement readonly dispid 1012;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLNextIdElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F51A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLNextIdElement = dispinterface
+    ['{3050F51A-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property n: WideString dispid 1012;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLBaseFontElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F202-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBaseFontElement = interface(IDispatch)
+    ['{3050F202-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_color(p: OleVariant); safecall;
+    function Get_color: OleVariant; safecall;
+    procedure Set_face(const p: WideString); safecall;
+    function Get_face: WideString; safecall;
+    procedure Set_size(p: Integer); safecall;
+    function Get_size: Integer; safecall;
+    property color: OleVariant read Get_color write Set_color;
+    property face: WideString read Get_face write Set_face;
+    property size: Integer read Get_size write Set_size;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLBaseFontElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F202-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBaseFontElementDisp = dispinterface
+    ['{3050F202-98B5-11CF-BB82-00AA00BDCE0B}']
+    property color: OleVariant dispid - 2147413110;
+    property face: WideString dispid - 2147413094;
+    property size: Integer dispid - 2147413086;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLBaseFontElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F504-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLBaseFontElement = dispinterface
+    ['{3050F504-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property color: OleVariant dispid - 2147413110;
+    property face: WideString dispid - 2147413094;
+    property size: Integer dispid - 2147413086;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLUnknownElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F209-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLUnknownElement = interface(IDispatch)
+    ['{3050F209-98B5-11CF-BB82-00AA00BDCE0B}']
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLUnknownElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F209-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLUnknownElementDisp = dispinterface
+    ['{3050F209-98B5-11CF-BB82-00AA00BDCE0B}']
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLUnknownElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F539-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLUnknownElement = dispinterface
+    ['{3050F539-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+  end;
+
+// *********************************************************************//
+// Interface: IOmHistory
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {FECEAAA2-8405-11CF-8BA1-00AA00476DA6}
+// *********************************************************************//
+  IOmHistory = interface(IDispatch)
+    ['{FECEAAA2-8405-11CF-8BA1-00AA00476DA6}']
+    function Get_length: Smallint; safecall;
+    procedure back(var pvargdistance: OleVariant); safecall;
+    procedure forward(var pvargdistance: OleVariant); safecall;
+    procedure go(var pvargdistance: OleVariant); safecall;
+    property length: Smallint read Get_length;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IOmHistoryDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {FECEAAA2-8405-11CF-8BA1-00AA00476DA6}
+// *********************************************************************//
+  IOmHistoryDisp = dispinterface
+    ['{FECEAAA2-8405-11CF-8BA1-00AA00476DA6}']
+    property length: Smallint readonly dispid 1;
+    procedure back(var pvargdistance: OleVariant); dispid 2;
+    procedure forward(var pvargdistance: OleVariant); dispid 3;
+    procedure go(var pvargdistance: OleVariant); dispid 4;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLMimeTypesCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3FC-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLMimeTypesCollection = interface(IDispatch)
+    ['{3050F3FC-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_length: Integer; safecall;
+    property length: Integer read Get_length;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLMimeTypesCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3FC-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLMimeTypesCollectionDisp = dispinterface
+    ['{3050F3FC-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLPluginsCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3FD-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLPluginsCollection = interface(IDispatch)
+    ['{3050F3FD-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_length: Integer; safecall;
+    procedure refresh(reload: WordBool); safecall;
+    property length: Integer read Get_length;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLPluginsCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3FD-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLPluginsCollectionDisp = dispinterface
+    ['{3050F3FD-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1;
+    procedure refresh(reload: WordBool); dispid 2;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLOpsProfile
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F401-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLOpsProfile = interface(IDispatch)
+    ['{3050F401-98B5-11CF-BB82-00AA00BDCE0B}']
+    function addRequest(const name: WideString; reserved: OleVariant): WordBool; safecall;
+    procedure clearRequest; safecall;
+    procedure doRequest(usage: OleVariant; fname: OleVariant; domain: OleVariant; path: OleVariant;
+      expire: OleVariant; reserved: OleVariant); safecall;
+    function getAttribute(const name: WideString): WideString; safecall;
+    function setAttribute(const name: WideString; const value: WideString; prefs: OleVariant): WordBool; safecall;
+    function commitChanges: WordBool; safecall;
+    function addReadRequest(const name: WideString; reserved: OleVariant): WordBool; safecall;
+    procedure doReadRequest(usage: OleVariant; fname: OleVariant; domain: OleVariant;
+      path: OleVariant; expire: OleVariant; reserved: OleVariant); safecall;
+    function doWriteRequest: WordBool; safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLOpsProfileDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F401-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLOpsProfileDisp = dispinterface
+    ['{3050F401-98B5-11CF-BB82-00AA00BDCE0B}']
+    function addRequest(const name: WideString; reserved: OleVariant): WordBool; dispid 1;
+    procedure clearRequest; dispid 2;
+    procedure doRequest(usage: OleVariant; fname: OleVariant; domain: OleVariant; path: OleVariant;
+      expire: OleVariant; reserved: OleVariant); dispid 3;
+    function getAttribute(const name: WideString): WideString; dispid 4;
+    function setAttribute(const name: WideString; const value: WideString; prefs: OleVariant): WordBool; dispid 5;
+    function commitChanges: WordBool; dispid 6;
+    function addReadRequest(const name: WideString; reserved: OleVariant): WordBool; dispid 7;
+    procedure doReadRequest(usage: OleVariant; fname: OleVariant; domain: OleVariant;
+      path: OleVariant; expire: OleVariant; reserved: OleVariant); dispid 8;
+    function doWriteRequest: WordBool; dispid 9;
+  end;
+
+// *********************************************************************//
+// Interface: IOmNavigator
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {FECEAAA5-8405-11CF-8BA1-00AA00476DA6}
+// *********************************************************************//
+  IOmNavigator = interface(IDispatch)
+    ['{FECEAAA5-8405-11CF-8BA1-00AA00476DA6}']
+    function Get_appCodeName: WideString; safecall;
+    function Get_appName: WideString; safecall;
+    function Get_appVersion: WideString; safecall;
+    function Get_userAgent: WideString; safecall;
+    function javaEnabled: WordBool; safecall;
+    function taintEnabled: WordBool; safecall;
+    function Get_mimeTypes: IHTMLMimeTypesCollection; safecall;
+    function Get_plugins: IHTMLPluginsCollection; safecall;
+    function Get_cookieEnabled: WordBool; safecall;
+    function Get_opsProfile: IHTMLOpsProfile; safecall;
+    function toString: WideString; safecall;
+    function Get_cpuClass: WideString; safecall;
+    function Get_systemLanguage: WideString; safecall;
+    function Get_browserLanguage: WideString; safecall;
+    function Get_userLanguage: WideString; safecall;
+    function Get_platform: WideString; safecall;
+    function Get_appMinorVersion: WideString; safecall;
+    function Get_connectionSpeed: Integer; safecall;
+    function Get_onLine: WordBool; safecall;
+    function Get_userProfile: IHTMLOpsProfile; safecall;
+    property appCodeName: WideString read Get_appCodeName;
+    property appName: WideString read Get_appName;
+    property appVersion: WideString read Get_appVersion;
+    property userAgent: WideString read Get_userAgent;
+    property mimeTypes: IHTMLMimeTypesCollection read Get_mimeTypes;
+    property plugins: IHTMLPluginsCollection read Get_plugins;
+    property cookieEnabled: WordBool read Get_cookieEnabled;
+    property opsProfile: IHTMLOpsProfile read Get_opsProfile;
+    property cpuClass: WideString read Get_cpuClass;
+    property systemLanguage: WideString read Get_systemLanguage;
+    property browserLanguage: WideString read Get_browserLanguage;
+    property userLanguage: WideString read Get_userLanguage;
+    property platform: WideString read Get_platform;
+    property appMinorVersion: WideString read Get_appMinorVersion;
+    property connectionSpeed: Integer read Get_connectionSpeed;
+    property onLine: WordBool read Get_onLine;
+    property userProfile: IHTMLOpsProfile read Get_userProfile;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IOmNavigatorDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {FECEAAA5-8405-11CF-8BA1-00AA00476DA6}
+// *********************************************************************//
+  IOmNavigatorDisp = dispinterface
+    ['{FECEAAA5-8405-11CF-8BA1-00AA00476DA6}']
+    property appCodeName: WideString readonly dispid 1;
+    property appName: WideString readonly dispid 2;
+    property appVersion: WideString readonly dispid 3;
+    property userAgent: WideString readonly dispid 4;
+    function javaEnabled: WordBool; dispid 5;
+    function taintEnabled: WordBool; dispid 6;
+    property mimeTypes: IHTMLMimeTypesCollection readonly dispid 7;
+    property plugins: IHTMLPluginsCollection readonly dispid 8;
+    property cookieEnabled: WordBool readonly dispid 9;
+    property opsProfile: IHTMLOpsProfile readonly dispid 10;
+    function toString: WideString; dispid 11;
+    property cpuClass: WideString readonly dispid 12;
+    property systemLanguage: WideString readonly dispid 13;
+    property browserLanguage: WideString readonly dispid 14;
+    property userLanguage: WideString readonly dispid 15;
+    property platform: WideString readonly dispid 16;
+    property appMinorVersion: WideString readonly dispid 17;
+    property connectionSpeed: Integer readonly dispid 18;
+    property onLine: WordBool readonly dispid 19;
+    property userProfile: IHTMLOpsProfile readonly dispid 20;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLLocation
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {163BB1E0-6E00-11CF-837A-48DC04C10000}
+// *********************************************************************//
+  IHTMLLocation = interface(IDispatch)
+    ['{163BB1E0-6E00-11CF-837A-48DC04C10000}']
+    procedure Set_href(const p: WideString); safecall;
+    function Get_href: WideString; safecall;
+    procedure Set_protocol(const p: WideString); safecall;
+    function Get_protocol: WideString; safecall;
+    procedure Set_host(const p: WideString); safecall;
+    function Get_host: WideString; safecall;
+    procedure Set_hostname(const p: WideString); safecall;
+    function Get_hostname: WideString; safecall;
+    procedure Set_port(const p: WideString); safecall;
+    function Get_port: WideString; safecall;
+    procedure Set_pathname(const p: WideString); safecall;
+    function Get_pathname: WideString; safecall;
+    procedure Set_search(const p: WideString); safecall;
+    function Get_search: WideString; safecall;
+    procedure Set_hash(const p: WideString); safecall;
+    function Get_hash: WideString; safecall;
+    procedure reload(flag: WordBool); safecall;
+    procedure replace(const bstr: WideString); safecall;
+    procedure assign(const bstr: WideString); safecall;
+    function toString: WideString; safecall;
+    property href: WideString read Get_href write Set_href;
+    property protocol: WideString read Get_protocol write Set_protocol;
+    property host: WideString read Get_host write Set_host;
+    property hostname: WideString read Get_hostname write Set_hostname;
+    property port: WideString read Get_port write Set_port;
+    property pathname: WideString read Get_pathname write Set_pathname;
+    property search: WideString read Get_search write Set_search;
+    property hash: WideString read Get_hash write Set_hash;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLLocationDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {163BB1E0-6E00-11CF-837A-48DC04C10000}
+// *********************************************************************//
+  IHTMLLocationDisp = dispinterface
+    ['{163BB1E0-6E00-11CF-837A-48DC04C10000}']
+    property href: WideString dispid 0;
+    property protocol: WideString dispid 1;
+    property host: WideString dispid 2;
+    property hostname: WideString dispid 3;
+    property port: WideString dispid 4;
+    property pathname: WideString dispid 5;
+    property search: WideString dispid 6;
+    property hash: WideString dispid 7;
+    procedure reload(flag: WordBool); dispid 8;
+    procedure replace(const bstr: WideString); dispid 9;
+    procedure assign(const bstr: WideString); dispid 10;
+    function toString: WideString; dispid 11;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLBookmarkCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4CE-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBookmarkCollection = interface(IDispatch)
+    ['{3050F4CE-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_length: Integer; safecall;
+    function Get__newEnum: IUnknown; safecall;
+    function item(index: Integer): OleVariant; safecall;
+    property length: Integer read Get_length;
+    property _newEnum: IUnknown read Get__newEnum;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLBookmarkCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4CE-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBookmarkCollectionDisp = dispinterface
+    ['{3050F4CE-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1501;
+    property _newEnum: IUnknown readonly dispid - 4;
+    function item(index: Integer): OleVariant; dispid 0;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDataTransfer
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4B3-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDataTransfer = interface(IDispatch)
+    ['{3050F4B3-98B5-11CF-BB82-00AA00BDCE0B}']
+    function setData(const format: WideString; var data: OleVariant): WordBool; safecall;
+    function getData(const format: WideString): OleVariant; safecall;
+    function clearData(const format: WideString): WordBool; safecall;
+    procedure Set_dropEffect(const p: WideString); safecall;
+    function Get_dropEffect: WideString; safecall;
+    procedure Set_effectAllowed(const p: WideString); safecall;
+    function Get_effectAllowed: WideString; safecall;
+    property dropEffect: WideString read Get_dropEffect write Set_dropEffect;
+    property effectAllowed: WideString read Get_effectAllowed write Set_effectAllowed;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDataTransferDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4B3-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDataTransferDisp = dispinterface
+    ['{3050F4B3-98B5-11CF-BB82-00AA00BDCE0B}']
+    function setData(const format: WideString; var data: OleVariant): WordBool; dispid 1001;
+    function getData(const format: WideString): OleVariant; dispid 1002;
+    function clearData(const format: WideString): WordBool; dispid 1003;
+    property dropEffect: WideString dispid 1004;
+    property effectAllowed: WideString dispid 1005;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLEventObj2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F48B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLEventObj2 = interface(IDispatch)
+    ['{3050F48B-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); safecall;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; safecall;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; safecall;
+    procedure Set_propertyName(const p: WideString); safecall;
+    function Get_propertyName: WideString; safecall;
+    procedure _Set_bookmarks(const p: IHTMLBookmarkCollection); safecall;
+    function Get_bookmarks: IHTMLBookmarkCollection; safecall;
+    procedure _Set_recordset(const p: IDispatch); safecall;
+    function Get_recordset: IDispatch; safecall;
+    procedure Set_dataFld(const p: WideString); safecall;
+    function Get_dataFld: WideString; safecall;
+    procedure _Set_boundElements(const p: IHTMLElementCollection); safecall;
+    function Get_boundElements: IHTMLElementCollection; safecall;
+    procedure Set_repeat_(p: WordBool); safecall;
+    function Get_repeat_: WordBool; safecall;
+    procedure Set_srcUrn(const p: WideString); safecall;
+    function Get_srcUrn: WideString; safecall;
+    procedure _Set_srcElement(const p: IHTMLElement); safecall;
+    function Get_srcElement: IHTMLElement; safecall;
+    procedure Set_altKey(p: WordBool); safecall;
+    function Get_altKey: WordBool; safecall;
+    procedure Set_ctrlKey(p: WordBool); safecall;
+    function Get_ctrlKey: WordBool; safecall;
+    procedure Set_shiftKey(p: WordBool); safecall;
+    function Get_shiftKey: WordBool; safecall;
+    procedure _Set_fromElement(const p: IHTMLElement); safecall;
+    function Get_fromElement: IHTMLElement; safecall;
+    procedure _Set_toElement(const p: IHTMLElement); safecall;
+    function Get_toElement: IHTMLElement; safecall;
+    procedure Set_button(p: Integer); safecall;
+    function Get_button: Integer; safecall;
+    procedure Set_type_(const p: WideString); safecall;
+    function Get_type_: WideString; safecall;
+    procedure Set_qualifier(const p: WideString); safecall;
+    function Get_qualifier: WideString; safecall;
+    procedure Set_reason(p: Integer); safecall;
+    function Get_reason: Integer; safecall;
+    procedure Set_x(p: Integer); safecall;
+    function Get_x: Integer; safecall;
+    procedure Set_y(p: Integer); safecall;
+    function Get_y: Integer; safecall;
+    procedure Set_clientX(p: Integer); safecall;
+    function Get_clientX: Integer; safecall;
+    procedure Set_clientY(p: Integer); safecall;
+    function Get_clientY: Integer; safecall;
+    procedure Set_offsetX(p: Integer); safecall;
+    function Get_offsetX: Integer; safecall;
+    procedure Set_offsetY(p: Integer); safecall;
+    function Get_offsetY: Integer; safecall;
+    procedure Set_screenX(p: Integer); safecall;
+    function Get_screenX: Integer; safecall;
+    procedure Set_screenY(p: Integer); safecall;
+    function Get_screenY: Integer; safecall;
+    procedure _Set_srcFilter(const p: IDispatch); safecall;
+    function Get_srcFilter: IDispatch; safecall;
+    function Get_dataTransfer: IHTMLDataTransfer; safecall;
+    property propertyName: WideString read Get_propertyName write Set_propertyName;
+    property bookmarks: IHTMLBookmarkCollection read Get_bookmarks write _Set_bookmarks;
+    property recordset: IDispatch read Get_recordset write _Set_recordset;
+    property dataFld: WideString read Get_dataFld write Set_dataFld;
+    property boundElements: IHTMLElementCollection read Get_boundElements write _Set_boundElements;
+    property repeat_: WordBool read Get_repeat_ write Set_repeat_;
+    property srcUrn: WideString read Get_srcUrn write Set_srcUrn;
+    property srcElement: IHTMLElement read Get_srcElement write _Set_srcElement;
+    property altKey: WordBool read Get_altKey write Set_altKey;
+    property ctrlKey: WordBool read Get_ctrlKey write Set_ctrlKey;
+    property shiftKey: WordBool read Get_shiftKey write Set_shiftKey;
+    property fromElement: IHTMLElement read Get_fromElement write _Set_fromElement;
+    property toElement: IHTMLElement read Get_toElement write _Set_toElement;
+    property button: Integer read Get_button write Set_button;
+    property type_: WideString read Get_type_ write Set_type_;
+    property qualifier: WideString read Get_qualifier write Set_qualifier;
+    property reason: Integer read Get_reason write Set_reason;
+    property x: Integer read Get_x write Set_x;
+    property y: Integer read Get_y write Set_y;
+    property clientX: Integer read Get_clientX write Set_clientX;
+    property clientY: Integer read Get_clientY write Set_clientY;
+    property offsetX: Integer read Get_offsetX write Set_offsetX;
+    property offsetY: Integer read Get_offsetY write Set_offsetY;
+    property screenX: Integer read Get_screenX write Set_screenX;
+    property screenY: Integer read Get_screenY write Set_screenY;
+    property srcFilter: IDispatch read Get_srcFilter write _Set_srcFilter;
+    property dataTransfer: IHTMLDataTransfer read Get_dataTransfer;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLEventObj2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F48B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLEventObj2Disp = dispinterface
+    ['{3050F48B-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property propertyName: WideString dispid 1027;
+    property bookmarks: IHTMLBookmarkCollection dispid 1031;
+    property recordset: IDispatch dispid 1032;
+    property dataFld: WideString dispid 1033;
+    property boundElements: IHTMLElementCollection dispid 1034;
+    property repeat_: WordBool dispid 1035;
+    property srcUrn: WideString dispid 1036;
+    property srcElement: IHTMLElement dispid 1001;
+    property altKey: WordBool dispid 1002;
+    property ctrlKey: WordBool dispid 1003;
+    property shiftKey: WordBool dispid 1004;
+    property fromElement: IHTMLElement dispid 1009;
+    property toElement: IHTMLElement dispid 1010;
+    property button: Integer dispid 1012;
+    property type_: WideString dispid 1013;
+    property qualifier: WideString dispid 1014;
+    property reason: Integer dispid 1015;
+    property x: Integer dispid 1005;
+    property y: Integer dispid 1006;
+    property clientX: Integer dispid 1020;
+    property clientY: Integer dispid 1021;
+    property offsetX: Integer dispid 1022;
+    property offsetY: Integer dispid 1023;
+    property screenX: Integer dispid 1024;
+    property screenY: Integer dispid 1025;
+    property srcFilter: IDispatch dispid 1026;
+    property dataTransfer: IHTMLDataTransfer readonly dispid 1037;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLEventObj3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F680-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLEventObj3 = interface(IDispatch)
+    ['{3050F680-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_contentOverflow: WordBool; safecall;
+    procedure Set_shiftLeft(p: WordBool); safecall;
+    function Get_shiftLeft: WordBool; safecall;
+    procedure Set_altLeft(p: WordBool); safecall;
+    function Get_altLeft: WordBool; safecall;
+    procedure Set_ctrlLeft(p: WordBool); safecall;
+    function Get_ctrlLeft: WordBool; safecall;
+    function Get_imeCompositionChange: LONG_PTR; safecall;
+    function Get_imeNotifyCommand: LONG_PTR; safecall;
+    function Get_imeNotifyData: LONG_PTR; safecall;
+    function Get_imeRequest: LONG_PTR; safecall;
+    function Get_imeRequestData: LONG_PTR; safecall;
+    function Get_keyboardLayout: LONG_PTR; safecall;
+    function Get_behaviorCookie: Integer; safecall;
+    function Get_behaviorPart: Integer; safecall;
+    function Get_nextPage: WideString; safecall;
+    property contentOverflow: WordBool read Get_contentOverflow;
+    property shiftLeft: WordBool read Get_shiftLeft write Set_shiftLeft;
+    property altLeft: WordBool read Get_altLeft write Set_altLeft;
+    property ctrlLeft: WordBool read Get_ctrlLeft write Set_ctrlLeft;
+    property imeCompositionChange: LONG_PTR read Get_imeCompositionChange;
+    property imeNotifyCommand: LONG_PTR read Get_imeNotifyCommand;
+    property imeNotifyData: LONG_PTR read Get_imeNotifyData;
+    property imeRequest: LONG_PTR read Get_imeRequest;
+    property imeRequestData: LONG_PTR read Get_imeRequestData;
+    property keyboardLayout: LONG_PTR read Get_keyboardLayout;
+    property behaviorCookie: Integer read Get_behaviorCookie;
+    property behaviorPart: Integer read Get_behaviorPart;
+    property nextPage: WideString read Get_nextPage;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLEventObj3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F680-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLEventObj3Disp = dispinterface
+    ['{3050F680-98B5-11CF-BB82-00AA00BDCE0B}']
+    property contentOverflow: WordBool readonly dispid 1038;
+    property shiftLeft: WordBool dispid 1039;
+    property altLeft: WordBool dispid 1040;
+    property ctrlLeft: WordBool dispid 1041;
+    property imeCompositionChange: LONG_PTR readonly dispid 1042;
+    property imeNotifyCommand: LONG_PTR readonly dispid 1043;
+    property imeNotifyData: LONG_PTR readonly dispid 1044;
+    property imeRequest: LONG_PTR readonly dispid 1046;
+    property imeRequestData: LONG_PTR readonly dispid 1047;
+    property keyboardLayout: LONG_PTR readonly dispid 1045;
+    property behaviorCookie: Integer readonly dispid 1048;
+    property behaviorPart: Integer readonly dispid 1049;
+    property nextPage: WideString readonly dispid 1050;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLEventObj4
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F814-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLEventObj4 = interface(IDispatch)
+    ['{3050F814-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_wheelDelta: Integer; safecall;
+    property wheelDelta: Integer read Get_wheelDelta;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLEventObj4Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F814-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLEventObj4Disp = dispinterface
+    ['{3050F814-98B5-11CF-BB82-00AA00BDCE0B}']
+    property wheelDelta: Integer readonly dispid 1051;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispCEventObj
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F558-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispCEventObj = dispinterface
+    ['{3050F558-98B5-11CF-BB82-00AA00BDCE0B}']
+    property returnValue: OleVariant dispid 1007;
+    property cancelBubble: WordBool dispid 1008;
+    property keyCode: Integer dispid 1011;
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property propertyName: WideString dispid 1027;
+    property bookmarks: IHTMLBookmarkCollection dispid 1031;
+    property recordset: IDispatch dispid 1032;
+    property dataFld: WideString dispid 1033;
+    property boundElements: IHTMLElementCollection dispid 1034;
+    property repeat_: WordBool dispid 1035;
+    property srcUrn: WideString dispid 1036;
+    property srcElement: IHTMLElement dispid 1001;
+    property altKey: WordBool dispid 1002;
+    property ctrlKey: WordBool dispid 1003;
+    property shiftKey: WordBool dispid 1004;
+    property fromElement: IHTMLElement dispid 1009;
+    property toElement: IHTMLElement dispid 1010;
+    property button: Integer dispid 1012;
+    property type_: WideString dispid 1013;
+    property qualifier: WideString dispid 1014;
+    property reason: Integer dispid 1015;
+    property x: Integer dispid 1005;
+    property y: Integer dispid 1006;
+    property clientX: Integer dispid 1020;
+    property clientY: Integer dispid 1021;
+    property offsetX: Integer dispid 1022;
+    property offsetY: Integer dispid 1023;
+    property screenX: Integer dispid 1024;
+    property screenY: Integer dispid 1025;
+    property srcFilter: IDispatch dispid 1026;
+    property dataTransfer: IHTMLDataTransfer readonly dispid 1037;
+    property contentOverflow: WordBool readonly dispid 1038;
+    property shiftLeft: WordBool dispid 1039;
+    property altLeft: WordBool dispid 1040;
+    property ctrlLeft: WordBool dispid 1041;
+    property imeCompositionChange: LONG_PTR readonly dispid 1042;
+    property imeNotifyCommand: LONG_PTR readonly dispid 1043;
+    property imeNotifyData: LONG_PTR readonly dispid 1044;
+    property imeRequest: LONG_PTR readonly dispid 1046;
+    property imeRequestData: LONG_PTR readonly dispid 1047;
+    property keyboardLayout: LONG_PTR readonly dispid 1045;
+    property behaviorCookie: Integer readonly dispid 1048;
+    property behaviorPart: Integer readonly dispid 1049;
+    property nextPage: WideString readonly dispid 1050;
+    property wheelDelta: Integer readonly dispid 1051;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLWindowEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F625-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLWindowEvents2 = dispinterface
+    ['{3050F625-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure onload(const pEvtObj: IHTMLEventObj); dispid 1003;
+    procedure onunload(const pEvtObj: IHTMLEventObj); dispid 1008;
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onerror(const description: WideString; const url: WideString; line: Integer); dispid 1002;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onbeforeunload(const pEvtObj: IHTMLEventObj); dispid 1017;
+    procedure onbeforeprint(const pEvtObj: IHTMLEventObj); dispid 1024;
+    procedure onafterprint(const pEvtObj: IHTMLEventObj); dispid 1025;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLWindowEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {96A0A4E0-D062-11CF-94B6-00AA0060275C}
+// *********************************************************************//
+  HTMLWindowEvents = dispinterface
+    ['{96A0A4E0-D062-11CF-94B6-00AA0060275C}']
+    procedure onload; dispid 1003;
+    procedure onunload; dispid 1008;
+    function onhelp: WordBool; dispid - 2147418102;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onerror(const description: WideString; const url: WideString; line: Integer); dispid 1002;
+    procedure onresize; dispid 1016;
+    procedure onscroll; dispid 1014;
+    procedure onbeforeunload; dispid 1017;
+    procedure onbeforeprint; dispid 1024;
+    procedure onafterprint; dispid 1025;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDocument2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {332C4425-26CB-11D0-B483-00C04FD90119}
+// *********************************************************************//
+  IHTMLDocument2 = interface(IHTMLDocument)
+    ['{332C4425-26CB-11D0-B483-00C04FD90119}']
+    function Get_all: IHTMLElementCollection; safecall;
+    function Get_body: IHTMLElement; safecall;
+    function Get_activeElement: IHTMLElement; safecall;
+    function Get_images: IHTMLElementCollection; safecall;
+    function Get_applets: IHTMLElementCollection; safecall;
+    function Get_links: IHTMLElementCollection; safecall;
+    function Get_forms: IHTMLElementCollection; safecall;
+    function Get_anchors: IHTMLElementCollection; safecall;
+    procedure Set_title(const p: WideString); safecall;
+    function Get_title: WideString; safecall;
+    function Get_scripts: IHTMLElementCollection; safecall;
+    procedure Set_designMode(const p: WideString); safecall;
+    function Get_designMode: WideString; safecall;
+    function Get_selection: IHTMLSelectionObject; safecall;
+    function Get_readyState: WideString; safecall;
+    function Get_frames: IHTMLFramesCollection2; safecall;
+    function Get_embeds: IHTMLElementCollection; safecall;
+    function Get_plugins: IHTMLElementCollection; safecall;
+    procedure Set_alinkColor(p: OleVariant); safecall;
+    function Get_alinkColor: OleVariant; safecall;
+    procedure Set_bgColor(p: OleVariant); safecall;
+    function Get_bgColor: OleVariant; safecall;
+    procedure Set_fgColor(p: OleVariant); safecall;
+    function Get_fgColor: OleVariant; safecall;
+    procedure Set_linkColor(p: OleVariant); safecall;
+    function Get_linkColor: OleVariant; safecall;
+    procedure Set_vlinkColor(p: OleVariant); safecall;
+    function Get_vlinkColor: OleVariant; safecall;
+    function Get_referrer: WideString; safecall;
+    function Get_location: IHTMLLocation; safecall;
+    function Get_lastModified: WideString; safecall;
+    procedure Set_url(const p: WideString); safecall;
+    function Get_url: WideString; safecall;
+    procedure Set_domain(const p: WideString); safecall;
+    function Get_domain: WideString; safecall;
+    procedure Set_cookie(const p: WideString); safecall;
+    function Get_cookie: WideString; safecall;
+    procedure Set_expando(p: WordBool); safecall;
+    function Get_expando: WordBool; safecall;
+    procedure Set_charset(const p: WideString); safecall;
+    function Get_charset: WideString; safecall;
+    procedure Set_defaultCharset(const p: WideString); safecall;
+    function Get_defaultCharset: WideString; safecall;
+    function Get_mimeType: WideString; safecall;
+    function Get_fileSize: WideString; safecall;
+    function Get_fileCreatedDate: WideString; safecall;
+    function Get_fileModifiedDate: WideString; safecall;
+    function Get_fileUpdatedDate: WideString; safecall;
+    function Get_security: WideString; safecall;
+    function Get_protocol: WideString; safecall;
+    function Get_nameProp: WideString; safecall;
+    procedure write(psarray: PSafeArray); safecall;
+    procedure writeln(psarray: PSafeArray); safecall;
+    function open(const url: WideString; name: OleVariant; features: OleVariant; replace: OleVariant): IDispatch; safecall;
+    procedure close; safecall;
+    procedure clear; safecall;
+    function queryCommandSupported(const cmdID: WideString): WordBool; safecall;
+    function queryCommandEnabled(const cmdID: WideString): WordBool; safecall;
+    function queryCommandState(const cmdID: WideString): WordBool; safecall;
+    function queryCommandIndeterm(const cmdID: WideString): WordBool; safecall;
+    function queryCommandText(const cmdID: WideString): WideString; safecall;
+    function queryCommandValue(const cmdID: WideString): OleVariant; safecall;
+    function execCommand(const cmdID: WideString; showUI: WordBool; value: OleVariant): WordBool; safecall;
+    function execCommandShowHelp(const cmdID: WideString): WordBool; safecall;
+    function createElement(const eTag: WideString): IHTMLElement; safecall;
+    procedure Set_onhelp(p: OleVariant); safecall;
+    function Get_onhelp: OleVariant; safecall;
+    procedure Set_onclick(p: OleVariant); safecall;
+    function Get_onclick: OleVariant; safecall;
+    procedure Set_ondblclick(p: OleVariant); safecall;
+    function Get_ondblclick: OleVariant; safecall;
+    procedure Set_onkeyup(p: OleVariant); safecall;
+    function Get_onkeyup: OleVariant; safecall;
+    procedure Set_onkeydown(p: OleVariant); safecall;
+    function Get_onkeydown: OleVariant; safecall;
+    procedure Set_onkeypress(p: OleVariant); safecall;
+    function Get_onkeypress: OleVariant; safecall;
+    procedure Set_onmouseup(p: OleVariant); safecall;
+    function Get_onmouseup: OleVariant; safecall;
+    procedure Set_onmousedown(p: OleVariant); safecall;
+    function Get_onmousedown: OleVariant; safecall;
+    procedure Set_onmousemove(p: OleVariant); safecall;
+    function Get_onmousemove: OleVariant; safecall;
+    procedure Set_onmouseout(p: OleVariant); safecall;
+    function Get_onmouseout: OleVariant; safecall;
+    procedure Set_onmouseover(p: OleVariant); safecall;
+    function Get_onmouseover: OleVariant; safecall;
+    procedure Set_onreadystatechange(p: OleVariant); safecall;
+    function Get_onreadystatechange: OleVariant; safecall;
+    procedure Set_onafterupdate(p: OleVariant); safecall;
+    function Get_onafterupdate: OleVariant; safecall;
+    procedure Set_onrowexit(p: OleVariant); safecall;
+    function Get_onrowexit: OleVariant; safecall;
+    procedure Set_onrowenter(p: OleVariant); safecall;
+    function Get_onrowenter: OleVariant; safecall;
+    procedure Set_ondragstart(p: OleVariant); safecall;
+    function Get_ondragstart: OleVariant; safecall;
+    procedure Set_onselectstart(p: OleVariant); safecall;
+    function Get_onselectstart: OleVariant; safecall;
+    function elementFromPoint(x: Integer; y: Integer): IHTMLElement; safecall;
+    function Get_parentWindow: IHTMLWindow2; safecall;
+    function Get_styleSheets: IHTMLStyleSheetsCollection; safecall;
+    procedure Set_onbeforeupdate(p: OleVariant); safecall;
+    function Get_onbeforeupdate: OleVariant; safecall;
+    procedure Set_onerrorupdate(p: OleVariant); safecall;
+    function Get_onerrorupdate: OleVariant; safecall;
+    function toString: WideString; safecall;
+    function createStyleSheet(const bstrHref: WideString; lIndex: Integer): IHTMLStyleSheet; safecall;
+    property all: IHTMLElementCollection read Get_all;
+    property body: IHTMLElement read Get_body;
+    property activeElement: IHTMLElement read Get_activeElement;
+    property images: IHTMLElementCollection read Get_images;
+    property applets: IHTMLElementCollection read Get_applets;
+    property links: IHTMLElementCollection read Get_links;
+    property forms: IHTMLElementCollection read Get_forms;
+    property anchors: IHTMLElementCollection read Get_anchors;
+    property title: WideString read Get_title write Set_title;
+    property scripts: IHTMLElementCollection read Get_scripts;
+    property designMode: WideString read Get_designMode write Set_designMode;
+    property selection: IHTMLSelectionObject read Get_selection;
+    property readyState: WideString read Get_readyState;
+    property frames: IHTMLFramesCollection2 read Get_frames;
+    property embeds: IHTMLElementCollection read Get_embeds;
+    property plugins: IHTMLElementCollection read Get_plugins;
+    property alinkColor: OleVariant read Get_alinkColor write Set_alinkColor;
+    property bgColor: OleVariant read Get_bgColor write Set_bgColor;
+    property fgColor: OleVariant read Get_fgColor write Set_fgColor;
+    property linkColor: OleVariant read Get_linkColor write Set_linkColor;
+    property vlinkColor: OleVariant read Get_vlinkColor write Set_vlinkColor;
+    property referrer: WideString read Get_referrer;
+    property location: IHTMLLocation read Get_location;
+    property lastModified: WideString read Get_lastModified;
+    property url: WideString read Get_url write Set_url;
+    property domain: WideString read Get_domain write Set_domain;
+    property cookie: WideString read Get_cookie write Set_cookie;
+    property expando: WordBool read Get_expando write Set_expando;
+    property charset: WideString read Get_charset write Set_charset;
+    property defaultCharset: WideString read Get_defaultCharset write Set_defaultCharset;
+    property mimeType: WideString read Get_mimeType;
+    property fileSize: WideString read Get_fileSize;
+    property fileCreatedDate: WideString read Get_fileCreatedDate;
+    property fileModifiedDate: WideString read Get_fileModifiedDate;
+    property fileUpdatedDate: WideString read Get_fileUpdatedDate;
+    property security: WideString read Get_security;
+    property protocol: WideString read Get_protocol;
+    property nameProp: WideString read Get_nameProp;
+    property onhelp: OleVariant read Get_onhelp write Set_onhelp;
+    property onclick: OleVariant read Get_onclick write Set_onclick;
+    property ondblclick: OleVariant read Get_ondblclick write Set_ondblclick;
+    property onkeyup: OleVariant read Get_onkeyup write Set_onkeyup;
+    property onkeydown: OleVariant read Get_onkeydown write Set_onkeydown;
+    property onkeypress: OleVariant read Get_onkeypress write Set_onkeypress;
+    property onmouseup: OleVariant read Get_onmouseup write Set_onmouseup;
+    property onmousedown: OleVariant read Get_onmousedown write Set_onmousedown;
+    property onmousemove: OleVariant read Get_onmousemove write Set_onmousemove;
+    property onmouseout: OleVariant read Get_onmouseout write Set_onmouseout;
+    property onmouseover: OleVariant read Get_onmouseover write Set_onmouseover;
+    property onreadystatechange: OleVariant read Get_onreadystatechange write Set_onreadystatechange;
+    property onafterupdate: OleVariant read Get_onafterupdate write Set_onafterupdate;
+    property onrowexit: OleVariant read Get_onrowexit write Set_onrowexit;
+    property onrowenter: OleVariant read Get_onrowenter write Set_onrowenter;
+    property ondragstart: OleVariant read Get_ondragstart write Set_ondragstart;
+    property onselectstart: OleVariant read Get_onselectstart write Set_onselectstart;
+    property parentWindow: IHTMLWindow2 read Get_parentWindow;
+    property styleSheets: IHTMLStyleSheetsCollection read Get_styleSheets;
+    property onbeforeupdate: OleVariant read Get_onbeforeupdate write Set_onbeforeupdate;
+    property onerrorupdate: OleVariant read Get_onerrorupdate write Set_onerrorupdate;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDocument2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {332C4425-26CB-11D0-B483-00C04FD90119}
+// *********************************************************************//
+  IHTMLDocument2Disp = dispinterface
+    ['{332C4425-26CB-11D0-B483-00C04FD90119}']
+    property all: IHTMLElementCollection readonly dispid 1003;
+    property body: IHTMLElement readonly dispid 1004;
+    property activeElement: IHTMLElement readonly dispid 1005;
+    property images: IHTMLElementCollection readonly dispid 1011;
+    property applets: IHTMLElementCollection readonly dispid 1008;
+    property links: IHTMLElementCollection readonly dispid 1009;
+    property forms: IHTMLElementCollection readonly dispid 1010;
+    property anchors: IHTMLElementCollection readonly dispid 1007;
+    property title: WideString dispid 1012;
+    property scripts: IHTMLElementCollection readonly dispid 1013;
+    property designMode: WideString dispid 1014;
+    property selection: IHTMLSelectionObject readonly dispid 1017;
+    property readyState: WideString readonly dispid 1018;
+    property frames: IHTMLFramesCollection2 readonly dispid 1019;
+    property embeds: IHTMLElementCollection readonly dispid 1015;
+    property plugins: IHTMLElementCollection readonly dispid 1021;
+    property alinkColor: OleVariant dispid 1022;
+    property bgColor: OleVariant dispid - 501;
+    property fgColor: OleVariant dispid - 2147413110;
+    property linkColor: OleVariant dispid 1024;
+    property vlinkColor: OleVariant dispid 1023;
+    property referrer: WideString readonly dispid 1027;
+    property location: IHTMLLocation readonly dispid 1026;
+    property lastModified: WideString readonly dispid 1028;
+    property url: WideString dispid 1025;
+    property domain: WideString dispid 1029;
+    property cookie: WideString dispid 1030;
+    property expando: WordBool dispid 1031;
+    property charset: WideString dispid 1032;
+    property defaultCharset: WideString dispid 1033;
+    property mimeType: WideString readonly dispid 1041;
+    property fileSize: WideString readonly dispid 1042;
+    property fileCreatedDate: WideString readonly dispid 1043;
+    property fileModifiedDate: WideString readonly dispid 1044;
+    property fileUpdatedDate: WideString readonly dispid 1045;
+    property security: WideString readonly dispid 1046;
+    property protocol: WideString readonly dispid 1047;
+    property nameProp: WideString readonly dispid 1048;
+    procedure write(psarray: {??PSafeArray} OleVariant); dispid 1054;
+    procedure writeln(psarray: {??PSafeArray} OleVariant); dispid 1055;
+    function open(const url: WideString; name: OleVariant; features: OleVariant; replace: OleVariant): IDispatch; dispid 1056;
+    procedure close; dispid 1057;
+    procedure clear; dispid 1058;
+    function queryCommandSupported(const cmdID: WideString): WordBool; dispid 1059;
+    function queryCommandEnabled(const cmdID: WideString): WordBool; dispid 1060;
+    function queryCommandState(const cmdID: WideString): WordBool; dispid 1061;
+    function queryCommandIndeterm(const cmdID: WideString): WordBool; dispid 1062;
+    function queryCommandText(const cmdID: WideString): WideString; dispid 1063;
+    function queryCommandValue(const cmdID: WideString): OleVariant; dispid 1064;
+    function execCommand(const cmdID: WideString; showUI: WordBool; value: OleVariant): WordBool; dispid 1065;
+    function execCommandShowHelp(const cmdID: WideString): WordBool; dispid 1066;
+    function createElement(const eTag: WideString): IHTMLElement; dispid 1067;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondragstart: OleVariant dispid - 2147412077;
+    property onselectstart: OleVariant dispid - 2147412075;
+    function elementFromPoint(x: Integer; y: Integer): IHTMLElement; dispid 1068;
+    property parentWindow: IHTMLWindow2 readonly dispid 1034;
+    property styleSheets: IHTMLStyleSheetsCollection readonly dispid 1069;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    function toString: WideString; dispid 1070;
+    function createStyleSheet(const bstrHref: WideString; lIndex: Integer): IHTMLStyleSheet; dispid 1071;
+    property Script: IDispatch readonly dispid 1001;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLFramesCollection2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {332C4426-26CB-11D0-B483-00C04FD90119}
+// *********************************************************************//
+  IHTMLFramesCollection2 = interface(IDispatch)
+    ['{332C4426-26CB-11D0-B483-00C04FD90119}']
+    // !! API fix decl
+    function item(const pvarIndex: OleVariant): OleVariant; safecall;
+    function Get_length: Integer; safecall;
+    property length: Integer read Get_length;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLFramesCollection2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {332C4426-26CB-11D0-B483-00C04FD90119}
+// *********************************************************************//
+  IHTMLFramesCollection2Disp = dispinterface
+    ['{332C4426-26CB-11D0-B483-00C04FD90119}']
+    // !! API fix decl
+    function item(const pvarIndex: OleVariant): OleVariant; dispid 0;
+    property length: Integer readonly dispid 1001;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLWindow2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {332C4427-26CB-11D0-B483-00C04FD90119}
+// *********************************************************************//
+  IHTMLWindow2 = interface(IHTMLFramesCollection2)
+    ['{332C4427-26CB-11D0-B483-00C04FD90119}']
+    function Get_frames: IHTMLFramesCollection2; safecall;
+    procedure Set_defaultStatus(const p: WideString); safecall;
+    function Get_defaultStatus: WideString; safecall;
+    procedure Set_status(const p: WideString); safecall;
+    function Get_status: WideString; safecall;
+    function setTimeout(const expression: WideString; msec: Integer; var language: OleVariant): Integer; safecall;
+    procedure clearTimeout(timerID: Integer); safecall;
+    procedure alert(const message: WideString); safecall;
+    function confirm(const message: WideString): WordBool; safecall;
+    function prompt(const message: WideString; const defstr: WideString): OleVariant; safecall;
+    function Get_Image: IHTMLImageElementFactory; safecall;
+    function Get_location: IHTMLLocation; safecall;
+    function Get_history: IOmHistory; safecall;
+    procedure close; safecall;
+    procedure Set_opener(p: OleVariant); safecall;
+    function Get_opener: OleVariant; safecall;
+    function Get_navigator: IOmNavigator; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    function Get_parent: IHTMLWindow2; safecall;
+    function open(const url: WideString; const name: WideString; const features: WideString;
+      replace: WordBool): IHTMLWindow2; safecall;
+    function Get_self: IHTMLWindow2; safecall;
+    function Get_top: IHTMLWindow2; safecall;
+    function Get_window: IHTMLWindow2; safecall;
+    procedure navigate(const url: WideString); safecall;
+    procedure Set_onfocus(p: OleVariant); safecall;
+    function Get_onfocus: OleVariant; safecall;
+    procedure Set_onblur(p: OleVariant); safecall;
+    function Get_onblur: OleVariant; safecall;
+    procedure Set_onload(p: OleVariant); safecall;
+    function Get_onload: OleVariant; safecall;
+    procedure Set_onbeforeunload(p: OleVariant); safecall;
+    function Get_onbeforeunload: OleVariant; safecall;
+    procedure Set_onunload(p: OleVariant); safecall;
+    function Get_onunload: OleVariant; safecall;
+    procedure Set_onhelp(p: OleVariant); safecall;
+    function Get_onhelp: OleVariant; safecall;
+    procedure Set_onerror(p: OleVariant); safecall;
+    function Get_onerror: OleVariant; safecall;
+    procedure Set_onresize(p: OleVariant); safecall;
+    function Get_onresize: OleVariant; safecall;
+    procedure Set_onscroll(p: OleVariant); safecall;
+    function Get_onscroll: OleVariant; safecall;
+    function Get_document: IHTMLDocument2; safecall;
+    function Get_event: IHTMLEventObj; safecall;
+    function Get__newEnum: IUnknown; safecall;
+    function showModalDialog(const dialog: WideString; var varArgIn: OleVariant;
+      var varOptions: OleVariant): OleVariant; safecall;
+    procedure showHelp(const helpURL: WideString; helpArg: OleVariant; const features: WideString); safecall;
+    function Get_screen: IHTMLScreen; safecall;
+    function Get_Option: IHTMLOptionElementFactory; safecall;
+    procedure focus; safecall;
+    function Get_closed: WordBool; safecall;
+    procedure blur; safecall;
+    procedure scroll(x: Integer; y: Integer); safecall;
+    function Get_clientInformation: IOmNavigator; safecall;
+    function setInterval(const expression: WideString; msec: Integer; var language: OleVariant): Integer; safecall;
+    procedure clearInterval(timerID: Integer); safecall;
+    procedure Set_offscreenBuffering(p: OleVariant); safecall;
+    function Get_offscreenBuffering: OleVariant; safecall;
+    function execScript(const code: WideString; const language: WideString): OleVariant; safecall;
+    function toString: WideString; safecall;
+    procedure scrollBy(x: Integer; y: Integer); safecall;
+    procedure scrollTo(x: Integer; y: Integer); safecall;
+    procedure moveTo(x: Integer; y: Integer); safecall;
+    procedure moveBy(x: Integer; y: Integer); safecall;
+    procedure resizeTo(x: Integer; y: Integer); safecall;
+    procedure resizeBy(x: Integer; y: Integer); safecall;
+    function Get_external: IDispatch; safecall;
+    property frames: IHTMLFramesCollection2 read Get_frames;
+    property defaultStatus: WideString read Get_defaultStatus write Set_defaultStatus;
+    property status: WideString read Get_status write Set_status;
+    property Image: IHTMLImageElementFactory read Get_Image;
+    property location: IHTMLLocation read Get_location;
+    property history: IOmHistory read Get_history;
+    property opener: OleVariant read Get_opener write Set_opener;
+    property navigator: IOmNavigator read Get_navigator;
+    property name: WideString read Get_name write Set_name;
+    property parent: IHTMLWindow2 read Get_parent;
+    property self: IHTMLWindow2 read Get_self;
+    property top: IHTMLWindow2 read Get_top;
+    property window: IHTMLWindow2 read Get_window;
+    property onfocus: OleVariant read Get_onfocus write Set_onfocus;
+    property onblur: OleVariant read Get_onblur write Set_onblur;
+    property onload: OleVariant read Get_onload write Set_onload;
+    property onbeforeunload: OleVariant read Get_onbeforeunload write Set_onbeforeunload;
+    property onunload: OleVariant read Get_onunload write Set_onunload;
+    property onhelp: OleVariant read Get_onhelp write Set_onhelp;
+    property onerror: OleVariant read Get_onerror write Set_onerror;
+    property onresize: OleVariant read Get_onresize write Set_onresize;
+    property onscroll: OleVariant read Get_onscroll write Set_onscroll;
+    property document: IHTMLDocument2 read Get_document;
+    property event: IHTMLEventObj read Get_event;
+    property _newEnum: IUnknown read Get__newEnum;
+    property screen: IHTMLScreen read Get_screen;
+    property Option: IHTMLOptionElementFactory read Get_Option;
+    property closed: WordBool read Get_closed;
+    property clientInformation: IOmNavigator read Get_clientInformation;
+    property offscreenBuffering: OleVariant read Get_offscreenBuffering write Set_offscreenBuffering;
+    property external: IDispatch read Get_external;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLWindow2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {332C4427-26CB-11D0-B483-00C04FD90119}
+// *********************************************************************//
+  IHTMLWindow2Disp = dispinterface
+    ['{332C4427-26CB-11D0-B483-00C04FD90119}']
+    property frames: IHTMLFramesCollection2 readonly dispid 1100;
+    property defaultStatus: WideString dispid 1101;
+    property status: WideString dispid 1102;
+    function setTimeout(const expression: WideString; msec: Integer; var language: OleVariant): Integer; dispid 1172;
+    procedure clearTimeout(timerID: Integer); dispid 1104;
+    procedure alert(const message: WideString); dispid 1105;
+    function confirm(const message: WideString): WordBool; dispid 1110;
+    function prompt(const message: WideString; const defstr: WideString): OleVariant; dispid 1111;
+    property Image: IHTMLImageElementFactory readonly dispid 1125;
+    property location: IHTMLLocation readonly dispid 14;
+    property history: IOmHistory readonly dispid 2;
+    procedure close; dispid 3;
+    property opener: OleVariant dispid 4;
+    property navigator: IOmNavigator readonly dispid 5;
+    property name: WideString dispid 11;
+    property parent: IHTMLWindow2 readonly dispid 12;
+    function open(const url: WideString; const name: WideString; const features: WideString;
+      replace: WordBool): IHTMLWindow2; dispid 13;
+    property self: IHTMLWindow2 readonly dispid 20;
+    property top: IHTMLWindow2 readonly dispid 21;
+    property window: IHTMLWindow2 readonly dispid 22;
+    procedure navigate(const url: WideString); dispid 25;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onblur: OleVariant dispid - 2147412097;
+    property onload: OleVariant dispid - 2147412080;
+    property onbeforeunload: OleVariant dispid - 2147412073;
+    property onunload: OleVariant dispid - 2147412079;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onerror: OleVariant dispid - 2147412083;
+    property onresize: OleVariant dispid - 2147412076;
+    property onscroll: OleVariant dispid - 2147412081;
+    property document: IHTMLDocument2 readonly dispid 1151;
+    property event: IHTMLEventObj readonly dispid 1152;
+    property _newEnum: IUnknown readonly dispid 1153;
+    function showModalDialog(const dialog: WideString; var varArgIn: OleVariant;
+      var varOptions: OleVariant): OleVariant; dispid 1154;
+    procedure showHelp(const helpURL: WideString; helpArg: OleVariant; const features: WideString); dispid 1155;
+    property screen: IHTMLScreen readonly dispid 1156;
+    property Option: IHTMLOptionElementFactory readonly dispid 1157;
+    procedure focus; dispid 1158;
+    property closed: WordBool readonly dispid 23;
+    procedure blur; dispid 1159;
+    procedure scroll(x: Integer; y: Integer); dispid 1160;
+    property clientInformation: IOmNavigator readonly dispid 1161;
+    function setInterval(const expression: WideString; msec: Integer; var language: OleVariant): Integer; dispid 1173;
+    procedure clearInterval(timerID: Integer); dispid 1163;
+    property offscreenBuffering: OleVariant dispid 1164;
+    function execScript(const code: WideString; const language: WideString): OleVariant; dispid 1165;
+    function toString: WideString; dispid 1166;
+    procedure scrollBy(x: Integer; y: Integer); dispid 1167;
+    procedure scrollTo(x: Integer; y: Integer); dispid 1168;
+    procedure moveTo(x: Integer; y: Integer); dispid 6;
+    procedure moveBy(x: Integer; y: Integer); dispid 7;
+    procedure resizeTo(x: Integer; y: Integer); dispid 9;
+    procedure resizeBy(x: Integer; y: Integer); dispid 8;
+    property external: IDispatch readonly dispid 1169;
+    // !! API fix decl
+    function item(const pvarIndex: OleVariant): OleVariant; dispid 0;
+    property length: Integer readonly dispid 1001;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLScreen
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F35C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLScreen = interface(IDispatch)
+    ['{3050F35C-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_colorDepth: Integer; safecall;
+    procedure Set_bufferDepth(p: Integer); safecall;
+    function Get_bufferDepth: Integer; safecall;
+    function Get_width: Integer; safecall;
+    function Get_height: Integer; safecall;
+    procedure Set_updateInterval(p: Integer); safecall;
+    function Get_updateInterval: Integer; safecall;
+    function Get_availHeight: Integer; safecall;
+    function Get_availWidth: Integer; safecall;
+    function Get_fontSmoothingEnabled: WordBool; safecall;
+    property colorDepth: Integer read Get_colorDepth;
+    property bufferDepth: Integer read Get_bufferDepth write Set_bufferDepth;
+    property width: Integer read Get_width;
+    property height: Integer read Get_height;
+    property updateInterval: Integer read Get_updateInterval write Set_updateInterval;
+    property availHeight: Integer read Get_availHeight;
+    property availWidth: Integer read Get_availWidth;
+    property fontSmoothingEnabled: WordBool read Get_fontSmoothingEnabled;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLScreenDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F35C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLScreenDisp = dispinterface
+    ['{3050F35C-98B5-11CF-BB82-00AA00BDCE0B}']
+    property colorDepth: Integer readonly dispid 1001;
+    property bufferDepth: Integer dispid 1002;
+    property width: Integer readonly dispid 1003;
+    property height: Integer readonly dispid 1004;
+    property updateInterval: Integer dispid 1005;
+    property availHeight: Integer readonly dispid 1006;
+    property availWidth: Integer readonly dispid 1007;
+    property fontSmoothingEnabled: WordBool readonly dispid 1008;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLWindow3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4AE-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLWindow3 = interface(IDispatch)
+    ['{3050F4AE-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_screenLeft: Integer; safecall;
+    function Get_screenTop: Integer; safecall;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; safecall;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); safecall;
+    function setTimeout(var expression: OleVariant; msec: Integer; var language: OleVariant): Integer; safecall;
+    function setInterval(var expression: OleVariant; msec: Integer; var language: OleVariant): Integer; safecall;
+    procedure print; safecall;
+    procedure Set_onbeforeprint(p: OleVariant); safecall;
+    function Get_onbeforeprint: OleVariant; safecall;
+    procedure Set_onafterprint(p: OleVariant); safecall;
+    function Get_onafterprint: OleVariant; safecall;
+    function Get_clipboardData: IHTMLDataTransfer; safecall;
+    function showModelessDialog(const url: WideString; var varArgIn: OleVariant;
+      var options: OleVariant): IHTMLWindow2; safecall;
+    property screenLeft: Integer read Get_screenLeft;
+    property screenTop: Integer read Get_screenTop;
+    property onbeforeprint: OleVariant read Get_onbeforeprint write Set_onbeforeprint;
+    property onafterprint: OleVariant read Get_onafterprint write Set_onafterprint;
+    property clipboardData: IHTMLDataTransfer read Get_clipboardData;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLWindow3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4AE-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLWindow3Disp = dispinterface
+    ['{3050F4AE-98B5-11CF-BB82-00AA00BDCE0B}']
+    property screenLeft: Integer readonly dispid 1170;
+    property screenTop: Integer readonly dispid 1171;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    function setTimeout(var expression: OleVariant; msec: Integer; var language: OleVariant): Integer; dispid 1103;
+    function setInterval(var expression: OleVariant; msec: Integer; var language: OleVariant): Integer; dispid 1162;
+    procedure print; dispid 1174;
+    property onbeforeprint: OleVariant dispid - 2147412046;
+    property onafterprint: OleVariant dispid - 2147412045;
+    property clipboardData: IHTMLDataTransfer readonly dispid 1175;
+    function showModelessDialog(const url: WideString; var varArgIn: OleVariant;
+      var options: OleVariant): IHTMLWindow2; dispid 1176;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLFrameBase
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F311-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFrameBase = interface(IDispatch)
+    ['{3050F311-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_src(const p: WideString); safecall;
+    function Get_src: WideString; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_border(p: OleVariant); safecall;
+    function Get_border: OleVariant; safecall;
+    procedure Set_frameBorder(const p: WideString); safecall;
+    function Get_frameBorder: WideString; safecall;
+    procedure Set_frameSpacing(p: OleVariant); safecall;
+    function Get_frameSpacing: OleVariant; safecall;
+    procedure Set_marginWidth(p: OleVariant); safecall;
+    function Get_marginWidth: OleVariant; safecall;
+    procedure Set_marginHeight(p: OleVariant); safecall;
+    function Get_marginHeight: OleVariant; safecall;
+    procedure Set_noResize(p: WordBool); safecall;
+    function Get_noResize: WordBool; safecall;
+    procedure Set_scrolling(const p: WideString); safecall;
+    function Get_scrolling: WideString; safecall;
+    property src: WideString read Get_src write Set_src;
+    property name: WideString read Get_name write Set_name;
+    property border: OleVariant read Get_border write Set_border;
+    property frameBorder: WideString read Get_frameBorder write Set_frameBorder;
+    property frameSpacing: OleVariant read Get_frameSpacing write Set_frameSpacing;
+    property marginWidth: OleVariant read Get_marginWidth write Set_marginWidth;
+    property marginHeight: OleVariant read Get_marginHeight write Set_marginHeight;
+    property noResize: WordBool read Get_noResize write Set_noResize;
+    property scrolling: WideString read Get_scrolling write Set_scrolling;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLFrameBaseDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F311-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFrameBaseDisp = dispinterface
+    ['{3050F311-98B5-11CF-BB82-00AA00BDCE0B}']
+    property src: WideString dispid - 2147415112;
+    property name: WideString dispid - 2147418112;
+    property border: OleVariant dispid - 2147415110;
+    property frameBorder: WideString dispid - 2147415109;
+    property frameSpacing: OleVariant dispid - 2147415108;
+    property marginWidth: OleVariant dispid - 2147415107;
+    property marginHeight: OleVariant dispid - 2147415106;
+    property noResize: WordBool dispid - 2147415105;
+    property scrolling: WideString dispid - 2147415104;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLScreen2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F84A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLScreen2 = interface(IDispatch)
+    ['{3050F84A-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_logicalXDPI: Integer; safecall;
+    function Get_logicalYDPI: Integer; safecall;
+    function Get_deviceXDPI: Integer; safecall;
+    function Get_deviceYDPI: Integer; safecall;
+    property logicalXDPI: Integer read Get_logicalXDPI;
+    property logicalYDPI: Integer read Get_logicalYDPI;
+    property deviceXDPI: Integer read Get_deviceXDPI;
+    property deviceYDPI: Integer read Get_deviceYDPI;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLScreen2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F84A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLScreen2Disp = dispinterface
+    ['{3050F84A-98B5-11CF-BB82-00AA00BDCE0B}']
+    property logicalXDPI: Integer readonly dispid 1009;
+    property logicalYDPI: Integer readonly dispid 1010;
+    property deviceXDPI: Integer readonly dispid 1011;
+    property deviceYDPI: Integer readonly dispid 1012;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLWindow4
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F6CF-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLWindow4 = interface(IDispatch)
+    ['{3050F6CF-98B5-11CF-BB82-00AA00BDCE0B}']
+    function createPopup(var varArgIn: OleVariant): IDispatch; safecall;
+    function Get_frameElement: IHTMLFrameBase; safecall;
+    property frameElement: IHTMLFrameBase read Get_frameElement;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLWindow4Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F6CF-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLWindow4Disp = dispinterface
+    ['{3050F6CF-98B5-11CF-BB82-00AA00BDCE0B}']
+    function createPopup(var varArgIn: OleVariant): IDispatch; dispid 1180;
+    property frameElement: IHTMLFrameBase readonly dispid 1181;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLScreen
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F591-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLScreen = dispinterface
+    ['{3050F591-98B5-11CF-BB82-00AA00BDCE0B}']
+    property colorDepth: Integer readonly dispid 1001;
+    property bufferDepth: Integer dispid 1002;
+    property width: Integer readonly dispid 1003;
+    property height: Integer readonly dispid 1004;
+    property updateInterval: Integer dispid 1005;
+    property availHeight: Integer readonly dispid 1006;
+    property availWidth: Integer readonly dispid 1007;
+    property fontSmoothingEnabled: WordBool readonly dispid 1008;
+    property logicalXDPI: Integer readonly dispid 1009;
+    property logicalYDPI: Integer readonly dispid 1010;
+    property deviceXDPI: Integer readonly dispid 1011;
+    property deviceYDPI: Integer readonly dispid 1012;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLWindow2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F55D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLWindow2 = dispinterface
+    ['{3050F55D-98B5-11CF-BB82-00AA00BDCE0B}']
+    // !! API fix decl
+    function item(const pvarIndex: OleVariant): OleVariant; dispid 0;
+    property length: Integer readonly dispid 1001;
+    property frames: IHTMLFramesCollection2 readonly dispid 1100;
+    property defaultStatus: WideString dispid 1101;
+    property status: WideString dispid 1102;
+    procedure clearTimeout(timerID: Integer); dispid 1104;
+    procedure alert(const message: WideString); dispid 1105;
+    function confirm(const message: WideString): WordBool; dispid 1110;
+    function prompt(const message: WideString; const defstr: WideString): OleVariant; dispid 1111;
+    property Image: IHTMLImageElementFactory readonly dispid 1125;
+    property location: IHTMLLocation readonly dispid 14;
+    property history: IOmHistory readonly dispid 2;
+    procedure close; dispid 3;
+    property opener: OleVariant dispid 4;
+    property navigator: IOmNavigator readonly dispid 5;
+    property name: WideString dispid 11;
+    property parent: IHTMLWindow2 readonly dispid 12;
+    function open(const url: WideString; const name: WideString; const features: WideString;
+      replace: WordBool): IHTMLWindow2; dispid 13;
+    property self: IHTMLWindow2 readonly dispid 20;
+    property top: IHTMLWindow2 readonly dispid 21;
+    property window: IHTMLWindow2 readonly dispid 22;
+    procedure navigate(const url: WideString); dispid 25;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onblur: OleVariant dispid - 2147412097;
+    property onload: OleVariant dispid - 2147412080;
+    property onbeforeunload: OleVariant dispid - 2147412073;
+    property onunload: OleVariant dispid - 2147412079;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onerror: OleVariant dispid - 2147412083;
+    property onresize: OleVariant dispid - 2147412076;
+    property onscroll: OleVariant dispid - 2147412081;
+    property document: IHTMLDocument2 readonly dispid 1151;
+    property event: IHTMLEventObj readonly dispid 1152;
+    property _newEnum: IUnknown readonly dispid 1153;
+    function showModalDialog(const dialog: WideString; var varArgIn: OleVariant;
+      var varOptions: OleVariant): OleVariant; dispid 1154;
+    procedure showHelp(const helpURL: WideString; helpArg: OleVariant; const features: WideString); dispid 1155;
+    property screen: IHTMLScreen readonly dispid 1156;
+    property Option: IHTMLOptionElementFactory readonly dispid 1157;
+    procedure focus; dispid 1158;
+    property closed: WordBool readonly dispid 23;
+    procedure blur; dispid 1159;
+    procedure scroll(x: Integer; y: Integer); dispid 1160;
+    property clientInformation: IOmNavigator readonly dispid 1161;
+    procedure clearInterval(timerID: Integer); dispid 1163;
+    property offscreenBuffering: OleVariant dispid 1164;
+    function execScript(const code: WideString; const language: WideString): OleVariant; dispid 1165;
+    function toString: WideString; dispid 1166;
+    procedure scrollBy(x: Integer; y: Integer); dispid 1167;
+    procedure scrollTo(x: Integer; y: Integer); dispid 1168;
+    procedure moveTo(x: Integer; y: Integer); dispid 6;
+    procedure moveBy(x: Integer; y: Integer); dispid 7;
+    procedure resizeTo(x: Integer; y: Integer); dispid 9;
+    procedure resizeBy(x: Integer; y: Integer); dispid 8;
+    property external: IDispatch readonly dispid 1169;
+    property screenLeft: Integer readonly dispid 1170;
+    property screenTop: Integer readonly dispid 1171;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    function setTimeout(var expression: OleVariant; msec: Integer; var language: OleVariant): Integer; dispid 1103;
+    function setInterval(var expression: OleVariant; msec: Integer; var language: OleVariant): Integer; dispid 1162;
+    procedure print; dispid 1174;
+    property onbeforeprint: OleVariant dispid - 2147412046;
+    property onafterprint: OleVariant dispid - 2147412045;
+    property clipboardData: IHTMLDataTransfer readonly dispid 1175;
+    function showModelessDialog(const url: WideString; var varArgIn: OleVariant;
+      var options: OleVariant): IHTMLWindow2; dispid 1176;
+    function createPopup(var varArgIn: OleVariant): IDispatch; dispid 1180;
+    property frameElement: IHTMLFrameBase readonly dispid 1181;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLWindowProxy
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F55E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLWindowProxy = dispinterface
+    ['{3050F55E-98B5-11CF-BB82-00AA00BDCE0B}']
+    // !! API fix decl
+    function item(const pvarIndex: OleVariant): OleVariant; dispid 0;
+    property length: Integer readonly dispid 1001;
+    property frames: IHTMLFramesCollection2 readonly dispid 1100;
+    property defaultStatus: WideString dispid 1101;
+    property status: WideString dispid 1102;
+    procedure clearTimeout(timerID: Integer); dispid 1104;
+    procedure alert(const message: WideString); dispid 1105;
+    function confirm(const message: WideString): WordBool; dispid 1110;
+    function prompt(const message: WideString; const defstr: WideString): OleVariant; dispid 1111;
+    property Image: IHTMLImageElementFactory readonly dispid 1125;
+    property location: IHTMLLocation readonly dispid 14;
+    property history: IOmHistory readonly dispid 2;
+    procedure close; dispid 3;
+    property opener: OleVariant dispid 4;
+    property navigator: IOmNavigator readonly dispid 5;
+    property name: WideString dispid 11;
+    property parent: IHTMLWindow2 readonly dispid 12;
+    function open(const url: WideString; const name: WideString; const features: WideString;
+      replace: WordBool): IHTMLWindow2; dispid 13;
+    property self: IHTMLWindow2 readonly dispid 20;
+    property top: IHTMLWindow2 readonly dispid 21;
+    property window: IHTMLWindow2 readonly dispid 22;
+    procedure navigate(const url: WideString); dispid 25;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onblur: OleVariant dispid - 2147412097;
+    property onload: OleVariant dispid - 2147412080;
+    property onbeforeunload: OleVariant dispid - 2147412073;
+    property onunload: OleVariant dispid - 2147412079;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onerror: OleVariant dispid - 2147412083;
+    property onresize: OleVariant dispid - 2147412076;
+    property onscroll: OleVariant dispid - 2147412081;
+    property document: IHTMLDocument2 readonly dispid 1151;
+    property event: IHTMLEventObj readonly dispid 1152;
+    property _newEnum: IUnknown readonly dispid 1153;
+    function showModalDialog(const dialog: WideString; var varArgIn: OleVariant;
+      var varOptions: OleVariant): OleVariant; dispid 1154;
+    procedure showHelp(const helpURL: WideString; helpArg: OleVariant; const features: WideString); dispid 1155;
+    property screen: IHTMLScreen readonly dispid 1156;
+    property Option: IHTMLOptionElementFactory readonly dispid 1157;
+    procedure focus; dispid 1158;
+    property closed: WordBool readonly dispid 23;
+    procedure blur; dispid 1159;
+    procedure scroll(x: Integer; y: Integer); dispid 1160;
+    property clientInformation: IOmNavigator readonly dispid 1161;
+    procedure clearInterval(timerID: Integer); dispid 1163;
+    property offscreenBuffering: OleVariant dispid 1164;
+    function execScript(const code: WideString; const language: WideString): OleVariant; dispid 1165;
+    function toString: WideString; dispid 1166;
+    procedure scrollBy(x: Integer; y: Integer); dispid 1167;
+    procedure scrollTo(x: Integer; y: Integer); dispid 1168;
+    procedure moveTo(x: Integer; y: Integer); dispid 6;
+    procedure moveBy(x: Integer; y: Integer); dispid 7;
+    procedure resizeTo(x: Integer; y: Integer); dispid 9;
+    procedure resizeBy(x: Integer; y: Integer); dispid 8;
+    property external: IDispatch readonly dispid 1169;
+    property screenLeft: Integer readonly dispid 1170;
+    property screenTop: Integer readonly dispid 1171;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    function setTimeout(var expression: OleVariant; msec: Integer; var language: OleVariant): Integer; dispid 1103;
+    function setInterval(var expression: OleVariant; msec: Integer; var language: OleVariant): Integer; dispid 1162;
+    procedure print; dispid 1174;
+    property onbeforeprint: OleVariant dispid - 2147412046;
+    property onafterprint: OleVariant dispid - 2147412045;
+    property clipboardData: IHTMLDataTransfer readonly dispid 1175;
+    function showModelessDialog(const url: WideString; var varArgIn: OleVariant;
+      var options: OleVariant): IHTMLWindow2; dispid 1176;
+    function createPopup(var varArgIn: OleVariant): IDispatch; dispid 1180;
+    property frameElement: IHTMLFrameBase readonly dispid 1181;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLDocumentEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F613-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLDocumentEvents2 = dispinterface
+    ['{3050F613-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    function onstop(const pEvtObj: IHTMLEventObj): WordBool; dispid 1026;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onbeforeeditfocus(const pEvtObj: IHTMLEventObj); dispid 1027;
+    procedure onselectionchange(const pEvtObj: IHTMLEventObj); dispid 1037;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLDocumentEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F260-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLDocumentEvents = dispinterface
+    ['{3050F260-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onmousedown; dispid - 605;
+    procedure onmousemove; dispid - 606;
+    procedure onmouseup; dispid - 607;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onreadystatechange; dispid - 609;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onselectstart: WordBool; dispid - 2147418100;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function oncontextmenu: WordBool; dispid 1023;
+    function onstop: WordBool; dispid 1026;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onselectionchange; dispid 1037;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    function onbeforeactivate: WordBool; dispid 1047;
+    function onbeforedeactivate: WordBool; dispid 1034;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDocument3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F485-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDocument3 = interface(IDispatch)
+    ['{3050F485-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure releaseCapture; safecall;
+    procedure recalc(fForce: WordBool); safecall;
+    function createTextNode(const text: WideString): IHTMLDOMNode; safecall;
+    function Get_documentElement: IHTMLElement; safecall;
+    function Get_uniqueID: WideString; safecall;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; safecall;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); safecall;
+    procedure Set_onrowsdelete(p: OleVariant); safecall;
+    function Get_onrowsdelete: OleVariant; safecall;
+    procedure Set_onrowsinserted(p: OleVariant); safecall;
+    function Get_onrowsinserted: OleVariant; safecall;
+    procedure Set_oncellchange(p: OleVariant); safecall;
+    function Get_oncellchange: OleVariant; safecall;
+    procedure Set_ondatasetchanged(p: OleVariant); safecall;
+    function Get_ondatasetchanged: OleVariant; safecall;
+    procedure Set_ondataavailable(p: OleVariant); safecall;
+    function Get_ondataavailable: OleVariant; safecall;
+    procedure Set_ondatasetcomplete(p: OleVariant); safecall;
+    function Get_ondatasetcomplete: OleVariant; safecall;
+    procedure Set_onpropertychange(p: OleVariant); safecall;
+    function Get_onpropertychange: OleVariant; safecall;
+    procedure Set_dir(const p: WideString); safecall;
+    function Get_dir: WideString; safecall;
+    procedure Set_oncontextmenu(p: OleVariant); safecall;
+    function Get_oncontextmenu: OleVariant; safecall;
+    procedure Set_onstop(p: OleVariant); safecall;
+    function Get_onstop: OleVariant; safecall;
+    function createDocumentFragment: IHTMLDocument2; safecall;
+    function Get_parentDocument: IHTMLDocument2; safecall;
+    procedure Set_enableDownload(p: WordBool); safecall;
+    function Get_enableDownload: WordBool; safecall;
+    procedure Set_baseUrl(const p: WideString); safecall;
+    function Get_baseUrl: WideString; safecall;
+    function Get_childNodes: IDispatch; safecall;
+    procedure Set_inheritStyleSheets(p: WordBool); safecall;
+    function Get_inheritStyleSheets: WordBool; safecall;
+    procedure Set_onbeforeeditfocus(p: OleVariant); safecall;
+    function Get_onbeforeeditfocus: OleVariant; safecall;
+    function getElementsByName(const v: WideString): IHTMLElementCollection; safecall;
+    function getElementById(const v: WideString): IHTMLElement; safecall;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; safecall;
+    property documentElement: IHTMLElement read Get_documentElement;
+    property uniqueID: WideString read Get_uniqueID;
+    property onrowsdelete: OleVariant read Get_onrowsdelete write Set_onrowsdelete;
+    property onrowsinserted: OleVariant read Get_onrowsinserted write Set_onrowsinserted;
+    property oncellchange: OleVariant read Get_oncellchange write Set_oncellchange;
+    property ondatasetchanged: OleVariant read Get_ondatasetchanged write Set_ondatasetchanged;
+    property ondataavailable: OleVariant read Get_ondataavailable write Set_ondataavailable;
+    property ondatasetcomplete: OleVariant read Get_ondatasetcomplete write Set_ondatasetcomplete;
+    property onpropertychange: OleVariant read Get_onpropertychange write Set_onpropertychange;
+    property dir: WideString read Get_dir write Set_dir;
+    property oncontextmenu: OleVariant read Get_oncontextmenu write Set_oncontextmenu;
+    property onstop: OleVariant read Get_onstop write Set_onstop;
+    property parentDocument: IHTMLDocument2 read Get_parentDocument;
+    property enableDownload: WordBool read Get_enableDownload write Set_enableDownload;
+    property baseUrl: WideString read Get_baseUrl write Set_baseUrl;
+    property childNodes: IDispatch read Get_childNodes;
+    property inheritStyleSheets: WordBool read Get_inheritStyleSheets write Set_inheritStyleSheets;
+    property onbeforeeditfocus: OleVariant read Get_onbeforeeditfocus write Set_onbeforeeditfocus;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDocument3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F485-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDocument3Disp = dispinterface
+    ['{3050F485-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure releaseCapture; dispid 1072;
+    procedure recalc(fForce: WordBool); dispid 1073;
+    function createTextNode(const text: WideString): IHTMLDOMNode; dispid 1074;
+    property documentElement: IHTMLElement readonly dispid 1075;
+    property uniqueID: WideString readonly dispid 1077;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    property dir: WideString dispid - 2147412995;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    property onstop: OleVariant dispid - 2147412044;
+    function createDocumentFragment: IHTMLDocument2; dispid 1076;
+    property parentDocument: IHTMLDocument2 readonly dispid 1078;
+    property enableDownload: WordBool dispid 1079;
+    property baseUrl: WideString dispid 1080;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property inheritStyleSheets: WordBool dispid 1082;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    function getElementsByName(const v: WideString): IHTMLElementCollection; dispid 1086;
+    function getElementById(const v: WideString): IHTMLElement; dispid 1088;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid 1087;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDocument4
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F69A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDocument4 = interface(IDispatch)
+    ['{3050F69A-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure focus; safecall;
+    function hasFocus: WordBool; safecall;
+    procedure Set_onselectionchange(p: OleVariant); safecall;
+    function Get_onselectionchange: OleVariant; safecall;
+    function Get_namespaces: IDispatch; safecall;
+    function createDocumentFromUrl(const bstrUrl: WideString; const bstrOptions: WideString): IHTMLDocument2; safecall;
+    procedure Set_media(const p: WideString); safecall;
+    function Get_media: WideString; safecall;
+    function CreateEventObject(var pvarEventObject: OleVariant): IHTMLEventObj; safecall;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; safecall;
+    function createRenderStyle(const v: WideString): IHTMLRenderStyle; safecall;
+    procedure Set_oncontrolselect(p: OleVariant); safecall;
+    function Get_oncontrolselect: OleVariant; safecall;
+    function Get_URLUnencoded: WideString; safecall;
+    property onselectionchange: OleVariant read Get_onselectionchange write Set_onselectionchange;
+    property namespaces: IDispatch read Get_namespaces;
+    property media: WideString read Get_media write Set_media;
+    property oncontrolselect: OleVariant read Get_oncontrolselect write Set_oncontrolselect;
+    property URLUnencoded: WideString read Get_URLUnencoded;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDocument4Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F69A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDocument4Disp = dispinterface
+    ['{3050F69A-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure focus; dispid 1089;
+    function hasFocus: WordBool; dispid 1090;
+    property onselectionchange: OleVariant dispid - 2147412032;
+    property namespaces: IDispatch readonly dispid 1091;
+    function createDocumentFromUrl(const bstrUrl: WideString; const bstrOptions: WideString): IHTMLDocument2; dispid 1092;
+    property media: WideString dispid 1093;
+    function CreateEventObject(var pvarEventObject: OleVariant): IHTMLEventObj; dispid 1094;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid 1095;
+    function createRenderStyle(const v: WideString): IHTMLRenderStyle; dispid 1096;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    property URLUnencoded: WideString readonly dispid 1097;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDocument5
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F80C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDocument5 = interface(IDispatch)
+    ['{3050F80C-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_onmousewheel(p: OleVariant); safecall;
+    function Get_onmousewheel: OleVariant; safecall;
+    function Get_doctype: IHTMLDOMNode; safecall;
+    function Get_implementation_: IHTMLDOMImplementation; safecall;
+    function createAttribute(const bstrattrName: WideString): IHTMLDOMAttribute; safecall;
+    function createComment(const bstrdata: WideString): IHTMLDOMNode; safecall;
+    procedure Set_onfocusin(p: OleVariant); safecall;
+    function Get_onfocusin: OleVariant; safecall;
+    procedure Set_onfocusout(p: OleVariant); safecall;
+    function Get_onfocusout: OleVariant; safecall;
+    procedure Set_onactivate(p: OleVariant); safecall;
+    function Get_onactivate: OleVariant; safecall;
+    procedure Set_ondeactivate(p: OleVariant); safecall;
+    function Get_ondeactivate: OleVariant; safecall;
+    procedure Set_onbeforeactivate(p: OleVariant); safecall;
+    function Get_onbeforeactivate: OleVariant; safecall;
+    procedure Set_onbeforedeactivate(p: OleVariant); safecall;
+    function Get_onbeforedeactivate: OleVariant; safecall;
+    function Get_compatMode: WideString; safecall;
+    property onmousewheel: OleVariant read Get_onmousewheel write Set_onmousewheel;
+    property doctype: IHTMLDOMNode read Get_doctype;
+    property implementation_: IHTMLDOMImplementation read Get_implementation_;
+    property onfocusin: OleVariant read Get_onfocusin write Set_onfocusin;
+    property onfocusout: OleVariant read Get_onfocusout write Set_onfocusout;
+    property onactivate: OleVariant read Get_onactivate write Set_onactivate;
+    property ondeactivate: OleVariant read Get_ondeactivate write Set_ondeactivate;
+    property onbeforeactivate: OleVariant read Get_onbeforeactivate write Set_onbeforeactivate;
+    property onbeforedeactivate: OleVariant read Get_onbeforedeactivate write Set_onbeforedeactivate;
+    property compatMode: WideString read Get_compatMode;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDocument5Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F80C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDocument5Disp = dispinterface
+    ['{3050F80C-98B5-11CF-BB82-00AA00BDCE0B}']
+    property onmousewheel: OleVariant dispid - 2147412036;
+    property doctype: IHTMLDOMNode readonly dispid 1098;
+    property implementation_: IHTMLDOMImplementation readonly dispid 1099;
+    function createAttribute(const bstrattrName: WideString): IHTMLDOMAttribute; dispid 1100;
+    function createComment(const bstrdata: WideString): IHTMLDOMNode; dispid 1101;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    property compatMode: WideString readonly dispid 1102;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLDocument
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F55F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLDocument = dispinterface
+    ['{3050F55F-98B5-11CF-BB82-00AA00BDCE0B}']
+    property Script: IDispatch readonly dispid 1001;
+    property all: IHTMLElementCollection readonly dispid 1003;
+    property body: IHTMLElement readonly dispid 1004;
+    property activeElement: IHTMLElement readonly dispid 1005;
+    property images: IHTMLElementCollection readonly dispid 1011;
+    property applets: IHTMLElementCollection readonly dispid 1008;
+    property links: IHTMLElementCollection readonly dispid 1009;
+    property forms: IHTMLElementCollection readonly dispid 1010;
+    property anchors: IHTMLElementCollection readonly dispid 1007;
+    property title: WideString dispid 1012;
+    property scripts: IHTMLElementCollection readonly dispid 1013;
+    property designMode: WideString dispid 1014;
+    property selection: IHTMLSelectionObject readonly dispid 1017;
+    property readyState: WideString readonly dispid 1018;
+    property frames: IHTMLFramesCollection2 readonly dispid 1019;
+    property embeds: IHTMLElementCollection readonly dispid 1015;
+    property plugins: IHTMLElementCollection readonly dispid 1021;
+    property alinkColor: OleVariant dispid 1022;
+    property bgColor: OleVariant dispid - 501;
+    property fgColor: OleVariant dispid - 2147413110;
+    property linkColor: OleVariant dispid 1024;
+    property vlinkColor: OleVariant dispid 1023;
+    property referrer: WideString readonly dispid 1027;
+    property location: IHTMLLocation readonly dispid 1026;
+    property lastModified: WideString readonly dispid 1028;
+    property url: WideString dispid 1025;
+    property domain: WideString dispid 1029;
+    property cookie: WideString dispid 1030;
+    property expando: WordBool dispid 1031;
+    property charset: WideString dispid 1032;
+    property defaultCharset: WideString dispid 1033;
+    property mimeType: WideString readonly dispid 1041;
+    property fileSize: WideString readonly dispid 1042;
+    property fileCreatedDate: WideString readonly dispid 1043;
+    property fileModifiedDate: WideString readonly dispid 1044;
+    property fileUpdatedDate: WideString readonly dispid 1045;
+    property security: WideString readonly dispid 1046;
+    property protocol: WideString readonly dispid 1047;
+    property nameProp: WideString readonly dispid 1048;
+    procedure write(psarray: {??PSafeArray} OleVariant); dispid 1054;
+    procedure writeln(psarray: {??PSafeArray} OleVariant); dispid 1055;
+    function open(const url: WideString; name: OleVariant; features: OleVariant; replace: OleVariant): IDispatch; dispid 1056;
+    procedure close; dispid 1057;
+    procedure clear; dispid 1058;
+    function queryCommandSupported(const cmdID: WideString): WordBool; dispid 1059;
+    function queryCommandEnabled(const cmdID: WideString): WordBool; dispid 1060;
+    function queryCommandState(const cmdID: WideString): WordBool; dispid 1061;
+    function queryCommandIndeterm(const cmdID: WideString): WordBool; dispid 1062;
+    function queryCommandText(const cmdID: WideString): WideString; dispid 1063;
+    function queryCommandValue(const cmdID: WideString): OleVariant; dispid 1064;
+    function execCommand(const cmdID: WideString; showUI: WordBool; value: OleVariant): WordBool; dispid 1065;
+    function execCommandShowHelp(const cmdID: WideString): WordBool; dispid 1066;
+    function createElement(const eTag: WideString): IHTMLElement; dispid 1067;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondragstart: OleVariant dispid - 2147412077;
+    property onselectstart: OleVariant dispid - 2147412075;
+    function elementFromPoint(x: Integer; y: Integer): IHTMLElement; dispid 1068;
+    property parentWindow: IHTMLWindow2 readonly dispid 1034;
+    property styleSheets: IHTMLStyleSheetsCollection readonly dispid 1069;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    function toString: WideString; dispid 1070;
+    function createStyleSheet(const bstrHref: WideString; lIndex: Integer): IHTMLStyleSheet; dispid 1071;
+    procedure releaseCapture; dispid 1072;
+    procedure recalc(fForce: WordBool); dispid 1073;
+    function createTextNode(const text: WideString): IHTMLDOMNode; dispid 1074;
+    property documentElement: IHTMLElement readonly dispid 1075;
+    property uniqueID: WideString readonly dispid 1077;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    property dir: WideString dispid - 2147412995;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    property onstop: OleVariant dispid - 2147412044;
+    function createDocumentFragment: IHTMLDocument2; dispid 1076;
+    property parentDocument: IHTMLDocument2 readonly dispid 1078;
+    property enableDownload: WordBool dispid 1079;
+    property baseUrl: WideString dispid 1080;
+    property inheritStyleSheets: WordBool dispid 1082;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    function getElementsByName(const v: WideString): IHTMLElementCollection; dispid 1086;
+    function getElementById(const v: WideString): IHTMLElement; dispid 1088;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid 1087;
+    procedure focus; dispid 1089;
+    function hasFocus: WordBool; dispid 1090;
+    property onselectionchange: OleVariant dispid - 2147412032;
+    property namespaces: IDispatch readonly dispid 1091;
+    function createDocumentFromUrl(const bstrUrl: WideString; const bstrOptions: WideString): IHTMLDocument2; dispid 1092;
+    property media: WideString dispid 1093;
+    function CreateEventObject(var pvarEventObject: OleVariant): IHTMLEventObj; dispid 1094;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid 1095;
+    function createRenderStyle(const v: WideString): IHTMLRenderStyle; dispid 1096;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    property URLUnencoded: WideString readonly dispid 1097;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    property doctype: IHTMLDOMNode readonly dispid 1098;
+    property implementation_: IHTMLDOMImplementation readonly dispid 1099;
+    function createAttribute(const bstrattrName: WideString): IHTMLDOMAttribute; dispid 1100;
+    function createComment(const bstrdata: WideString): IHTMLDOMNode; dispid 1101;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    property compatMode: WideString readonly dispid 1102;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DWebBridgeEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {A6D897FF-0A95-11D1-B0BA-006008166E11}
+// *********************************************************************//
+  DWebBridgeEvents = dispinterface
+    ['{A6D897FF-0A95-11D1-B0BA-006008166E11}']
+    procedure onscriptletevent(const name: WideString; eventData: OleVariant); dispid 1;
+    procedure onreadystatechange; dispid - 609;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onmousedown; dispid - 605;
+    procedure onmousemove; dispid - 606;
+    procedure onmouseup; dispid - 607;
+  end;
+
+// *********************************************************************//
+// Interface: IWebBridge
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {AE24FDAD-03C6-11D1-8B76-0080C744F389}
+// *********************************************************************//
+  IWebBridge = interface(IDispatch)
+    ['{AE24FDAD-03C6-11D1-8B76-0080C744F389}']
+    procedure Set_url(const p: WideString); safecall;
+    function Get_url: WideString; safecall;
+    procedure Set_Scrollbar(p: WordBool); safecall;
+    function Get_Scrollbar: WordBool; safecall;
+    procedure Set_embed(p: WordBool); safecall;
+    function Get_embed: WordBool; safecall;
+    function Get_event: IDispatch; safecall;
+    function Get_readyState: Integer; safecall;
+    procedure AboutBox; safecall;
+    property url: WideString read Get_url write Set_url;
+    property Scrollbar: WordBool read Get_Scrollbar write Set_Scrollbar;
+    property embed: WordBool read Get_embed write Set_embed;
+    property event: IDispatch read Get_event;
+    property readyState: Integer read Get_readyState;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IWebBridgeDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {AE24FDAD-03C6-11D1-8B76-0080C744F389}
+// *********************************************************************//
+  IWebBridgeDisp = dispinterface
+    ['{AE24FDAD-03C6-11D1-8B76-0080C744F389}']
+    property url: WideString dispid 1;
+    property Scrollbar: WordBool dispid 2;
+    property embed: WordBool dispid 3;
+    property event: IDispatch readonly dispid 1152;
+    property readyState: Integer readonly dispid - 525;
+    procedure AboutBox; dispid - 552;
+  end;
+
+// *********************************************************************//
+// Interface: IWBScriptControl
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {A5170870-0CF8-11D1-8B91-0080C744F389}
+// *********************************************************************//
+  IWBScriptControl = interface(IDispatch)
+    ['{A5170870-0CF8-11D1-8B91-0080C744F389}']
+    procedure raiseEvent(const name: WideString; eventData: OleVariant); safecall;
+    procedure bubbleEvent; safecall;
+    procedure setContextMenu(menuItemPairs: OleVariant); safecall;
+    procedure Set_selectableContent(p: WordBool); safecall;
+    function Get_selectableContent: WordBool; safecall;
+    function Get_frozen: WordBool; safecall;
+    procedure Set_Scrollbar(p: WordBool); safecall;
+    function Get_Scrollbar: WordBool; safecall;
+    function Get_version: WideString; safecall;
+    function Get_visibility: WordBool; safecall;
+    procedure Set_onvisibilitychange(p: OleVariant); safecall;
+    function Get_onvisibilitychange: OleVariant; safecall;
+    property selectableContent: WordBool read Get_selectableContent write Set_selectableContent;
+    property frozen: WordBool read Get_frozen;
+    property Scrollbar: WordBool read Get_Scrollbar write Set_Scrollbar;
+    property version: WideString read Get_version;
+    property visibility: WordBool read Get_visibility;
+    property onvisibilitychange: OleVariant read Get_onvisibilitychange write Set_onvisibilitychange;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IWBScriptControlDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {A5170870-0CF8-11D1-8B91-0080C744F389}
+// *********************************************************************//
+  IWBScriptControlDisp = dispinterface
+    ['{A5170870-0CF8-11D1-8B91-0080C744F389}']
+    procedure raiseEvent(const name: WideString; eventData: OleVariant); dispid 1;
+    procedure bubbleEvent; dispid 2;
+    procedure setContextMenu(menuItemPairs: OleVariant); dispid 3;
+    property selectableContent: WordBool dispid 4;
+    property frozen: WordBool readonly dispid 5;
+    property Scrollbar: WordBool dispid 7;
+    property version: WideString readonly dispid 8;
+    property visibility: WordBool readonly dispid 9;
+    property onvisibilitychange: OleVariant dispid 10;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLEmbedElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F25F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLEmbedElement = interface(IDispatch)
+    ['{3050F25F-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_hidden(const p: WideString); safecall;
+    function Get_hidden: WideString; safecall;
+    function Get_palette: WideString; safecall;
+    function Get_pluginspage: WideString; safecall;
+    procedure Set_src(const p: WideString); safecall;
+    function Get_src: WideString; safecall;
+    procedure Set_units(const p: WideString); safecall;
+    function Get_units: WideString; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_width(p: OleVariant); safecall;
+    function Get_width: OleVariant; safecall;
+    procedure Set_height(p: OleVariant); safecall;
+    function Get_height: OleVariant; safecall;
+    property hidden: WideString read Get_hidden write Set_hidden;
+    property palette: WideString read Get_palette;
+    property pluginspage: WideString read Get_pluginspage;
+    property src: WideString read Get_src write Set_src;
+    property units: WideString read Get_units write Set_units;
+    property name: WideString read Get_name write Set_name;
+    property width: OleVariant read Get_width write Set_width;
+    property height: OleVariant read Get_height write Set_height;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLEmbedElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F25F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLEmbedElementDisp = dispinterface
+    ['{3050F25F-98B5-11CF-BB82-00AA00BDCE0B}']
+    property hidden: WideString dispid - 2147415102;
+    property palette: WideString readonly dispid - 2147415108;
+    property pluginspage: WideString readonly dispid - 2147415107;
+    property src: WideString dispid - 2147415106;
+    property units: WideString dispid - 2147415104;
+    property name: WideString dispid - 2147418112;
+    property width: OleVariant dispid - 2147418107;
+    property height: OleVariant dispid - 2147418106;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLEmbed
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F52E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLEmbed = dispinterface
+    ['{3050F52E-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property hidden: WideString dispid - 2147415102;
+    property palette: WideString readonly dispid - 2147415108;
+    property pluginspage: WideString readonly dispid - 2147415107;
+    property src: WideString dispid - 2147415106;
+    property units: WideString dispid - 2147415104;
+    property name: WideString dispid - 2147418112;
+    property width: OleVariant dispid - 2147418107;
+    property height: OleVariant dispid - 2147418106;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLMapEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F61E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLMapEvents2 = dispinterface
+    ['{3050F61E-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLMapEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F3BA-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLMapEvents = dispinterface
+    ['{3050F3BA-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLAreasCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F383-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAreasCollection = interface(IDispatch)
+    ['{3050F383-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_length(p: Integer); safecall;
+    function Get_length: Integer; safecall;
+    function Get__newEnum: IUnknown; safecall;
+    function item(name: OleVariant; index: OleVariant): IDispatch; safecall;
+    function tags(tagName: OleVariant): IDispatch; safecall;
+    procedure add(const element: IHTMLElement; before: OleVariant); safecall;
+    procedure remove(index: Integer); safecall;
+    property length: Integer read Get_length write Set_length;
+    property _newEnum: IUnknown read Get__newEnum;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLAreasCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F383-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAreasCollectionDisp = dispinterface
+    ['{3050F383-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer dispid 1500;
+    property _newEnum: IUnknown readonly dispid - 4;
+    function item(name: OleVariant; index: OleVariant): IDispatch; dispid 0;
+    function tags(tagName: OleVariant): IDispatch; dispid 1502;
+    procedure add(const element: IHTMLElement; before: OleVariant); dispid 1503;
+    procedure remove(index: Integer); dispid 1504;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLAreasCollection2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5EC-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAreasCollection2 = interface(IDispatch)
+    ['{3050F5EC-98B5-11CF-BB82-00AA00BDCE0B}']
+    function urns(urn: OleVariant): IDispatch; safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLAreasCollection2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5EC-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAreasCollection2Disp = dispinterface
+    ['{3050F5EC-98B5-11CF-BB82-00AA00BDCE0B}']
+    function urns(urn: OleVariant): IDispatch; dispid 1505;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLAreasCollection3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F837-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAreasCollection3 = interface(IDispatch)
+    ['{3050F837-98B5-11CF-BB82-00AA00BDCE0B}']
+    function namedItem(const name: WideString): IDispatch; safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLAreasCollection3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F837-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAreasCollection3Disp = dispinterface
+    ['{3050F837-98B5-11CF-BB82-00AA00BDCE0B}']
+    function namedItem(const name: WideString): IDispatch; dispid 1506;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLMapElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F266-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLMapElement = interface(IDispatch)
+    ['{3050F266-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_areas: IHTMLAreasCollection; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    property areas: IHTMLAreasCollection read Get_areas;
+    property name: WideString read Get_name write Set_name;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLMapElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F266-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLMapElementDisp = dispinterface
+    ['{3050F266-98B5-11CF-BB82-00AA00BDCE0B}']
+    property areas: IHTMLAreasCollection readonly dispid 1002;
+    property name: WideString dispid - 2147418112;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLAreasCollection
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F56A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLAreasCollection = dispinterface
+    ['{3050F56A-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer dispid 1500;
+    property _newEnum: IUnknown readonly dispid - 4;
+    function item(name: OleVariant; index: OleVariant): IDispatch; dispid 0;
+    function tags(tagName: OleVariant): IDispatch; dispid 1502;
+    procedure add(const element: IHTMLElement; before: OleVariant); dispid 1503;
+    procedure remove(index: Integer); dispid 1504;
+    function urns(urn: OleVariant): IDispatch; dispid 1505;
+    function namedItem(const name: WideString): IDispatch; dispid 1506;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLMapElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F526-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLMapElement = dispinterface
+    ['{3050F526-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property areas: IHTMLAreasCollection readonly dispid 1002;
+    property name: WideString dispid - 2147418112;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLAreaEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F611-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLAreaEvents2 = dispinterface
+    ['{3050F611-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLAreaEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F366-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLAreaEvents = dispinterface
+    ['{3050F366-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLAreaElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F265-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAreaElement = interface(IDispatch)
+    ['{3050F265-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_shape(const p: WideString); safecall;
+    function Get_shape: WideString; safecall;
+    procedure Set_coords(const p: WideString); safecall;
+    function Get_coords: WideString; safecall;
+    procedure Set_href(const p: WideString); safecall;
+    function Get_href: WideString; safecall;
+    procedure Set_target(const p: WideString); safecall;
+    function Get_target: WideString; safecall;
+    procedure Set_alt(const p: WideString); safecall;
+    function Get_alt: WideString; safecall;
+    procedure Set_noHref(p: WordBool); safecall;
+    function Get_noHref: WordBool; safecall;
+    procedure Set_host(const p: WideString); safecall;
+    function Get_host: WideString; safecall;
+    procedure Set_hostname(const p: WideString); safecall;
+    function Get_hostname: WideString; safecall;
+    procedure Set_pathname(const p: WideString); safecall;
+    function Get_pathname: WideString; safecall;
+    procedure Set_port(const p: WideString); safecall;
+    function Get_port: WideString; safecall;
+    procedure Set_protocol(const p: WideString); safecall;
+    function Get_protocol: WideString; safecall;
+    procedure Set_search(const p: WideString); safecall;
+    function Get_search: WideString; safecall;
+    procedure Set_hash(const p: WideString); safecall;
+    function Get_hash: WideString; safecall;
+    procedure Set_onblur(p: OleVariant); safecall;
+    function Get_onblur: OleVariant; safecall;
+    procedure Set_onfocus(p: OleVariant); safecall;
+    function Get_onfocus: OleVariant; safecall;
+    procedure Set_tabIndex(p: Smallint); safecall;
+    function Get_tabIndex: Smallint; safecall;
+    procedure focus; safecall;
+    procedure blur; safecall;
+    property shape: WideString read Get_shape write Set_shape;
+    property coords: WideString read Get_coords write Set_coords;
+    property href: WideString read Get_href write Set_href;
+    property target: WideString read Get_target write Set_target;
+    property alt: WideString read Get_alt write Set_alt;
+    property noHref: WordBool read Get_noHref write Set_noHref;
+    property host: WideString read Get_host write Set_host;
+    property hostname: WideString read Get_hostname write Set_hostname;
+    property pathname: WideString read Get_pathname write Set_pathname;
+    property port: WideString read Get_port write Set_port;
+    property protocol: WideString read Get_protocol write Set_protocol;
+    property search: WideString read Get_search write Set_search;
+    property hash: WideString read Get_hash write Set_hash;
+    property onblur: OleVariant read Get_onblur write Set_onblur;
+    property onfocus: OleVariant read Get_onfocus write Set_onfocus;
+    property tabIndex: Smallint read Get_tabIndex write Set_tabIndex;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLAreaElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F265-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAreaElementDisp = dispinterface
+    ['{3050F265-98B5-11CF-BB82-00AA00BDCE0B}']
+    property shape: WideString dispid 1001;
+    property coords: WideString dispid 1002;
+    property href: WideString dispid 0;
+    property target: WideString dispid 1004;
+    property alt: WideString dispid 1005;
+    property noHref: WordBool dispid 1006;
+    property host: WideString dispid 1007;
+    property hostname: WideString dispid 1008;
+    property pathname: WideString dispid 1009;
+    property port: WideString dispid 1010;
+    property protocol: WideString dispid 1011;
+    property search: WideString dispid 1012;
+    property hash: WideString dispid 1013;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    procedure blur; dispid - 2147416110;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLAreaElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F503-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLAreaElement = dispinterface
+    ['{3050F503-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property shape: WideString dispid 1001;
+    property coords: WideString dispid 1002;
+    property href: WideString dispid 0;
+    property target: WideString dispid 1004;
+    property alt: WideString dispid 1005;
+    property noHref: WordBool dispid 1006;
+    property host: WideString dispid 1007;
+    property hostname: WideString dispid 1008;
+    property pathname: WideString dispid 1009;
+    property port: WideString dispid 1010;
+    property protocol: WideString dispid 1011;
+    property search: WideString dispid 1012;
+    property hash: WideString dispid 1013;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTableCaption
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2EB-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableCaption = interface(IDispatch)
+    ['{3050F2EB-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    procedure Set_vAlign(const p: WideString); safecall;
+    function Get_vAlign: WideString; safecall;
+    property align: WideString read Get_align write Set_align;
+    property vAlign: WideString read Get_vAlign write Set_vAlign;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTableCaptionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F2EB-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableCaptionDisp = dispinterface
+    ['{3050F2EB-98B5-11CF-BB82-00AA00BDCE0B}']
+    property align: WideString dispid - 2147418040;
+    property vAlign: WideString dispid - 2147413081;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLTableCaption
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F508-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLTableCaption = dispinterface
+    ['{3050F508-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property align: WideString dispid - 2147418040;
+    property vAlign: WideString dispid - 2147413081;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLCommentElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F20C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLCommentElement = interface(IDispatch)
+    ['{3050F20C-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_text(const p: WideString); safecall;
+    function Get_text: WideString; safecall;
+    procedure Set_atomic(p: Integer); safecall;
+    function Get_atomic: Integer; safecall;
+    property text: WideString read Get_text write Set_text;
+    property atomic: Integer read Get_atomic write Set_atomic;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLCommentElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F20C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLCommentElementDisp = dispinterface
+    ['{3050F20C-98B5-11CF-BB82-00AA00BDCE0B}']
+    property text: WideString dispid 1001;
+    property atomic: Integer dispid 1002;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLCommentElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F813-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLCommentElement2 = interface(IDispatch)
+    ['{3050F813-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_data(const p: WideString); safecall;
+    function Get_data: WideString; safecall;
+    function Get_length: Integer; safecall;
+    function substringData(offset: Integer; Count: Integer): WideString; safecall;
+    procedure appendData(const bstrstring: WideString); safecall;
+    procedure insertData(offset: Integer; const bstrstring: WideString); safecall;
+    procedure deleteData(offset: Integer; Count: Integer); safecall;
+    procedure replaceData(offset: Integer; Count: Integer; const bstrstring: WideString); safecall;
+    property data: WideString read Get_data write Set_data;
+    property length: Integer read Get_length;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLCommentElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F813-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLCommentElement2Disp = dispinterface
+    ['{3050F813-98B5-11CF-BB82-00AA00BDCE0B}']
+    property data: WideString dispid 1003;
+    property length: Integer readonly dispid 1004;
+    function substringData(offset: Integer; Count: Integer): WideString; dispid 1005;
+    procedure appendData(const bstrstring: WideString); dispid 1006;
+    procedure insertData(offset: Integer; const bstrstring: WideString); dispid 1007;
+    procedure deleteData(offset: Integer; Count: Integer); dispid 1008;
+    procedure replaceData(offset: Integer; Count: Integer; const bstrstring: WideString); dispid 1009;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLCommentElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F50A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLCommentElement = dispinterface
+    ['{3050F50A-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property text: WideString dispid 1001;
+    property atomic: Integer dispid 1002;
+    property data: WideString dispid 1003;
+    property length: Integer readonly dispid 1004;
+    function substringData(offset: Integer; Count: Integer): WideString; dispid 1005;
+    procedure appendData(const bstrstring: WideString); dispid 1006;
+    procedure insertData(offset: Integer; const bstrstring: WideString); dispid 1007;
+    procedure deleteData(offset: Integer; Count: Integer); dispid 1008;
+    procedure replaceData(offset: Integer; Count: Integer; const bstrstring: WideString); dispid 1009;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLPhraseElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F20A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLPhraseElement = interface(IDispatch)
+    ['{3050F20A-98B5-11CF-BB82-00AA00BDCE0B}']
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLPhraseElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F20A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLPhraseElementDisp = dispinterface
+    ['{3050F20A-98B5-11CF-BB82-00AA00BDCE0B}']
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLPhraseElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F824-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLPhraseElement2 = interface(IDispatch)
+    ['{3050F824-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_cite(const p: WideString); safecall;
+    function Get_cite: WideString; safecall;
+    procedure Set_dateTime(const p: WideString); safecall;
+    function Get_dateTime: WideString; safecall;
+    property cite: WideString read Get_cite write Set_cite;
+    property dateTime: WideString read Get_dateTime write Set_dateTime;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLPhraseElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F824-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLPhraseElement2Disp = dispinterface
+    ['{3050F824-98B5-11CF-BB82-00AA00BDCE0B}']
+    property cite: WideString dispid 1001;
+    property dateTime: WideString dispid 1002;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLSpanElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3F3-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLSpanElement = interface(IDispatch)
+    ['{3050F3F3-98B5-11CF-BB82-00AA00BDCE0B}']
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLSpanElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3F3-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLSpanElementDisp = dispinterface
+    ['{3050F3F3-98B5-11CF-BB82-00AA00BDCE0B}']
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLPhraseElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F52D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLPhraseElement = dispinterface
+    ['{3050F52D-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property cite: WideString dispid 1001;
+    property dateTime: WideString dispid 1002;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLSpanElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F548-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLSpanElement = dispinterface
+    ['{3050F548-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLTableEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F623-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLTableEvents2 = dispinterface
+    ['{3050F623-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLTableEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F407-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLTableEvents = dispinterface
+    ['{3050F407-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTableSection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F23B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableSection = interface(IDispatch)
+    ['{3050F23B-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    procedure Set_vAlign(const p: WideString); safecall;
+    function Get_vAlign: WideString; safecall;
+    procedure Set_bgColor(p: OleVariant); safecall;
+    function Get_bgColor: OleVariant; safecall;
+    function Get_rows: IHTMLElementCollection; safecall;
+    function insertRow(index: Integer): IDispatch; safecall;
+    procedure deleteRow(index: Integer); safecall;
+    property align: WideString read Get_align write Set_align;
+    property vAlign: WideString read Get_vAlign write Set_vAlign;
+    property bgColor: OleVariant read Get_bgColor write Set_bgColor;
+    property rows: IHTMLElementCollection read Get_rows;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTableSectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F23B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableSectionDisp = dispinterface
+    ['{3050F23B-98B5-11CF-BB82-00AA00BDCE0B}']
+    property align: WideString dispid - 2147418040;
+    property vAlign: WideString dispid - 2147413081;
+    property bgColor: OleVariant dispid - 501;
+    property rows: IHTMLElementCollection readonly dispid 1000;
+    function insertRow(index: Integer): IDispatch; dispid 1001;
+    procedure deleteRow(index: Integer); dispid 1002;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTable
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F21E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTable = interface(IDispatch)
+    ['{3050F21E-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_cols(p: Integer); safecall;
+    function Get_cols: Integer; safecall;
+    procedure Set_border(p: OleVariant); safecall;
+    function Get_border: OleVariant; safecall;
+    procedure Set_frame(const p: WideString); safecall;
+    function Get_frame: WideString; safecall;
+    procedure Set_rules(const p: WideString); safecall;
+    function Get_rules: WideString; safecall;
+    procedure Set_cellSpacing(p: OleVariant); safecall;
+    function Get_cellSpacing: OleVariant; safecall;
+    procedure Set_cellPadding(p: OleVariant); safecall;
+    function Get_cellPadding: OleVariant; safecall;
+    procedure Set_background(const p: WideString); safecall;
+    function Get_background: WideString; safecall;
+    procedure Set_bgColor(p: OleVariant); safecall;
+    function Get_bgColor: OleVariant; safecall;
+    procedure Set_borderColor(p: OleVariant); safecall;
+    function Get_borderColor: OleVariant; safecall;
+    procedure Set_borderColorLight(p: OleVariant); safecall;
+    function Get_borderColorLight: OleVariant; safecall;
+    procedure Set_borderColorDark(p: OleVariant); safecall;
+    function Get_borderColorDark: OleVariant; safecall;
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    procedure refresh; safecall;
+    function Get_rows: IHTMLElementCollection; safecall;
+    procedure Set_width(p: OleVariant); safecall;
+    function Get_width: OleVariant; safecall;
+    procedure Set_height(p: OleVariant); safecall;
+    function Get_height: OleVariant; safecall;
+    procedure Set_dataPageSize(p: Integer); safecall;
+    function Get_dataPageSize: Integer; safecall;
+    procedure nextPage; safecall;
+    procedure previousPage; safecall;
+    function Get_tHead: IHTMLTableSection; safecall;
+    function Get_tFoot: IHTMLTableSection; safecall;
+    function Get_tBodies: IHTMLElementCollection; safecall;
+    function Get_caption: IHTMLTableCaption; safecall;
+    function createTHead: IDispatch; safecall;
+    procedure deleteTHead; safecall;
+    function createTFoot: IDispatch; safecall;
+    procedure deleteTFoot; safecall;
+    function createCaption: IHTMLTableCaption; safecall;
+    procedure deleteCaption; safecall;
+    function insertRow(index: Integer): IDispatch; safecall;
+    procedure deleteRow(index: Integer); safecall;
+    function Get_readyState: WideString; safecall;
+    procedure Set_onreadystatechange(p: OleVariant); safecall;
+    function Get_onreadystatechange: OleVariant; safecall;
+    property cols: Integer read Get_cols write Set_cols;
+    property border: OleVariant read Get_border write Set_border;
+    property frame: WideString read Get_frame write Set_frame;
+    property rules: WideString read Get_rules write Set_rules;
+    property cellSpacing: OleVariant read Get_cellSpacing write Set_cellSpacing;
+    property cellPadding: OleVariant read Get_cellPadding write Set_cellPadding;
+    property background: WideString read Get_background write Set_background;
+    property bgColor: OleVariant read Get_bgColor write Set_bgColor;
+    property borderColor: OleVariant read Get_borderColor write Set_borderColor;
+    property borderColorLight: OleVariant read Get_borderColorLight write Set_borderColorLight;
+    property borderColorDark: OleVariant read Get_borderColorDark write Set_borderColorDark;
+    property align: WideString read Get_align write Set_align;
+    property rows: IHTMLElementCollection read Get_rows;
+    property width: OleVariant read Get_width write Set_width;
+    property height: OleVariant read Get_height write Set_height;
+    property dataPageSize: Integer read Get_dataPageSize write Set_dataPageSize;
+    property tHead: IHTMLTableSection read Get_tHead;
+    property tFoot: IHTMLTableSection read Get_tFoot;
+    property tBodies: IHTMLElementCollection read Get_tBodies;
+    property caption: IHTMLTableCaption read Get_caption;
+    property readyState: WideString read Get_readyState;
+    property onreadystatechange: OleVariant read Get_onreadystatechange write Set_onreadystatechange;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTableDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F21E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableDisp = dispinterface
+    ['{3050F21E-98B5-11CF-BB82-00AA00BDCE0B}']
+    property cols: Integer dispid 1001;
+    property border: OleVariant dispid 1002;
+    property frame: WideString dispid 1004;
+    property rules: WideString dispid 1003;
+    property cellSpacing: OleVariant dispid 1005;
+    property cellPadding: OleVariant dispid 1006;
+    property background: WideString dispid - 2147413111;
+    property bgColor: OleVariant dispid - 501;
+    property borderColor: OleVariant dispid - 2147413084;
+    property borderColorLight: OleVariant dispid - 2147413083;
+    property borderColorDark: OleVariant dispid - 2147413082;
+    property align: WideString dispid - 2147418039;
+    procedure refresh; dispid 1015;
+    property rows: IHTMLElementCollection readonly dispid 1016;
+    property width: OleVariant dispid - 2147418107;
+    property height: OleVariant dispid - 2147418106;
+    property dataPageSize: Integer dispid 1017;
+    procedure nextPage; dispid 1018;
+    procedure previousPage; dispid 1019;
+    property tHead: IHTMLTableSection readonly dispid 1020;
+    property tFoot: IHTMLTableSection readonly dispid 1021;
+    property tBodies: IHTMLElementCollection readonly dispid 1024;
+    property caption: IHTMLTableCaption readonly dispid 1025;
+    function createTHead: IDispatch; dispid 1026;
+    procedure deleteTHead; dispid 1027;
+    function createTFoot: IDispatch; dispid 1028;
+    procedure deleteTFoot; dispid 1029;
+    function createCaption: IHTMLTableCaption; dispid 1030;
+    procedure deleteCaption; dispid 1031;
+    function insertRow(index: Integer): IDispatch; dispid 1032;
+    procedure deleteRow(index: Integer); dispid 1033;
+    property readyState: WideString readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTable2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4AD-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTable2 = interface(IDispatch)
+    ['{3050F4AD-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure firstPage; safecall;
+    procedure lastPage; safecall;
+    function Get_cells: IHTMLElementCollection; safecall;
+    function moveRow(indexFrom: Integer; indexTo: Integer): IDispatch; safecall;
+    property cells: IHTMLElementCollection read Get_cells;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTable2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4AD-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTable2Disp = dispinterface
+    ['{3050F4AD-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure firstPage; dispid 1035;
+    procedure lastPage; dispid 1036;
+    property cells: IHTMLElementCollection readonly dispid 1037;
+    function moveRow(indexFrom: Integer; indexTo: Integer): IDispatch; dispid 1038;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTable3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F829-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTable3 = interface(IDispatch)
+    ['{3050F829-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_summary(const p: WideString); safecall;
+    function Get_summary: WideString; safecall;
+    property summary: WideString read Get_summary write Set_summary;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTable3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F829-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTable3Disp = dispinterface
+    ['{3050F829-98B5-11CF-BB82-00AA00BDCE0B}']
+    property summary: WideString dispid 1039;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTableCol
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F23A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableCol = interface(IDispatch)
+    ['{3050F23A-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_span(p: Integer); safecall;
+    function Get_span: Integer; safecall;
+    procedure Set_width(p: OleVariant); safecall;
+    function Get_width: OleVariant; safecall;
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    procedure Set_vAlign(const p: WideString); safecall;
+    function Get_vAlign: WideString; safecall;
+    property span: Integer read Get_span write Set_span;
+    property width: OleVariant read Get_width write Set_width;
+    property align: WideString read Get_align write Set_align;
+    property vAlign: WideString read Get_vAlign write Set_vAlign;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTableColDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F23A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableColDisp = dispinterface
+    ['{3050F23A-98B5-11CF-BB82-00AA00BDCE0B}']
+    property span: Integer dispid 1001;
+    property width: OleVariant dispid - 2147418107;
+    property align: WideString dispid - 2147418040;
+    property vAlign: WideString dispid - 2147413081;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTableCol2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F82A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableCol2 = interface(IDispatch)
+    ['{3050F82A-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_ch(const p: WideString); safecall;
+    function Get_ch: WideString; safecall;
+    procedure Set_chOff(const p: WideString); safecall;
+    function Get_chOff: WideString; safecall;
+    property ch: WideString read Get_ch write Set_ch;
+    property chOff: WideString read Get_chOff write Set_chOff;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTableCol2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F82A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableCol2Disp = dispinterface
+    ['{3050F82A-98B5-11CF-BB82-00AA00BDCE0B}']
+    property ch: WideString dispid 1002;
+    property chOff: WideString dispid 1003;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTableSection2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5C7-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableSection2 = interface(IDispatch)
+    ['{3050F5C7-98B5-11CF-BB82-00AA00BDCE0B}']
+    function moveRow(indexFrom: Integer; indexTo: Integer): IDispatch; safecall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTableSection2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5C7-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableSection2Disp = dispinterface
+    ['{3050F5C7-98B5-11CF-BB82-00AA00BDCE0B}']
+    function moveRow(indexFrom: Integer; indexTo: Integer): IDispatch; dispid 1003;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTableSection3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F82B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableSection3 = interface(IDispatch)
+    ['{3050F82B-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_ch(const p: WideString); safecall;
+    function Get_ch: WideString; safecall;
+    procedure Set_chOff(const p: WideString); safecall;
+    function Get_chOff: WideString; safecall;
+    property ch: WideString read Get_ch write Set_ch;
+    property chOff: WideString read Get_chOff write Set_chOff;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTableSection3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F82B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableSection3Disp = dispinterface
+    ['{3050F82B-98B5-11CF-BB82-00AA00BDCE0B}']
+    property ch: WideString dispid 1004;
+    property chOff: WideString dispid 1005;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTableRow
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F23C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableRow = interface(IDispatch)
+    ['{3050F23C-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    procedure Set_vAlign(const p: WideString); safecall;
+    function Get_vAlign: WideString; safecall;
+    procedure Set_bgColor(p: OleVariant); safecall;
+    function Get_bgColor: OleVariant; safecall;
+    procedure Set_borderColor(p: OleVariant); safecall;
+    function Get_borderColor: OleVariant; safecall;
+    procedure Set_borderColorLight(p: OleVariant); safecall;
+    function Get_borderColorLight: OleVariant; safecall;
+    procedure Set_borderColorDark(p: OleVariant); safecall;
+    function Get_borderColorDark: OleVariant; safecall;
+    function Get_rowIndex: Integer; safecall;
+    function Get_sectionRowIndex: Integer; safecall;
+    function Get_cells: IHTMLElementCollection; safecall;
+    function insertCell(index: Integer): IDispatch; safecall;
+    procedure deleteCell(index: Integer); safecall;
+    property align: WideString read Get_align write Set_align;
+    property vAlign: WideString read Get_vAlign write Set_vAlign;
+    property bgColor: OleVariant read Get_bgColor write Set_bgColor;
+    property borderColor: OleVariant read Get_borderColor write Set_borderColor;
+    property borderColorLight: OleVariant read Get_borderColorLight write Set_borderColorLight;
+    property borderColorDark: OleVariant read Get_borderColorDark write Set_borderColorDark;
+    property rowIndex: Integer read Get_rowIndex;
+    property sectionRowIndex: Integer read Get_sectionRowIndex;
+    property cells: IHTMLElementCollection read Get_cells;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTableRowDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F23C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableRowDisp = dispinterface
+    ['{3050F23C-98B5-11CF-BB82-00AA00BDCE0B}']
+    property align: WideString dispid - 2147418040;
+    property vAlign: WideString dispid - 2147413081;
+    property bgColor: OleVariant dispid - 501;
+    property borderColor: OleVariant dispid - 2147413084;
+    property borderColorLight: OleVariant dispid - 2147413083;
+    property borderColorDark: OleVariant dispid - 2147413082;
+    property rowIndex: Integer readonly dispid 1000;
+    property sectionRowIndex: Integer readonly dispid 1001;
+    property cells: IHTMLElementCollection readonly dispid 1002;
+    function insertCell(index: Integer): IDispatch; dispid 1003;
+    procedure deleteCell(index: Integer); dispid 1004;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTableRow2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4A1-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableRow2 = interface(IDispatch)
+    ['{3050F4A1-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_height(p: OleVariant); safecall;
+    function Get_height: OleVariant; safecall;
+    property height: OleVariant read Get_height write Set_height;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTableRow2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4A1-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableRow2Disp = dispinterface
+    ['{3050F4A1-98B5-11CF-BB82-00AA00BDCE0B}']
+    property height: OleVariant dispid - 2147418106;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTableRow3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F82C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableRow3 = interface(IDispatch)
+    ['{3050F82C-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_ch(const p: WideString); safecall;
+    function Get_ch: WideString; safecall;
+    procedure Set_chOff(const p: WideString); safecall;
+    function Get_chOff: WideString; safecall;
+    property ch: WideString read Get_ch write Set_ch;
+    property chOff: WideString read Get_chOff write Set_chOff;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTableRow3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F82C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableRow3Disp = dispinterface
+    ['{3050F82C-98B5-11CF-BB82-00AA00BDCE0B}']
+    property ch: WideString dispid 1009;
+    property chOff: WideString dispid 1010;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTableRowMetrics
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F413-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableRowMetrics = interface(IDispatch)
+    ['{3050F413-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_clientHeight: Integer; safecall;
+    function Get_clientWidth: Integer; safecall;
+    function Get_clientTop: Integer; safecall;
+    function Get_clientLeft: Integer; safecall;
+    property clientHeight: Integer read Get_clientHeight;
+    property clientWidth: Integer read Get_clientWidth;
+    property clientTop: Integer read Get_clientTop;
+    property clientLeft: Integer read Get_clientLeft;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTableRowMetricsDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F413-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableRowMetricsDisp = dispinterface
+    ['{3050F413-98B5-11CF-BB82-00AA00BDCE0B}']
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTableCell
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F23D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableCell = interface(IDispatch)
+    ['{3050F23D-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_rowSpan(p: Integer); safecall;
+    function Get_rowSpan: Integer; safecall;
+    procedure Set_colSpan(p: Integer); safecall;
+    function Get_colSpan: Integer; safecall;
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    procedure Set_vAlign(const p: WideString); safecall;
+    function Get_vAlign: WideString; safecall;
+    procedure Set_bgColor(p: OleVariant); safecall;
+    function Get_bgColor: OleVariant; safecall;
+    procedure Set_noWrap(p: WordBool); safecall;
+    function Get_noWrap: WordBool; safecall;
+    procedure Set_background(const p: WideString); safecall;
+    function Get_background: WideString; safecall;
+    procedure Set_borderColor(p: OleVariant); safecall;
+    function Get_borderColor: OleVariant; safecall;
+    procedure Set_borderColorLight(p: OleVariant); safecall;
+    function Get_borderColorLight: OleVariant; safecall;
+    procedure Set_borderColorDark(p: OleVariant); safecall;
+    function Get_borderColorDark: OleVariant; safecall;
+    procedure Set_width(p: OleVariant); safecall;
+    function Get_width: OleVariant; safecall;
+    procedure Set_height(p: OleVariant); safecall;
+    function Get_height: OleVariant; safecall;
+    function Get_cellIndex: Integer; safecall;
+    property rowSpan: Integer read Get_rowSpan write Set_rowSpan;
+    property colSpan: Integer read Get_colSpan write Set_colSpan;
+    property align: WideString read Get_align write Set_align;
+    property vAlign: WideString read Get_vAlign write Set_vAlign;
+    property bgColor: OleVariant read Get_bgColor write Set_bgColor;
+    property noWrap: WordBool read Get_noWrap write Set_noWrap;
+    property background: WideString read Get_background write Set_background;
+    property borderColor: OleVariant read Get_borderColor write Set_borderColor;
+    property borderColorLight: OleVariant read Get_borderColorLight write Set_borderColorLight;
+    property borderColorDark: OleVariant read Get_borderColorDark write Set_borderColorDark;
+    property width: OleVariant read Get_width write Set_width;
+    property height: OleVariant read Get_height write Set_height;
+    property cellIndex: Integer read Get_cellIndex;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTableCellDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F23D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableCellDisp = dispinterface
+    ['{3050F23D-98B5-11CF-BB82-00AA00BDCE0B}']
+    property rowSpan: Integer dispid 2001;
+    property colSpan: Integer dispid 2002;
+    property align: WideString dispid - 2147418040;
+    property vAlign: WideString dispid - 2147413081;
+    property bgColor: OleVariant dispid - 501;
+    property noWrap: WordBool dispid - 2147413107;
+    property background: WideString dispid - 2147413111;
+    property borderColor: OleVariant dispid - 2147413084;
+    property borderColorLight: OleVariant dispid - 2147413083;
+    property borderColorDark: OleVariant dispid - 2147413082;
+    property width: OleVariant dispid - 2147418107;
+    property height: OleVariant dispid - 2147418106;
+    property cellIndex: Integer readonly dispid 2003;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLTableCell2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F82D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableCell2 = interface(IDispatch)
+    ['{3050F82D-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_abbr(const p: WideString); safecall;
+    function Get_abbr: WideString; safecall;
+    procedure Set_axis(const p: WideString); safecall;
+    function Get_axis: WideString; safecall;
+    procedure Set_ch(const p: WideString); safecall;
+    function Get_ch: WideString; safecall;
+    procedure Set_chOff(const p: WideString); safecall;
+    function Get_chOff: WideString; safecall;
+    procedure Set_headers(const p: WideString); safecall;
+    function Get_headers: WideString; safecall;
+    procedure Set_scope(const p: WideString); safecall;
+    function Get_scope: WideString; safecall;
+    property abbr: WideString read Get_abbr write Set_abbr;
+    property axis: WideString read Get_axis write Set_axis;
+    property ch: WideString read Get_ch write Set_ch;
+    property chOff: WideString read Get_chOff write Set_chOff;
+    property headers: WideString read Get_headers write Set_headers;
+    property scope: WideString read Get_scope write Set_scope;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLTableCell2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F82D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLTableCell2Disp = dispinterface
+    ['{3050F82D-98B5-11CF-BB82-00AA00BDCE0B}']
+    property abbr: WideString dispid 2004;
+    property axis: WideString dispid 2005;
+    property ch: WideString dispid 2006;
+    property chOff: WideString dispid 2007;
+    property headers: WideString dispid 2008;
+    property scope: WideString dispid 2009;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLTable
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F532-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLTable = dispinterface
+    ['{3050F532-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property cols: Integer dispid 1001;
+    property border: OleVariant dispid 1002;
+    property frame: WideString dispid 1004;
+    property rules: WideString dispid 1003;
+    property cellSpacing: OleVariant dispid 1005;
+    property cellPadding: OleVariant dispid 1006;
+    property background: WideString dispid - 2147413111;
+    property bgColor: OleVariant dispid - 501;
+    property borderColor: OleVariant dispid - 2147413084;
+    property borderColorLight: OleVariant dispid - 2147413083;
+    property borderColorDark: OleVariant dispid - 2147413082;
+    property align: WideString dispid - 2147418039;
+    procedure refresh; dispid 1015;
+    property rows: IHTMLElementCollection readonly dispid 1016;
+    property width: OleVariant dispid - 2147418107;
+    property height: OleVariant dispid - 2147418106;
+    property dataPageSize: Integer dispid 1017;
+    procedure nextPage; dispid 1018;
+    procedure previousPage; dispid 1019;
+    property tHead: IHTMLTableSection readonly dispid 1020;
+    property tFoot: IHTMLTableSection readonly dispid 1021;
+    property tBodies: IHTMLElementCollection readonly dispid 1024;
+    property caption: IHTMLTableCaption readonly dispid 1025;
+    function createTHead: IDispatch; dispid 1026;
+    procedure deleteTHead; dispid 1027;
+    function createTFoot: IDispatch; dispid 1028;
+    procedure deleteTFoot; dispid 1029;
+    function createCaption: IHTMLTableCaption; dispid 1030;
+    procedure deleteCaption; dispid 1031;
+    function insertRow(index: Integer): IDispatch; dispid 1032;
+    procedure deleteRow(index: Integer); dispid 1033;
+    procedure firstPage; dispid 1035;
+    procedure lastPage; dispid 1036;
+    property cells: IHTMLElementCollection readonly dispid 1037;
+    function moveRow(indexFrom: Integer; indexTo: Integer): IDispatch; dispid 1038;
+    property summary: WideString dispid 1039;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLTableCol
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F533-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLTableCol = dispinterface
+    ['{3050F533-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property span: Integer dispid 1001;
+    property width: OleVariant dispid - 2147418107;
+    property align: WideString dispid - 2147418040;
+    property vAlign: WideString dispid - 2147413081;
+    property ch: WideString dispid 1002;
+    property chOff: WideString dispid 1003;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLTableSection
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F534-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLTableSection = dispinterface
+    ['{3050F534-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property align: WideString dispid - 2147418040;
+    property vAlign: WideString dispid - 2147413081;
+    property bgColor: OleVariant dispid - 501;
+    property rows: IHTMLElementCollection readonly dispid 1000;
+    function insertRow(index: Integer): IDispatch; dispid 1001;
+    procedure deleteRow(index: Integer); dispid 1002;
+    function moveRow(indexFrom: Integer; indexTo: Integer): IDispatch; dispid 1003;
+    property ch: WideString dispid 1004;
+    property chOff: WideString dispid 1005;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLTableRow
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F535-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLTableRow = dispinterface
+    ['{3050F535-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property align: WideString dispid - 2147418040;
+    property vAlign: WideString dispid - 2147413081;
+    property bgColor: OleVariant dispid - 501;
+    property borderColor: OleVariant dispid - 2147413084;
+    property borderColorLight: OleVariant dispid - 2147413083;
+    property borderColorDark: OleVariant dispid - 2147413082;
+    property rowIndex: Integer readonly dispid 1000;
+    property sectionRowIndex: Integer readonly dispid 1001;
+    property cells: IHTMLElementCollection readonly dispid 1002;
+    function insertCell(index: Integer): IDispatch; dispid 1003;
+    procedure deleteCell(index: Integer); dispid 1004;
+    property height: OleVariant dispid - 2147418106;
+    property ch: WideString dispid 1009;
+    property chOff: WideString dispid 1010;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLTableCell
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F536-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLTableCell = dispinterface
+    ['{3050F536-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property rowSpan: Integer dispid 2001;
+    property colSpan: Integer dispid 2002;
+    property align: WideString dispid - 2147418040;
+    property vAlign: WideString dispid - 2147413081;
+    property bgColor: OleVariant dispid - 501;
+    property noWrap: WordBool dispid - 2147413107;
+    property background: WideString dispid - 2147413111;
+    property borderColor: OleVariant dispid - 2147413084;
+    property borderColorLight: OleVariant dispid - 2147413083;
+    property borderColorDark: OleVariant dispid - 2147413082;
+    property width: OleVariant dispid - 2147418107;
+    property height: OleVariant dispid - 2147418106;
+    property cellIndex: Integer readonly dispid 2003;
+    property abbr: WideString dispid 2004;
+    property axis: WideString dispid 2005;
+    property ch: WideString dispid 2006;
+    property chOff: WideString dispid 2007;
+    property headers: WideString dispid 2008;
+    property scope: WideString dispid 2009;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLScriptEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F621-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLScriptEvents2 = dispinterface
+    ['{3050F621-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+    procedure onerror(const pEvtObj: IHTMLEventObj); dispid 1002;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLScriptEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F3E2-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLScriptEvents = dispinterface
+    ['{3050F3E2-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+    procedure onerror; dispid 1002;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLScriptElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F28B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLScriptElement = interface(IDispatch)
+    ['{3050F28B-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_src(const p: WideString); safecall;
+    function Get_src: WideString; safecall;
+    procedure Set_htmlFor(const p: WideString); safecall;
+    function Get_htmlFor: WideString; safecall;
+    procedure Set_event(const p: WideString); safecall;
+    function Get_event: WideString; safecall;
+    procedure Set_text(const p: WideString); safecall;
+    function Get_text: WideString; safecall;
+    procedure Set_defer(p: WordBool); safecall;
+    function Get_defer: WordBool; safecall;
+    function Get_readyState: WideString; safecall;
+    procedure Set_onerror(p: OleVariant); safecall;
+    function Get_onerror: OleVariant; safecall;
+    procedure Set_type_(const p: WideString); safecall;
+    function Get_type_: WideString; safecall;
+    property src: WideString read Get_src write Set_src;
+    property htmlFor: WideString read Get_htmlFor write Set_htmlFor;
+    property event: WideString read Get_event write Set_event;
+    property text: WideString read Get_text write Set_text;
+    property defer: WordBool read Get_defer write Set_defer;
+    property readyState: WideString read Get_readyState;
+    property onerror: OleVariant read Get_onerror write Set_onerror;
+    property type_: WideString read Get_type_ write Set_type_;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLScriptElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F28B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLScriptElementDisp = dispinterface
+    ['{3050F28B-98B5-11CF-BB82-00AA00BDCE0B}']
+    property src: WideString dispid 1001;
+    property htmlFor: WideString dispid 1004;
+    property event: WideString dispid 1005;
+    property text: WideString dispid 1006;
+    property defer: WordBool dispid 1007;
+    property readyState: WideString readonly dispid - 2147412996;
+    property onerror: OleVariant dispid - 2147412083;
+    property type_: WideString dispid 1009;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLScriptElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F828-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLScriptElement2 = interface(IDispatch)
+    ['{3050F828-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_charset(const p: WideString); safecall;
+    function Get_charset: WideString; safecall;
+    property charset: WideString read Get_charset write Set_charset;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLScriptElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F828-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLScriptElement2Disp = dispinterface
+    ['{3050F828-98B5-11CF-BB82-00AA00BDCE0B}']
+    property charset: WideString dispid 1010;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLScriptElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F530-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLScriptElement = dispinterface
+    ['{3050F530-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property src: WideString dispid 1001;
+    property htmlFor: WideString dispid 1004;
+    property event: WideString dispid 1005;
+    property text: WideString dispid 1006;
+    property defer: WordBool dispid 1007;
+    property onerror: OleVariant dispid - 2147412083;
+    property type_: WideString dispid 1009;
+    property charset: WideString dispid 1010;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLNoShowElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F38A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLNoShowElement = interface(IDispatch)
+    ['{3050F38A-98B5-11CF-BB82-00AA00BDCE0B}']
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLNoShowElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F38A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLNoShowElementDisp = dispinterface
+    ['{3050F38A-98B5-11CF-BB82-00AA00BDCE0B}']
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLNoShowElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F528-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLNoShowElement = dispinterface
+    ['{3050F528-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLObjectElementEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F620-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLObjectElementEvents2 = dispinterface
+    ['{3050F620-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    function onerror(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418093;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 2147418092;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLObjectElementEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F3C4-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLObjectElementEvents = dispinterface
+    ['{3050F3C4-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    function onerror: WordBool; dispid - 2147418093;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 2147418092;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLObjectElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F24F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLObjectElement = interface(IDispatch)
+    ['{3050F24F-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_object_: IDispatch; safecall;
+    function Get_classid: WideString; safecall;
+    function Get_data: WideString; safecall;
+    procedure _Set_recordset(const p: IDispatch); safecall;
+    function Get_recordset: IDispatch; safecall;
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_codeBase(const p: WideString); safecall;
+    function Get_codeBase: WideString; safecall;
+    procedure Set_codeType(const p: WideString); safecall;
+    function Get_codeType: WideString; safecall;
+    procedure Set_code(const p: WideString); safecall;
+    function Get_code: WideString; safecall;
+    function Get_BaseHref: WideString; safecall;
+    procedure Set_type_(const p: WideString); safecall;
+    function Get_type_: WideString; safecall;
+    function Get_form: IHTMLFormElement; safecall;
+    procedure Set_width(p: OleVariant); safecall;
+    function Get_width: OleVariant; safecall;
+    procedure Set_height(p: OleVariant); safecall;
+    function Get_height: OleVariant; safecall;
+    function Get_readyState: Integer; safecall;
+    procedure Set_onreadystatechange(p: OleVariant); safecall;
+    function Get_onreadystatechange: OleVariant; safecall;
+    procedure Set_onerror(p: OleVariant); safecall;
+    function Get_onerror: OleVariant; safecall;
+    procedure Set_altHtml(const p: WideString); safecall;
+    function Get_altHtml: WideString; safecall;
+    procedure Set_vspace(p: Integer); safecall;
+    function Get_vspace: Integer; safecall;
+    procedure Set_hspace(p: Integer); safecall;
+    function Get_hspace: Integer; safecall;
+    property object_: IDispatch read Get_object_;
+    property classid: WideString read Get_classid;
+    property data: WideString read Get_data;
+    property recordset: IDispatch read Get_recordset write _Set_recordset;
+    property align: WideString read Get_align write Set_align;
+    property name: WideString read Get_name write Set_name;
+    property codeBase: WideString read Get_codeBase write Set_codeBase;
+    property codeType: WideString read Get_codeType write Set_codeType;
+    property code: WideString read Get_code write Set_code;
+    property BaseHref: WideString read Get_BaseHref;
+    property type_: WideString read Get_type_ write Set_type_;
+    property form: IHTMLFormElement read Get_form;
+    property width: OleVariant read Get_width write Set_width;
+    property height: OleVariant read Get_height write Set_height;
+    property readyState: Integer read Get_readyState;
+    property onreadystatechange: OleVariant read Get_onreadystatechange write Set_onreadystatechange;
+    property onerror: OleVariant read Get_onerror write Set_onerror;
+    property altHtml: WideString read Get_altHtml write Set_altHtml;
+    property vspace: Integer read Get_vspace write Set_vspace;
+    property hspace: Integer read Get_hspace write Set_hspace;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLObjectElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F24F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLObjectElementDisp = dispinterface
+    ['{3050F24F-98B5-11CF-BB82-00AA00BDCE0B}']
+    property object_: IDispatch readonly dispid - 2147415111;
+    property classid: WideString readonly dispid - 2147415110;
+    property data: WideString readonly dispid - 2147415109;
+    property recordset: IDispatch dispid - 2147415107;
+    property align: WideString dispid - 2147418039;
+    property name: WideString dispid - 2147418112;
+    property codeBase: WideString dispid - 2147415106;
+    property codeType: WideString dispid - 2147415105;
+    property code: WideString dispid - 2147415104;
+    property BaseHref: WideString readonly dispid - 2147418110;
+    property type_: WideString dispid - 2147415103;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    property width: OleVariant dispid - 2147418107;
+    property height: OleVariant dispid - 2147418106;
+    property readyState: Integer readonly dispid - 2147415102;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onerror: OleVariant dispid - 2147412083;
+    property altHtml: WideString dispid - 2147415101;
+    property vspace: Integer dispid - 2147415100;
+    property hspace: Integer dispid - 2147415099;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLObjectElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4CD-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLObjectElement2 = interface(IDispatch)
+    ['{3050F4CD-98B5-11CF-BB82-00AA00BDCE0B}']
+    function namedRecordset(const dataMember: WideString; var hierarchy: OleVariant): IDispatch; safecall;
+    procedure Set_classid(const p: WideString); safecall;
+    function Get_classid: WideString; safecall;
+    procedure Set_data(const p: WideString); safecall;
+    function Get_data: WideString; safecall;
+    property classid: WideString read Get_classid write Set_classid;
+    property data: WideString read Get_data write Set_data;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLObjectElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4CD-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLObjectElement2Disp = dispinterface
+    ['{3050F4CD-98B5-11CF-BB82-00AA00BDCE0B}']
+    function namedRecordset(const dataMember: WideString; var hierarchy: OleVariant): IDispatch; dispid - 2147415098;
+    property classid: WideString dispid - 2147415110;
+    property data: WideString dispid - 2147415109;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLObjectElement3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F827-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLObjectElement3 = interface(IDispatch)
+    ['{3050F827-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_archive(const p: WideString); safecall;
+    function Get_archive: WideString; safecall;
+    procedure Set_alt(const p: WideString); safecall;
+    function Get_alt: WideString; safecall;
+    procedure Set_declare(p: WordBool); safecall;
+    function Get_declare: WordBool; safecall;
+    procedure Set_standby(const p: WideString); safecall;
+    function Get_standby: WideString; safecall;
+    procedure Set_border(p: OleVariant); safecall;
+    function Get_border: OleVariant; safecall;
+    procedure Set_useMap(const p: WideString); safecall;
+    function Get_useMap: WideString; safecall;
+    property archive: WideString read Get_archive write Set_archive;
+    property alt: WideString read Get_alt write Set_alt;
+    property declare: WordBool read Get_declare write Set_declare;
+    property standby: WideString read Get_standby write Set_standby;
+    property border: OleVariant read Get_border write Set_border;
+    property useMap: WideString read Get_useMap write Set_useMap;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLObjectElement3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F827-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLObjectElement3Disp = dispinterface
+    ['{3050F827-98B5-11CF-BB82-00AA00BDCE0B}']
+    property archive: WideString dispid - 2147415097;
+    property alt: WideString dispid - 2147415096;
+    property declare: WordBool dispid - 2147415095;
+    property standby: WideString dispid - 2147415094;
+    property border: OleVariant dispid - 2147415093;
+    property useMap: WideString dispid - 2147415092;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLParamElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F83D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLParamElement = interface(IDispatch)
+    ['{3050F83D-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_value(const p: WideString); safecall;
+    function Get_value: WideString; safecall;
+    procedure Set_type_(const p: WideString); safecall;
+    function Get_type_: WideString; safecall;
+    procedure Set_valueType(const p: WideString); safecall;
+    function Get_valueType: WideString; safecall;
+    property name: WideString read Get_name write Set_name;
+    property value: WideString read Get_value write Set_value;
+    property type_: WideString read Get_type_ write Set_type_;
+    property valueType: WideString read Get_valueType write Set_valueType;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLParamElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F83D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLParamElementDisp = dispinterface
+    ['{3050F83D-98B5-11CF-BB82-00AA00BDCE0B}']
+    property name: WideString dispid 1001;
+    property value: WideString dispid 1002;
+    property type_: WideString dispid 1003;
+    property valueType: WideString dispid 1004;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLObjectElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F529-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLObjectElement = dispinterface
+    ['{3050F529-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property object_: IDispatch readonly dispid - 2147415111;
+    property recordset: IDispatch dispid - 2147415107;
+    property align: WideString dispid - 2147418039;
+    property name: WideString dispid - 2147418112;
+    property codeBase: WideString dispid - 2147415106;
+    property codeType: WideString dispid - 2147415105;
+    property code: WideString dispid - 2147415104;
+    property BaseHref: WideString readonly dispid - 2147418110;
+    property type_: WideString dispid - 2147415103;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    property width: OleVariant dispid - 2147418107;
+    property height: OleVariant dispid - 2147418106;
+    property onerror: OleVariant dispid - 2147412083;
+    property altHtml: WideString dispid - 2147415101;
+    property vspace: Integer dispid - 2147415100;
+    property hspace: Integer dispid - 2147415099;
+    function namedRecordset(const dataMember: WideString; var hierarchy: OleVariant): IDispatch; dispid - 2147415098;
+    property classid: WideString dispid - 2147415110;
+    property data: WideString dispid - 2147415109;
+    property archive: WideString dispid - 2147415097;
+    property alt: WideString dispid - 2147415096;
+    property declare: WordBool dispid - 2147415095;
+    property standby: WideString dispid - 2147415094;
+    property border: OleVariant dispid - 2147415093;
+    property useMap: WideString dispid - 2147415092;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLParamElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F590-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLParamElement = dispinterface
+    ['{3050F590-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property name: WideString dispid 1001;
+    property value: WideString dispid 1002;
+    property type_: WideString dispid 1003;
+    property valueType: WideString dispid 1004;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLFrameSiteEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F7FF-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLFrameSiteEvents2 = dispinterface
+    ['{3050F7FF-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+    procedure onload(const pEvtObj: IHTMLEventObj); dispid 1003;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLFrameSiteEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F800-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLFrameSiteEvents = dispinterface
+    ['{3050F800-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+    procedure onload; dispid 1003;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLFrameBase2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F6DB-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFrameBase2 = interface(IDispatch)
+    ['{3050F6DB-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_contentWindow: IHTMLWindow2; safecall;
+    procedure Set_onload(p: OleVariant); safecall;
+    function Get_onload: OleVariant; safecall;
+    procedure Set_onreadystatechange(p: OleVariant); safecall;
+    function Get_onreadystatechange: OleVariant; safecall;
+    function Get_readyState: WideString; safecall;
+    procedure Set_allowTransparency(p: WordBool); safecall;
+    function Get_allowTransparency: WordBool; safecall;
+    property contentWindow: IHTMLWindow2 read Get_contentWindow;
+    property onload: OleVariant read Get_onload write Set_onload;
+    property onreadystatechange: OleVariant read Get_onreadystatechange write Set_onreadystatechange;
+    property readyState: WideString read Get_readyState;
+    property allowTransparency: WordBool read Get_allowTransparency write Set_allowTransparency;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLFrameBase2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F6DB-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFrameBase2Disp = dispinterface
+    ['{3050F6DB-98B5-11CF-BB82-00AA00BDCE0B}']
+    property contentWindow: IHTMLWindow2 readonly dispid - 2147415103;
+    property onload: OleVariant dispid - 2147412080;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property readyState: WideString readonly dispid - 2147412996;
+    property allowTransparency: WordBool dispid - 2147412906;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLFrameBase3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F82E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFrameBase3 = interface(IDispatch)
+    ['{3050F82E-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_longDesc(const p: WideString); safecall;
+    function Get_longDesc: WideString; safecall;
+    property longDesc: WideString read Get_longDesc write Set_longDesc;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLFrameBase3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F82E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFrameBase3Disp = dispinterface
+    ['{3050F82E-98B5-11CF-BB82-00AA00BDCE0B}']
+    property longDesc: WideString dispid - 2147415102;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLFrameBase
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F541-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLFrameBase = dispinterface
+    ['{3050F541-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property src: WideString dispid - 2147415112;
+    property name: WideString dispid - 2147418112;
+    property border: OleVariant dispid - 2147415110;
+    property frameBorder: WideString dispid - 2147415109;
+    property frameSpacing: OleVariant dispid - 2147415108;
+    property marginWidth: OleVariant dispid - 2147415107;
+    property marginHeight: OleVariant dispid - 2147415106;
+    property noResize: WordBool dispid - 2147415105;
+    property scrolling: WideString dispid - 2147415104;
+    property contentWindow: IHTMLWindow2 readonly dispid - 2147415103;
+    property onload: OleVariant dispid - 2147412080;
+    property allowTransparency: WordBool dispid - 2147412906;
+    property longDesc: WideString dispid - 2147415102;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLFrameElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F313-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFrameElement = interface(IDispatch)
+    ['{3050F313-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_borderColor(p: OleVariant); safecall;
+    function Get_borderColor: OleVariant; safecall;
+    property borderColor: OleVariant read Get_borderColor write Set_borderColor;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLFrameElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F313-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFrameElementDisp = dispinterface
+    ['{3050F313-98B5-11CF-BB82-00AA00BDCE0B}']
+    property borderColor: OleVariant dispid - 2147414111;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLFrameElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F7F5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFrameElement2 = interface(IDispatch)
+    ['{3050F7F5-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_height(p: OleVariant); safecall;
+    function Get_height: OleVariant; safecall;
+    procedure Set_width(p: OleVariant); safecall;
+    function Get_width: OleVariant; safecall;
+    property height: OleVariant read Get_height write Set_height;
+    property width: OleVariant read Get_width write Set_width;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLFrameElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F7F5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFrameElement2Disp = dispinterface
+    ['{3050F7F5-98B5-11CF-BB82-00AA00BDCE0B}']
+    property height: OleVariant dispid - 2147418106;
+    property width: OleVariant dispid - 2147418107;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLFrameElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F513-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLFrameElement = dispinterface
+    ['{3050F513-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property src: WideString dispid - 2147415112;
+    property name: WideString dispid - 2147418112;
+    property border: OleVariant dispid - 2147415110;
+    property frameBorder: WideString dispid - 2147415109;
+    property frameSpacing: OleVariant dispid - 2147415108;
+    property marginWidth: OleVariant dispid - 2147415107;
+    property marginHeight: OleVariant dispid - 2147415106;
+    property noResize: WordBool dispid - 2147415105;
+    property scrolling: WideString dispid - 2147415104;
+    property contentWindow: IHTMLWindow2 readonly dispid - 2147415103;
+    property onload: OleVariant dispid - 2147412080;
+    property allowTransparency: WordBool dispid - 2147412906;
+    property longDesc: WideString dispid - 2147415102;
+    property borderColor: OleVariant dispid - 2147414111;
+    property height: OleVariant dispid - 2147418106;
+    property width: OleVariant dispid - 2147418107;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLIFrameElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F315-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLIFrameElement = interface(IDispatch)
+    ['{3050F315-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_vspace(p: Integer); safecall;
+    function Get_vspace: Integer; safecall;
+    procedure Set_hspace(p: Integer); safecall;
+    function Get_hspace: Integer; safecall;
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    property vspace: Integer read Get_vspace write Set_vspace;
+    property hspace: Integer read Get_hspace write Set_hspace;
+    property align: WideString read Get_align write Set_align;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLIFrameElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F315-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLIFrameElementDisp = dispinterface
+    ['{3050F315-98B5-11CF-BB82-00AA00BDCE0B}']
+    property vspace: Integer dispid - 2147414111;
+    property hspace: Integer dispid - 2147414110;
+    property align: WideString dispid - 2147418039;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLIFrameElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4E6-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLIFrameElement2 = interface(IDispatch)
+    ['{3050F4E6-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_height(p: OleVariant); safecall;
+    function Get_height: OleVariant; safecall;
+    procedure Set_width(p: OleVariant); safecall;
+    function Get_width: OleVariant; safecall;
+    property height: OleVariant read Get_height write Set_height;
+    property width: OleVariant read Get_width write Set_width;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLIFrameElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F4E6-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLIFrameElement2Disp = dispinterface
+    ['{3050F4E6-98B5-11CF-BB82-00AA00BDCE0B}']
+    property height: OleVariant dispid - 2147418106;
+    property width: OleVariant dispid - 2147418107;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLIFrame
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F51B-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLIFrame = dispinterface
+    ['{3050F51B-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property src: WideString dispid - 2147415112;
+    property name: WideString dispid - 2147418112;
+    property border: OleVariant dispid - 2147415110;
+    property frameBorder: WideString dispid - 2147415109;
+    property frameSpacing: OleVariant dispid - 2147415108;
+    property marginWidth: OleVariant dispid - 2147415107;
+    property marginHeight: OleVariant dispid - 2147415106;
+    property noResize: WordBool dispid - 2147415105;
+    property scrolling: WideString dispid - 2147415104;
+    property contentWindow: IHTMLWindow2 readonly dispid - 2147415103;
+    property onload: OleVariant dispid - 2147412080;
+    property allowTransparency: WordBool dispid - 2147412906;
+    property longDesc: WideString dispid - 2147415102;
+    property vspace: Integer dispid - 2147414111;
+    property hspace: Integer dispid - 2147414110;
+    property align: WideString dispid - 2147418039;
+    property height: OleVariant dispid - 2147418106;
+    property width: OleVariant dispid - 2147418107;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDivPosition
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F212-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDivPosition = interface(IDispatch)
+    ['{3050F212-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    property align: WideString read Get_align write Set_align;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDivPositionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F212-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDivPositionDisp = dispinterface
+    ['{3050F212-98B5-11CF-BB82-00AA00BDCE0B}']
+    property align: WideString dispid - 2147418039;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLFieldSetElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3E7-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFieldSetElement = interface(IDispatch)
+    ['{3050F3E7-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    property align: WideString read Get_align write Set_align;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLFieldSetElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3E7-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFieldSetElementDisp = dispinterface
+    ['{3050F3E7-98B5-11CF-BB82-00AA00BDCE0B}']
+    property align: WideString dispid - 2147418039;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLFieldSetElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F833-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFieldSetElement2 = interface(IDispatch)
+    ['{3050F833-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_form: IHTMLFormElement; safecall;
+    property form: IHTMLFormElement read Get_form;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLFieldSetElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F833-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFieldSetElement2Disp = dispinterface
+    ['{3050F833-98B5-11CF-BB82-00AA00BDCE0B}']
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLLegendElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3EA-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLLegendElement = interface(IDispatch)
+    ['{3050F3EA-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    property align: WideString read Get_align write Set_align;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLLegendElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3EA-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLLegendElementDisp = dispinterface
+    ['{3050F3EA-98B5-11CF-BB82-00AA00BDCE0B}']
+    property align: WideString dispid - 2147418039;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLLegendElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F834-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLLegendElement2 = interface(IDispatch)
+    ['{3050F834-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_form: IHTMLFormElement; safecall;
+    property form: IHTMLFormElement read Get_form;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLLegendElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F834-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLLegendElement2Disp = dispinterface
+    ['{3050F834-98B5-11CF-BB82-00AA00BDCE0B}']
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLDivPosition
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F50F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLDivPosition = dispinterface
+    ['{3050F50F-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property align: WideString dispid - 2147418039;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLFieldSetElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F545-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLFieldSetElement = dispinterface
+    ['{3050F545-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property align: WideString dispid - 2147418039;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLLegendElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F546-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLLegendElement = dispinterface
+    ['{3050F546-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property align: WideString dispid - 2147418039;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLSpanFlow
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3E5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLSpanFlow = interface(IDispatch)
+    ['{3050F3E5-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_align(const p: WideString); safecall;
+    function Get_align: WideString; safecall;
+    property align: WideString read Get_align write Set_align;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLSpanFlowDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3E5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLSpanFlowDisp = dispinterface
+    ['{3050F3E5-98B5-11CF-BB82-00AA00BDCE0B}']
+    property align: WideString dispid - 2147418039;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLSpanFlow
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F544-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLSpanFlow = dispinterface
+    ['{3050F544-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+    property align: WideString dispid - 2147418039;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLFrameSetElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F319-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFrameSetElement = interface(IDispatch)
+    ['{3050F319-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_rows(const p: WideString); safecall;
+    function Get_rows: WideString; safecall;
+    procedure Set_cols(const p: WideString); safecall;
+    function Get_cols: WideString; safecall;
+    procedure Set_border(p: OleVariant); safecall;
+    function Get_border: OleVariant; safecall;
+    procedure Set_borderColor(p: OleVariant); safecall;
+    function Get_borderColor: OleVariant; safecall;
+    procedure Set_frameBorder(const p: WideString); safecall;
+    function Get_frameBorder: WideString; safecall;
+    procedure Set_frameSpacing(p: OleVariant); safecall;
+    function Get_frameSpacing: OleVariant; safecall;
+    procedure Set_name(const p: WideString); safecall;
+    function Get_name: WideString; safecall;
+    procedure Set_onload(p: OleVariant); safecall;
+    function Get_onload: OleVariant; safecall;
+    procedure Set_onunload(p: OleVariant); safecall;
+    function Get_onunload: OleVariant; safecall;
+    procedure Set_onbeforeunload(p: OleVariant); safecall;
+    function Get_onbeforeunload: OleVariant; safecall;
+    property rows: WideString read Get_rows write Set_rows;
+    property cols: WideString read Get_cols write Set_cols;
+    property border: OleVariant read Get_border write Set_border;
+    property borderColor: OleVariant read Get_borderColor write Set_borderColor;
+    property frameBorder: WideString read Get_frameBorder write Set_frameBorder;
+    property frameSpacing: OleVariant read Get_frameSpacing write Set_frameSpacing;
+    property name: WideString read Get_name write Set_name;
+    property onload: OleVariant read Get_onload write Set_onload;
+    property onunload: OleVariant read Get_onunload write Set_onunload;
+    property onbeforeunload: OleVariant read Get_onbeforeunload write Set_onbeforeunload;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLFrameSetElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F319-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFrameSetElementDisp = dispinterface
+    ['{3050F319-98B5-11CF-BB82-00AA00BDCE0B}']
+    property rows: WideString dispid 1000;
+    property cols: WideString dispid 1001;
+    property border: OleVariant dispid 1002;
+    property borderColor: OleVariant dispid 1003;
+    property frameBorder: WideString dispid 1004;
+    property frameSpacing: OleVariant dispid 1005;
+    property name: WideString dispid - 2147418112;
+    property onload: OleVariant dispid - 2147412080;
+    property onunload: OleVariant dispid - 2147412079;
+    property onbeforeunload: OleVariant dispid - 2147412073;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLFrameSetElement2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5C6-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFrameSetElement2 = interface(IDispatch)
+    ['{3050F5C6-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_onbeforeprint(p: OleVariant); safecall;
+    function Get_onbeforeprint: OleVariant; safecall;
+    procedure Set_onafterprint(p: OleVariant); safecall;
+    function Get_onafterprint: OleVariant; safecall;
+    property onbeforeprint: OleVariant read Get_onbeforeprint write Set_onbeforeprint;
+    property onafterprint: OleVariant read Get_onafterprint write Set_onafterprint;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLFrameSetElement2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5C6-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFrameSetElement2Disp = dispinterface
+    ['{3050F5C6-98B5-11CF-BB82-00AA00BDCE0B}']
+    property onbeforeprint: OleVariant dispid - 2147412046;
+    property onafterprint: OleVariant dispid - 2147412045;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLFrameSetSite
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F514-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLFrameSetSite = dispinterface
+    ['{3050F514-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property rows: WideString dispid 1000;
+    property cols: WideString dispid 1001;
+    property border: OleVariant dispid 1002;
+    property borderColor: OleVariant dispid 1003;
+    property frameBorder: WideString dispid 1004;
+    property frameSpacing: OleVariant dispid 1005;
+    property name: WideString dispid - 2147418112;
+    property onload: OleVariant dispid - 2147412080;
+    property onunload: OleVariant dispid - 2147412079;
+    property onbeforeunload: OleVariant dispid - 2147412073;
+    property onbeforeprint: OleVariant dispid - 2147412046;
+    property onafterprint: OleVariant dispid - 2147412045;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLBGsound
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F369-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBGsound = interface(IDispatch)
+    ['{3050F369-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_src(const p: WideString); safecall;
+    function Get_src: WideString; safecall;
+    procedure Set_loop(p: OleVariant); safecall;
+    function Get_loop: OleVariant; safecall;
+    procedure Set_volume(p: OleVariant); safecall;
+    function Get_volume: OleVariant; safecall;
+    procedure Set_balance(p: OleVariant); safecall;
+    function Get_balance: OleVariant; safecall;
+    property src: WideString read Get_src write Set_src;
+    property loop: OleVariant read Get_loop write Set_loop;
+    property volume: OleVariant read Get_volume write Set_volume;
+    property balance: OleVariant read Get_balance write Set_balance;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLBGsoundDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F369-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLBGsoundDisp = dispinterface
+    ['{3050F369-98B5-11CF-BB82-00AA00BDCE0B}']
+    property src: WideString dispid 1001;
+    property loop: OleVariant dispid 1002;
+    property volume: OleVariant dispid 1003;
+    property balance: OleVariant dispid 1004;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLBGsound
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F53C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLBGsound = dispinterface
+    ['{3050F53C-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property src: WideString dispid 1001;
+    property loop: OleVariant dispid 1002;
+    property volume: OleVariant dispid 1003;
+    property balance: OleVariant dispid 1004;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLFontNamesCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F376-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFontNamesCollection = interface(IDispatch)
+    ['{3050F376-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_length: Integer; safecall;
+    function Get__newEnum: IUnknown; safecall;
+    function item(index: Integer): WideString; safecall;
+    property length: Integer read Get_length;
+    property _newEnum: IUnknown read Get__newEnum;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLFontNamesCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F376-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFontNamesCollectionDisp = dispinterface
+    ['{3050F376-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1501;
+    property _newEnum: IUnknown readonly dispid - 4;
+    function item(index: Integer): WideString; dispid 0;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLFontSizesCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F377-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFontSizesCollection = interface(IDispatch)
+    ['{3050F377-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_length: Integer; safecall;
+    function Get__newEnum: IUnknown; safecall;
+    function Get_forFont: WideString; safecall;
+    function item(index: Integer): Integer; safecall;
+    property length: Integer read Get_length;
+    property _newEnum: IUnknown read Get__newEnum;
+    property forFont: WideString read Get_forFont;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLFontSizesCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F377-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLFontSizesCollectionDisp = dispinterface
+    ['{3050F377-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1502;
+    property _newEnum: IUnknown readonly dispid - 4;
+    property forFont: WideString readonly dispid 1503;
+    function item(index: Integer): Integer; dispid 0;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLOptionsHolder
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F378-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLOptionsHolder = interface(IDispatch)
+    ['{3050F378-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_document: IHTMLDocument2; safecall;
+    function Get_fonts: IHTMLFontNamesCollection; safecall;
+    procedure Set_execArg(p: OleVariant); safecall;
+    function Get_execArg: OleVariant; safecall;
+    procedure Set_errorLine(p: Integer); safecall;
+    function Get_errorLine: Integer; safecall;
+    procedure Set_errorCharacter(p: Integer); safecall;
+    function Get_errorCharacter: Integer; safecall;
+    procedure Set_errorCode(p: Integer); safecall;
+    function Get_errorCode: Integer; safecall;
+    procedure Set_errorMessage(const p: WideString); safecall;
+    function Get_errorMessage: WideString; safecall;
+    procedure Set_errorDebug(p: WordBool); safecall;
+    function Get_errorDebug: WordBool; safecall;
+    function Get_unsecuredWindowOfDocument: IHTMLWindow2; safecall;
+    procedure Set_findText(const p: WideString); safecall;
+    function Get_findText: WideString; safecall;
+    procedure Set_anythingAfterFrameset(p: WordBool); safecall;
+    function Get_anythingAfterFrameset: WordBool; safecall;
+    function sizes(const fontName: WideString): IHTMLFontSizesCollection; safecall;
+    function openfiledlg(initFile: OleVariant; initDir: OleVariant; filter: OleVariant;
+      title: OleVariant): WideString; safecall;
+    function savefiledlg(initFile: OleVariant; initDir: OleVariant; filter: OleVariant;
+      title: OleVariant): WideString; safecall;
+    function choosecolordlg(initColor: OleVariant): Integer; safecall;
+    procedure showSecurityInfo; safecall;
+    function isApartmentModel(const object_: IHTMLObjectElement): WordBool; safecall;
+    function getCharset(const fontName: WideString): Integer; safecall;
+    function Get_secureConnectionInfo: WideString; safecall;
+    property document: IHTMLDocument2 read Get_document;
+    property fonts: IHTMLFontNamesCollection read Get_fonts;
+    property execArg: OleVariant read Get_execArg write Set_execArg;
+    property errorLine: Integer read Get_errorLine write Set_errorLine;
+    property errorCharacter: Integer read Get_errorCharacter write Set_errorCharacter;
+    property errorCode: Integer read Get_errorCode write Set_errorCode;
+    property errorMessage: WideString read Get_errorMessage write Set_errorMessage;
+    property errorDebug: WordBool read Get_errorDebug write Set_errorDebug;
+    property unsecuredWindowOfDocument: IHTMLWindow2 read Get_unsecuredWindowOfDocument;
+    property findText: WideString read Get_findText write Set_findText;
+    property anythingAfterFrameset: WordBool read Get_anythingAfterFrameset write Set_anythingAfterFrameset;
+    property secureConnectionInfo: WideString read Get_secureConnectionInfo;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLOptionsHolderDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F378-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLOptionsHolderDisp = dispinterface
+    ['{3050F378-98B5-11CF-BB82-00AA00BDCE0B}']
+    property document: IHTMLDocument2 readonly dispid 1503;
+    property fonts: IHTMLFontNamesCollection readonly dispid 1504;
+    property execArg: OleVariant dispid 1505;
+    property errorLine: Integer dispid 1506;
+    property errorCharacter: Integer dispid 1507;
+    property errorCode: Integer dispid 1508;
+    property errorMessage: WideString dispid 1509;
+    property errorDebug: WordBool dispid 1510;
+    property unsecuredWindowOfDocument: IHTMLWindow2 readonly dispid 1511;
+    property findText: WideString dispid 1512;
+    property anythingAfterFrameset: WordBool dispid 1513;
+    function sizes(const fontName: WideString): IHTMLFontSizesCollection; dispid 1514;
+    function openfiledlg(initFile: OleVariant; initDir: OleVariant; filter: OleVariant;
+      title: OleVariant): WideString; dispid 1515;
+    function savefiledlg(initFile: OleVariant; initDir: OleVariant; filter: OleVariant;
+      title: OleVariant): WideString; dispid 1516;
+    function choosecolordlg(initColor: OleVariant): Integer; dispid 1517;
+    procedure showSecurityInfo; dispid 1518;
+    function isApartmentModel(const object_: IHTMLObjectElement): WordBool; dispid 1519;
+    function getCharset(const fontName: WideString): Integer; dispid 1520;
+    property secureConnectionInfo: WideString readonly dispid 1521;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLStyleElementEvents2
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F615-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLStyleElementEvents2 = dispinterface
+    ['{3050F615-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418102;
+    function onclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 600;
+    function ondblclick(const pEvtObj: IHTMLEventObj): WordBool; dispid - 601;
+    function onkeypress(const pEvtObj: IHTMLEventObj): WordBool; dispid - 603;
+    procedure onkeydown(const pEvtObj: IHTMLEventObj); dispid - 602;
+    procedure onkeyup(const pEvtObj: IHTMLEventObj); dispid - 604;
+    procedure onmouseout(const pEvtObj: IHTMLEventObj); dispid - 2147418103;
+    procedure onmouseover(const pEvtObj: IHTMLEventObj); dispid - 2147418104;
+    procedure onmousemove(const pEvtObj: IHTMLEventObj); dispid - 606;
+    procedure onmousedown(const pEvtObj: IHTMLEventObj); dispid - 605;
+    procedure onmouseup(const pEvtObj: IHTMLEventObj); dispid - 607;
+    function onselectstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418100;
+    procedure onfilterchange(const pEvtObj: IHTMLEventObj); dispid - 2147418095;
+    function ondragstart(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418101;
+    function onbeforeupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418108;
+    procedure onafterupdate(const pEvtObj: IHTMLEventObj); dispid - 2147418107;
+    function onerrorupdate(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418099;
+    function onrowexit(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418106;
+    procedure onrowenter(const pEvtObj: IHTMLEventObj); dispid - 2147418105;
+    procedure ondatasetchanged(const pEvtObj: IHTMLEventObj); dispid - 2147418098;
+    procedure ondataavailable(const pEvtObj: IHTMLEventObj); dispid - 2147418097;
+    procedure ondatasetcomplete(const pEvtObj: IHTMLEventObj); dispid - 2147418096;
+    procedure onlosecapture(const pEvtObj: IHTMLEventObj); dispid - 2147418094;
+    procedure onpropertychange(const pEvtObj: IHTMLEventObj); dispid - 2147418093;
+    procedure onscroll(const pEvtObj: IHTMLEventObj); dispid 1014;
+    procedure onfocus(const pEvtObj: IHTMLEventObj); dispid - 2147418111;
+    procedure onblur(const pEvtObj: IHTMLEventObj); dispid - 2147418112;
+    procedure onresize(const pEvtObj: IHTMLEventObj); dispid 1016;
+    function ondrag(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418092;
+    procedure ondragend(const pEvtObj: IHTMLEventObj); dispid - 2147418091;
+    function ondragenter(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418090;
+    function ondragover(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418089;
+    procedure ondragleave(const pEvtObj: IHTMLEventObj); dispid - 2147418088;
+    function ondrop(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418087;
+    function onbeforecut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418083;
+    function oncut(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418086;
+    function onbeforecopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418082;
+    function oncopy(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418085;
+    function onbeforepaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418081;
+    function onpaste(const pEvtObj: IHTMLEventObj): WordBool; dispid - 2147418084;
+    function oncontextmenu(const pEvtObj: IHTMLEventObj): WordBool; dispid 1023;
+    procedure onrowsdelete(const pEvtObj: IHTMLEventObj); dispid - 2147418080;
+    procedure onrowsinserted(const pEvtObj: IHTMLEventObj); dispid - 2147418079;
+    procedure oncellchange(const pEvtObj: IHTMLEventObj); dispid - 2147418078;
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+    procedure onlayoutcomplete(const pEvtObj: IHTMLEventObj); dispid 1030;
+    procedure onpage(const pEvtObj: IHTMLEventObj); dispid 1031;
+    procedure onmouseenter(const pEvtObj: IHTMLEventObj); dispid 1042;
+    procedure onmouseleave(const pEvtObj: IHTMLEventObj); dispid 1043;
+    procedure onactivate(const pEvtObj: IHTMLEventObj); dispid 1044;
+    procedure ondeactivate(const pEvtObj: IHTMLEventObj); dispid 1045;
+    function onbeforedeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1034;
+    function onbeforeactivate(const pEvtObj: IHTMLEventObj): WordBool; dispid 1047;
+    procedure onfocusin(const pEvtObj: IHTMLEventObj); dispid 1048;
+    procedure onfocusout(const pEvtObj: IHTMLEventObj); dispid 1049;
+    procedure onmove(const pEvtObj: IHTMLEventObj); dispid 1035;
+    function oncontrolselect(const pEvtObj: IHTMLEventObj): WordBool; dispid 1036;
+    function onmovestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1038;
+    procedure onmoveend(const pEvtObj: IHTMLEventObj); dispid 1039;
+    function onresizestart(const pEvtObj: IHTMLEventObj): WordBool; dispid 1040;
+    procedure onresizeend(const pEvtObj: IHTMLEventObj); dispid 1041;
+    function onmousewheel(const pEvtObj: IHTMLEventObj): WordBool; dispid 1033;
+    procedure onload(const pEvtObj: IHTMLEventObj); dispid 1003;
+    procedure onerror(const pEvtObj: IHTMLEventObj); dispid 1002;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLStyleElementEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F3CB-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLStyleElementEvents = dispinterface
+    ['{3050F3CB-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onhelp: WordBool; dispid - 2147418102;
+    function onclick: WordBool; dispid - 600;
+    function ondblclick: WordBool; dispid - 601;
+    function onkeypress: WordBool; dispid - 603;
+    procedure onkeydown; dispid - 602;
+    procedure onkeyup; dispid - 604;
+    procedure onmouseout; dispid - 2147418103;
+    procedure onmouseover; dispid - 2147418104;
+    procedure onmousemove; dispid - 606;
+    procedure onmousedown; dispid - 605;
+    procedure onmouseup; dispid - 607;
+    function onselectstart: WordBool; dispid - 2147418100;
+    procedure onfilterchange; dispid - 2147418095;
+    function ondragstart: WordBool; dispid - 2147418101;
+    function onbeforeupdate: WordBool; dispid - 2147418108;
+    procedure onafterupdate; dispid - 2147418107;
+    function onerrorupdate: WordBool; dispid - 2147418099;
+    function onrowexit: WordBool; dispid - 2147418106;
+    procedure onrowenter; dispid - 2147418105;
+    procedure ondatasetchanged; dispid - 2147418098;
+    procedure ondataavailable; dispid - 2147418097;
+    procedure ondatasetcomplete; dispid - 2147418096;
+    procedure onlosecapture; dispid - 2147418094;
+    procedure onpropertychange; dispid - 2147418093;
+    procedure onscroll; dispid 1014;
+    procedure onfocus; dispid - 2147418111;
+    procedure onblur; dispid - 2147418112;
+    procedure onresize; dispid 1016;
+    function ondrag: WordBool; dispid - 2147418092;
+    procedure ondragend; dispid - 2147418091;
+    function ondragenter: WordBool; dispid - 2147418090;
+    function ondragover: WordBool; dispid - 2147418089;
+    procedure ondragleave; dispid - 2147418088;
+    function ondrop: WordBool; dispid - 2147418087;
+    function onbeforecut: WordBool; dispid - 2147418083;
+    function oncut: WordBool; dispid - 2147418086;
+    function onbeforecopy: WordBool; dispid - 2147418082;
+    function oncopy: WordBool; dispid - 2147418085;
+    function onbeforepaste: WordBool; dispid - 2147418081;
+    function onpaste: WordBool; dispid - 2147418084;
+    function oncontextmenu: WordBool; dispid 1023;
+    procedure onrowsdelete; dispid - 2147418080;
+    procedure onrowsinserted; dispid - 2147418079;
+    procedure oncellchange; dispid - 2147418078;
+    procedure onreadystatechange; dispid - 609;
+    procedure onbeforeeditfocus; dispid 1027;
+    procedure onlayoutcomplete; dispid 1030;
+    procedure onpage; dispid 1031;
+    function onbeforedeactivate: WordBool; dispid 1034;
+    function onbeforeactivate: WordBool; dispid 1047;
+    procedure onmove; dispid 1035;
+    function oncontrolselect: WordBool; dispid 1036;
+    function onmovestart: WordBool; dispid 1038;
+    procedure onmoveend; dispid 1039;
+    function onresizestart: WordBool; dispid 1040;
+    procedure onresizeend; dispid 1041;
+    procedure onmouseenter; dispid 1042;
+    procedure onmouseleave; dispid 1043;
+    function onmousewheel: WordBool; dispid 1033;
+    procedure onactivate; dispid 1044;
+    procedure ondeactivate; dispid 1045;
+    procedure onfocusin; dispid 1048;
+    procedure onfocusout; dispid 1049;
+    procedure onload; dispid 1003;
+    procedure onerror; dispid 1002;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLStyleElement
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F375-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleElement = interface(IDispatch)
+    ['{3050F375-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_type_(const p: WideString); safecall;
+    function Get_type_: WideString; safecall;
+    function Get_readyState: WideString; safecall;
+    procedure Set_onreadystatechange(p: OleVariant); safecall;
+    function Get_onreadystatechange: OleVariant; safecall;
+    procedure Set_onload(p: OleVariant); safecall;
+    function Get_onload: OleVariant; safecall;
+    procedure Set_onerror(p: OleVariant); safecall;
+    function Get_onerror: OleVariant; safecall;
+    function Get_styleSheet: IHTMLStyleSheet; safecall;
+    procedure Set_disabled(p: WordBool); safecall;
+    function Get_disabled: WordBool; safecall;
+    procedure Set_media(const p: WideString); safecall;
+    function Get_media: WideString; safecall;
+    property type_: WideString read Get_type_ write Set_type_;
+    property readyState: WideString read Get_readyState;
+    property onreadystatechange: OleVariant read Get_onreadystatechange write Set_onreadystatechange;
+    property onload: OleVariant read Get_onload write Set_onload;
+    property onerror: OleVariant read Get_onerror write Set_onerror;
+    property styleSheet: IHTMLStyleSheet read Get_styleSheet;
+    property disabled: WordBool read Get_disabled write Set_disabled;
+    property media: WideString read Get_media write Set_media;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLStyleElementDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F375-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleElementDisp = dispinterface
+    ['{3050F375-98B5-11CF-BB82-00AA00BDCE0B}']
+    property type_: WideString dispid 1002;
+    property readyState: WideString readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onload: OleVariant dispid - 2147412080;
+    property onerror: OleVariant dispid - 2147412083;
+    property styleSheet: IHTMLStyleSheet readonly dispid 1004;
+    property disabled: WordBool dispid - 2147418036;
+    property media: WideString dispid 1006;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLStyleElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F511-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLStyleElement = dispinterface
+    ['{3050F511-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property scopeName: WideString readonly dispid - 2147417073;
+    procedure setCapture(containerCapture: WordBool); dispid - 2147417072;
+    procedure releaseCapture; dispid - 2147417071;
+    property onlosecapture: OleVariant dispid - 2147412066;
+    function componentFromPoint(x: Integer; y: Integer): WideString; dispid - 2147417070;
+    procedure doScroll(component: OleVariant); dispid - 2147417069;
+    property onscroll: OleVariant dispid - 2147412081;
+    property ondrag: OleVariant dispid - 2147412063;
+    property ondragend: OleVariant dispid - 2147412062;
+    property ondragenter: OleVariant dispid - 2147412061;
+    property ondragover: OleVariant dispid - 2147412060;
+    property ondragleave: OleVariant dispid - 2147412059;
+    property ondrop: OleVariant dispid - 2147412058;
+    property onbeforecut: OleVariant dispid - 2147412054;
+    property oncut: OleVariant dispid - 2147412057;
+    property onbeforecopy: OleVariant dispid - 2147412053;
+    property oncopy: OleVariant dispid - 2147412056;
+    property onbeforepaste: OleVariant dispid - 2147412052;
+    property onpaste: OleVariant dispid - 2147412055;
+    property currentStyle: IHTMLCurrentStyle readonly dispid - 2147417105;
+    property onpropertychange: OleVariant dispid - 2147412065;
+    function getClientRects: IHTMLRectCollection; dispid - 2147417068;
+    function getBoundingClientRect: IHTMLRect; dispid - 2147417067;
+    procedure setExpression(const propname: WideString; const expression: WideString;
+      const language: WideString); dispid - 2147417608;
+    function getExpression(const propname: WideString): OleVariant; dispid - 2147417607;
+    function removeExpression(const propname: WideString): WordBool; dispid - 2147417606;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    property onrowsdelete: OleVariant dispid - 2147412050;
+    property onrowsinserted: OleVariant dispid - 2147412049;
+    property oncellchange: OleVariant dispid - 2147412048;
+    property dir: WideString dispid - 2147412995;
+    function createControlRange: IDispatch; dispid - 2147417056;
+    property scrollHeight: Integer readonly dispid - 2147417055;
+    property scrollWidth: Integer readonly dispid - 2147417054;
+    property scrollTop: Integer dispid - 2147417053;
+    property scrollLeft: Integer dispid - 2147417052;
+    procedure clearAttributes; dispid - 2147417050;
+    property oncontextmenu: OleVariant dispid - 2147412047;
+    function insertAdjacentElement(const where: WideString; const insertedElement: IHTMLElement): IHTMLElement; dispid - 2147417043;
+    function applyElement(const apply: IHTMLElement; const where: WideString): IHTMLElement; dispid - 2147417047;
+    function getAdjacentText(const where: WideString): WideString; dispid - 2147417042;
+    function replaceAdjacentText(const where: WideString; const newText: WideString): WideString; dispid - 2147417041;
+    property canHaveChildren: WordBool readonly dispid - 2147417040;
+    function addBehavior(const bstrUrl: WideString; var pvarFactory: OleVariant): Integer; dispid - 2147417032;
+    function removeBehavior(cookie: Integer): WordBool; dispid - 2147417031;
+    property runtimeStyle: IHTMLStyle readonly dispid - 2147417048;
+    property behaviorUrns: IDispatch readonly dispid - 2147417030;
+    property tagUrn: WideString dispid - 2147417029;
+    property onbeforeeditfocus: OleVariant dispid - 2147412043;
+    property readyStateValue: Integer readonly dispid - 2147417028;
+    function getElementsByTagName(const v: WideString): IHTMLElementCollection; dispid - 2147417027;
+    procedure mergeAttributes(const mergeThis: IHTMLElement; var pvarFlags: OleVariant); dispid - 2147417016;
+    property isMultiLine: WordBool readonly dispid - 2147417015;
+    property canHaveHTML: WordBool readonly dispid - 2147417014;
+    property onlayoutcomplete: OleVariant dispid - 2147412039;
+    property onpage: OleVariant dispid - 2147412038;
+    property inflateBlock: WordBool dispid - 2147417012;
+    property onbeforedeactivate: OleVariant dispid - 2147412035;
+    procedure setActive; dispid - 2147417011;
+    property contentEditable: WideString dispid - 2147412950;
+    property isContentEditable: WordBool readonly dispid - 2147417010;
+    property hideFocus: WordBool dispid - 2147412949;
+    property disabled: WordBool dispid - 2147418036;
+    property isDisabled: WordBool readonly dispid - 2147417007;
+    property onmove: OleVariant dispid - 2147412034;
+    property oncontrolselect: OleVariant dispid - 2147412033;
+    function FireEvent(const bstrEventName: WideString; var pvarEventObject: OleVariant): WordBool; dispid - 2147417006;
+    property onresizestart: OleVariant dispid - 2147412029;
+    property onresizeend: OleVariant dispid - 2147412028;
+    property onmovestart: OleVariant dispid - 2147412031;
+    property onmoveend: OleVariant dispid - 2147412030;
+    property onmouseenter: OleVariant dispid - 2147412027;
+    property onmouseleave: OleVariant dispid - 2147412026;
+    property onactivate: OleVariant dispid - 2147412025;
+    property ondeactivate: OleVariant dispid - 2147412024;
+    function dragDrop: WordBool; dispid - 2147417005;
+    property glyphMode: Integer readonly dispid - 2147417004;
+    property onmousewheel: OleVariant dispid - 2147412036;
+    procedure normalize; dispid - 2147417000;
+    function getAttributeNode(const bstrName: WideString): IHTMLDOMAttribute; dispid - 2147417003;
+    function setAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417002;
+    function removeAttributeNode(const pattr: IHTMLDOMAttribute): IHTMLDOMAttribute; dispid - 2147417001;
+    property onbeforeactivate: OleVariant dispid - 2147412022;
+    property onfocusin: OleVariant dispid - 2147412021;
+    property onfocusout: OleVariant dispid - 2147412020;
+    property uniqueNumber: Integer readonly dispid - 2147417058;
+    property uniqueID: WideString readonly dispid - 2147417057;
+    property nodeType: Integer readonly dispid - 2147417066;
+    property parentNode: IHTMLDOMNode readonly dispid - 2147417065;
+    function hasChildNodes: WordBool; dispid - 2147417064;
+    property childNodes: IDispatch readonly dispid - 2147417063;
+    property attributes: IDispatch readonly dispid - 2147417062;
+    function insertBefore(const newChild: IHTMLDOMNode; refChild: OleVariant): IHTMLDOMNode; dispid - 2147417061;
+    function removeChild(const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417060;
+    function replaceChild(const newChild: IHTMLDOMNode; const oldChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417059;
+    function cloneNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417051;
+    function removeNode(fDeep: WordBool): IHTMLDOMNode; dispid - 2147417046;
+    function swapNode(const otherNode: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417044;
+    function replaceNode(const replacement: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417045;
+    function appendChild(const newChild: IHTMLDOMNode): IHTMLDOMNode; dispid - 2147417039;
+    property nodeName: WideString readonly dispid - 2147417038;
+    property nodeValue: OleVariant dispid - 2147417037;
+    property firstChild: IHTMLDOMNode readonly dispid - 2147417036;
+    property lastChild: IHTMLDOMNode readonly dispid - 2147417035;
+    property previousSibling: IHTMLDOMNode readonly dispid - 2147417034;
+    property nextSibling: IHTMLDOMNode readonly dispid - 2147417033;
+    property ownerDocument: IDispatch readonly dispid - 2147416999;
+    property type_: WideString dispid 1002;
+    property onload: OleVariant dispid - 2147412080;
+    property onerror: OleVariant dispid - 2147412083;
+    property styleSheet: IHTMLStyleSheet readonly dispid 1004;
+    property media: WideString dispid 1006;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLStyleFontFace
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3D5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleFontFace = interface(IDispatch)
+    ['{3050F3D5-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_fontsrc(const p: WideString); safecall;
+    function Get_fontsrc: WideString; safecall;
+    property fontsrc: WideString read Get_fontsrc write Set_fontsrc;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLStyleFontFaceDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F3D5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLStyleFontFaceDisp = dispinterface
+    ['{3050F3D5-98B5-11CF-BB82-00AA00BDCE0B}']
+    property fontsrc: WideString dispid - 2147413015;
+  end;
+
+// *********************************************************************//
+// Interface: ICSSFilterSite
+// Flags:     (0)
+// GUID:      {3050F3ED-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  ICSSFilterSite = interface(IUnknown)
+    ['{3050F3ED-98B5-11CF-BB82-00AA00BDCE0B}']
+    function GetElement(out element: IHTMLElement): HRESULT; stdcall;
+    function FireOnFilterChangeEvent: HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IMarkupPointer
+// Flags:     (0)
+// GUID:      {3050F49F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  pTOleChar = ^TOleChar;
+
+  IMarkupPointer = interface(IUnknown)
+    ['{3050F49F-98B5-11CF-BB82-00AA00BDCE0B}']
+    function OwningDoc(out ppDoc: IHTMLDocument2): HRESULT; stdcall;
+    function Gravity(out pGravity: _POINTER_GRAVITY): HRESULT; stdcall;
+    function SetGravity(Gravity: _POINTER_GRAVITY): HRESULT; stdcall;
+    function Cling(out pfCling: Integer): HRESULT; stdcall;
+    function SetCling(fCLing: Integer): HRESULT; stdcall;
+    function Unposition: HRESULT; stdcall;
+    function IsPositioned(out pfPositioned: Integer): HRESULT; stdcall;
+    function GetContainer(out ppContainer: IMarkupContainer): HRESULT; stdcall;
+    function MoveAdjacentToElement(const pElement: IHTMLElement; eAdj: _ELEMENT_ADJACENCY): HRESULT; stdcall;
+    function MoveToPointer(const pPointer: IMarkupPointer): HRESULT; stdcall;
+    function MoveToContainer(const pContainer: IMarkupContainer; fAtStart: Integer): HRESULT; stdcall;
+    function left(fMove: Integer; out pContext: _MARKUP_CONTEXT_TYPE; out ppElement: IHTMLElement;
+      var pcch: Integer; pchText: pTOleChar): HRESULT; stdcall;
+    function right(fMove: Integer; out pContext: _MARKUP_CONTEXT_TYPE; out ppElement: IHTMLElement;
+      var pcch: Integer; pchText: pTOleChar): HRESULT; stdcall;
+    function CurrentScope(out ppElemCurrent: IHTMLElement): HRESULT; stdcall;
+    function IsLeftOf(const pPointerThat: IMarkupPointer; out pfResult: Integer): HRESULT; stdcall;
+    function IsLeftOfOrEqualTo(const pPointerThat: IMarkupPointer; out pfResult: Integer): HRESULT; stdcall;
+    function IsRightOf(const pPointerThat: IMarkupPointer; out pfResult: Integer): HRESULT; stdcall;
+    function IsRightOfOrEqualTo(const pPointerThat: IMarkupPointer; out pfResult: Integer): HRESULT; stdcall;
+    function IsEqualTo(const pPointerThat: IMarkupPointer; out pfAreEqual: Integer): HRESULT; stdcall;
+    function MoveUnit(muAction: _MOVEUNIT_ACTION): HRESULT; stdcall;
+    // !! API fix decl
+    function findText(const pchFindText: PWideChar; dwFlags: LongWord; const pIEndMatch: IMarkupPointer;
+      const pIEndSearch: IMarkupPointer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IMarkupContainer
+// Flags:     (0)
+// GUID:      {3050F5F9-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IMarkupContainer = interface(IUnknown)
+    ['{3050F5F9-98B5-11CF-BB82-00AA00BDCE0B}']
+    function OwningDoc(out ppDoc: IHTMLDocument2): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IMarkupContainer2
+// Flags:     (0)
+// GUID:      {3050F648-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IMarkupContainer2 = interface(IMarkupContainer)
+    ['{3050F648-98B5-11CF-BB82-00AA00BDCE0B}']
+    function CreateChangeLog(const pChangeSink: IHTMLChangeSink; out ppChangeLog: IHTMLChangeLog;
+      fForward: Integer; fBackward: Integer): HRESULT; stdcall;
+    function RegisterForDirtyRange(const pChangeSink: IHTMLChangeSink; out pdwCookie: LongWord): HRESULT; stdcall;
+    function UnRegisterForDirtyRange(dwCookie: LongWord): HRESULT; stdcall;
+    function GetAndClearDirtyRange(dwCookie: LongWord; const pIPointerBegin: IMarkupPointer;
+      const pIPointerEnd: IMarkupPointer): HRESULT; stdcall;
+    function GetVersionNumber: Integer; stdcall;
+    function GetMasterElement(out ppElementMaster: IHTMLElement): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLChangeSink
+// Flags:     (0)
+// GUID:      {3050F64A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLChangeSink = interface(IUnknown)
+    ['{3050F64A-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Notify: HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLChangeLog
+// Flags:     (0)
+// GUID:      {3050F649-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLChangeLog = interface(IUnknown)
+    ['{3050F649-98B5-11CF-BB82-00AA00BDCE0B}']
+// !! API change
+//    function GetNextChange(pbBuffer: PByte; nBufferSize: Integer; out pnRecordLength: Integer): HRESULT; stdcall;
+    function GetNextChange(pbBuffer: PByte; nBufferSize: Integer; out pnRecordLength: Integer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IActiveIMMApp
+// Flags:     (0)
+// GUID:      {08C0E040-62D1-11D1-9326-0060B067B86E}
+// *********************************************************************//
+  IActiveIMMApp = interface(IUnknown)
+    ['{08C0E040-62D1-11D1-9326-0060B067B86E}']
+    function AssociateContext(hWnd: THandle; hIME: HIMC; out phPrev: LongWord): HRESULT; stdcall;
+    function ConfigureIMEA(var hKL: Pointer; hWnd: THandle; dwMode: LongWord;
+      var pData: REGISTERWORDA): HRESULT; stdcall;
+    function ConfigureIMEW(var hKL: Pointer; hWnd: THandle; dwMode: LongWord;
+      var pData: REGISTERWORDW): HRESULT; stdcall;
+    function CreateContext(out phIMC: HIMC): HRESULT; stdcall;
+    function DestroyContext(hIME: HIMC): HRESULT; stdcall;
+    function EnumRegisterWordA(var hKL: Pointer; szReading: PAnsiChar; dwStyle: LongWord;
+      szRegister: PAnsiChar; var pData: Pointer; out pEnum: IEnumRegisterWordA): HRESULT; stdcall;
+    function EnumRegisterWordW(var hKL: Pointer; szReading: PWideChar; dwStyle: LongWord;
+      szRegister: PWideChar; var pData: Pointer;
+      out pEnum: IEnumRegisterWordW): HRESULT; stdcall;
+    function EscapeA(var hKL: Pointer; hIMC: HIMC; uEscape: SYSUINT; var pData: Pointer;
+      out plResult: LRESULT): HRESULT; stdcall;
+    function EscapeW(var hKL: Pointer; hIMC: HIMC; uEscape: SYSUINT; var pData: Pointer;
+      out plResult: LRESULT): HRESULT; stdcall;
+    function GetCandidateListA(hIMC: HIMC; dwIndex: LongWord; uBufLen: SYSUINT;
+      out pCandList: CANDIDATELIST;
+      out puCopied: SYSUINT): HRESULT; stdcall;
+    function GetCandidateListW(hIMC: HIMC; dwIndex: LongWord; uBufLen: SYSUINT;
+      out pCandList: CANDIDATELIST;
+      out puCopied: SYSUINT): HRESULT; stdcall;
+    function GetCandidateListCountA(hIMC: HIMC; out pdwListSize: LongWord;
+      out pdwBufLen: LongWord): HRESULT; stdcall;
+    function GetCandidateListCountW(hIMC: HIMC; out pdwListSize: LongWord;
+      out pdwBufLen: LongWord): HRESULT; stdcall;
+    function GetCandidateWindow(hIMC: HIMC; dwIndex: LongWord;
+      out pCandidate: CANDIDATEFORM): HRESULT; stdcall;
+    function GetCompositionFontA(hIMC: HIMC; out plf: LOGFONTA): HRESULT; stdcall;
+    function GetCompositionFontW(hIMC: HIMC; out plf: LOGFONTA): HRESULT; stdcall;
+    function GetCompositionStringA(hIMC: HIMC; dwIndex: LongWord; dwBufLen: LongWord;
+      out plCopied: Integer; out pBuf: Pointer): HRESULT; stdcall;
+    function GetCompositionStringW(hIMC: HIMC; dwIndex: LongWord; dwBufLen: LongWord;
+      out plCopied: Integer; out pBuf: Pointer): HRESULT; stdcall;
+    function GetCompositionWindow(hIMC: HIMC; out pCompForm: COMPOSITIONFORM): HRESULT; stdcall;
+    function GetContext(hWnd: THandle; out hIMC: HIMC): HRESULT; stdcall;
+    function GetConversionListA(var hKL: Pointer; hIMC: LongWord; pSrc: PAnsiChar; uBufLen: SYSUINT;
+      uFlag: SYSUINT; out pDst: CANDIDATELIST;
+      out puCopied: SYSUINT): HRESULT; stdcall;
+    function GetConversionListW(var hKL: Pointer; hIMC: HIMC; pSrc: PWideChar;
+      uBufLen: SYSUINT; uFlag: SYSUINT;
+      out pDst: CANDIDATELIST; out puCopied: SYSUINT): HRESULT; stdcall;
+    function GetConversionStatus(hIMC: HIMC; out pfdwConversion: LongWord;
+      out pfdwSentence: LongWord): HRESULT; stdcall;
+    function GetDefaultIMEWnd(hWnd: HWND; out phDefWnd: HWND): HRESULT; stdcall;
+    function GetDescriptionA(var hKL: Pointer; uBufLen: SYSUINT; szDescription: PAnsiChar;
+      out puCopied: SYSUINT): HRESULT; stdcall;
+    function GetDescriptionW(var hKL: Pointer; uBufLen: SYSUINT; szDescription: PWideChar;
+      out puCopied: SYSUINT): HRESULT; stdcall;
+    function GetGuideLineA(hIMC: HIMC; dwIndex: LongWord; dwBufLen: LongWord; pBuf: PAnsiChar;
+      out pdwResult: LongWord): HRESULT; stdcall;
+    function GetGuideLineW(hIMC: HIMC; dwIndex: LongWord; dwBufLen: LongWord; pBuf: PWideChar;
+      out pdwResult: LongWord): HRESULT; stdcall;
+    function GetIMEFileNameA(var hKL: Pointer; uBufLen: SYSUINT; szFileName: PAnsiChar;
+      out puCopied: SYSUINT): HRESULT; stdcall;
+    function GetIMEFileNameW(var hKL: Pointer; uBufLen: SYSUINT; szFileName: PWideChar;
+      out puCopied: SYSUINT): HRESULT; stdcall;
+    function GetOpenStatus(hIMC: HIMC): HRESULT; stdcall;
+    function GetProperty(var hKL: Pointer; fdwIndex: LongWord; out pdwProperty: LongWord): HRESULT; stdcall;
+    function GetRegisterWordStyleA(var hKL: Pointer; nItem: SYSUINT;
+      out pStyleBuf: STYLEBUFA;
+      out puCopied: SYSUINT): HRESULT; stdcall;
+    function GetRegisterWordStyleW(var hKL: Pointer; nItem: SYSUINT;
+      out pStyleBuf: STYLEBUFW;
+      out puCopied: SYSUINT): HRESULT; stdcall;
+    function GetStatusWindowPos(hIMC: HIMC; out pptPos: TPoint): HRESULT; stdcall;
+    function GetVirtualKey(hWnd: THandle; out puVirtualKey: SYSUINT): HRESULT; stdcall;
+    function InstallIMEA(szIMEFileName: PAnsiChar; szLayoutText: PAnsiChar; out phKL: Pointer): HRESULT; stdcall;
+    function InstallIMEW(szIMEFileName: PWideChar; szLayoutText: PWideChar; out phKL: Pointer): HRESULT; stdcall;
+    function IsIME(var hKL: Pointer): HRESULT; stdcall;
+    function IsUIMessageA(hWndIME: THandle; msg: SYSUINT; wParam: WPARAM;
+      lParam: LPARAM): HRESULT; stdcall;
+    function IsUIMessageW(hWndIME: THandle; msg: SYSUINT; wParam: WPARAM;
+      lParam: LPARAM): HRESULT; stdcall;
+    function NotifyIME(hIMC: HIMC; dwAction: LongWord; dwIndex: LongWord; dwValue: LongWord): HRESULT; stdcall;
+    function RegisterWordA(var hKL: Pointer; szReading: PAnsiChar; dwStyle: LongWord; szRegister: PAnsiChar): HRESULT; stdcall;
+    function RegisterWordW(var hKL: Pointer; szReading: PWideChar; dwStyle: LongWord;
+      szRegister: PWideChar): HRESULT; stdcall;
+    function ReleaseContext(hWnd: THandle; hIMC: HIMC): HRESULT; stdcall;
+    function SetCandidateWindow(hIMC: HIMC; var pCandidate: CANDIDATEFORM): HRESULT; stdcall;
+    function SetCompositionFontA(hIMC: HIMC; var plf: LOGFONTA): HRESULT; stdcall;
+    function SetCompositionFontW(hIMC: HIMC; var plf: tagLOGFONTW): HRESULT; stdcall;
+    function SetCompositionStringA(hIMC: HIMC; dwIndex: LongWord; var pComp: Pointer;
+      dwCompLen: LongWord; var pRead: Pointer; dwReadLen: LongWord): HRESULT; stdcall;
+    function SetCompositionStringW(hIMC: HIMC; dwIndex: LongWord; var pComp: Pointer;
+      dwCompLen: LongWord; var pRead: Pointer; dwReadLen: LongWord): HRESULT; stdcall;
+    function SetCompositionWindow(hIMC: HIMC; var pCompForm: COMPOSITIONFORM): HRESULT; stdcall;
+    function SetConversionStatus(hIMC: HIMC; fdwConversion: LongWord; fdwSentence: LongWord): HRESULT; stdcall;
+    function SetOpenStatus(hIMC: LongWord; fOpen: Integer): HRESULT; stdcall;
+    function SetStatusWindowPos(hIMC: HIMC; var pptPos: TPoint): HRESULT; stdcall;
+    function SimulateHotKey(hWnd: Thandle; dwHotKeyID: LongWord): HRESULT; stdcall;
+    function UnregisterWordA(var hKL: Pointer; szReading: PAnsiChar; dwStyle: LongWord;
+      szUnregister: PAnsiChar): HResult; stdcall;
+    function UnregisterWordW(var hKL: Pointer; szReading: PWideChar; dwStyle: LongWord;
+      szUnregister: PWideChar): HRESULT; stdcall;
+    function Activate(fRestoreLayout: Integer): HRESULT; stdcall;
+    function Deactivate: HRESULT; stdcall;
+    function OnDefWindowProc(hWnd: THandle; msg: SYSUINT; wParam: WPARAM;
+      lParam: LPARAM; out plResult: LRESULT): HRESULT; stdcall;
+    function FilterClientWindows(var aaClassList: Word; uSize: SYSUINT): HRESULT; stdcall;
+    function GetCodePageA(var hKL: Pointer; out uCodePage: SYSUINT): HRESULT; stdcall;
+    function GetLangId(var hKL: Pointer; out plid: Word): HRESULT; stdcall;
+    function AssociateContextEx(hWnd: THandle; hIMC: HIMC; dwFlags: LongWord): HRESULT; stdcall;
+    function DisableIME(idThread: LongWord): HRESULT; stdcall;
+    function GetImeMenuItemsA(hIMC: HIMC; dwFlags: LongWord; dwType: LongWord;
+      var pImeParentMenu: IMEMENUITEMINFOA;
+      out pImeMenu: IMEMENUITEMINFOA; dwSize: LongWord;
+      out pdwResult: LongWord): HRESULT; stdcall;
+    function GetImeMenuItemsW(hIMC: HIMC; dwFlags: LongWord; dwType: LongWord;
+      var pImeParentMenu: IMEMENUITEMINFOW;
+      out pImeMenu: IMEMENUITEMINFOW; dwSize: LongWord;
+      out pdwResult: LongWord): HRESULT; stdcall;
+    function EnumInputContext(idThread: LongWord; out ppEnum: IEnumInputContext): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IEnumRegisterWordA
+// Flags:     (0)
+// GUID:      {08C03412-F96B-11D0-A475-00AA006BCC59}
+// *********************************************************************//
+  IEnumRegisterWordA = interface(IUnknown)
+    ['{08C03412-F96B-11D0-A475-00AA006BCC59}']
+    function Clone(out ppEnum: IEnumRegisterWordA): HRESULT; stdcall;
+    function Next(ulCount: LongWord; out rgRegisterWord: REGISTERWORDA;
+      out pcFetched: LongWord): HRESULT; stdcall;
+    function reset: HRESULT; stdcall;
+    function Skip(ulCount: LongWord): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IEnumRegisterWordW
+// Flags:     (0)
+// GUID:      {4955DD31-B159-11D0-8FCF-00AA006BCC59}
+// *********************************************************************//
+  IEnumRegisterWordW = interface(IUnknown)
+    ['{4955DD31-B159-11D0-8FCF-00AA006BCC59}']
+    function Clone(out ppEnum: IEnumRegisterWordW): HRESULT; stdcall;
+    function Next(ulCount: LongWord; out rgRegisterWord: REGISTERWORDW;
+      out pcFetched: LongWord): HRESULT; stdcall;
+    function reset: HRESULT; stdcall;
+    function Skip(ulCount: LongWord): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IEnumInputContext
+// Flags:     (0)
+// GUID:      {09B5EAB0-F997-11D1-93D4-0060B067B86E}
+// *********************************************************************//
+  IEnumInputContext = interface(IUnknown)
+    ['{09B5EAB0-F997-11D1-93D4-0060B067B86E}']
+    function Clone(out ppEnum: IEnumInputContext): HRESULT; stdcall;
+    function Next(ulCount: LongWord; out rgInputContext: LongWord; out pcFetched: LongWord): HRESULT; stdcall;
+    function reset: HRESULT; stdcall;
+    function Skip(ulCount: LongWord): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: ISegmentList
+// Flags:     (0)
+// GUID:      {3050F605-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  ISegmentList = interface(IUnknown)
+    ['{3050F605-98B5-11CF-BB82-00AA00BDCE0B}']
+    function CreateIterator(out ppIIter: ISegmentListIterator): HRESULT; stdcall;
+    function GetType(out peType: _SELECTION_TYPE): HRESULT; stdcall;
+    function IsEmpty(out pfEmpty: Integer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: ISegmentListIterator
+// Flags:     (0)
+// GUID:      {3050F692-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  ISegmentListIterator = interface(IUnknown)
+    ['{3050F692-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Current(out ppISegment: ISegment): HRESULT; stdcall;
+    function First: HRESULT; stdcall;
+    function IsDone: HRESULT; stdcall;
+    function Advance: HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: ISegment
+// Flags:     (0)
+// GUID:      {3050F683-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  ISegment = interface(IUnknown)
+    ['{3050F683-98B5-11CF-BB82-00AA00BDCE0B}']
+    function GetPointers(const pIStart: IMarkupPointer; const pIEnd: IMarkupPointer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLCaret
+// Flags:     (0)
+// GUID:      {3050F604-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLCaret = interface(IUnknown)
+    ['{3050F604-98B5-11CF-BB82-00AA00BDCE0B}']
+    function MoveCaretToPointer(const pDispPointer: IDisplayPointer; fScrollIntoView: Integer;
+      eDir: _CARET_DIRECTION): HRESULT; stdcall;
+    function MoveCaretToPointerEx(const pDispPointer: IDisplayPointer; fVisible: Integer;
+      fScrollIntoView: Integer; eDir: _CARET_DIRECTION): HRESULT; stdcall;
+    function MoveMarkupPointerToCaret(const pIMarkupPointer: IMarkupPointer): HRESULT; stdcall;
+    function MoveDisplayPointerToCaret(const pDispPointer: IDisplayPointer): HRESULT; stdcall;
+    function IsVisible(out pIsVisible: Integer): HRESULT; stdcall;
+    function Show(fScrollIntoView: Integer): HRESULT; stdcall;
+    function Hide: HRESULT; stdcall;
+    //kt original --> function InsertText(var pText: Word; lLen: Integer): HRESULT; stdcall;
+    function InsertText(pText: PWideChar; lLen: Integer): HRESULT; stdcall; //kt
+    function scrollIntoView: HRESULT; stdcall;
+    function GetLocation(out pPoint: TPoint; fTranslate: Integer): HRESULT; stdcall;
+    function GetCaretDirection(out peDir: _CARET_DIRECTION): HRESULT; stdcall;
+    function SetCaretDirection(eDir: _CARET_DIRECTION): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IDisplayPointer
+// Flags:     (0)
+// GUID:      {3050F69E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IDisplayPointer = interface(IUnknown)
+    ['{3050F69E-98B5-11CF-BB82-00AA00BDCE0B}']
+    function moveToPoint(ptPoint: TPoint; eCoordSystem: _COORD_SYSTEM;
+      const pElementContext: IHTMLElement; dwHitTestOptions: LongWord;
+      out pdwHitTestResults: LongWord): HRESULT; stdcall;
+    function MoveUnit(eMoveUnit: _DISPLAY_MOVEUNIT; lXPos: Integer): HRESULT; stdcall;
+    function PositionMarkupPointer(const pMarkupPointer: IMarkupPointer): HRESULT; stdcall;
+    function MoveToPointer(const pDispPointer: IDisplayPointer): HRESULT; stdcall;
+    function SetPointerGravity(eGravity: _POINTER_GRAVITY): HRESULT; stdcall;
+    function GetPointerGravity(out peGravity: _POINTER_GRAVITY): HRESULT; stdcall;
+    function SetDisplayGravity(eGravity: _DISPLAY_GRAVITY): HRESULT; stdcall;
+    function GetDisplayGravity(out peGravity: _DISPLAY_GRAVITY): HRESULT; stdcall;
+    function IsPositioned(out pfPositioned: Integer): HRESULT; stdcall;
+    function Unposition: HRESULT; stdcall;
+    function IsEqualTo(const pDispPointer: IDisplayPointer; out pfIsEqual: Integer): HRESULT; stdcall;
+    function IsLeftOf(const pDispPointer: IDisplayPointer; out pfIsLeftOf: Integer): HRESULT; stdcall;
+    function IsRightOf(const pDispPointer: IDisplayPointer; out pfIsRightOf: Integer): HRESULT; stdcall;
+    function IsAtBOL(out pfBOL: Integer): HRESULT; stdcall;
+    function MoveToMarkupPointer(const pPointer: IMarkupPointer;
+      const pDispLineContext: IDisplayPointer): HRESULT; stdcall;
+    function scrollIntoView: HRESULT; stdcall;
+    function GetLineInfo(out ppLineInfo: ILineInfo): HRESULT; stdcall;
+    function GetFlowElement(out ppLayoutElement: IHTMLElement): HRESULT; stdcall;
+    function QueryBreaks(out pdwBreaks: LongWord): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: ILineInfo
+// Flags:     (0)
+// GUID:      {3050F7E2-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  ILineInfo = interface(IUnknown)
+    ['{3050F7E2-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_x(out p: Integer): HRESULT; stdcall;
+    function Get_baseLine(out p: Integer): HRESULT; stdcall;
+    function Get_textDescent(out p: Integer): HRESULT; stdcall;
+    function Get_textHeight(out p: Integer): HRESULT; stdcall;
+    function Get_lineDirection(out p: Integer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementSegment
+// Flags:     (0)
+// GUID:      {3050F68F-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementSegment = interface(ISegment)
+    ['{3050F68F-98B5-11CF-BB82-00AA00BDCE0B}']
+    function GetElement(out ppIElement: IHTMLElement): HRESULT; stdcall;
+    function SetPrimary(fPrimary: Integer): HRESULT; stdcall;
+    function IsPrimary(out pfPrimary: Integer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHighlightSegment
+// Flags:     (0)
+// GUID:      {3050F690-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHighlightSegment = interface(ISegment)
+    ['{3050F690-98B5-11CF-BB82-00AA00BDCE0B}']
+  end;
+
+// *********************************************************************//
+// Interface: IHighlightRenderingServices
+// Flags:     (0)
+// GUID:      {3050F606-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHighlightRenderingServices = interface(IUnknown)
+    ['{3050F606-98B5-11CF-BB82-00AA00BDCE0B}']
+    function AddSegment(const pDispPointerStart: IDisplayPointer;
+      const pDispPointerEnd: IDisplayPointer;
+      const pIRenderStyle: IHTMLRenderStyle; out ppISegment: IHighlightSegment): HRESULT; stdcall;
+    function MoveSegmentToPointers(const pISegment: IHighlightSegment;
+      const pDispPointerStart: IDisplayPointer;
+      const pDispPointerEnd: IDisplayPointer): HRESULT; stdcall;
+    function RemoveSegment(const pISegment: IHighlightSegment): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IDisplayServices
+// Flags:     (0)
+// GUID:      {3050F69D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IDisplayServices = interface(IUnknown)
+    ['{3050F69D-98B5-11CF-BB82-00AA00BDCE0B}']
+    function CreateDisplayPointer(out ppDispPointer: IDisplayPointer): HRESULT; stdcall;
+    function TransformRect(var pRect: TRect; eSource: _COORD_SYSTEM; eDestination: _COORD_SYSTEM;
+      const pIElement: IHTMLElement): HRESULT; stdcall;
+    function TransformPoint(var pPoint: TPoint; eSource: _COORD_SYSTEM;
+      eDestination: _COORD_SYSTEM; const pIElement: IHTMLElement): HRESULT; stdcall;
+    function GetCaret(out ppCaret: IHTMLCaret): HRESULT; stdcall;
+    function GetComputedStyle(const pPointer: IMarkupPointer;
+      out ppComputedStyle: IHTMLComputedStyle): HRESULT; stdcall;
+    function ScrollRectIntoView(const pIElement: IHTMLElement; rect: TRect): HRESULT; stdcall;
+    function HasFlowLayout(const pIElement: IHTMLElement; out pfHasFlowLayout: Integer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLComputedStyle
+// Flags:     (0)
+// GUID:      {3050F6C3-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLComputedStyle = interface(IUnknown)
+    ['{3050F6C3-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_bold(out p: WordBool): HRESULT; stdcall;
+    function Get_italic(out p: WordBool): HRESULT; stdcall;
+    function Get_underline(out p: WordBool): HRESULT; stdcall;
+    function Get_overline(out p: WordBool): HRESULT; stdcall;
+    function Get_strikeOut(out p: WordBool): HRESULT; stdcall;
+    function Get_subScript(out p: WordBool): HRESULT; stdcall;
+    function Get_superScript(out p: WordBool): HRESULT; stdcall;
+    function Get_explicitFace(out p: WordBool): HRESULT; stdcall;
+    function Get_fontWeight(out p: Integer): HRESULT; stdcall;
+    function Get_fontSize(out p: Integer): HRESULT; stdcall;
+    function Get_fontName(out p: Word): HRESULT; stdcall;
+    function Get_hasBgColor(out p: WordBool): HRESULT; stdcall;
+    function Get_textColor(out p: LongWord): HRESULT; stdcall;
+    function Get_backgroundColor(out p: LongWord): HRESULT; stdcall;
+    function Get_preFormatted(out p: WordBool): HRESULT; stdcall;
+    function Get_direction(out p: WordBool): HRESULT; stdcall;
+    function Get_blockDirection(out p: WordBool): HRESULT; stdcall;
+    function Get_OL(out p: WordBool): HRESULT; stdcall;
+    function isEqual(const pComputedStyle: IHTMLComputedStyle; out pfEqual: WordBool): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHtmlDlgSafeHelper
+// Flags:     (4096) Dispatchable
+// GUID:      {3050F81A-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHtmlDlgSafeHelper = interface(IDispatch)
+    ['{3050F81A-98B5-11CF-BB82-00AA00BDCE0B}']
+    function choosecolordlg(initColor: OleVariant; out rgbColor: OleVariant): HRESULT; stdcall;
+    function getCharset(const fontName: WideString; out charset: OleVariant): HRESULT; stdcall;
+    function Get_fonts(out p: IDispatch): HRESULT; stdcall;
+    function Get_BlockFormats(out p: IDispatch): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IBlockFormats
+// Flags:     (4096) Dispatchable
+// GUID:      {3050F830-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IBlockFormats = interface(IDispatch)
+    ['{3050F830-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get__newEnum(out p: IUnknown): HRESULT; stdcall;
+    function Get_Count(out p: Integer): HRESULT; stdcall;
+    function item(var pvarIndex: OleVariant; out pbstrBlockFormat: WideString): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IFontNames
+// Flags:     (4096) Dispatchable
+// GUID:      {3050F839-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IFontNames = interface(IDispatch)
+    ['{3050F839-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get__newEnum(out p: IUnknown): HRESULT; stdcall;
+    function Get_Count(out p: Integer): HRESULT; stdcall;
+    function item(var pvarIndex: OleVariant; out pbstrFontName: WideString): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: ICSSFilter
+// Flags:     (0)
+// GUID:      {3050F3EC-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  ICSSFilter = interface(IUnknown)
+    ['{3050F3EC-98B5-11CF-BB82-00AA00BDCE0B}']
+    function SetSite(const pSink: ICSSFilterSite): HRESULT; stdcall;
+    function OnAmbientPropertyChange(dispid: Integer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: ISecureUrlHost
+// Flags:     (0)
+// GUID:      {C81984C4-74C8-11D2-BAA9-00C04FC2040E}
+// *********************************************************************//
+  ISecureUrlHost = interface(IUnknown)
+    ['{C81984C4-74C8-11D2-BAA9-00C04FC2040E}']
+    function ValidateSecureUrl(out pfAllow: Integer; var pchUrlInQuestion: Word; dwFlags: LongWord): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IMarkupServices
+// Flags:     (0)
+// GUID:      {3050F4A0-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IMarkupServices = interface(IUnknown)
+    ['{3050F4A0-98B5-11CF-BB82-00AA00BDCE0B}']
+    function CreateMarkupPointer(out ppPointer: IMarkupPointer): HRESULT; stdcall;
+    function CreateMarkupContainer(out ppMarkupContainer: IMarkupContainer): HRESULT; stdcall;
+// !! API change
+//    function createElement(tagID: _ELEMENT_TAG_ID; pchAttributes: PWord;
+//                           out ppElement: IHTMLElement): HRESULT; stdcall;
+    function createElement(tagID: _ELEMENT_TAG_ID; const pchAttributes: WideString;
+      out ppElement: IHTMLElement): HRESULT; stdcall;
+    function CloneElement(const pElemCloneThis: IHTMLElement; out ppElementTheClone: IHTMLElement): HRESULT; stdcall;
+    function InsertElement(const pElementInsert: IHTMLElement; const pPointerStart: IMarkupPointer;
+      const pPointerFinish: IMarkupPointer): HRESULT; stdcall;
+    function RemoveElement(const pElementRemove: IHTMLElement): HRESULT; stdcall;
+    function remove(const pPointerStart: IMarkupPointer; const pPointerFinish: IMarkupPointer): HRESULT; stdcall;
+    function Copy(const pPointerSourceStart: IMarkupPointer;
+      const pPointerSourceFinish: IMarkupPointer; const pPointerTarget: IMarkupPointer): HRESULT; stdcall;
+    function move(const pPointerSourceStart: IMarkupPointer;
+      const pPointerSourceFinish: IMarkupPointer; const pPointerTarget: IMarkupPointer): HRESULT; stdcall;
+    // !! API fix decl
+    function InsertText(const pchText: PWideChar; cch: Integer; const pPointerTarget: IMarkupPointer): HRESULT; stdcall;
+    // !! API fix decl
+    function ParseString(pchHTML: PWideString; dwFlags: LongWord;
+      out ppContainerResult: IMarkupContainer;
+      const ppPointerStart: IMarkupPointer; const ppPointerFinish: IMarkupPointer): HRESULT; stdcall;
+    // !! API fix decl
+    function ParseGlobal(const hglobalHTML: HGLOBAL; dwFlags: LongWord;
+      out ppContainerResult: IMarkupContainer;
+      const pPointerStart: IMarkupPointer; const pPointerFinish: IMarkupPointer): HRESULT; stdcall;
+    function IsScopedElement(const pElement: IHTMLElement; out pfScoped: Integer): HRESULT; stdcall;
+    function GetElementTagId(const pElement: IHTMLElement; out ptagId: _ELEMENT_TAG_ID): HRESULT; stdcall;
+    function GetTagIDForName(const bstrName: WideString; out ptagId: _ELEMENT_TAG_ID): HRESULT; stdcall;
+    function GetNameForTagID(tagID: _ELEMENT_TAG_ID; out pbstrName: WideString): HRESULT; stdcall;
+    function MovePointersToRange(const pIRange: IHTMLTxtRange; const pPointerStart: IMarkupPointer;
+      const pPointerFinish: IMarkupPointer): HRESULT; stdcall;
+    function MoveRangeToPointers(const pPointerStart: IMarkupPointer;
+      const pPointerFinish: IMarkupPointer; const pIRange: IHTMLTxtRange): HRESULT; stdcall;
+// !! API Change
+//    function BeginUndoUnit(var pchTitle: Word): HRESULT; stdcall;
+    function BeginUndoUnit(const pchTitle: WideString): HRESULT; stdcall;
+    function EndUndoUnit: HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IMarkupServices2
+// Flags:     (0)
+// GUID:      {3050F682-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IMarkupServices2 = interface(IMarkupServices)
+    ['{3050F682-98B5-11CF-BB82-00AA00BDCE0B}']
+    // !! API fix decl
+    function ParseGlobalEx(hglobalHTML: HGLOBAL; dwFlags: DWord;
+      const pContext: IMarkupContainer;
+      out ppContainerResult: IMarkupContainer;
+      const pPointerStart: IMarkupPointer; const pPointerFinish: IMarkupPointer): HRESULT; stdcall;
+{                          (hglobalHTML: HGLOBAL; dwFlags: DWord;
+                           const pContext: IMarkupContainer;
+                           out ppContainerResult: IMarkupContainer;
+                           const pPointerStart: IMarkupPointer; const pPointerFinish: IMarkupPointer): HRESULT; stdcall;}
+    // !! API fix decl
+    function ValidateElements(const pPointerStart: IMarkupPointer;
+      const pPointerFinish: IMarkupPointer;
+      const pPointerTarget: IMarkupPointer;
+      pPointerStatus: IMarkupPointer;
+      out ppElemFailBottom: IHTMLElement; out ppElemFailTop: IHTMLElement): HRESULT; stdcall;
+    function SaveSegmentsToClipboard(const pSegmentList: ISegmentList; dwFlags: LongWord): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLChangePlayback
+// Flags:     (0)
+// GUID:      {3050F6E0-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLChangePlayback = interface(IUnknown)
+    ['{3050F6E0-98B5-11CF-BB82-00AA00BDCE0B}']
+// !! API change
+//    function ExecChange(var pbRecord: Byte; fForward: Integer): HRESULT; stdcall;
+    function ExecChange(pbRecord: PByte; fForward: Integer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IMarkupPointer2
+// Flags:     (0)
+// GUID:      {3050F675-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IMarkupPointer2 = interface(IMarkupPointer)
+    ['{3050F675-98B5-11CF-BB82-00AA00BDCE0B}']
+    function IsAtWordBreak(out pfAtBreak: Integer): HRESULT; stdcall;
+    function GetMarkupPosition(out plMP: Integer): HRESULT; stdcall;
+    function MoveToMarkupPosition(const pContainer: IMarkupContainer; lMP: Integer): HRESULT; stdcall;
+    function MoveUnitBounded(muAction: _MOVEUNIT_ACTION; const pIBoundary: IMarkupPointer): HRESULT; stdcall;
+    function IsInsideURL(const pRight: IMarkupPointer; out pfResult: Integer): HRESULT; stdcall;
+    function MoveToContent(const pIElement: IHTMLElement; fAtStart: Integer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IMarkupTextFrags
+// Flags:     (0)
+// GUID:      {3050F5FA-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IMarkupTextFrags = interface(IUnknown)
+    ['{3050F5FA-98B5-11CF-BB82-00AA00BDCE0B}']
+    function GetTextFragCount(out pcFrags: Integer): HRESULT; stdcall;
+    function GetTextFrag(iFrag: Integer; out pbstrFrag: WideString;
+      const pPointerFrag: IMarkupPointer): HRESULT; stdcall;
+    function RemoveTextFrag(iFrag: Integer): HRESULT; stdcall;
+    function InsertTextFrag(iFrag: Integer; const bstrInsert: WideString;
+      const pPointerInsert: IMarkupPointer): HRESULT; stdcall;
+    function FindTextFragFromMarkupPointer(const pPointerFind: IMarkupPointer; out piFrag: Integer;
+      out pfFragFound: Integer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IXMLGenericParse
+// Flags:     (0)
+// GUID:      {E4E23071-4D07-11D2-AE76-0080C73BC199}
+// *********************************************************************//
+  IXMLGenericParse = interface(IUnknown)
+    ['{E4E23071-4D07-11D2-AE76-0080C73BC199}']
+    function SetGenericParse(fDoGeneric: WordBool): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLEditHost
+// Flags:     (0)
+// GUID:      {3050F6A0-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLEditHost = interface(IUnknown)
+    ['{3050F6A0-98B5-11CF-BB82-00AA00BDCE0B}']
+    function SnapRect(const pIElement: IHTMLElement; var prcNew: TRect; eHandle: _ELEMENT_CORNER): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLEditHost2
+// Flags:     (0)
+// GUID:      {3050F848-98B5-11CF-BB82-00AA00BDCE0D}
+// *********************************************************************//
+  IHTMLEditHost2 = interface(IHTMLEditHost)
+    ['{3050F848-98B5-11CF-BB82-00AA00BDCE0D}']
+    function PreDrag: HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: ISequenceNumber
+// Flags:     (0)
+// GUID:      {3050F6C1-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  ISequenceNumber = interface(IUnknown)
+    ['{3050F6C1-98B5-11CF-BB82-00AA00BDCE0B}']
+    function GetSequenceNumber(nCurrent: Integer; out pnNew: Integer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IIMEServices
+// Flags:     (0)
+// GUID:      {3050F6CA-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IIMEServices = interface(IUnknown)
+    ['{3050F6CA-98B5-11CF-BB82-00AA00BDCE0B}']
+    function GetActiveIMM(out ppActiveIMM: IActiveIMMApp): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: ISelectionServicesListener
+// Flags:     (0)
+// GUID:      {3050F699-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  ISelectionServicesListener = interface(IUnknown)
+    ['{3050F699-98B5-11CF-BB82-00AA00BDCE0B}']
+    function BeginSelectionUndo: HRESULT; stdcall;
+    function EndSelectionUndo: HRESULT; stdcall;
+    function OnSelectedElementExit(const pIElementStart: IMarkupPointer;
+      const pIElementEnd: IMarkupPointer;
+      const pIElementContentStart: IMarkupPointer;
+      const pIElementContentEnd: IMarkupPointer): HRESULT; stdcall;
+    function OnChangeType(eType: _SELECTION_TYPE; const pIListener: ISelectionServicesListener): HRESULT; stdcall;
+    function GetTypeDetail(out pTypeDetail: WideString): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: ISelectionServices
+// Flags:     (0)
+// GUID:      {3050F684-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  ISelectionServices = interface(IUnknown)
+    ['{3050F684-98B5-11CF-BB82-00AA00BDCE0B}']
+    function SetSelectionType(eType: _SELECTION_TYPE; const pIListener: ISelectionServicesListener): HRESULT; stdcall;
+    function GetMarkupContainer(out ppIContainer: IMarkupContainer): HRESULT; stdcall;
+    function AddSegment(const pIStart: IMarkupPointer; const pIEnd: IMarkupPointer;
+      out ppISegmentAdded: ISegment): HRESULT; stdcall;
+    function AddElementSegment(const pIElement: IHTMLElement; out ppISegmentAdded: IElementSegment): HRESULT; stdcall;
+    function RemoveSegment(const pISegment: ISegment): HRESULT; stdcall;
+    function GetSelectionServicesListener(out ppISelectionServicesListener: ISelectionServicesListener): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLEditDesigner
+// Flags:     (0)
+// GUID:      {3050F662-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLEditDesigner = interface(IUnknown)
+    ['{3050F662-98B5-11CF-BB82-00AA00BDCE0B}']
+    function PreHandleEvent(inEvtDispId: Integer; const pIEventObj: IHTMLEventObj): HRESULT; stdcall;
+    function PostHandleEvent(inEvtDispId: Integer; const pIEventObj: IHTMLEventObj): HRESULT; stdcall;
+    function TranslateAccelerator(inEvtDispId: Integer; const pIEventObj: IHTMLEventObj): HRESULT; stdcall;
+    function PostEditorEventNotify(inEvtDispId: Integer; const pIEventObj: IHTMLEventObj): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLEditServices
+// Flags:     (0)
+// GUID:      {3050F663-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLEditServices = interface(IUnknown)
+    ['{3050F663-98B5-11CF-BB82-00AA00BDCE0B}']
+    function AddDesigner(const pIDesigner: IHTMLEditDesigner): HRESULT; stdcall;
+    function RemoveDesigner(const pIDesigner: IHTMLEditDesigner): HRESULT; stdcall;
+    function GetSelectionServices(const pIContainer: IMarkupContainer;
+      out ppSelSvc: ISelectionServices): HRESULT; stdcall;
+    function MoveToSelectionAnchor(const pIStartAnchor: IMarkupPointer): HRESULT; stdcall;
+    function MoveToSelectionEnd(const pIEndAnchor: IMarkupPointer): HRESULT; stdcall;
+    function SelectRange(const pStart: IMarkupPointer; const pEnd: IMarkupPointer;
+      eType: _SELECTION_TYPE): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLEditServices2
+// Flags:     (0)
+// GUID:      {3050F812-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLEditServices2 = interface(IHTMLEditServices)
+    ['{3050F812-98B5-11CF-BB82-00AA00BDCE0B}']
+    function MoveToSelectionAnchorEx(const pIStartAnchor: IDisplayPointer): HRESULT; stdcall;
+    function MoveToSelectionEndEx(const pIEndAnchor: IDisplayPointer): HRESULT; stdcall;
+    function FreezeVirtualCaretPos(fReCompute: Integer): HRESULT; stdcall;
+    function UnFreezeVirtualCaretPos(fReset: Integer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// DispIntf:  HTMLNamespaceEvents
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F6BD-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  HTMLNamespaceEvents = dispinterface
+    ['{3050F6BD-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure onreadystatechange(const pEvtObj: IHTMLEventObj); dispid - 609;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLNamespace
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F6BB-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLNamespace = interface(IDispatch)
+    ['{3050F6BB-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_name: WideString; safecall;
+    function Get_urn: WideString; safecall;
+    function Get_tagNames: IDispatch; safecall;
+    function Get_readyState: OleVariant; safecall;
+    procedure Set_onreadystatechange(p: OleVariant); safecall;
+    function Get_onreadystatechange: OleVariant; safecall;
+    procedure doImport(const bstrImplementationUrl: WideString); safecall;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; safecall;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); safecall;
+    property name: WideString read Get_name;
+    property urn: WideString read Get_urn;
+    property tagNames: IDispatch read Get_tagNames;
+    property readyState: OleVariant read Get_readyState;
+    property onreadystatechange: OleVariant read Get_onreadystatechange write Set_onreadystatechange;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLNamespaceDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F6BB-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLNamespaceDisp = dispinterface
+    ['{3050F6BB-98B5-11CF-BB82-00AA00BDCE0B}']
+    property name: WideString readonly dispid 1000;
+    property urn: WideString readonly dispid 1001;
+    property tagNames: IDispatch readonly dispid 1002;
+    property readyState: OleVariant readonly dispid - 2147412996;
+    property onreadystatechange: OleVariant dispid - 2147412087;
+    procedure doImport(const bstrImplementationUrl: WideString); dispid 1003;
+    function attachEvent(const event: WideString; const pdisp: IDispatch): WordBool; dispid - 2147417605;
+    procedure detachEvent(const event: WideString; const pdisp: IDispatch); dispid - 2147417604;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLNamespaceCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F6B8-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLNamespaceCollection = interface(IDispatch)
+    ['{3050F6B8-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_length: Integer; safecall;
+    function item(index: OleVariant): IDispatch; safecall;
+    function add(const bstrNamespace: WideString; const bstrUrn: WideString;
+      implementationUrl: OleVariant): IDispatch; safecall;
+    property length: Integer read Get_length;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLNamespaceCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F6B8-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLNamespaceCollectionDisp = dispinterface
+    ['{3050F6B8-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1000;
+    function item(index: OleVariant): IDispatch; dispid 0;
+    function add(const bstrNamespace: WideString; const bstrUrn: WideString;
+      implementationUrl: OleVariant): IDispatch; dispid 1001;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLPainter
+// Flags:     (0)
+// GUID:      {3050F6A6-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLPainter = interface(IUnknown)
+    ['{3050F6A6-98B5-11CF-BB82-00AA00BDCE0B}']
+    // !! API fix decl
+    function Draw(rcBounds: TRect; rcUpdate: TRect; lDrawFlags: Integer;
+      hdc: hdc; pvDrawObject: Pointer): HRESULT; stdcall;
+    function onresize(size: TSize): HRESULT; stdcall;
+    function GetPainterInfo(out pInfo: _HTML_PAINTER_INFO): HRESULT; stdcall;
+    function HitTestPoint(pt: TPoint; out pbHit: BOOL; out plPartID: Longint): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLPaintSite
+// Flags:     (0)
+// GUID:      {3050F6A7-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLPaintSite = interface(IUnknown)
+    ['{3050F6A7-98B5-11CF-BB82-00AA00BDCE0B}']
+    function InvalidatePainterInfo: HRESULT; stdcall;
+    // !! API fix decl
+    function InvalidateRect(prcInvalid: PRect): HRESULT; stdcall;
+    function InvalidateRegion(var rgnInvalid: Pointer): HRESULT; stdcall;
+    function GetDrawInfo(lFlags: Integer; out pDrawInfo: _HTML_PAINT_DRAW_INFO): HRESULT; stdcall;
+    function TransformGlobalToLocal(ptGlobal: TPoint; out pptLocal: TPoint): HRESULT; stdcall;
+    function TransformLocalToGlobal(ptLocal: TPoint; out pptGlobal: TPoint): HRESULT; stdcall;
+    function GetHitTestCookie(out plCookie: Integer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLPainterEventInfo
+// Flags:     (0)
+// GUID:      {3050F6DF-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLPainterEventInfo = interface(IUnknown)
+    ['{3050F6DF-98B5-11CF-BB82-00AA00BDCE0B}']
+    function GetEventInfoFlags(out plEventInfoFlags: Integer): HRESULT; stdcall;
+    function GetEventTarget(var ppElement: IHTMLElement): HRESULT; stdcall;
+    function SetCursor(lPartID: Integer): HRESULT; stdcall;
+    function StringFromPartID(lPartID: Integer; out pbstrPart: WideString): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLPainterOverlay
+// Flags:     (0)
+// GUID:      {3050F7E3-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLPainterOverlay = interface(IUnknown)
+    ['{3050F7E3-98B5-11CF-BB82-00AA00BDCE0B}']
+    function onmove(rcDevice: TRect): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLIPrintCollection
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F6B5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLIPrintCollection = interface(IDispatch)
+    ['{3050F6B5-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_length: Integer; safecall;
+    function Get__newEnum: IUnknown; safecall;
+    function item(index: Integer): IUnknown; safecall;
+    property length: Integer read Get_length;
+    property _newEnum: IUnknown read Get__newEnum;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLIPrintCollectionDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F6B5-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLIPrintCollectionDisp = dispinterface
+    ['{3050F6B5-98B5-11CF-BB82-00AA00BDCE0B}']
+    property length: Integer readonly dispid 1501;
+    property _newEnum: IUnknown readonly dispid - 4;
+    function item(index: Integer): IUnknown; dispid 0;
+  end;
+
+// *********************************************************************//
+// Interface: IEnumPrivacyRecords
+// Flags:     (0)
+// GUID:      {3050F844-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IEnumPrivacyRecords = interface(IUnknown)
+    ['{3050F844-98B5-11CF-BB82-00AA00BDCE0B}']
+    function reset: HRESULT; stdcall;
+    function GetSize(out pSize: LongWord): HRESULT; stdcall;
+    function GetPrivacyImpacted(out pState: Integer): HRESULT; stdcall;
+    function Next(out pbstrUrl: WideString; out pbstrPolicyRef: WideString;
+      out pdwReserved: Integer; out pdwPrivacyFlags: LongWord): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDialog
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F216-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDialog = interface(IDispatch)
+    ['{3050F216-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_dialogTop(p: OleVariant); safecall;
+    function Get_dialogTop: OleVariant; safecall;
+    procedure Set_dialogLeft(p: OleVariant); safecall;
+    function Get_dialogLeft: OleVariant; safecall;
+    procedure Set_dialogWidth(p: OleVariant); safecall;
+    function Get_dialogWidth: OleVariant; safecall;
+    procedure Set_dialogHeight(p: OleVariant); safecall;
+    function Get_dialogHeight: OleVariant; safecall;
+    function Get_dialogArguments: OleVariant; safecall;
+    function Get_menuArguments: OleVariant; safecall;
+    procedure Set_returnValue(p: OleVariant); safecall;
+    function Get_returnValue: OleVariant; safecall;
+    procedure close; safecall;
+    function toString: WideString; safecall;
+    property dialogTop: OleVariant read Get_dialogTop write Set_dialogTop;
+    property dialogLeft: OleVariant read Get_dialogLeft write Set_dialogLeft;
+    property dialogWidth: OleVariant read Get_dialogWidth write Set_dialogWidth;
+    property dialogHeight: OleVariant read Get_dialogHeight write Set_dialogHeight;
+    property dialogArguments: OleVariant read Get_dialogArguments;
+    property menuArguments: OleVariant read Get_menuArguments;
+    property returnValue: OleVariant read Get_returnValue write Set_returnValue;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDialogDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F216-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDialogDisp = dispinterface
+    ['{3050F216-98B5-11CF-BB82-00AA00BDCE0B}']
+    property dialogTop: OleVariant dispid - 2147418108;
+    property dialogLeft: OleVariant dispid - 2147418109;
+    property dialogWidth: OleVariant dispid - 2147418107;
+    property dialogHeight: OleVariant dispid - 2147418106;
+    property dialogArguments: OleVariant readonly dispid 25000;
+    property menuArguments: OleVariant readonly dispid 25013;
+    property returnValue: OleVariant dispid 25001;
+    procedure close; dispid 25011;
+    function toString: WideString; dispid 25012;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDialog2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5E0-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDialog2 = interface(IDispatch)
+    ['{3050F5E0-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_status(const p: WideString); safecall;
+    function Get_status: WideString; safecall;
+    procedure Set_resizable(const p: WideString); safecall;
+    function Get_resizable: WideString; safecall;
+    property status: WideString read Get_status write Set_status;
+    property resizable: WideString read Get_resizable write Set_resizable;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDialog2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5E0-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDialog2Disp = dispinterface
+    ['{3050F5E0-98B5-11CF-BB82-00AA00BDCE0B}']
+    property status: WideString dispid 25014;
+    property resizable: WideString dispid 25015;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLDialog3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F388-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDialog3 = interface(IDispatch)
+    ['{3050F388-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_unadorned(const p: WideString); safecall;
+    function Get_unadorned: WideString; safecall;
+    procedure Set_dialogHide(const p: WideString); safecall;
+    function Get_dialogHide: WideString; safecall;
+    property unadorned: WideString read Get_unadorned write Set_unadorned;
+    property dialogHide: WideString read Get_dialogHide write Set_dialogHide;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLDialog3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F388-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLDialog3Disp = dispinterface
+    ['{3050F388-98B5-11CF-BB82-00AA00BDCE0B}']
+    property unadorned: WideString dispid 25016;
+    property dialogHide: WideString dispid 25007;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLModelessInit
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5E4-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLModelessInit = interface(IDispatch)
+    ['{3050F5E4-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Get_parameters: OleVariant; safecall;
+    function Get_optionString: OleVariant; safecall;
+    function Get_moniker: IUnknown; safecall;
+    function Get_document: IUnknown; safecall;
+    property parameters: OleVariant read Get_parameters;
+    property optionString: OleVariant read Get_optionString;
+    property moniker: IUnknown read Get_moniker;
+    property document: IUnknown read Get_document;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLModelessInitDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5E4-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLModelessInitDisp = dispinterface
+    ['{3050F5E4-98B5-11CF-BB82-00AA00BDCE0B}']
+    property parameters: OleVariant readonly dispid 25000;
+    property optionString: OleVariant readonly dispid 25001;
+    property moniker: IUnknown readonly dispid 25006;
+    property document: IUnknown readonly dispid 25007;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLPopup
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F666-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLPopup = interface(IDispatch)
+    ['{3050F666-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Show(x: Integer; y: Integer; w: Integer; h: Integer; var pElement: OleVariant); safecall;
+    procedure Hide; safecall;
+    function Get_document: IHTMLDocument; safecall;
+    function Get_isOpen: WordBool; safecall;
+    property document: IHTMLDocument read Get_document;
+    property isOpen: WordBool read Get_isOpen;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLPopupDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F666-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLPopupDisp = dispinterface
+    ['{3050F666-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Show(x: Integer; y: Integer; w: Integer; h: Integer; var pElement: OleVariant); dispid 27001;
+    procedure Hide; dispid 27002;
+    property document: IHTMLDocument readonly dispid 27003;
+    property isOpen: WordBool readonly dispid 27004;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLPopup
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F589-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLPopup = dispinterface
+    ['{3050F589-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Show(x: Integer; y: Integer; w: Integer; h: Integer; var pElement: OleVariant); dispid 27001;
+    procedure Hide; dispid 27002;
+    property document: IHTMLDocument readonly dispid 27003;
+    property isOpen: WordBool readonly dispid 27004;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLAppBehavior
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5CA-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAppBehavior = interface(IDispatch)
+    ['{3050F5CA-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_applicationName(const p: WideString); safecall;
+    function Get_applicationName: WideString; safecall;
+    procedure Set_version(const p: WideString); safecall;
+    function Get_version: WideString; safecall;
+    procedure Set_icon(const p: WideString); safecall;
+    function Get_icon: WideString; safecall;
+    procedure Set_singleInstance(const p: WideString); safecall;
+    function Get_singleInstance: WideString; safecall;
+    procedure Set_minimizeButton(const p: WideString); safecall;
+    function Get_minimizeButton: WideString; safecall;
+    procedure Set_maximizeButton(const p: WideString); safecall;
+    function Get_maximizeButton: WideString; safecall;
+    procedure Set_border(const p: WideString); safecall;
+    function Get_border: WideString; safecall;
+    procedure Set_borderStyle(const p: WideString); safecall;
+    function Get_borderStyle: WideString; safecall;
+    procedure Set_sysMenu(const p: WideString); safecall;
+    function Get_sysMenu: WideString; safecall;
+    procedure Set_caption(const p: WideString); safecall;
+    function Get_caption: WideString; safecall;
+    procedure Set_windowState(const p: WideString); safecall;
+    function Get_windowState: WideString; safecall;
+    procedure Set_showInTaskBar(const p: WideString); safecall;
+    function Get_showInTaskBar: WideString; safecall;
+    function Get_commandLine: WideString; safecall;
+    property applicationName: WideString read Get_applicationName write Set_applicationName;
+    property version: WideString read Get_version write Set_version;
+    property icon: WideString read Get_icon write Set_icon;
+    property singleInstance: WideString read Get_singleInstance write Set_singleInstance;
+    property minimizeButton: WideString read Get_minimizeButton write Set_minimizeButton;
+    property maximizeButton: WideString read Get_maximizeButton write Set_maximizeButton;
+    property border: WideString read Get_border write Set_border;
+    property borderStyle: WideString read Get_borderStyle write Set_borderStyle;
+    property sysMenu: WideString read Get_sysMenu write Set_sysMenu;
+    property caption: WideString read Get_caption write Set_caption;
+    property windowState: WideString read Get_windowState write Set_windowState;
+    property showInTaskBar: WideString read Get_showInTaskBar write Set_showInTaskBar;
+    property commandLine: WideString read Get_commandLine;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLAppBehaviorDisp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5CA-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAppBehaviorDisp = dispinterface
+    ['{3050F5CA-98B5-11CF-BB82-00AA00BDCE0B}']
+    property applicationName: WideString dispid 5000;
+    property version: WideString dispid 5001;
+    property icon: WideString dispid 5002;
+    property singleInstance: WideString dispid 5003;
+    property minimizeButton: WideString dispid 5005;
+    property maximizeButton: WideString dispid 5006;
+    property border: WideString dispid 5007;
+    property borderStyle: WideString dispid 5008;
+    property sysMenu: WideString dispid 5009;
+    property caption: WideString dispid 5010;
+    property windowState: WideString dispid 5011;
+    property showInTaskBar: WideString dispid 5012;
+    property commandLine: WideString readonly dispid 5013;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLAppBehavior2
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5C9-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAppBehavior2 = interface(IDispatch)
+    ['{3050F5C9-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_contextMenu(const p: WideString); safecall;
+    function Get_contextMenu: WideString; safecall;
+    procedure Set_innerBorder(const p: WideString); safecall;
+    function Get_innerBorder: WideString; safecall;
+    procedure Set_scroll(const p: WideString); safecall;
+    function Get_scroll: WideString; safecall;
+    procedure Set_scrollFlat(const p: WideString); safecall;
+    function Get_scrollFlat: WideString; safecall;
+    procedure Set_selection(const p: WideString); safecall;
+    function Get_selection: WideString; safecall;
+    property contextMenu: WideString read Get_contextMenu write Set_contextMenu;
+    property innerBorder: WideString read Get_innerBorder write Set_innerBorder;
+    property scroll: WideString read Get_scroll write Set_scroll;
+    property scrollFlat: WideString read Get_scrollFlat write Set_scrollFlat;
+    property selection: WideString read Get_selection write Set_selection;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLAppBehavior2Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5C9-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAppBehavior2Disp = dispinterface
+    ['{3050F5C9-98B5-11CF-BB82-00AA00BDCE0B}']
+    property contextMenu: WideString dispid 5014;
+    property innerBorder: WideString dispid 5015;
+    property scroll: WideString dispid 5016;
+    property scrollFlat: WideString dispid 5017;
+    property selection: WideString dispid 5018;
+  end;
+
+// *********************************************************************//
+// Interface: IHTMLAppBehavior3
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5CD-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAppBehavior3 = interface(IDispatch)
+    ['{3050F5CD-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure Set_navigable(const p: WideString); safecall;
+    function Get_navigable: WideString; safecall;
+    property navigable: WideString read Get_navigable write Set_navigable;
+  end;
+
+// *********************************************************************//
+// DispIntf:  IHTMLAppBehavior3Disp
+// Flags:     (4416) Dual OleAutomation Dispatchable
+// GUID:      {3050F5CD-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHTMLAppBehavior3Disp = dispinterface
+    ['{3050F5CD-98B5-11CF-BB82-00AA00BDCE0B}']
+    property navigable: WideString dispid 5019;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispHTMLAppBehavior
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F57C-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispHTMLAppBehavior = dispinterface
+    ['{3050F57C-98B5-11CF-BB82-00AA00BDCE0B}']
+    property applicationName: WideString dispid 5000;
+    property version: WideString dispid 5001;
+    property icon: WideString dispid 5002;
+    property singleInstance: WideString dispid 5003;
+    property minimizeButton: WideString dispid 5005;
+    property maximizeButton: WideString dispid 5006;
+    property border: WideString dispid 5007;
+    property borderStyle: WideString dispid 5008;
+    property sysMenu: WideString dispid 5009;
+    property caption: WideString dispid 5010;
+    property windowState: WideString dispid 5011;
+    property showInTaskBar: WideString dispid 5012;
+    property commandLine: WideString readonly dispid 5013;
+    property contextMenu: WideString dispid 5014;
+    property innerBorder: WideString dispid 5015;
+    property scroll: WideString dispid 5016;
+    property scrollFlat: WideString dispid 5017;
+    property selection: WideString dispid 5018;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispIHTMLInputButtonElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F51E-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispIHTMLInputButtonElement = dispinterface
+    ['{3050F51E-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    property type_: WideString readonly dispid 2000;
+    property value: WideString dispid - 2147413011;
+    property name: WideString dispid - 2147418112;
+    property status: OleVariant dispid 2021;
+    property disabled: WordBool dispid - 2147418036;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    function createTextRange: IHTMLTxtRange; dispid 2006;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispIHTMLInputTextElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F520-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispIHTMLInputTextElement = dispinterface
+    ['{3050F520-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    property type_: WideString readonly dispid 2000;
+    property value: WideString dispid - 2147413011;
+    property name: WideString dispid - 2147418112;
+    property status: OleVariant dispid 2021;
+    property disabled: WordBool dispid - 2147418036;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    property defaultValue: WideString dispid - 2147413029;
+    property size: Integer dispid 2002;
+    property maxLength: Integer dispid 2003;
+    procedure select; dispid 2004;
+    property onchange: OleVariant dispid - 2147412082;
+    property onselect: OleVariant dispid - 2147412102;
+    property readOnly: WordBool dispid 2005;
+    function createTextRange: IHTMLTxtRange; dispid 2006;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispIHTMLInputFileElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F542-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispIHTMLInputFileElement = dispinterface
+    ['{3050F542-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    property type_: WideString readonly dispid 2000;
+    property name: WideString dispid - 2147418112;
+    property status: OleVariant dispid 2021;
+    property disabled: WordBool dispid - 2147418036;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    property size: Integer dispid 2002;
+    property maxLength: Integer dispid 2003;
+    procedure select; dispid 2004;
+    property onchange: OleVariant dispid - 2147412082;
+    property onselect: OleVariant dispid - 2147412102;
+    property value: WideString dispid - 2147413011;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispIHTMLOptionButtonElement
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F509-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispIHTMLOptionButtonElement = dispinterface
+    ['{3050F509-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    property value: WideString dispid - 2147413011;
+    property type_: WideString readonly dispid 2000;
+    property name: WideString dispid - 2147418112;
+    property checked: WordBool dispid 2009;
+    property defaultChecked: WordBool dispid 2008;
+    property onchange: OleVariant dispid - 2147412082;
+    property disabled: WordBool dispid - 2147418036;
+    property status: WordBool dispid 2001;
+    property indeterminate: WordBool dispid 2007;
+    property form: IHTMLFormElement readonly dispid - 2147416108;
+    property dataFld: WideString dispid - 2147417091;
+    property dataSrc: WideString dispid - 2147417090;
+    property dataFormatAs: WideString dispid - 2147417089;
+  end;
+
+// *********************************************************************//
+// DispIntf:  DispIHTMLInputImage
+// Flags:     (4112) Hidden Dispatchable
+// GUID:      {3050F51D-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  DispIHTMLInputImage = dispinterface
+    ['{3050F51D-98B5-11CF-BB82-00AA00BDCE0B}']
+    procedure setAttribute(const strAttributeName: WideString; AttributeValue: OleVariant;
+      lFlags: Integer); dispid - 2147417611;
+    function getAttribute(const strAttributeName: WideString; lFlags: Integer): OleVariant; dispid - 2147417610;
+    function removeAttribute(const strAttributeName: WideString; lFlags: Integer): WordBool; dispid - 2147417609;
+    property className: WideString dispid - 2147417111;
+    property id: WideString dispid - 2147417110;
+    property tagName: WideString readonly dispid - 2147417108;
+    property parentElement: IHTMLElement readonly dispid - 2147418104;
+    property style: IHTMLStyle readonly dispid - 2147418038;
+    property onhelp: OleVariant dispid - 2147412099;
+    property onclick: OleVariant dispid - 2147412104;
+    property ondblclick: OleVariant dispid - 2147412103;
+    property onkeydown: OleVariant dispid - 2147412107;
+    property onkeyup: OleVariant dispid - 2147412106;
+    property onkeypress: OleVariant dispid - 2147412105;
+    property onmouseout: OleVariant dispid - 2147412111;
+    property onmouseover: OleVariant dispid - 2147412112;
+    property onmousemove: OleVariant dispid - 2147412108;
+    property onmousedown: OleVariant dispid - 2147412110;
+    property onmouseup: OleVariant dispid - 2147412109;
+    property document: IDispatch readonly dispid - 2147417094;
+    property title: WideString dispid - 2147418043;
+    property language: WideString dispid - 2147413012;
+    property onselectstart: OleVariant dispid - 2147412075;
+    procedure scrollIntoView(varargStart: OleVariant); dispid - 2147417093;
+    function contains(const pChild: IHTMLElement): WordBool; dispid - 2147417092;
+    property sourceIndex: Integer readonly dispid - 2147417088;
+    property recordNumber: OleVariant readonly dispid - 2147417087;
+    property lang: WideString dispid - 2147413103;
+    property offsetLeft: Integer readonly dispid - 2147417104;
+    property offsetTop: Integer readonly dispid - 2147417103;
+    property offsetWidth: Integer readonly dispid - 2147417102;
+    property offsetHeight: Integer readonly dispid - 2147417101;
+    property offsetParent: IHTMLElement readonly dispid - 2147417100;
+    property innerHTML: WideString dispid - 2147417086;
+    property innerText: WideString dispid - 2147417085;
+    property outerHTML: WideString dispid - 2147417084;
+    property outerText: WideString dispid - 2147417083;
+    procedure insertAdjacentHTML(const where: WideString; const html: WideString); dispid - 2147417082;
+    procedure insertAdjacentText(const where: WideString; const text: WideString); dispid - 2147417081;
+    property parentTextEdit: IHTMLElement readonly dispid - 2147417080;
+    property isTextEdit: WordBool readonly dispid - 2147417078;
+    procedure click; dispid - 2147417079;
+    property filters: IHTMLFiltersCollection readonly dispid - 2147417077;
+    property ondragstart: OleVariant dispid - 2147412077;
+    function toString: WideString; dispid - 2147417076;
+    property onbeforeupdate: OleVariant dispid - 2147412091;
+    property onafterupdate: OleVariant dispid - 2147412090;
+    property onerrorupdate: OleVariant dispid - 2147412074;
+    property onrowexit: OleVariant dispid - 2147412094;
+    property onrowenter: OleVariant dispid - 2147412093;
+    property ondatasetchanged: OleVariant dispid - 2147412072;
+    property ondataavailable: OleVariant dispid - 2147412071;
+    property ondatasetcomplete: OleVariant dispid - 2147412070;
+    property onfilterchange: OleVariant dispid - 2147412069;
+    property children: IDispatch readonly dispid - 2147417075;
+    property all: IDispatch readonly dispid - 2147417074;
+    property tabIndex: Smallint dispid - 2147418097;
+    procedure focus; dispid - 2147416112;
+    property accessKey: WideString dispid - 2147416107;
+    property onblur: OleVariant dispid - 2147412097;
+    property onfocus: OleVariant dispid - 2147412098;
+    property onresize: OleVariant dispid - 2147412076;
+    procedure blur; dispid - 2147416110;
+    procedure addFilter(const pUnk: IUnknown); dispid - 2147416095;
+    procedure removeFilter(const pUnk: IUnknown); dispid - 2147416094;
+    property clientHeight: Integer readonly dispid - 2147416093;
+    property clientWidth: Integer readonly dispid - 2147416092;
+    property clientTop: Integer readonly dispid - 2147416091;
+    property clientLeft: Integer readonly dispid - 2147416090;
+    property type_: WideString readonly dispid 2000;
+    property disabled: WordBool dispid - 2147418036;
+    property border: OleVariant dispid 2012;
+    property vspace: Integer dispid 2013;
+    property hspace: Integer dispid 2014;
+    property alt: WideString dispid 2010;
+    property src: WideString dispid 2011;
+    property lowsrc: WideString dispid 2015;
+    property vrml: WideString dispid 2016;
+    property dynsrc: WideString dispid 2017;
+    property readyState: WideString readonly dispid - 2147412996;
+    property complete: WordBool readonly dispid 2018;
+    property loop: OleVariant dispid 2019;
+    property align: WideString dispid - 2147418039;
+    property onload: OleVariant dispid - 2147412080;
+    property onerror: OleVariant dispid - 2147412083;
+    property onabort: OleVariant dispid - 2147412084;
+    property name: WideString dispid - 2147418112;
+    property width: Integer dispid - 2147418107;
+    property height: Integer dispid - 2147418106;
+    property Start: WideString dispid 2020;
+  end;
+
+// *********************************************************************//
+// Interface: IElementNamespace
+// Flags:     (0)
+// GUID:      {3050F671-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementNamespace = interface(IUnknown)
+    ['{3050F671-98B5-11CF-BB82-00AA00BDCE0B}']
+    function AddTag(const bstrTagName: WideString; lFlags: Integer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementNamespaceTable
+// Flags:     (0)
+// GUID:      {3050F670-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementNamespaceTable = interface(IUnknown)
+    ['{3050F670-98B5-11CF-BB82-00AA00BDCE0B}']
+    // !! API fix decl
+    function AddNamespace(const bstrNamespace: WideString; const bstrUrn: WideString;
+      lFlags: Integer; const pvarFactory: OleVariant): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementNamespaceFactory
+// Flags:     (0)
+// GUID:      {3050F672-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementNamespaceFactory = interface(IUnknown)
+    ['{3050F672-98B5-11CF-BB82-00AA00BDCE0B}']
+    function create(pNamespace: IElementNamespace): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementNamespaceFactory2
+// Flags:     (0)
+// GUID:      {3050F805-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementNamespaceFactory2 = interface(IElementNamespaceFactory)
+    ['{3050F805-98B5-11CF-BB82-00AA00BDCE0B}']
+    function CreateWithImplementation(pNamespace: IElementNamespace;
+      const bstrImplementation: WideString): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementNamespaceFactoryCallback
+// Flags:     (0)
+// GUID:      {3050F7FD-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementNamespaceFactoryCallback = interface(IUnknown)
+    ['{3050F7FD-98B5-11CF-BB82-00AA00BDCE0B}']
+    function Resolve(const bstrNamespace, bstrTagName, bstrAttrs: WideString;
+      pNamespace: IElementNamespace): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementBehaviorSiteOM2
+// Flags:     (0)
+// GUID:      {3050F659-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementBehaviorSiteOM2 = interface(IElementBehaviorSiteOM)
+    ['{3050F659-98B5-11CF-BB82-00AA00BDCE0B}']
+    function GetDefaults(out ppDefaults: IHTMLElementDefaults): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementBehaviorCategory
+// Flags:     (0)
+// GUID:      {3050F4ED-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementBehaviorCategory = interface(IUnknown)
+    ['{3050F4ED-98B5-11CF-BB82-00AA00BDCE0B}']
+    function GetCategory(out ppchCategory: PWideChar): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementBehaviorSiteCategory
+// Flags:     (0)
+// GUID:      {3050F4EE-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementBehaviorSiteCategory = interface(IUnknown)
+    ['{3050F4EE-98B5-11CF-BB82-00AA00BDCE0B}']
+    function GetRelatedBehaviors(lDirection: Integer; pchCategory: PWideChar;
+      out ppEnumerator: IEnumUnknown): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IEnumUnknown
+// Flags:     (0)
+// GUID:      {00000100-0000-0000-C000-000000000046}
+// *********************************************************************//
+  IEnumUnknown = interface(IUnknown)
+    ['{00000100-0000-0000-C000-000000000046}']
+    function RemoteNext(celt: LongWord; out rgelt: IUnknown; out pceltFetched: LongWord): HRESULT; stdcall;
+    function Skip(celt: LongWord): HRESULT; stdcall;
+    function reset: HRESULT; stdcall;
+    function Clone(out ppEnum: IEnumUnknown): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementBehaviorSubmit
+// Flags:     (0)
+// GUID:      {3050F646-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementBehaviorSubmit = interface(IUnknown)
+    ['{3050F646-98B5-11CF-BB82-00AA00BDCE0B}']
+    function GetSubmitInfo(pSubmitData: IHTMLSubmitData): HRESULT; stdcall;
+    function reset: HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementBehaviorFocus
+// Flags:     (0)
+// GUID:      {3050F6B6-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementBehaviorFocus = interface(IUnknown)
+    ['{3050F6B6-98B5-11CF-BB82-00AA00BDCE0B}']
+    function GetFocusRect(var pRect: TRect): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementBehaviorLayout
+// Flags:     (0)
+// GUID:      {3050F6BA-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementBehaviorLayout = interface(IUnknown)
+    ['{3050F6BA-98B5-11CF-BB82-00AA00BDCE0B}']
+    function GetSize(dwFlags: Integer; sizeContent: TSize; var pptTranslateBy: TPoint;
+      var pptTopLeft: TPoint; var psizeProposed: TSize): HRESULT; stdcall;
+    function GetLayoutInfo(out plLayoutInfo: Integer): HRESULT; stdcall;
+    function GetPosition(lFlags: Integer; var pptTopLeft: TPoint): HRESULT; stdcall;
+    // !! API fix decl
+    function MapSize(psizeIn: PSize; out prcOut: TRect): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementBehaviorLayout2
+// Flags:     (0)
+// GUID:      {3050F846-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementBehaviorLayout2 = interface(IUnknown)
+    ['{3050F846-98B5-11CF-BB82-00AA00BDCE0B}']
+    function GetTextDescent(out plDescent: Integer): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementBehaviorSiteLayout
+// Flags:     (0)
+// GUID:      {3050F6B7-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementBehaviorSiteLayout = interface(IUnknown)
+    ['{3050F6B7-98B5-11CF-BB82-00AA00BDCE0B}']
+    function InvalidateLayoutInfo: HRESULT; stdcall;
+    function InvalidateSize: HRESULT; stdcall;
+    function GetMediaResolution(out psizeResolution: TSize): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IElementBehaviorSiteLayout2
+// Flags:     (0)
+// GUID:      {3050F847-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IElementBehaviorSiteLayout2 = interface(IUnknown)
+    ['{3050F847-98B5-11CF-BB82-00AA00BDCE0B}']
+    function GetFontInfo(out plf: tagLOGFONTW): HRESULT; stdcall;
+  end;
+
+// *********************************************************************//
+// Interface: IHostBehaviorInit
+// Flags:     (0)
+// GUID:      {3050F842-98B5-11CF-BB82-00AA00BDCE0B}
+// *********************************************************************//
+  IHostBehaviorInit = interface(IUnknown)
+    ['{3050F842-98B5-11CF-BB82-00AA00BDCE0B}']
+    function PopulateNamespaceTable: HRESULT; stdcall;
+  end;
+{$IFDEF DELPHI6_UP}
+{$WARN SYMBOL_PLATFORM ON}
+{$ENDIF}
+
+implementation
+
+end.
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/TMGHTML.pas.bak
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/TMGHTML.pas.bak	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/TMGHTML.pas.bak	(revision 541)
@@ -0,0 +1,1063 @@
+unit TMGHTML;
+
+(*
+NOTES:  By Kevin Toppenberg, MD 5/27/09
+
+Code heavily modified from original code found at www.supermemo.com/source/
+Their notes (below) indicate that the code may be freely used.
+
+This unit encapsulates SHDocVw.dll and MSHTML.dll functionality by subclassing
+THtmlEditorBrowser object as THtmlEditor object
+
+THtmlEditor was designed for easy use of HTML display and editing capacity in
+SuperMemo 2002 for Windows developed by SuperMemo R&D in Fall 2001.
+
+SuperMemo 2002 implements HTML-based incremental reading in which extensive HTML
+support is vital.
+
+Pieces of this units can be used by anyone in other Delphi applications that make
+use of HTML WYSIWYG interfaces made open by Microsoft.
+*)
+
+
+interface
+
+uses SysUtils, WinTypes, Dialogs, StdCtrls, Menus,
+     EmbeddedED,
+     ActiveX, MSHTMLEvents, SHDocVw, {MSHTML,} MSHTML_EWB,
+     AppEvnts,
+     IeConst,Messages,Classes,Forms,Graphics;
+
+const
+  CGID_MSHTML:TGUID='{DE4BA900-59CA-11CF-9592-444553540000}';
+  IID_IOleCommandTarget:TGUID='{B722BCCB-4E68-101B-A2BC-00AA00404770}';
+  CGID_WebBrowser:TGUID='{ED016940-BD5B-11cf-BA4E-00C04FD70816}';
+  FontScale=3;  
+
+type  
+  TSetFontMode = (sfAll,sfSize,sfColor,sfName,sfStyle,sfCharset); 
+
+  TRGBColor = record
+       R : byte; 
+       G : byte;
+       B : byte;
+  end; {record}
+  
+  TMGColor = record
+    case boolean of
+      True: (Color : TColor);
+      False: (RGBColor : TRGBColor);
+  end; {record}
+                               
+type 
+     // THtmlObj=class(TWebBrowser)
+     THtmlObj=class(TEmbeddedED)
+     private
+       FEditable:               boolean;
+       Modified:                boolean;
+       DocEvents:               TMSHTMLHTMLDocumentEvents;   //elh
+       WinEvents:               TMSHTMLHTMLWindowEvents2;
+       CtrlReturnToBeProcessed: boolean;
+       CtrlToBeProcessed  :     boolean;
+       ShiftToBeProcessed :     boolean;
+       ColorDialog:             TColorDialog;       
+       FOrigAppOnMessage :      TMessageEvent;  
+       FCustKeyboardHandlerOn:  boolean;
+       FActive :                boolean;
+       FApplication :           TApplication;
+       procedure WaitLoad(peek:boolean);
+       function  GetEditableState : boolean;
+       procedure SetEditableState (EditOn : boolean);         
+       procedure SetBackgroundColor(Color:TColor);
+       function  GetBackgroundColor : TColor;       
+       procedure SetTextBackgroundColor(Color:TColor);
+       function  GetTextBackgroundColor : TColor;
+       procedure SetTextForegroundColor(Color:TColor);
+       function  GetTextForegroundColor : TColor; 
+       function  GetFontSize : integer;
+       procedure SetFontSize (Size : integer);                   
+       function  GetFontName : string;
+       procedure SetFontName (Name : string);
+       procedure SetActive (Active : boolean);
+       function  GetHTMLText:string;
+       procedure SetHTMLText(HTML:String);
+       function  GetText:string;
+       procedure SetText(HTML:string);       
+       function  GetSelText:string;        
+       procedure SetSelText (HTMLText : string); 
+       procedure DefineDocEvents;  //elh   
+       procedure DefineWinEvents;  
+       procedure OnDocFocusOut(Sender:TObject);  //elh   
+
+       procedure SetDefaultFont;
+       function ColorToMSHTMLStr(color : TColor) : string; 
+       function MSHTMLStrToColor(MSHTMLColor : string) : TColor;
+       
+       //Events ------------------
+       procedure NavigateComplete2(Sender: TObject;const pDisp: IDispatch; var URL: OleVariant);
+       procedure LocalMessageHandler(var Msg: TMsg; var Handled: Boolean);
+       procedure CompleteLoading;              
+       procedure ProcessLoadMessages;
+       function  SpecialCommand(Cmd : Cardinal; PromptUser : boolean;
+                   editModeOnly : boolean; bTriEditCommandGroup : boolean;
+                   InputArgs : OleVariant) : HRESULT;
+       function  HrExecCommand(ucmdID: cardinal;
+                   const pVarIn: OleVariant; var pVarOut: OleVariant; bPromptUser,
+                   bTriEditCmdGroup: boolean): HResult;
+        procedure ReassignKeyboardHandler(TurnOn : boolean);
+       {end private}
+      public
+        TheDoc:        IHTMLDocument2; //MSHTML HTML Document 2 interface
+//        HTMLEvents:    HTMLWindowsEvents2;
+        TheWind:       IHTMLWindow2;
+        DocCmd,WebCmd: IOleCommandTarget; //MSHTML IOLECommandTarget interface
+        PopupMenu:     TPopupMenu;
+        DefaultFontSize : Integer;
+        DefaultFontName : string;
+        constructor Create(Owner:TComponent; Application : TApplication); 
+        destructor Destroy; override;
+        //Properties --- 
+        property Editable : boolean read GetEditableState write SetEditableState;
+        property BackgroundColor : TColor read GetBackgroundColor write SetBackgroundColor;
+        property TextBackgroundColor : TColor read GetTextBackgroundColor write SetTextBackgroundColor;
+        property TextForegroundColor : TColor read GetTextForegroundColor write SetTextForegroundColor;
+        property FontSize : integer read GetFontSize write SetFontSize;
+        property FontName : string read GetFontName write SetFontName;
+        property HTMLText:string read GetHTMLText write SetHTMLText;
+        property Text:string read GetText write SetText;
+        property Active : boolean read FActive write SetActive;
+        property SelText : string read GetSelText write SetSelText;
+        //Methods -------        
+        function GetTextLen : integer;
+        procedure Clear;
+        procedure LoadFile(FileName:string);         
+
+        procedure ToggleBullet;
+        procedure ToggleItalic;
+        procedure ToggleBold;         
+        procedure ToggleNumbering;
+        procedure ToggleUnderline;
+        procedure ToggleSubscript;
+        procedure ToggleSuperscript;
+        procedure Indent;
+        procedure Outdent;
+        procedure AlignLeft;
+        procedure AlignRight;
+        procedure AlignCenter;
+        procedure FontDialog;
+        procedure TextForeColorDialog;
+        procedure TextBackColorDialog;
+
+        procedure SetSelection(Start,Length:integer);
+        function GetTextRange:IHtmlTxtRange;
+        function SelStart:integer;
+        function SelEnd:integer;
+        function SelLength:integer;
+        
+        procedure ClearSelection;
+        procedure ReplaceSelection(HTML:string);
+        {end public}
+      end;
+
+type THtmlEditor=class(THtmlObj);
+
+implementation
+
+
+uses 
+  WinProcs,Controls,Variants,Clipbrd, StrUtils;
+
+const
+  MaxTextLength = 100;
+  nl = #13#10;
+  
+procedure EError(EText : string; E : Exception);
+begin
+  MessageDlg(EText,mtError,[mbOK],0);
+end;
+
+constructor THtmlObj.Create(Owner:TComponent; Application : TApplication);
+begin
+  inherited Create(Owner);
+  TheDoc:=nil;
+  DocCmd:=nil;
+  WebCmd:=nil;
+  ColorDialog := nil;
+  FApplication := Application;
+  FOrigAppOnMessage := Application.OnMessage;
+  FEditable := false;  
+  DefaultFontSize := 10;
+  OnBlur := OnDocFocusOut;
+  DefaultFontName := 'Times New Roman';
+  FCustKeyboardHandlerOn := false;
+  OnNavigateComplete2 := NavigateComplete2;
+end;
+
+destructor THtmlObj.Destroy;
+begin
+  SetActive(false); // ReassignKeyboardHandler(false);
+  ColorDialog.Free;
+  inherited Destroy;
+end;
+
+
+procedure THtmlObj.LoadFile(FileName:string);
+var OldWidth,OldHeight:integer;
+begin
+  try
+     self.Cursor := crHourGlass; 
+     OldHeight:=Height;
+     OldWidth:=Width;
+     Navigate(FileName);
+     Width:=OldWidth; {due to a bug that sizes down HTML components on start}{Oct 15, 2001}
+     Height:=OldHeight;
+     TheDoc:=nil;
+     if DocCmd<>nil then begin
+       DocCmd._Release;
+       DocCmd:=nil;
+     end;
+     WaitLoad(true); //kt
+     self.Cursor := crDefault; //kt     
+  except
+    on E:Exception do begin
+     EError('Cannot load '+Filename,E);
+    end;
+  end;
+end;
+
+
+procedure THtmlObj.WaitLoad(peek:boolean);
+begin
+  try
+     TheDoc:=Document as IHTMLDocument2;
+     while TheDoc=nil do begin
+       if peek then ProcessLoadMessages
+       else exit;
+       TheDoc:=Document as IHTMLDocument2;
+     end;
+
+     repeat
+       ControlInterface.QueryInterface(IID_IOleCommandTarget,WebCmd);
+     until WebCmd<>nil;
+
+     repeat
+       TheDoc.QueryInterface(IOleCommandTarget,DocCmd);
+     until DocCmd<>nil;
+
+     repeat
+       TheWind:=TheDoc.parentWindow;
+     until TheWind<>nil;
+
+     while (TheDoc=nil)or((theDoc.ReadyState<>'complete')and(theDoc.ReadyState<>'interactive')) do begin
+       {remove messages that should not be processed while the element is loading}
+       {TheDoc can become nil when switching applications!}
+       if TheDoc=nil then
+         MessageBeep(0); {this beep is sounded while page is loading while control is no longer in forefront}
+       if peek then
+         ProcessLoadMessages
+       else
+         exit;
+     end;
+     
+  except
+    on E:Exception do EError('Error loading the document',E);
+  end;
+end;
+
+
+procedure THtmlObj.ProcessLoadMessages;
+var msg:TMsg;
+    MessageQueue:array of TMsg;
+    m:integer;
+begin
+  while PeekMessage(msg,0,wm_KeyFirst,wm_KeyLast,pm_Remove) do; {remove keyboard input first}
+  while PeekMessage(msg,0,wm_MouseFirst,wm_MouseLast,pm_Remove) do; {remove mouse input}
+  while PeekMessage(msg,0,wm_Close,wm_Close,pm_Remove) do; {disallow closing the application}
+  while PeekMessage(msg,0,wm_ActivateApp,wm_ActivateApp,pm_Remove) do; {disallow activating the application}
+  //ktwhile PeekMessage(msg,0,wm_User,cm_LastUserMessage,pm_Remove) do begin
+  while PeekMessage(msg,0,wm_User,wm_User+$200,pm_Remove) do begin
+        SetLength(MessageQueue,length(MessageQueue)+1);
+        MessageQueue[length(MessageQueue)-1]:=msg;
+        end;
+  forms.Application.ProcessMessages; {process messages needed to complete navigation}
+  for m:=1 to length(MessageQueue) do begin
+      msg:=MessageQueue[m-1];
+      PostMessage(msg.hwnd,msg.message,msg.WParam,msg.lParam);
+      end;
+end;
+
+function THtmlObj.SpecialCommand(Cmd:Cardinal;PromptUser:boolean;
+                              editModeOnly:boolean;bTriEditCommandGroup:boolean;
+                              InputArgs:OleVariant):HRESULT;
+begin
+  Result:=HrExecCommand(Cmd,null,InputArgs,promptUser,bTriEditCommandGroup);
+end;
+
+
+function THtmlObj.HrExecCommand(ucmdID: cardinal; const pVarIn: OleVariant; 
+                                var pVarOut: OleVariant; bPromptUser,
+                                bTriEditCmdGroup: boolean): HResult;
+var dwCmdOpt:DWORD;
+begin
+   result := S_OK;
+   if DocCmd = nil then Exit;
+   if (bPromptUser) then dwCmdOpt := MSOCMDEXECOPT_PROMPTUSER
+   else dwCmdOpt := MSOCMDEXECOPT_DONTPROMPTUSER;
+   if (bTriEditCmdGroup) then
+     result := DocCmd.Exec(@GUID_TriEditCommandGroup,ucmdID,dwCmdOpt,pVarIn,pVarOut)
+   else
+     result := DocCmd.Exec(@CMDSETID_Forms3,ucmdID,dwCmdOpt,pVarIn,pVarOut);
+end;
+
+procedure THtmlObj.SetDefaultFont;
+begin
+  if DefaultFontName <> '' then SetFontName(DefaultFontName);
+  if DefaultFontSize <> 0 then SetFontSize(DefaultFontSize);
+end;
+
+
+function THtmlObj.GetEditableState : boolean;
+var mode : string;
+begin
+  mode := TheDoc.designMode;
+  result := (mode = 'On');
+end;
+
+procedure THtmlObj.SetEditableState(EditOn : boolean);
+var LastMode : string;
+    count : integer;
+begin
+  LastMode := 'Inherit';
+  try
+    count := 0;
+    repeat
+      inc (count);
+      if TheDoc = nil then begin
+        FApplication.ProcessMessages;
+        Sleep (100);
+        continue;
+      end else if TheDoc.body = nil then begin
+        FApplication.ProcessMessages;
+        Sleep (100);
+        continue;
+      end;  
+      if EditOn then begin
+        TheDoc.body.setAttribute('contentEditable','true',0);
+        TheDoc.designMode := 'On';  //kt
+        FEditable:=true;
+        //SetFocus;
+      end else begin
+        TheDoc.body.setAttribute('contentEditable','false',0);
+        TheDoc.designMode := 'Off';  //kt
+        FEditable:=false;
+      end;  
+      LastMode := TheDoc.designMode;
+    until (LastMode <> 'Inherit') or (count > 20);  
+  except
+    on E:Exception do EError('Error switching into HTML editing state',E);
+  end;
+end;
+
+procedure THtmlObj.ToggleBullet;
+begin
+  if TheDoc=nil then exit;
+  //SpecialCommand(IDM_UnORDERLIST,false,true,false,Null);
+  TheDoc.execCommand('InsertUnorderedList',false,null);  
+  Modified:=true;
+end;
+
+procedure THtmlObj.ToggleItalic;
+begin
+  if TheDoc=nil then exit;
+  //SpecialCommand(IDM_UnORDERLIST,false,true,false,Null);
+  TheDoc.execCommand('Italic',false,null);  
+  Modified:=true;
+end;
+
+procedure THtmlObj.ToggleBold;
+begin
+  if TheDoc=nil then exit;
+  TheDoc.execCommand('Bold',false,null);
+  Modified:=true;
+end;
+
+procedure THtmlObj.ToggleNumbering;
+begin
+  if TheDoc=nil then exit;
+  TheDoc.execCommand('InsertOrderedList',false,null);
+//  SpecialCommand(IDM_ORDERLIST,false,true,false,Null);
+  Modified:=true;
+end;
+
+procedure THtmlObj.ToggleUnderline;
+begin
+   if TheDoc=nil then exit;
+   TheDoc.execCommand('Underline',false,null);
+  Modified:=true;
+end;
+
+procedure THtmlObj.ToggleSubscript;
+begin
+  if TheDoc=nil then exit;
+  TheDoc.execCommand('Subscript',False,0);
+  Modified:=true;
+end;
+
+procedure THtmlObj.ToggleSuperscript;
+begin
+  if TheDoc=nil then exit;
+  TheDoc.execCommand('Superscript',False,0);
+  Modified:=true;
+end;
+
+
+procedure THtmlObj.Indent;
+begin
+  if TheDoc=nil then exit;
+  TheDoc.ExecCommand('Indent',false,0);
+  Modified:=true;
+end;
+
+procedure THtmlObj.Outdent;
+begin
+  if TheDoc=nil then exit;
+  TheDoc.ExecCommand('Outdent',false,0);
+  Modified:=true;
+end;
+
+
+procedure THtmlObj.AlignLeft;
+begin
+  if TheDoc=nil then exit;
+  TheDoc.ExecCommand('JustifyLeft',false,0);
+  Modified:=true;
+end;
+
+procedure THtmlObj.AlignRight;
+begin
+  if TheDoc=nil then exit;
+  TheDoc.ExecCommand('JustifyRight',false,0);
+  Modified:=true;
+end;
+
+procedure THtmlObj.AlignCenter;
+begin
+  if TheDoc=nil then exit;
+  TheDoc.ExecCommand('JustifyCenter',false,0);
+  Modified:=true;
+end;
+
+
+procedure THtmlObj.SetBackgroundColor(Color:TColor);
+begin
+  if TheDoc=nil then exit;
+  WaitLoad(true); //kt  
+  if TheDoc.body=nil then exit;
+  TheDoc.body.style.backgroundColor := ColorToMSHTMLStr(Color);
+end;
+
+function  THtmlObj.GetBackgroundColor : TColor;       
+begin
+  Result := clBlack; //default;
+  if TheDoc=nil then exit;
+  if TheDoc.body=nil then exit;
+  Result := MSHTMLStrToColor(TheDoc.body.style.backgroundColor);
+end;
+
+procedure THtmlObj.TextForeColorDialog;
+begin
+  if ColorDialog = nil then begin
+    ColorDialog := TColorDialog.Create(self);
+  end;
+  if ColorDialog.Execute then begin
+    SetTextForegroundColor(ColorDialog.Color);
+  end;  
+  Modified:=true;
+end;
+
+procedure THtmlObj.TextBackColorDialog;
+begin
+  if ColorDialog = nil then begin
+    ColorDialog := TColorDialog.Create(self);
+  end;
+  if ColorDialog.Execute then begin
+    SetTextBackgroundColor(ColorDialog.Color);
+  end;  
+  Modified:=true;
+end;
+
+procedure THtmlObj.SetTextBackgroundColor(Color:TColor);
+begin
+  if TheDoc=nil then exit;
+  TheDoc.ExecCommand('BackColor',false,Color);
+  Modified:=true;
+end;
+
+function THtmlObj.GetTextBackgroundColor:TColor;
+var Background :  OleVariant;
+    vt         :  TVarType;
+begin
+  Result:=clWindow;
+  try
+    if TheDoc=nil then exit;
+    Background:=TheDoc.queryCommandValue('BackColor');
+    vt:=varType(Background);
+    if vt<>varNull then Result:=Background;
+  except
+    on E:Exception do EError('Error retrieving background color',E);
+  end;
+end;
+
+procedure THtmlObj.SetTextForegroundColor(Color:TColor);
+begin
+  if TheDoc=nil then exit;
+  TheDoc.ExecCommand('ForeColor',false,Color);
+  Modified:=true;
+end;
+
+function THtmlObj.GetTextForegroundColor:TColor;
+var Background :  OleVariant;
+    vt         :  TVarType;
+begin
+  Result:=clWindow;
+  try
+    if TheDoc=nil then exit;
+    Background:=TheDoc.queryCommandValue('ForeColor');
+    vt:=varType(Background);
+    if vt<>varNull then Result:=Background;
+  except
+    on E:Exception do EError('Error retrieving foreground color',E);
+  end;
+end;
+
+procedure THtmlObj.FontDialog;
+begin
+  SpecialCommand(IDM_FONT,True,True,False,Null);
+  Modified:=true;
+end;
+
+function THtmlObj.GetFontSize : integer;
+var FontSize : OleVariant;
+    vt       : TVarType;
+begin
+  FontSize:=TheDoc.queryCommandValue('FontSize');
+  vt:=varType(FontSize);
+  if vt<>varNull then Result := FontSize*FontScale
+  else Result :=12*FontScale; //kt
+end;
+
+procedure THtmlObj.SetFontSize (Size : integer);
+begin
+  if TheDoc=nil then exit;
+  TheDoc.ExecCommand('FontSize', false, Size div FontScale);
+end;
+
+function THtmlObj.GetFontName : string;
+var FontName :OleVariant;
+    vt : TVarType;
+begin
+  if TheDoc=nil then exit;
+  FontName:=TheDoc.queryCommandValue('FontName');
+  vt:=varType(FontName);
+  if vt<>varNull then Result := FontName
+  else Result :='Times New Roman'; //kt
+end;
+
+procedure THtmlObj.SetFontName (Name : string);
+begin
+  if TheDoc=nil then exit;
+  TheDoc.ExecCommand('FontName', false, Name);
+end;
+
+procedure THtmlObj.SetActive (Active : boolean);
+//NOTE: This object grabs the OnMessage for the entire application, so that 
+//      it can intercept the right-click.  As a result, the object needs a
+//      way that it can turn off this feature when it is covered up by other
+//      windows application subwindows etc.  This function provides this.
+begin
+  FActive := Active;
+  ReassignKeyboardHandler(FActive);
+end;
+
+
+procedure THtmlObj.NavigateComplete2(Sender: TObject;const pDisp: IDispatch; var URL: OleVariant);
+begin
+  CompleteLoading;
+end;
+
+procedure THtmlObj.CompleteLoading;
+begin
+  Waitload(false); {used only to set up interface variables}
+  SetActive(true); // ReassignKeyboardHandler(true); 
+  //DefineDocEvents;    //elh
+end;
+
+
+procedure THtmlObj.DefineDocEvents;
+//NOTE: When this function is called, keyboard strokes fire this event, but then
+//      the characters never show up in the editor window as having been typed.
+begin
+ // if DocEvents<>nil then Events.Free;
+ // DocEvents := TMSHTMLHTMLDocumentEvents.Create(Self);
+ // DocEvents.Connect(IUnknown(Document));
+ // DocEvents.OnFocusOut:=OnDocFocusOut;
+end;      
+
+procedure THtmlObj.DefineWinEvents;
+//NOTE: When this function is called, keyboard strokes fire this event, but then
+//      the characters never show up in the editor window as having been typed.
+begin
+  //if DocEvents<>nil then Events.Free;
+  //WinEvents := TMSHTMLHTMLWindowEvents2.Create(Self);
+  //DocEvents.Connect(IUnknown(Document));
+  //DocEvents.OnFocusOut:=OnDocFocusOut;
+end;
+
+procedure THtmlObj.OnDocFocusOut(Sender:TObject);
+begin
+  messagedlg('This is the new one', mtWarning,mbOKCancel,0);
+end;
+
+
+
+procedure THtmlObj.ReassignKeyboardHandler(TurnOn : boolean);
+{assign HTML keyboard handler to HTML component; restore standard if TurnOn=false}
+begin
+  if TurnOn then begin
+    FApplication.OnMessage := LocalMessageHandler; 
+    FCustKeyboardHandlerOn := true;
+  end else begin
+    FApplication.OnMessage := FOrigAppOnMessage;
+    FCustKeyboardHandlerOn := false;
+  end;      
+end;
+
+
+procedure THtmlObj.LocalMessageHandler(var Msg: TMsg; var Handled: Boolean);
+var 
+  Cursor : TPoint;
+  i : Integer;
+
+begin
+  Handled:=false; //default to not handled  
+  if not FCustKeyboardHandlerOn then exit;
+  if not ((Msg.Message=WM_KEYDOWN) or
+          (Msg.Message=WM_KEYUP) or
+          (Msg.Message=WM_RBUTTONUP) ) then exit;  //Speedy exit of non-handled messages
+  case Msg.Message of
+    WM_RBUTTONUP : begin
+                     Cursor := ScreenToClient(Msg.pt);
+                      //Ignore message if mouse not over this HTML control
+                     if (Cursor.X<0) or (Cursor.X>Width) or 
+                         (Cursor.Y<0) or (Cursor.Y>Height) then exit;
+                     if CtrlToBeProcessed then begin
+                       CtrlToBeProcessed := false;                   
+                       exit; //Ctrl-right click is ignored
+                     end;  
+                     if assigned(PopupMenu) then PopupMenu.Popup(Mouse.CursorPos.X,Mouse.CursorPos.Y);
+                     Handled:=true;
+                     exit;
+                   end;
+    WM_KEYDOWN :   begin
+                     case Msg.WParam of
+                       VK_CONTROL : begin
+                                      CtrlToBeProcessed:=true;
+                                      Handled:=true;                                      
+                                      exit;
+                                    end;
+                       VK_SHIFT :   begin
+                                      ShiftToBeProcessed:=true;
+                                      Handled:=true;
+                                      exit;
+                                    end;
+                       VK_TAB :     begin
+                                      //kt if not FEditable then exit;
+                                      if ShiftToBeProcessed then begin
+                                        for i := 0 to 5 do begin
+                                          PostMessage(Msg.hwnd, WM_KEYDOWN, VK_LEFT, 0);
+                                        end;  
+                                      end else begin
+                                        for i := 0 to 5 do begin
+                                          PostMessage(Msg.hwnd, WM_KEYDOWN, VK_SPACE, 0);
+                                        end;  
+                                      end;  
+                                      Handled:=true;
+                                    end;
+                       VK_RETURN :  if CtrlReturnToBeProcessed then begin 
+                                      Handled:=false;                                      
+                                      CtrlReturnToBeProcessed := false;
+                                    end else if CtrlToBeProcessed then begin
+                                      Handled:=true;
+                                      CtrlToBeProcessed := False; 
+                                      CtrlReturnToBeProcessed := true;
+                                      //PostMessage(Msg.hwnd, WM_KEYUP, VK_CONTROL, 0);                                      
+                                    end else if ShiftToBeProcessed=false then begin
+                                      //kt if not FEditable then exit;
+                                      keybd_event(VK_SHIFT,0,0,0);
+                                      keybd_event(VK_RETURN,0,0,0);
+                                      keybd_event(VK_SHIFT,0,KEYEVENTF_KEYUP,0);
+                                      Handled:=true;
+                                    end;
+                       Ord('B') :  if CtrlToBeProcessed then begin
+                                     //kt if not FEditable then exit;
+                                     ToggleBold;
+                                     Handled:=true;
+                                     exit;
+                                   end;  
+                       Ord('U') :  if CtrlToBeProcessed then begin
+                                     //kt if not FEditable then exit;
+                                     ToggleUnderline;
+                                     Handled:=true;
+                                     exit;
+                                   end;  
+                       Ord('I') :  if CtrlToBeProcessed then begin
+                                     //kt if not FEditable then exit;
+                                     ToggleItalic;
+                                     Handled:=true;
+                                   end;  
+                     end; {case}
+                   end;
+    WM_KEYUP :     begin
+                     case Msg.WParam of
+                       VK_CONTROL : begin
+                                      CtrlToBeProcessed:=false;
+                                      Handled:=true;
+                                      if CtrlReturnToBeProcessed then begin
+                                        PostMessage(Msg.hwnd, WM_KEYDOWN, VK_RETURN, 0);
+                                      end;                                      
+                                      exit;
+                                    end;
+                       VK_SHIFT :   begin
+                                      ShiftToBeProcessed:=false;
+                                      Handled:=true;
+                                      exit;
+                                   end;
+                                   
+                     end; {case}
+                     //messagedlg('I''m Am Not Active', mtWarning,mbOKCancel,0);
+                     exit;
+                     
+                   end;    
+  end;  {case}
+  end;
+
+procedure THtmlObj.SetHTMLText(Html : String); 
+//After this command, Copy and Paste will not work -- ?? why?  Still true??
+var V : OleVariant;
+    V2 : variant;
+    body : IHTMLElement;
+    status : string;
+    temp : string;
+begin
+  try
+    Stop;
+    TheDoc:=Document as IHTMLDocument2;
+    if TheDoc=nil then exit;
+    body := TheDoc.body;
+
+    if UpperCase(TheDoc.designMode) <> 'ON' then begin
+      TheDoc.designMode := 'on';
+      repeat  //NOTE: potential endless loop.  Perhaps loop only status='loading'?
+        status := TheDoc.readyState;
+        {Possible status values:
+          uninitialized	-- Object is not initialized with data.
+          loading	      -- Object is loading its data.
+          loaded	      -- Object has finished loading its data.
+          interactive	  -- User can interact with the object even though it is not fully loaded.
+          complete	    -- Object is completely initialized.                                      }      
+        if status <> 'complete' then FApplication.ProcessMessages;
+      until (status = 'complete') or (status='interactive') or (status='loaded');
+    end;  
+    body := TheDoc.body;
+    if (body = nil) then begin   //Do so stuff to get IE to make a 'body'.
+      V2 := VarArrayCreate([0, 0], VarVariant);
+      V2[0] := ' ';  //Html;
+      TheDoc.Write(PSafeArray(System.TVarData(V2).VArray));
+      body := TheDoc.body;
+      TheDoc.close;    
+      repeat  
+        status := TheDoc.readyState; //For possible status values, see above) 
+        if status <> 'complete' then FApplication.ProcessMessages;
+      until (status = 'complete') or (status='interactive') or (status='loaded');
+      body := TheDoc.body;
+    end;  
+    body.innerHTML := Html;
+    temp := body.innerHTML;  //to test if it was set or not...
+    Modified:=true;
+  except
+    on E:Exception do EError('Error setting HTML text',E);
+  end;
+end;
+  
+(*
+procedure THtmlObj.SetHTMLText(Html : String); 
+//After this command, Copy and Paste will not work -- ?? why?  Still true??
+var V : OleVariant;
+    V2 : variant;
+    status : string;
+begin
+  try
+    if (TheDoc=nil) or (TheDoc.body=nil) then begin
+      Stop;
+      V := Document;// as IHTMLDocument2;
+      V.Open;
+      V.Clear;
+      V.Write(Html);
+      V.Close;
+      //Fix: Need a way to set font and size in this operation...
+    end else begin
+      TheDoc.body.innerHTML := Html;
+    end;  
+    Modified:=true;
+  except
+    on E:Exception do EError('Error setting HTML text',E);
+  end;
+end;
+*)
+
+function THtmlObj.GetHTMLText:string;
+var WS:WideString;
+    ch:WideChar;
+    n:integer;
+    w:word;
+    s:string;
+begin
+  Result:='';
+  if TheDoc=nil then exit;
+  WS:=TheDoc.body.innerHTML;
+  for n:=1 to length(WS) do begin
+    ch:=WS[n];
+    w:=word(ch);
+    if w>255 then begin
+       s:=IntToStr(w);
+       s:='&#'+s+';';
+    end else s:=ch;
+    Result:=Result+s;
+  end;
+end;
+
+function THtmlObj.GetText:string;
+var WS:WideString;
+    ch:WideChar;
+    n:integer;
+    w:word;
+    s:string;
+begin
+  Result:='';
+  if TheDoc=nil then exit;
+  WS:=TheDoc.body.innerText;
+  for n:=1 to length(WS) do begin
+    ch:=WS[n];
+    w:=word(ch);
+    if w>255 then begin
+      w:=(w mod 256)+48;
+      s:=IntToStr(w);
+      s:=char(w);
+    end else s:=ch;
+    Result:=Result+s;
+  end;
+end;
+
+procedure THtmlObj.SetText(HTML:string);
+begin
+  if (TheDoc=nil)or(TheDoc.body=nil) then SetHTMLText(HTML)
+  else TheDoc.body.innerHTML:=HTML;
+end;
+
+function THtmlObj.GetTextLen : integer;
+begin
+  Result := Length(GetText);
+end;    
+
+procedure THtmlObj.Clear;
+begin
+  SetHTMLText('');
+  SetDefaultFont;
+end;
+
+function THtmlObj.SelStart:integer;
+var TextRange:IHtmlTxtRange;
+begin
+  Result:=0;
+  TextRange:=GetTextRange;
+  if TextRange=nil then exit;
+  Result:=Abs(Integer(TextRange.move('character',-MaxTextLength)));
+end;
+
+function THtmlObj.SelEnd:integer;
+var TextRange:IHtmlTxtRange;
+begin
+  Result:=0;
+  TextRange:=GetTextRange;
+  if TextRange=nil then exit;
+  Result:=Abs(Integer(TextRange.MoveEnd('character',-MaxTextLength)));
+end;
+
+function THtmlObj.SelLength:integer;
+begin
+  Result:=SelEnd-SelStart;
+end;
+
+function THtmlObj.GetTextRange:IHtmlTxtRange;
+begin
+  Result:=nil;
+  try
+    if TheDoc=nil then exit;
+    while TheDoc.body=nil do begin
+      WaitLoad(true);
+      if TheDoc.body=nil then begin
+        if MessageDlg('Wait for document loading?',mtConfirmation,
+                      [mbOK,mbCancel],0) <> mrOK then begin
+          exit;
+        end;  
+      end;  
+    end;
+    if (TheDoc.Selection.type_='Text') or (TheDoc.Selection.type_='None') then begin
+      Result:=TheDoc.Selection.CreateRange as IHtmlTxtRange;
+    end;  
+  except
+    on E:Exception do EError('This type of selection cannot be processed',E);
+  end;
+end;
+
+procedure THtmlObj.SetSelection(Start,Length:integer);
+var TextRange:IHtmlTxtRange;
+    l : integer ; //kt
+begin
+  try
+     if TheDoc=nil then exit;
+     TheDoc.Selection.Empty;
+     TextRange:=GetTextRange;
+     if TextRange=nil then exit;
+     TextRange.collapse(true);
+     l:=TextRange.moveEnd('character',Start+Length);
+     l:=TextRange.moveStart('character',Start);
+     TextRange.select;
+  except
+    on E:Exception do EError('Error setting HTML selection'+nl+
+                             'Start='+IntToStr(Start)+nl+
+                             'Length='+IntToStr(Length),E);
+    end;
+end;
+
+
+procedure THtmlObj.ClearSelection;
+begin
+  if TheDoc=nil then exit;
+  TheDoc.Selection.Clear;
+  Modified:=true;
+end;
+
+
+procedure THtmlObj.ReplaceSelection(HTML:string);
+var TextRange:IHtmlTxtRange;
+begin
+  try
+    TextRange:=GetTextRange;
+    if TextRange=nil then exit;
+    TextRange.PasteHTML(HTML); 
+    Modified:=true;
+  except
+    on E:Exception do begin
+      // implement later... ShortenString(HTML,80);
+      EError('Error pasting HTML'+nl+
+             'Microsoft HTML refuses to paste this string:'+nl+
+             HTML+nl,E);
+    end;
+  end;
+end;
+
+
+function THtmlObj.GetSelText:string;
+var TextRange:IHtmlTxtRange;
+begin
+  Result:='';
+  TextRange:=GetTextRange;
+  if TextRange=nil then
+     exit;
+  Result:=TextRange.text;
+end;
+
+procedure THtmlObj.SetSelText (HTMLText : string);
+begin
+  ReplaceSelection(HTMLText);
+end;
+
+
+function THtmlObj.ColorToMSHTMLStr(color : TColor) : string; 
+//Note: TColor stores colors lo-byte --> hi-byte as RGB
+//Function returns '#RRGGBB'
+var tempColor : TMGColor;        
+begin
+  tempColor.Color := color;
+  Result := '#'+
+            IntToHex(tempColor.RGBColor.R,2)+  
+            IntToHex(tempColor.RGBColor.G,2)+
+            IntToHex(tempColor.RGBColor.B,2);
+end;
+
+function THtmlObj.MSHTMLStrToColor(MSHTMLColor : string) : TColor;
+//Function converts '#RRGGBB' -- TColor
+//Note: TColor stores colors lo-byte --> hi-byte as RGB
+var tempColor : TMGColor;            
+    strHexRed,strHexGreen,strHexBlue : string[2];
+begin
+  Result := clBlack;  //FIX!!!! IMPLEMENT LATER...
+  if Pos('#',MSHTMLColor)=1 then begin
+   // MSHTMLColor := MidStr(MSHTMLColor,2,99);
+   strHexRed := MidStr(MSHTMLColor,2,2);
+   strHexGreen := MidStr(MSHTMLColor,4,2);
+   strHexBlue := MidStr(MSHTMLColor,6,2);
+   tempColor.RGBColor.R := StrToIntDef('$'+StrHexRed,0);
+   tempColor.RGBColor.G := StrToIntDef('$'+StrHexGreen,0);
+   tempColor.RGBColor.B := StrToIntDef('$'+StrHexBlue,0);
+   Result := tempColor.Color;
+   //NOTE: This function has not yet been tested....
+  end;
+end;
+
+(*
+procedure THtmlObj.SetBorder(Border:boolean);
+begin
+  if TheDoc=nil then exit;
+  if TheDoc.body=nil then exit;
+  if not Border then begin
+     if not FEditable then begin
+        TheDoc.body.style.backgroundColor := clYellow; //kt
+        TheDoc.body.style.borderStyle:='none';
+        TheDoc.body.style.borderWidth:='thin';
+        TheDoc.body.style.borderColor:='white';
+        end;
+     if FEditable then begin
+        TheDoc.body.style.backgroundColor := clRed; //kt
+        TheDoc.body.style.borderStyle:='none';
+//        TheDoc.body.filters.
+        TheDoc.body.style.borderWidth:='thin';
+        TheDoc.body.style.borderColor:='blue';
+        end;
+     end;
+  if Border then begin
+     if not FEditable then begin
+        TheDoc.body.style.borderStyle:='solid';
+        TheDoc.body.style.borderWidth:='thin';
+        TheDoc.body.style.borderColor:='silver';
+        end;
+     if FEditable then begin
+        //TheDoc.body.style.backgroundColor := ColorToStr(clLime);
+        TheDoc.body.style.backgroundColor := 'BtnFace';
+        TheDoc.body.style.borderStyle:='solid';
+        TheDoc.body.style.borderWidth:='thin';
+        TheDoc.body.style.borderColor:='green';
+        end;
+     end;
+end;
+
+
+*)
+
+initialization
+
+finalization
+
+end.
+
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/TMGHTML.~pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/TMGHTML.~pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/TMGHTML.~pas	(revision 541)
@@ -0,0 +1,1064 @@
+unit TMGHTML;
+
+(*
+NOTES:  By Kevin Toppenberg, MD 5/27/09
+
+Code heavily modified from original code found at www.supermemo.com/source/
+Their notes (below) indicate that the code may be freely used.
+
+This unit encapsulates SHDocVw.dll and MSHTML.dll functionality by subclassing
+THtmlEditorBrowser object as THtmlEditor object
+
+THtmlEditor was designed for easy use of HTML display and editing capacity in
+SuperMemo 2002 for Windows developed by SuperMemo R&D in Fall 2001.
+
+SuperMemo 2002 implements HTML-based incremental reading in which extensive HTML
+support is vital.
+
+Pieces of this units can be used by anyone in other Delphi applications that make
+use of HTML WYSIWYG interfaces made open by Microsoft.
+*)
+
+
+interface
+
+uses SysUtils, WinTypes, Dialogs, StdCtrls, Menus,
+     EmbeddedED,
+     ActiveX, MSHTMLEvents, SHDocVw, {MSHTML,} MSHTML_EWB,
+     AppEvnts,
+     IeConst,Messages,Classes,Forms,Graphics;
+
+const
+  CGID_MSHTML:TGUID='{DE4BA900-59CA-11CF-9592-444553540000}';
+  IID_IOleCommandTarget:TGUID='{B722BCCB-4E68-101B-A2BC-00AA00404770}';
+  CGID_WebBrowser:TGUID='{ED016940-BD5B-11cf-BA4E-00C04FD70816}';
+  FontScale=3;  
+
+type  
+  TSetFontMode = (sfAll,sfSize,sfColor,sfName,sfStyle,sfCharset); 
+
+  TRGBColor = record
+       R : byte; 
+       G : byte;
+       B : byte;
+  end; {record}
+  
+  TMGColor = record
+    case boolean of
+      True: (Color : TColor);
+      False: (RGBColor : TRGBColor);
+  end; {record}
+                               
+type 
+     // THtmlObj=class(TWebBrowser)
+     THtmlObj=class(TEmbeddedED)
+     private
+       FEditable:               boolean;
+       Modified:                boolean;
+       DocEvents:               TMSHTMLHTMLDocumentEvents;   //elh
+       WinEvents:               TMSHTMLHTMLWindowEvents2;
+       CtrlReturnToBeProcessed: boolean;
+       CtrlToBeProcessed  :     boolean;
+       ShiftToBeProcessed :     boolean;
+       ColorDialog:             TColorDialog;       
+       FOrigAppOnMessage :      TMessageEvent;  
+       FCustKeyboardHandlerOn:  boolean;
+       FActive :                boolean;
+       FApplication :           TApplication;
+       procedure WaitLoad(peek:boolean);
+       function  GetEditableState : boolean;
+       procedure SetEditableState (EditOn : boolean);         
+       procedure SetBackgroundColor(Color:TColor);
+       function  GetBackgroundColor : TColor;       
+       procedure SetTextBackgroundColor(Color:TColor);
+       function  GetTextBackgroundColor : TColor;
+       procedure SetTextForegroundColor(Color:TColor);
+       function  GetTextForegroundColor : TColor; 
+       function  GetFontSize : integer;
+       procedure SetFontSize (Size : integer);                   
+       function  GetFontName : string;
+       procedure SetFontName (Name : string);
+       procedure SetActive (Active : boolean);
+       function  GetHTMLText:string;
+       procedure SetHTMLText(HTML:String);
+       function  GetText:string;
+       procedure SetText(HTML:string);       
+       function  GetSelText:string;        
+       procedure SetSelText (HTMLText : string); 
+       procedure DefineDocEvents;  //elh   
+       procedure DefineWinEvents;  
+       procedure OnDocFocusOut(Sender:TObject);  //elh   
+
+       procedure SetDefaultFont;
+       function ColorToMSHTMLStr(color : TColor) : string; 
+       function MSHTMLStrToColor(MSHTMLColor : string) : TColor;
+       
+       //Events ------------------
+       procedure NavigateComplete2(Sender: TObject;const pDisp: IDispatch; var URL: OleVariant);
+       procedure LocalMessageHandler(var Msg: TMsg; var Handled: Boolean);
+       procedure CompleteLoading;              
+       procedure ProcessLoadMessages;
+       function  SpecialCommand(Cmd : Cardinal; PromptUser : boolean;
+                   editModeOnly : boolean; bTriEditCommandGroup : boolean;
+                   InputArgs : OleVariant) : HRESULT;
+       function  HrExecCommand(ucmdID: cardinal;
+                   const pVarIn: OleVariant; var pVarOut: OleVariant; bPromptUser,
+                   bTriEditCmdGroup: boolean): HResult;
+        procedure ReassignKeyboardHandler(TurnOn : boolean);
+       {end private}
+      public
+        TheDoc:        IHTMLDocument2; //MSHTML HTML Document 2 interface
+//        HTMLEvents:    HTMLWindowsEvents2;
+        TheWind:       IHTMLWindow2;
+        DocCmd,WebCmd: IOleCommandTarget; //MSHTML IOLECommandTarget interface
+        PopupMenu:     TPopupMenu;
+        DefaultFontSize : Integer;
+        DefaultFontName : string;
+        constructor Create(Owner:TComponent; Application : TApplication); 
+        destructor Destroy; override;
+        //Properties --- 
+        property Editable : boolean read GetEditableState write SetEditableState;
+        property BackgroundColor : TColor read GetBackgroundColor write SetBackgroundColor;
+        property TextBackgroundColor : TColor read GetTextBackgroundColor write SetTextBackgroundColor;
+        property TextForegroundColor : TColor read GetTextForegroundColor write SetTextForegroundColor;
+        property FontSize : integer read GetFontSize write SetFontSize;
+        property FontName : string read GetFontName write SetFontName;
+        property HTMLText:string read GetHTMLText write SetHTMLText;
+        property Text:string read GetText write SetText;
+        property Active : boolean read FActive write SetActive;
+        property SelText : string read GetSelText write SetSelText;
+        //Methods -------        
+        function GetTextLen : integer;
+        procedure Clear;
+        procedure LoadFile(FileName:string);         
+
+        procedure ToggleBullet;
+        procedure ToggleItalic;
+        procedure ToggleBold;         
+        procedure ToggleNumbering;
+        procedure ToggleUnderline;
+        procedure ToggleSubscript;
+        procedure ToggleSuperscript;
+        procedure Indent;
+        procedure Outdent;
+        procedure AlignLeft;
+        procedure AlignRight;
+        procedure AlignCenter;
+        procedure FontDialog;
+        procedure TextForeColorDialog;
+        procedure TextBackColorDialog;
+
+        procedure SetSelection(Start,Length:integer);
+        function GetTextRange:IHtmlTxtRange;
+        function SelStart:integer;
+        function SelEnd:integer;
+        function SelLength:integer;
+        
+        procedure ClearSelection;
+        procedure ReplaceSelection(HTML:string);
+        {end public}
+      end;
+
+type THtmlEditor=class(THtmlObj);
+
+implementation
+
+
+uses 
+  WinProcs,Controls,Variants,Clipbrd, StrUtils;
+
+const
+  MaxTextLength = 100;
+  nl = #13#10;
+  
+procedure EError(EText : string; E : Exception);
+begin
+  MessageDlg(EText,mtError,[mbOK],0);
+end;
+
+constructor THtmlObj.Create(Owner:TComponent; Application : TApplication);
+begin
+  inherited Create(Owner);
+  TheDoc:=nil;
+  DocCmd:=nil;
+  WebCmd:=nil;
+  ColorDialog := nil;
+  FApplication := Application;
+  FOrigAppOnMessage := Application.OnMessage;
+  FEditable := false;  
+  DefaultFontSize := 10;
+  OnBlur := OnDocFocusOut;
+  DefaultFontName := 'Times New Roman';
+  FCustKeyboardHandlerOn := false;
+  OnNavigateComplete2 := NavigateComplete2;
+end;
+
+destructor THtmlObj.Destroy;
+begin
+  SetActive(false); // ReassignKeyboardHandler(false);
+  ColorDialog.Free;
+  inherited Destroy;
+end;
+
+
+procedure THtmlObj.LoadFile(FileName:string);
+var OldWidth,OldHeight:integer;
+begin
+  try
+     self.Cursor := crHourGlass; 
+     OldHeight:=Height;
+     OldWidth:=Width;
+     Navigate(FileName);
+     Width:=OldWidth; {due to a bug that sizes down HTML components on start}{Oct 15, 2001}
+     Height:=OldHeight;
+     TheDoc:=nil;
+     if DocCmd<>nil then begin
+       DocCmd._Release;
+       DocCmd:=nil;
+     end;
+     WaitLoad(true); //kt
+     self.Cursor := crDefault; //kt     
+  except
+    on E:Exception do begin
+     EError('Cannot load '+Filename,E);
+    end;
+  end;
+end;
+
+
+procedure THtmlObj.WaitLoad(peek:boolean);
+begin
+  try
+     TheDoc:=Document as IHTMLDocument2;
+     while TheDoc=nil do begin
+       if peek then ProcessLoadMessages
+       else exit;
+       TheDoc:=Document as IHTMLDocument2;
+     end;
+
+     repeat
+       ControlInterface.QueryInterface(IID_IOleCommandTarget,WebCmd);
+     until WebCmd<>nil;
+
+     repeat
+       TheDoc.QueryInterface(IOleCommandTarget,DocCmd);
+     until DocCmd<>nil;
+
+     repeat
+       TheWind:=TheDoc.parentWindow;
+     until TheWind<>nil;
+
+     while (TheDoc=nil)or((theDoc.ReadyState<>'complete')and(theDoc.ReadyState<>'interactive')) do begin
+       {remove messages that should not be processed while the element is loading}
+       {TheDoc can become nil when switching applications!}
+       if TheDoc=nil then
+         MessageBeep(0); {this beep is sounded while page is loading while control is no longer in forefront}
+       if peek then
+         ProcessLoadMessages
+       else
+         exit;
+     end;
+     
+  except
+    on E:Exception do EError('Error loading the document',E);
+  end;
+end;
+
+
+procedure THtmlObj.ProcessLoadMessages;
+var msg:TMsg;
+    MessageQueue:array of TMsg;
+    m:integer;
+begin
+  while PeekMessage(msg,0,wm_KeyFirst,wm_KeyLast,pm_Remove) do; {remove keyboard input first}
+  while PeekMessage(msg,0,wm_MouseFirst,wm_MouseLast,pm_Remove) do; {remove mouse input}
+  while PeekMessage(msg,0,wm_Close,wm_Close,pm_Remove) do; {disallow closing the application}
+  while PeekMessage(msg,0,wm_ActivateApp,wm_ActivateApp,pm_Remove) do; {disallow activating the application}
+  //ktwhile PeekMessage(msg,0,wm_User,cm_LastUserMessage,pm_Remove) do begin
+  while PeekMessage(msg,0,wm_User,wm_User+$200,pm_Remove) do begin
+        SetLength(MessageQueue,length(MessageQueue)+1);
+        MessageQueue[length(MessageQueue)-1]:=msg;
+        end;
+  forms.Application.ProcessMessages; {process messages needed to complete navigation}
+  for m:=1 to length(MessageQueue) do begin
+      msg:=MessageQueue[m-1];
+      PostMessage(msg.hwnd,msg.message,msg.WParam,msg.lParam);
+      end;
+end;
+
+function THtmlObj.SpecialCommand(Cmd:Cardinal;PromptUser:boolean;
+                              editModeOnly:boolean;bTriEditCommandGroup:boolean;
+                              InputArgs:OleVariant):HRESULT;
+begin
+  Result:=HrExecCommand(Cmd,null,InputArgs,promptUser,bTriEditCommandGroup);
+end;
+
+
+function THtmlObj.HrExecCommand(ucmdID: cardinal; const pVarIn: OleVariant; 
+                                var pVarOut: OleVariant; bPromptUser,
+                                bTriEditCmdGroup: boolean): HResult;
+var dwCmdOpt:DWORD;
+begin
+   result := S_OK;
+   if DocCmd = nil then Exit;
+   if (bPromptUser) then dwCmdOpt := MSOCMDEXECOPT_PROMPTUSER
+   else dwCmdOpt := MSOCMDEXECOPT_DONTPROMPTUSER;
+   if (bTriEditCmdGroup) then
+     result := DocCmd.Exec(@GUID_TriEditCommandGroup,ucmdID,dwCmdOpt,pVarIn,pVarOut)
+   else
+     result := DocCmd.Exec(@CMDSETID_Forms3,ucmdID,dwCmdOpt,pVarIn,pVarOut);
+end;
+
+procedure THtmlObj.SetDefaultFont;
+begin
+  if DefaultFontName <> '' then SetFontName(DefaultFontName);
+  if DefaultFontSize <> 0 then SetFontSize(DefaultFontSize);
+end;
+
+
+function THtmlObj.GetEditableState : boolean;
+var mode : string;
+begin
+  mode := TheDoc.designMode;
+  result := (mode = 'On');
+end;
+
+procedure THtmlObj.SetEditableState(EditOn : boolean);
+var LastMode : string;
+    count : integer;
+begin
+  LastMode := 'Inherit';
+  try
+    count := 0;
+    repeat
+      inc (count);
+      if TheDoc = nil then begin
+        FApplication.ProcessMessages;
+        Sleep (100);
+        continue;
+      end else if TheDoc.body = nil then begin
+        FApplication.ProcessMessages;
+        Sleep (100);
+        continue;
+      end;  
+      if EditOn then begin
+        TheDoc.body.setAttribute('contentEditable','true',0);
+        TheDoc.designMode := 'On';  //kt
+        FEditable:=true;
+        //SetFocus;
+      end else begin
+        TheDoc.body.setAttribute('contentEditable','false',0);
+        TheDoc.designMode := 'Off';  //kt
+        FEditable:=false;
+      end;  
+      LastMode := TheDoc.designMode;
+    until (LastMode <> 'Inherit') or (count > 20);  
+  except
+    on E:Exception do EError('Error switching into HTML editing state',E);
+  end;
+end;
+
+procedure THtmlObj.ToggleBullet;
+begin
+  if TheDoc=nil then exit;
+  //SpecialCommand(IDM_UnORDERLIST,false,true,false,Null);
+  TheDoc.execCommand('InsertUnorderedList',false,null);  
+  Modified:=true;
+end;
+
+procedure THtmlObj.ToggleItalic;
+begin
+  if TheDoc=nil then exit;
+  //SpecialCommand(IDM_UnORDERLIST,false,true,false,Null);
+  TheDoc.execCommand('Italic',false,null);  
+  Modified:=true;
+end;
+
+procedure THtmlObj.ToggleBold;
+begin
+  if TheDoc=nil then exit;
+  TheDoc.execCommand('Bold',false,null);
+  Modified:=true;
+end;
+
+procedure THtmlObj.ToggleNumbering;
+begin
+  if TheDoc=nil then exit;
+  TheDoc.execCommand('InsertOrderedList',false,null);
+//  SpecialCommand(IDM_ORDERLIST,false,true,false,Null);
+  Modified:=true;
+end;
+
+procedure THtmlObj.ToggleUnderline;
+begin
+   if TheDoc=nil then exit;
+   TheDoc.execCommand('Underline',false,null);
+  Modified:=true;
+end;
+
+procedure THtmlObj.ToggleSubscript;
+begin
+  if TheDoc=nil then exit;
+  TheDoc.execCommand('Subscript',False,0);
+  Modified:=true;
+end;
+
+procedure THtmlObj.ToggleSuperscript;
+begin
+  if TheDoc=nil then exit;
+  TheDoc.execCommand('Superscript',False,0);
+  Modified:=true;
+end;
+
+
+procedure THtmlObj.Indent;
+begin
+  if TheDoc=nil then exit;
+  TheDoc.ExecCommand('Indent',false,0);
+  Modified:=true;
+end;
+
+procedure THtmlObj.Outdent;
+begin
+  if TheDoc=nil then exit;
+  TheDoc.ExecCommand('Outdent',false,0);
+  Modified:=true;
+end;
+
+
+procedure THtmlObj.AlignLeft;
+begin
+  if TheDoc=nil then exit;
+  TheDoc.ExecCommand('JustifyLeft',false,0);
+  Modified:=true;
+end;
+
+procedure THtmlObj.AlignRight;
+begin
+  if TheDoc=nil then exit;
+  TheDoc.ExecCommand('JustifyRight',false,0);
+  Modified:=true;
+end;
+
+procedure THtmlObj.AlignCenter;
+begin
+  if TheDoc=nil then exit;
+  TheDoc.ExecCommand('JustifyCenter',false,0);
+  Modified:=true;
+end;
+
+
+procedure THtmlObj.SetBackgroundColor(Color:TColor);
+begin
+  if TheDoc=nil then exit;
+  WaitLoad(true); //kt  
+  if TheDoc.body=nil then exit;
+  TheDoc.body.style.backgroundColor := ColorToMSHTMLStr(Color);
+end;
+
+function  THtmlObj.GetBackgroundColor : TColor;       
+begin
+  Result := clBlack; //default;
+  if TheDoc=nil then exit;
+  if TheDoc.body=nil then exit;
+  Result := MSHTMLStrToColor(TheDoc.body.style.backgroundColor);
+end;
+
+procedure THtmlObj.TextForeColorDialog;
+begin
+  if ColorDialog = nil then begin
+    ColorDialog := TColorDialog.Create(self);
+  end;
+  if ColorDialog.Execute then begin
+    SetTextForegroundColor(ColorDialog.Color);
+  end;  
+  Modified:=true;
+end;
+
+procedure THtmlObj.TextBackColorDialog;
+begin
+  if ColorDialog = nil then begin
+    ColorDialog := TColorDialog.Create(self);
+  end;
+  if ColorDialog.Execute then begin
+    SetTextBackgroundColor(ColorDialog.Color);
+  end;  
+  Modified:=true;
+end;
+
+procedure THtmlObj.SetTextBackgroundColor(Color:TColor);
+begin
+  if TheDoc=nil then exit;
+  TheDoc.ExecCommand('BackColor',false,Color);
+  Modified:=true;
+end;
+
+function THtmlObj.GetTextBackgroundColor:TColor;
+var Background :  OleVariant;
+    vt         :  TVarType;
+begin
+  Result:=clWindow;
+  try
+    if TheDoc=nil then exit;
+    Background:=TheDoc.queryCommandValue('BackColor');
+    vt:=varType(Background);
+    if vt<>varNull then Result:=Background;
+  except
+    on E:Exception do EError('Error retrieving background color',E);
+  end;
+end;
+
+procedure THtmlObj.SetTextForegroundColor(Color:TColor);
+begin
+  if TheDoc=nil then exit;
+  TheDoc.ExecCommand('ForeColor',false,Color);
+  Modified:=true;
+end;
+
+function THtmlObj.GetTextForegroundColor:TColor;
+var Background :  OleVariant;
+    vt         :  TVarType;
+begin
+  Result:=clWindow;
+  try
+    if TheDoc=nil then exit;
+    Background:=TheDoc.queryCommandValue('ForeColor');
+    vt:=varType(Background);
+    if vt<>varNull then Result:=Background;
+  except
+    on E:Exception do EError('Error retrieving foreground color',E);
+  end;
+end;
+
+procedure THtmlObj.FontDialog;
+begin
+  SpecialCommand(IDM_FONT,True,True,False,Null);
+  Modified:=true;
+end;
+
+function THtmlObj.GetFontSize : integer;
+var FontSize : OleVariant;
+    vt       : TVarType;
+begin
+  FontSize:=TheDoc.queryCommandValue('FontSize');
+  vt:=varType(FontSize);
+  if vt<>varNull then Result := FontSize*FontScale
+  else Result :=12*FontScale; //kt
+end;
+
+procedure THtmlObj.SetFontSize (Size : integer);
+begin
+  if TheDoc=nil then exit;
+  TheDoc.ExecCommand('FontSize', false, Size div FontScale);
+end;
+
+function THtmlObj.GetFontName : string;
+var FontName :OleVariant;
+    vt : TVarType;
+begin
+  if TheDoc=nil then exit;
+  FontName:=TheDoc.queryCommandValue('FontName');
+  vt:=varType(FontName);
+  if vt<>varNull then Result := FontName
+  else Result :='Times New Roman'; //kt
+end;
+
+procedure THtmlObj.SetFontName (Name : string);
+begin
+  if TheDoc=nil then exit;
+  TheDoc.ExecCommand('FontName', false, Name);
+end;
+
+procedure THtmlObj.SetActive (Active : boolean);
+//NOTE: This object grabs the OnMessage for the entire application, so that 
+//      it can intercept the right-click.  As a result, the object needs a
+//      way that it can turn off this feature when it is covered up by other
+//      windows application subwindows etc.  This function provides this.
+begin
+  FActive := Active;
+  ReassignKeyboardHandler(FActive);
+end;
+
+
+procedure THtmlObj.NavigateComplete2(Sender: TObject;const pDisp: IDispatch; var URL: OleVariant);
+begin
+  CompleteLoading;
+end;
+
+procedure THtmlObj.CompleteLoading;
+begin
+  Waitload(false); {used only to set up interface variables}
+  SetActive(true); // ReassignKeyboardHandler(true); 
+  //DefineDocEvents;    //elh
+end;
+
+
+procedure THtmlObj.DefineDocEvents;
+//NOTE: When this function is called, keyboard strokes fire this event, but then
+//      the characters never show up in the editor window as having been typed.
+begin
+ // if DocEvents<>nil then Events.Free;
+ // DocEvents := TMSHTMLHTMLDocumentEvents.Create(Self);
+ // DocEvents.Connect(IUnknown(Document));
+ // DocEvents.OnFocusOut:=OnDocFocusOut;
+end;      
+
+procedure THtmlObj.DefineWinEvents;
+//NOTE: When this function is called, keyboard strokes fire this event, but then
+//      the characters never show up in the editor window as having been typed.
+begin
+  //if DocEvents<>nil then Events.Free;
+  //WinEvents := TMSHTMLHTMLWindowEvents2.Create(Self);
+  //DocEvents.Connect(IUnknown(Document));
+  //DocEvents.OnFocusOut:=OnDocFocusOut;
+end;
+
+procedure THtmlObj.OnDocFocusOut(Sender:TObject);
+begin
+  messagedlg('This is the new one', mtWarning,mbOKCancel,0);
+end;
+
+
+
+procedure THtmlObj.ReassignKeyboardHandler(TurnOn : boolean);
+{assign HTML keyboard handler to HTML component; restore standard if TurnOn=false}
+begin
+  if TurnOn then begin
+    FApplication.OnMessage := LocalMessageHandler; 
+    FCustKeyboardHandlerOn := true;
+  end else begin
+    FApplication.OnMessage := FOrigAppOnMessage;
+    FCustKeyboardHandlerOn := false;
+  end;      
+end;
+
+
+procedure THtmlObj.LocalMessageHandler(var Msg: TMsg; var Handled: Boolean);
+var 
+  Cursor : TPoint;
+  i : Integer;
+
+begin
+  Handled:=false; //default to not handled  
+  exit;
+  if not FCustKeyboardHandlerOn then exit;
+  if not ((Msg.Message=WM_KEYDOWN) or
+          (Msg.Message=WM_KEYUP) or
+          (Msg.Message=WM_RBUTTONUP) ) then exit;  //Speedy exit of non-handled messages
+  case Msg.Message of
+    WM_RBUTTONUP : begin
+                     Cursor := ScreenToClient(Msg.pt);
+                      //Ignore message if mouse not over this HTML control
+                     if (Cursor.X<0) or (Cursor.X>Width) or 
+                         (Cursor.Y<0) or (Cursor.Y>Height) then exit;
+                     if CtrlToBeProcessed then begin
+                       CtrlToBeProcessed := false;                   
+                       exit; //Ctrl-right click is ignored
+                     end;  
+                     if assigned(PopupMenu) then PopupMenu.Popup(Mouse.CursorPos.X,Mouse.CursorPos.Y);
+                     Handled:=true;
+                     exit;
+                   end;
+    WM_KEYDOWN :   begin
+                     case Msg.WParam of
+                       VK_CONTROL : begin
+                                      CtrlToBeProcessed:=true;
+                                      Handled:=true;                                      
+                                      exit;
+                                    end;
+                       VK_SHIFT :   begin
+                                      ShiftToBeProcessed:=true;
+                                      Handled:=true;
+                                      exit;
+                                    end;
+                       VK_TAB :     begin
+                                      //kt if not FEditable then exit;
+                                      if ShiftToBeProcessed then begin
+                                        for i := 0 to 5 do begin
+                                          PostMessage(Msg.hwnd, WM_KEYDOWN, VK_LEFT, 0);
+                                        end;  
+                                      end else begin
+                                        for i := 0 to 5 do begin
+                                          PostMessage(Msg.hwnd, WM_KEYDOWN, VK_SPACE, 0);
+                                        end;  
+                                      end;  
+                                      Handled:=true;
+                                    end;
+                       VK_RETURN :  if CtrlReturnToBeProcessed then begin 
+                                      Handled:=false;                                      
+                                      CtrlReturnToBeProcessed := false;
+                                    end else if CtrlToBeProcessed then begin
+                                      Handled:=true;
+                                      CtrlToBeProcessed := False; 
+                                      CtrlReturnToBeProcessed := true;
+                                      //PostMessage(Msg.hwnd, WM_KEYUP, VK_CONTROL, 0);                                      
+                                    end else if ShiftToBeProcessed=false then begin
+                                      //kt if not FEditable then exit;
+                                      keybd_event(VK_SHIFT,0,0,0);
+                                      keybd_event(VK_RETURN,0,0,0);
+                                      keybd_event(VK_SHIFT,0,KEYEVENTF_KEYUP,0);
+                                      Handled:=true;
+                                    end;
+                       Ord('B') :  if CtrlToBeProcessed then begin
+                                     //kt if not FEditable then exit;
+                                     ToggleBold;
+                                     Handled:=true;
+                                     exit;
+                                   end;  
+                       Ord('U') :  if CtrlToBeProcessed then begin
+                                     //kt if not FEditable then exit;
+                                     ToggleUnderline;
+                                     Handled:=true;
+                                     exit;
+                                   end;  
+                       Ord('I') :  if CtrlToBeProcessed then begin
+                                     //kt if not FEditable then exit;
+                                     ToggleItalic;
+                                     Handled:=true;
+                                   end;  
+                     end; {case}
+                   end;
+    WM_KEYUP :     begin
+                     case Msg.WParam of
+                       VK_CONTROL : begin
+                                      CtrlToBeProcessed:=false;
+                                      Handled:=true;
+                                      if CtrlReturnToBeProcessed then begin
+                                        PostMessage(Msg.hwnd, WM_KEYDOWN, VK_RETURN, 0);
+                                      end;                                      
+                                      exit;
+                                    end;
+                       VK_SHIFT :   begin
+                                      ShiftToBeProcessed:=false;
+                                      Handled:=true;
+                                      exit;
+                                   end;
+                                   
+                     end; {case}
+                     //messagedlg('I''m Am Not Active', mtWarning,mbOKCancel,0);
+                     exit;
+                     
+                   end;    
+  end;  {case}
+  end;
+
+procedure THtmlObj.SetHTMLText(Html : String); 
+//After this command, Copy and Paste will not work -- ?? why?  Still true??
+var V : OleVariant;
+    V2 : variant;
+    body : IHTMLElement;
+    status : string;
+    temp : string;
+begin
+  try
+    Stop;
+    TheDoc:=Document as IHTMLDocument2;
+    if TheDoc=nil then exit;
+    body := TheDoc.body;
+
+    if UpperCase(TheDoc.designMode) <> 'ON' then begin
+      TheDoc.designMode := 'on';
+      repeat  //NOTE: potential endless loop.  Perhaps loop only status='loading'?
+        status := TheDoc.readyState;
+        {Possible status values:
+          uninitialized	-- Object is not initialized with data.
+          loading	      -- Object is loading its data.
+          loaded	      -- Object has finished loading its data.
+          interactive	  -- User can interact with the object even though it is not fully loaded.
+          complete	    -- Object is completely initialized.                                      }      
+        if status <> 'complete' then FApplication.ProcessMessages;
+      until (status = 'complete') or (status='interactive') or (status='loaded');
+    end;  
+    body := TheDoc.body;
+    if (body = nil) then begin   //Do so stuff to get IE to make a 'body'.
+      V2 := VarArrayCreate([0, 0], VarVariant);
+      V2[0] := ' ';  //Html;
+      TheDoc.Write(PSafeArray(System.TVarData(V2).VArray));
+      body := TheDoc.body;
+      TheDoc.close;    
+      repeat  
+        status := TheDoc.readyState; //For possible status values, see above) 
+        if status <> 'complete' then FApplication.ProcessMessages;
+      until (status = 'complete') or (status='interactive') or (status='loaded');
+      body := TheDoc.body;
+    end;  
+    body.innerHTML := Html;
+    temp := body.innerHTML;  //to test if it was set or not...
+    Modified:=true;
+  except
+    on E:Exception do EError('Error setting HTML text',E);
+  end;
+end;
+  
+(*
+procedure THtmlObj.SetHTMLText(Html : String); 
+//After this command, Copy and Paste will not work -- ?? why?  Still true??
+var V : OleVariant;
+    V2 : variant;
+    status : string;
+begin
+  try
+    if (TheDoc=nil) or (TheDoc.body=nil) then begin
+      Stop;
+      V := Document;// as IHTMLDocument2;
+      V.Open;
+      V.Clear;
+      V.Write(Html);
+      V.Close;
+      //Fix: Need a way to set font and size in this operation...
+    end else begin
+      TheDoc.body.innerHTML := Html;
+    end;  
+    Modified:=true;
+  except
+    on E:Exception do EError('Error setting HTML text',E);
+  end;
+end;
+*)
+
+function THtmlObj.GetHTMLText:string;
+var WS:WideString;
+    ch:WideChar;
+    n:integer;
+    w:word;
+    s:string;
+begin
+  Result:='';
+  if TheDoc=nil then exit;
+  WS:=TheDoc.body.innerHTML;
+  for n:=1 to length(WS) do begin
+    ch:=WS[n];
+    w:=word(ch);
+    if w>255 then begin
+       s:=IntToStr(w);
+       s:='&#'+s+';';
+    end else s:=ch;
+    Result:=Result+s;
+  end;
+end;
+
+function THtmlObj.GetText:string;
+var WS:WideString;
+    ch:WideChar;
+    n:integer;
+    w:word;
+    s:string;
+begin
+  Result:='';
+  if TheDoc=nil then exit;
+  WS:=TheDoc.body.innerText;
+  for n:=1 to length(WS) do begin
+    ch:=WS[n];
+    w:=word(ch);
+    if w>255 then begin
+      w:=(w mod 256)+48;
+      s:=IntToStr(w);
+      s:=char(w);
+    end else s:=ch;
+    Result:=Result+s;
+  end;
+end;
+
+procedure THtmlObj.SetText(HTML:string);
+begin
+  if (TheDoc=nil)or(TheDoc.body=nil) then SetHTMLText(HTML)
+  else TheDoc.body.innerHTML:=HTML;
+end;
+
+function THtmlObj.GetTextLen : integer;
+begin
+  Result := Length(GetText);
+end;    
+
+procedure THtmlObj.Clear;
+begin
+  SetHTMLText('');
+  SetDefaultFont;
+end;
+
+function THtmlObj.SelStart:integer;
+var TextRange:IHtmlTxtRange;
+begin
+  Result:=0;
+  TextRange:=GetTextRange;
+  if TextRange=nil then exit;
+  Result:=Abs(Integer(TextRange.move('character',-MaxTextLength)));
+end;
+
+function THtmlObj.SelEnd:integer;
+var TextRange:IHtmlTxtRange;
+begin
+  Result:=0;
+  TextRange:=GetTextRange;
+  if TextRange=nil then exit;
+  Result:=Abs(Integer(TextRange.MoveEnd('character',-MaxTextLength)));
+end;
+
+function THtmlObj.SelLength:integer;
+begin
+  Result:=SelEnd-SelStart;
+end;
+
+function THtmlObj.GetTextRange:IHtmlTxtRange;
+begin
+  Result:=nil;
+  try
+    if TheDoc=nil then exit;
+    while TheDoc.body=nil do begin
+      WaitLoad(true);
+      if TheDoc.body=nil then begin
+        if MessageDlg('Wait for document loading?',mtConfirmation,
+                      [mbOK,mbCancel],0) <> mrOK then begin
+          exit;
+        end;  
+      end;  
+    end;
+    if (TheDoc.Selection.type_='Text') or (TheDoc.Selection.type_='None') then begin
+      Result:=TheDoc.Selection.CreateRange as IHtmlTxtRange;
+    end;  
+  except
+    on E:Exception do EError('This type of selection cannot be processed',E);
+  end;
+end;
+
+procedure THtmlObj.SetSelection(Start,Length:integer);
+var TextRange:IHtmlTxtRange;
+    l : integer ; //kt
+begin
+  try
+     if TheDoc=nil then exit;
+     TheDoc.Selection.Empty;
+     TextRange:=GetTextRange;
+     if TextRange=nil then exit;
+     TextRange.collapse(true);
+     l:=TextRange.moveEnd('character',Start+Length);
+     l:=TextRange.moveStart('character',Start);
+     TextRange.select;
+  except
+    on E:Exception do EError('Error setting HTML selection'+nl+
+                             'Start='+IntToStr(Start)+nl+
+                             'Length='+IntToStr(Length),E);
+    end;
+end;
+
+
+procedure THtmlObj.ClearSelection;
+begin
+  if TheDoc=nil then exit;
+  TheDoc.Selection.Clear;
+  Modified:=true;
+end;
+
+
+procedure THtmlObj.ReplaceSelection(HTML:string);
+var TextRange:IHtmlTxtRange;
+begin
+  try
+    TextRange:=GetTextRange;
+    if TextRange=nil then exit;
+    TextRange.PasteHTML(HTML); 
+    Modified:=true;
+  except
+    on E:Exception do begin
+      // implement later... ShortenString(HTML,80);
+      EError('Error pasting HTML'+nl+
+             'Microsoft HTML refuses to paste this string:'+nl+
+             HTML+nl,E);
+    end;
+  end;
+end;
+
+
+function THtmlObj.GetSelText:string;
+var TextRange:IHtmlTxtRange;
+begin
+  Result:='';
+  TextRange:=GetTextRange;
+  if TextRange=nil then
+     exit;
+  Result:=TextRange.text;
+end;
+
+procedure THtmlObj.SetSelText (HTMLText : string);
+begin
+  ReplaceSelection(HTMLText);
+end;
+
+
+function THtmlObj.ColorToMSHTMLStr(color : TColor) : string; 
+//Note: TColor stores colors lo-byte --> hi-byte as RGB
+//Function returns '#RRGGBB'
+var tempColor : TMGColor;        
+begin
+  tempColor.Color := color;
+  Result := '#'+
+            IntToHex(tempColor.RGBColor.R,2)+  
+            IntToHex(tempColor.RGBColor.G,2)+
+            IntToHex(tempColor.RGBColor.B,2);
+end;
+
+function THtmlObj.MSHTMLStrToColor(MSHTMLColor : string) : TColor;
+//Function converts '#RRGGBB' -- TColor
+//Note: TColor stores colors lo-byte --> hi-byte as RGB
+var tempColor : TMGColor;            
+    strHexRed,strHexGreen,strHexBlue : string[2];
+begin
+  Result := clBlack;  //FIX!!!! IMPLEMENT LATER...
+  if Pos('#',MSHTMLColor)=1 then begin
+   // MSHTMLColor := MidStr(MSHTMLColor,2,99);
+   strHexRed := MidStr(MSHTMLColor,2,2);
+   strHexGreen := MidStr(MSHTMLColor,4,2);
+   strHexBlue := MidStr(MSHTMLColor,6,2);
+   tempColor.RGBColor.R := StrToIntDef('$'+StrHexRed,0);
+   tempColor.RGBColor.G := StrToIntDef('$'+StrHexGreen,0);
+   tempColor.RGBColor.B := StrToIntDef('$'+StrHexBlue,0);
+   Result := tempColor.Color;
+   //NOTE: This function has not yet been tested....
+  end;
+end;
+
+(*
+procedure THtmlObj.SetBorder(Border:boolean);
+begin
+  if TheDoc=nil then exit;
+  if TheDoc.body=nil then exit;
+  if not Border then begin
+     if not FEditable then begin
+        TheDoc.body.style.backgroundColor := clYellow; //kt
+        TheDoc.body.style.borderStyle:='none';
+        TheDoc.body.style.borderWidth:='thin';
+        TheDoc.body.style.borderColor:='white';
+        end;
+     if FEditable then begin
+        TheDoc.body.style.backgroundColor := clRed; //kt
+        TheDoc.body.style.borderStyle:='none';
+//        TheDoc.body.filters.
+        TheDoc.body.style.borderWidth:='thin';
+        TheDoc.body.style.borderColor:='blue';
+        end;
+     end;
+  if Border then begin
+     if not FEditable then begin
+        TheDoc.body.style.borderStyle:='solid';
+        TheDoc.body.style.borderWidth:='thin';
+        TheDoc.body.style.borderColor:='silver';
+        end;
+     if FEditable then begin
+        //TheDoc.body.style.backgroundColor := ColorToStr(clLime);
+        TheDoc.body.style.backgroundColor := 'BtnFace';
+        TheDoc.body.style.borderStyle:='solid';
+        TheDoc.body.style.borderWidth:='thin';
+        TheDoc.body.style.borderColor:='green';
+        end;
+     end;
+end;
+
+
+*)
+
+initialization
+
+finalization
+
+end.
+
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/TMGHTML2.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/TMGHTML2.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/TMGHTML2.pas	(revision 541)
@@ -0,0 +1,925 @@
+unit TMGHTML2;
+
+(*
+NOTES:  By Kevin Toppenberg, MD 5/27/09
+
+Code heavily modified from original code found at www.supermemo.com/source/
+Their notes (below) indicate that the code may be freely used.
+---------------
+This unit encapsulates SHDocVw.dll and MSHTML.dll functionality by subclassing
+THtmlEditorBrowser object as THtmlEditor object
+
+THtmlEditor was designed for easy use of HTML display and editing capacity in
+SuperMemo 2002 for Windows developed by SuperMemo R&D in Fall 2001.
+
+SuperMemo 2002 implements HTML-based incremental reading in which extensive HTML
+support is vital.
+
+Pieces of this units can be used by anyone in other Delphi applications that make
+use of HTML WYSIWYG interfaces made open by Microsoft.
+*)
+
+(*
+NOTICE: Also Derived from EmbeddedED.  See notes in that code block.
+*)
+
+interface
+
+uses SysUtils, WinTypes, Dialogs, StdCtrls, Menus,
+     EmbeddedED,
+     ActiveX, MSHTMLEvents, SHDocVw, {MSHTML,} MSHTML_EWB,
+     AppEvnts, controls,
+     IeConst,Messages,Classes,Forms,Graphics;
+
+type  
+  TSetFontMode = (sfAll,sfSize,sfColor,sfName,sfStyle,sfCharset); 
+
+  TRGBColor = record
+       R : byte; 
+       G : byte;
+       B : byte;
+  end; {record}
+  
+  TMGColor = record
+    case boolean of
+      True: (Color : TColor);
+      False: (RGBColor : TRGBColor);
+  end; {record}
+                               
+type 
+    // THtmlObj=class(TWebBrowser)
+    THtmlObj=class(TEmbeddedED)
+    private
+      CtrlToBeProcessed  :     boolean; 
+      ShiftToBeProcessed :     boolean;
+      CtrlReturnToBeProcessed: boolean;
+      Modified:                boolean;
+      FOrigAppOnMessage :      TMessageEvent;  
+      FApplication :           TApplication;
+      FActive :                boolean;
+      FEditable:               boolean;       
+      ColorDialog:             TColorDialog;       
+      AllowNextBlur :          boolean;      
+      procedure SetMsgActive (Active : boolean);
+      function  GetHTMLText:string;
+      procedure SetHTMLText(HTML:String);
+      function  GetText:string;
+      procedure SetText(HTML:string);  
+      function  GetEditableState : boolean;
+      procedure SetEditableState (EditOn : boolean);         
+      procedure SetBackgroundColor(Color:TColor);
+      function  GetBackgroundColor : TColor;       
+      function ColorToMSHTMLStr(color : TColor) : string; 
+      function MSHTMLStrToColor(MSHTMLColor : string) : TColor;
+      procedure SetTextForegroundColor(Color:TColor);
+      function  GetTextForegroundColor : TColor; 
+      procedure SetTextBackgroundColor(Color:TColor);
+      function  GetTextBackgroundColor : TColor;
+      function  GetFontSize : integer;
+      procedure SetFontSize (Size : integer);                   
+      function  GetFontName : string;
+      procedure SetFontName (Name : string);
+      function  GetSelText:string;        
+      procedure SetSelText (HTMLText : string); 
+      procedure ReassignKeyboardHandler(TurnOn : boolean);
+      procedure GlobalMsgHandler(var Msg: TMsg; var Handled: Boolean);
+      procedure HandleBlur(Sender: TObject);
+      procedure SubMessageHandler(var Msg: TMessage); override;
+      function SubFocusHandler(fGotFocus: BOOL): HResult; override;
+      function GetActive : boolean;
+      {end private}
+    public
+      {end public}
+      PopupMenu:     TPopupMenu;      
+      KeyStruck : boolean; // A VERY crude determiner as to if Modified.
+      NextControl : TWinControl;
+      PrevControl : TWinControl;
+      constructor Create(Owner:TControl; Application : TApplication); 
+      destructor Destroy; override;
+      procedure Clear;       
+      procedure ToggleBullet;
+      procedure ToggleItalic;
+      procedure ToggleBold;         
+      procedure ToggleNumbering;
+      procedure ToggleUnderline;
+      procedure ToggleSubscript;
+      procedure ToggleSuperscript;
+      procedure Indent;
+      procedure Outdent;
+      procedure AlignLeft;
+      procedure AlignRight;
+      procedure AlignCenter;
+      procedure TextForeColorDialog;
+      procedure TextBackColorDialog;     
+      procedure FontDialog;
+      function  SelStart:integer;
+      function  SelEnd:integer;
+      function  SelLength:integer;
+      function  GetTextRange:IHtmlTxtRange;
+      procedure ReplaceSelection(HTML:string);
+      procedure Loaded; Override;      
+      function  GetTextLen : integer;
+      function  MoveCaretToEnd : boolean;
+      function  MoveCaretToPos(ScreenPos: TPoint) : HRESULT;  //kt added
+      procedure InsertTextAtCaret(Text : AnsiString); //Note: Text is NOT HTMLtext
+      property  HTMLText:string read GetHTMLText write SetHTMLText;
+      property  Text:string read GetText write SetText;
+      //property Active : boolean read FActive write SetMsgActive;        
+      property  Active : boolean read GetActive;
+      property  Editable : boolean read GetEditableState write SetEditableState;
+      property  BackgroundColor : TColor read GetBackgroundColor write SetBackgroundColor;
+      property  FontSize : integer read GetFontSize write SetFontSize;
+      property  FontName : string read GetFontName write SetFontName;
+      property  SelText : string read GetSelText write SetSelText;
+    end;
+
+implementation
+
+
+uses 
+  WinProcs,Variants,Clipbrd, StrUtils, Math,
+  Windows;
+
+const   
+  FontScale=3;  
+  MaxTextLength = 100;
+  nl = #13#10;
+  
+procedure EError(EText : string; E : Exception);
+begin
+  MessageDlg(EText,mtError,[mbOK],0);
+end;
+
+
+constructor THtmlObj.Create(Owner:TControl; Application : TApplication);
+begin
+  inherited Create(Owner);  //Note: Owner should be a descendant of TControl;  
+  FApplication := Application;
+  FOrigAppOnMessage := Application.OnMessage;
+  OnBlur := HandleBlur;
+  AllowNextBlur := false;  
+  KeyStruck := false;
+  NextControl := nil;
+  PrevControl := nil;  
+end;
+
+destructor THtmlObj.Destroy;
+begin
+  SetMsgActive(false); //Turns off local OnMessage handling
+  inherited Destroy;
+end;
+
+procedure THtmlObj.SetMsgActive (Active : boolean);
+//NOTE: This object grabs the OnMessage for the entire application, so that 
+//      it can intercept the right-click.  As a result, the object needs a
+//      way that it can turn off this feature when it is covered up by other
+//      windows application subwindows etc.  This function provides this.
+begin
+  FActive := Active;
+  ReassignKeyboardHandler(FActive);
+end;
+
+procedure THtmlObj.SetHTMLText(Html : String); 
+var //V : OleVariant;
+    V2 : variant;
+    body : IHTMLElement;
+    status : string;
+    temp : string;
+begin
+  DocumentHTML := Html;
+  exit; //kt
+  (*
+  try
+    Stop;
+    if Doc =nil then exit;
+    body := Doc.body;
+
+    if UpperCase(Doc.designMode) <> 'ON' then begin
+      Doc.designMode := 'on';
+      repeat  //NOTE: potential endless loop.  Perhaps loop only status='loading'?
+        status := Doc.readyState;
+        {Possible status values:
+          uninitialized	-- Object is not initialized with data.
+          loading	      -- Object is loading its data.
+          loaded	      -- Object has finished loading its data.
+          interactive	  -- User can interact with the object even though it is not fully loaded.
+          complete	    -- Object is completely initialized.                                      }      
+        if status <> 'complete' then FApplication.ProcessMessages;
+      until (status = 'complete') or (status='interactive') or (status='loaded');
+    end;  
+    body := Doc.body;
+    if (body = nil) then begin   //Do so stuff to get IE to make a 'body'.
+      V2 := VarArrayCreate([0, 0], VarVariant);
+      V2[0] := ' ';  //Html;
+      Doc.Write(PSafeArray(System.TVarData(V2).VArray));
+      body := Doc.body;
+      Doc.close;    
+      repeat  
+        status := Doc.readyState; //For possible status values, see above) 
+        if status <> 'complete' then FApplication.ProcessMessages;
+      until (status = 'complete') or (status='interactive') or (status='loaded');
+      body := Doc.body;
+    end;  
+    body.innerHTML := Html;
+    temp := body.innerHTML;  //to test if it was set or not...
+    Modified:=true;
+  except
+    on E:Exception do EError('Error setting HTML text',E);
+  end;  
+  *)
+end;
+  
+
+function THtmlObj.GetHTMLText:string;
+var WS:WideString;
+    ch:WideChar;
+    n:integer;
+    w:word;
+    s:string;
+begin
+  //Result:=DocumentHTML;
+  Result:='';
+  if Doc=nil then exit;
+  WS:=Doc.body.innerHTML;
+  for n:=1 to length(WS) do begin
+    ch := WS[n];
+    w := word(ch);
+    if w>255 then begin
+       s:=IntToStr(w);
+       s:='&#'+s+';';
+    end else s:=ch;
+    Result:=Result+s;
+  end;  
+end;
+
+function THtmlObj.GetText:string;
+var WS:WideString;
+    ch:WideChar;
+    n:integer;
+    w:word;
+    s:string;
+begin
+  Result:='';
+  if DOC=nil then exit;
+  WS:=Doc.body.innerText;
+  for n:=1 to length(WS) do begin
+    ch:=WS[n];
+    w:=word(ch);
+    if w>255 then begin
+      w:=(w mod 256)+48;
+      s:=IntToStr(w);
+      s:=char(w);
+    end else s:=ch;
+    Result:=Result+s;
+  end;
+end;
+
+procedure THtmlObj.SetText(HTML:string);
+begin
+  if (DOC=nil)or(DOC.body=nil) then SetHTMLText(HTML)
+  else DOC.body.innerHTML:=HTML;
+end;
+
+procedure THtmlObj.Clear;
+begin
+  //kt if IsDirty then
+    NewDocument;
+    KeyStruck := false;
+  //SetHTMLText('');
+end;
+
+function THtmlObj.GetEditableState : boolean;
+var mode : string;
+begin
+  mode := Doc.designMode;
+  result := (mode = 'On');
+end;
+
+procedure THtmlObj.SetEditableState(EditOn : boolean);
+var LastMode : string;
+    count : integer;
+begin
+  LastMode := 'Inherit';
+  try
+    count := 0;
+    repeat
+      inc (count);
+      if Doc = nil then begin
+        FApplication.ProcessMessages;
+        Sleep (100);
+        continue;
+      end else if Doc.body = nil then begin
+        FApplication.ProcessMessages;
+        Sleep (100);
+        continue;
+      end;  
+      if EditOn then begin
+        Doc.body.setAttribute('contentEditable','true',0);
+        Doc.designMode := 'On';  //kt
+        FEditable:=true;
+        //SetFocus;
+      end else begin
+        Doc.body.setAttribute('contentEditable','false',0);
+        Doc.designMode := 'Off';  //kt
+        FEditable:=false;
+      end;  
+      LastMode := Doc.designMode;
+    until (LastMode <> 'Inherit') or (count > 20);  
+  except
+    on E:Exception do EError('Error switching into HTML editing state',E);
+  end;
+end;
+
+procedure THtmlObj.SetBackgroundColor(Color:TColor);
+begin
+  if Doc=nil then exit;
+  //WaitLoad(true); //kt  
+  WaitForDocComplete;
+  if Doc.body=nil then exit;
+  Doc.body.style.backgroundColor := ColorToMSHTMLStr(Color);
+end;
+
+function  THtmlObj.GetBackgroundColor : TColor;       
+begin
+  Result := clBlack; //default;
+  if Doc=nil then exit;
+  if Doc.body=nil then exit;
+  Result := MSHTMLStrToColor(Doc.body.style.backgroundColor);
+end;
+
+function THtmlObj.ColorToMSHTMLStr(color : TColor) : string; 
+//Note: TColor stores colors lo-byte --> hi-byte as RGB
+//Function returns '#RRGGBB'
+var tempColor : TMGColor;        
+begin
+  tempColor.Color := color;
+  Result := '#'+
+            IntToHex(tempColor.RGBColor.R,2)+  
+            IntToHex(tempColor.RGBColor.G,2)+
+            IntToHex(tempColor.RGBColor.B,2);
+end;
+
+function THtmlObj.MSHTMLStrToColor(MSHTMLColor : string) : TColor;
+//Function converts '#RRGGBB' -- TColor
+//Note: TColor stores colors lo-byte --> hi-byte as RGB
+var tempColor : TMGColor;            
+    strHexRed,strHexGreen,strHexBlue : string[2];
+begin
+  Result := clBlack;  //FIX!!!! IMPLEMENT LATER...
+  if Pos('#',MSHTMLColor)=1 then begin
+   // MSHTMLColor := MidStr(MSHTMLColor,2,99);
+   strHexRed := MidStr(MSHTMLColor,2,2);
+   strHexGreen := MidStr(MSHTMLColor,4,2);
+   strHexBlue := MidStr(MSHTMLColor,6,2);
+   tempColor.RGBColor.R := StrToIntDef('$'+StrHexRed,0);
+   tempColor.RGBColor.G := StrToIntDef('$'+StrHexGreen,0);
+   tempColor.RGBColor.B := StrToIntDef('$'+StrHexBlue,0);
+   Result := tempColor.Color;
+   //NOTE: This function has not yet been tested....
+  end;
+end;
+
+procedure THtmlObj.ToggleBullet;
+begin
+  if DOC=nil then exit;
+  //SpecialCommand(IDM_UnORDERLIST,false,true,false,Null);
+  DOC.execCommand('InsertUnorderedList',false,null);  
+  Modified:=true;
+end;
+
+procedure THtmlObj.ToggleItalic;
+begin
+  if DOC=nil then exit;
+  DOC.execCommand('Italic',false,null);  
+  Modified:=true;
+end;
+
+procedure THtmlObj.ToggleBold;
+begin
+  if DOC=nil then exit;
+  DOC.execCommand('Bold',false,null);
+  Modified:=true;
+end;
+
+procedure THtmlObj.ToggleNumbering;
+begin
+  if DOC=nil then exit;
+  DOC.execCommand('InsertOrderedList',false,null);
+//  SpecialCommand(IDM_ORDERLIST,false,true,false,Null);
+  Modified:=true;
+end;
+
+procedure THtmlObj.ToggleUnderline;
+begin
+   if DOC=nil then exit;
+   DOC.execCommand('Underline',false,null);
+  Modified:=true;
+end;
+
+procedure THtmlObj.ToggleSubscript;
+begin
+  if DOC=nil then exit;
+  DOC.execCommand('Subscript',False,0);
+  Modified:=true;
+end;
+
+procedure THtmlObj.ToggleSuperscript;
+begin
+  if DOC=nil then exit;
+  DOC.execCommand('Superscript',False,0);
+  Modified:=true;
+end;
+
+
+procedure THtmlObj.Indent;
+begin
+  if DOC=nil then exit;
+  DOC.ExecCommand('Indent',false,0);
+  Modified:=true;
+end;
+
+procedure THtmlObj.Outdent;
+begin
+  if DOC=nil then exit;
+  DOC.ExecCommand('Outdent',false,0);
+  Modified:=true;
+end;
+
+
+procedure THtmlObj.AlignLeft;
+begin
+  if DOC=nil then exit;
+  DOC.ExecCommand('JustifyLeft',false,0);
+  Modified:=true;
+end;
+
+procedure THtmlObj.AlignRight;
+begin
+  if DOC=nil then exit;
+  DOC.ExecCommand('JustifyRight',false,0);
+  Modified:=true;
+end;
+
+procedure THtmlObj.AlignCenter;
+begin
+  if DOC=nil then exit;
+  DOC.ExecCommand('JustifyCenter',false,0);
+  Modified:=true;
+end;
+
+procedure THtmlObj.TextForeColorDialog;
+begin
+  if ColorDialog = nil then begin
+    ColorDialog := TColorDialog.Create(self);
+  end;
+  if ColorDialog.Execute then begin
+    SetTextForegroundColor(ColorDialog.Color);
+  end;  
+  Modified:=true;
+end;
+
+procedure THtmlObj.TextBackColorDialog;
+begin
+  if ColorDialog = nil then begin
+    ColorDialog := TColorDialog.Create(self);
+  end;
+  if ColorDialog.Execute then begin
+    SetTextBackgroundColor(ColorDialog.Color);
+  end;  
+  Modified:=true;
+end;
+
+procedure THtmlObj.SetTextForegroundColor(Color:TColor);
+begin
+  if DOC=nil then exit;
+  DOC.ExecCommand('ForeColor',false,Color);
+  Modified:=true;
+end;
+
+function THtmlObj.GetTextForegroundColor:TColor;
+var Background :  OleVariant;
+    vt         :  TVarType;
+begin
+  Result:=clWindow;
+  try
+    if DOC=nil then exit;
+    Background:=DOC.queryCommandValue('ForeColor');
+    vt:=varType(Background);
+    if vt<>varNull then Result:=Background;
+  except
+    on E:Exception do EError('Error retrieving foreground color',E);
+  end;
+end;
+
+procedure THtmlObj.SetTextBackgroundColor(Color:TColor);
+begin
+  if DOC=nil then exit;
+  DOC.ExecCommand('BackColor',false,Color);
+  Modified:=true;
+end;
+
+function THtmlObj.GetTextBackgroundColor:TColor;
+var Background :  OleVariant;
+    vt         :  TVarType;
+begin
+  Result:=clWindow;
+  try
+    if DOC=nil then exit;
+    Background:=DOC.queryCommandValue('BackColor');
+    vt:=varType(Background);
+    if vt<>varNull then Result:=Background;
+  except
+    on E:Exception do EError('Error retrieving background color',E);
+  end;
+end;
+
+procedure THtmlObj.FontDialog;
+begin
+  DoCommand(IDM_FONT);
+  Modified:=true;
+end;
+
+function THtmlObj.GetFontSize : integer;
+var FontSize : OleVariant;
+    vt       : TVarType;
+    
+begin
+  FontSize:=Doc.queryCommandValue('FontSize');
+  vt:=varType(FontSize);
+  if vt<>varNull then Result := FontSize*FontScale
+  else Result :=12*FontScale; //kt
+end;
+
+procedure THtmlObj.SetFontSize (Size : integer);
+begin
+  if Doc=nil then exit;
+  Doc.ExecCommand('FontSize', false, Size div FontScale);
+end;
+
+function THtmlObj.GetFontName : string;
+var FontName :OleVariant;
+    vt : TVarType;
+begin
+  if DOC=nil then exit;
+  FontName:=DOC.queryCommandValue('FontName');
+  vt:=varType(FontName);
+  if vt<>varNull then Result := FontName
+  else Result :='Times New Roman'; //kt
+end;
+
+procedure THtmlObj.SetFontName (Name : string);
+begin
+  if DOC=nil then exit;
+  DOC.ExecCommand('FontName', false, Name);
+end;
+
+function THtmlObj.SelStart:integer;
+var TextRange:IHtmlTxtRange;
+begin
+  Result:=0;
+  TextRange:=GetTextRange;
+  if TextRange=nil then exit;
+  Result:=Abs(Integer(TextRange.move('character',-MaxTextLength)));
+end;
+
+function THtmlObj.SelEnd:integer;
+var TextRange:IHtmlTxtRange;
+begin
+  Result:=0;
+  TextRange:=GetTextRange;
+  if TextRange=nil then exit;
+  Result:=Abs(Integer(TextRange.MoveEnd('character',-MaxTextLength)));
+end;
+
+function THtmlObj.SelLength:integer;
+begin
+  Result:=SelEnd-SelStart;
+end;
+
+function THtmlObj.GetTextRange:IHtmlTxtRange;
+begin
+  Result:=nil;
+  try
+    if DOC=nil then exit;
+    while DOC.body=nil do begin
+      //WaitLoad(true); //kt  
+      WaitForDocComplete;
+      if DOC.body=nil then begin
+        if MessageDlg('Wait for document loading?',mtConfirmation,
+                      [mbOK,mbCancel],0) <> mrOK then begin
+          exit;
+        end;  
+      end;  
+    end;
+    if (DOC.Selection.type_='Text') or (DOC.Selection.type_='None') then begin
+      Result:=DOC.Selection.CreateRange as IHtmlTxtRange;
+    end;  
+  except
+    on E:Exception do EError('This type of selection cannot be processed',E);
+  end;
+end;
+
+function THtmlObj.GetSelText:string;
+var TextRange:IHtmlTxtRange;
+begin
+  Result:='';
+  TextRange:=GetTextRange;
+  if TextRange=nil then
+     exit;
+  Result:=TextRange.text;
+end;
+
+procedure THtmlObj.SetSelText (HTMLText : string);
+begin
+  ReplaceSelection(HTMLText);
+end;
+
+procedure THtmlObj.ReplaceSelection(HTML:string);
+var TextRange:IHtmlTxtRange;
+begin
+  try
+    TextRange:=GetTextRange;
+    if TextRange=nil then exit;
+    TextRange.PasteHTML(HTML); 
+    Modified:=true;
+  except
+    on E:Exception do begin
+      // implement later... ShortenString(HTML,80);
+      EError('Error pasting HTML'+nl+
+             'Microsoft HTML refuses to paste this string:'+nl+
+             HTML+nl,E);
+    end;
+  end;
+end;
+
+
+function THtmlObj.MoveCaretToEnd : boolean;
+//kt added
+var //TextRange:IHtmlTxtRange;
+    count : integer;
+begin
+  if not assigned (FTMGDisplayPointer) then begin
+    Result := false;
+    exit;
+  end;
+  Result:=(S_OK = FTMGDisplayPointer.MoveUnit(DISPLAY_MOVEUNIT_BottomOfWindow,0));
+  count := 0;
+  repeat
+    Result:=(S_OK = FTMGDisplayPointer.MoveUnit(DISPLAY_MOVEUNIT_NextLine,-1));
+    inc (count);
+  until (Result = false) or (count > 500);
+  Result:=(S_OK = FTMGDisplayPointer.MoveUnit(DISPLAY_MOVEUNIT_CurrentLineEnd,0));
+  Result:=(S_OK = FCaret.MoveCaretToPointer(FTMGDisplayPointer,
+                                            integer(FALSE),
+                                            CARET_DIRECTION_SAME));
+  {
+  SendMessage(FmsHTMLwinHandle, WM_KEYDOWN, VK_END, 0);
+  SendMessage(FmsHTMLwinHandle, WM_KEYUP, VK_END, 0);
+  SendMessage(FmsHTMLwinHandle, WM_KEYDOWN, VK_END, 0);
+  SendMessage(FmsHTMLwinHandle, WM_KEYUP, VK_END, 0);
+  }
+end;
+
+function THtmlObj.MoveCaretToPos(ScreenPos: TPoint) : HRESULT;
+//kt added entire function
+var  OutTemp : DWORD;
+begin
+  if not assigned (FTMGDisplayPointer) then exit;
+  FTMGDisplayPointer.moveToPoint(ScreenPos, COORD_SYSTEM_GLOBAL, nil, HT_OPT_AllowAfterEOL, OutTemp);
+  Result := FCaret.MoveCaretToPointer(FTMGDisplayPointer,Integer(True),CARET_DIRECTION_INDETERMINATE);
+  FCaret.Show(Integer(True));
+end;
+
+procedure THtmlObj.InsertTextAtCaret(Text : AnsiString);
+//kt added.  Note: inserts external format (not HTML markup)
+var P : PWideChar;
+begin
+  P := StringToOleStr(Text);
+  FCaret.InsertText(P,Length(Text))
+end;
+
+
+procedure THtmlObj.Loaded; 
+begin
+  inherited Loaded;
+end;
+
+function THtmlObj.GetTextLen : integer;
+begin
+  Result := Length(GetText);
+end;    
+
+
+procedure THtmlObj.ReassignKeyboardHandler(TurnOn : boolean);
+{assign HTML keyboard handler to HTML component; restore standard if TurnOn=false}
+begin
+  if TurnOn then begin
+    FApplication.OnMessage := GlobalMsgHandler; 
+  end else begin
+    FApplication.OnMessage := FOrigAppOnMessage;
+  end;      
+end;
+
+procedure THtmlObj.GlobalMsgHandler(var Msg: TMsg; var Handled: Boolean);
+{NOTE: This message handler will receive ALL messages directed to CPRS.  I
+       have to do this, because something is filtering messages before they
+       get to this THTMLObj object.  My goal is to do as little here as possible,
+       and let the OnMessage for THTMLObj (found in EmbeddedED) take care of the rest.
+ NOTE: This should get activated by OnFocus for object, and deactivated 
+       by OnBlur, so it actually should only get messages when focused.   }       
+var 
+  i : Integer;
+  NewMsg : TMessage;
+  
+  function TransformMessage (WinMsg : TMsg) : TMessage;
+  begin
+    Result.Msg := WinMsg.message;
+    Result.WParam := WinMsg.wParam;
+    Result.LParam := WinMsg.lParam;
+    Result.Result := 0;
+  end;
+  
+begin
+  Handled:=false; //default to not handled  
+  if (Msg.Message=WM_KEYDOWN) then begin
+    if (Msg.WParam=VK_UP) or (Msg.WParam=VK_DOWN) or (Msg.WParam=VK_TAB) then begin
+        NewMsg := TransformMessage(Msg);
+        SubMessageHandler(NewMsg);               
+        Handled := (NewMsg.Result = 1);
+    end; 
+  end; 
+end;
+
+
+procedure THtmlObj.SubMessageHandler(var Msg: TMessage);
+//Called from parent's EDMessageHandler, or from GlobalMsgHandler
+var  i : Integer;
+     WinControl : TWinControl;
+
+begin
+  Msg.Result := 0; //default to not handled  
+  if not ((Msg.Msg=WM_KEYDOWN) or
+          (Msg.Msg=WM_KEYUP) or
+          (Msg.Msg=WM_RBUTTONUP) ) then exit;  //Speedy exit of non-handled messages
+  case Msg.Msg of
+    WM_RBUTTONUP : begin
+                     if CtrlToBeProcessed then begin
+                       CtrlToBeProcessed := false;                   
+                       exit; //Ctrl-right click is ignored
+                     end;  
+                     if assigned(PopupMenu) then PopupMenu.Popup(Mouse.CursorPos.X,Mouse.CursorPos.Y);
+                     Msg.Result := 1; //Handled
+                     exit;
+                   end;
+    WM_KEYDOWN :   begin
+                     GetSystemTimeAsFileTime(KeyPressTime);
+                     KeyStruck := true;
+                     //beep(200,50);
+                     case Msg.WParam of
+                       VK_ESCAPE  : begin
+                                      if Assigned(PrevControl) then begin
+                                        AllowNextBlur := true;
+                                        PrevControl.SetFocus;
+                                      end;  
+                                    end; 
+                       VK_CONTROL : begin
+                                      CtrlToBeProcessed:=true;
+                                      Msg.Result := 1; //Handled
+                                      exit;
+                                    end;
+                       VK_SHIFT :   begin
+                                      ShiftToBeProcessed:=true;
+                                      Msg.Result := 1; //Handled
+                                      exit;
+                                    end;
+                       VK_TAB :     begin
+                                      if (ShiftToBeProcessed and CtrlToBeProcessed) then begin
+                                        //This isn't working for some reason...
+                                        for i := 0 to 5 do begin
+                                          PostMessage(FmsHTMLwinHandle, WM_KEYDOWN, VK_LEFT, 0);
+                                        end;  
+                                        ShiftToBeProcessed := false;
+                                        CtrlToBeProcessed := false;
+                                      end else if ShiftToBeProcessed then begin 
+                                        if Assigned(PrevControl) then begin
+                                          AllowNextBlur := true;
+                                          PrevControl.SetFocus;
+                                        end;  
+                                        ShiftToBeProcessed := false;
+                                      end else if CtrlToBeProcessed then begin 
+                                        if Assigned(NextControl) then begin
+                                          AllowNextBlur := true;
+                                          NextControl.SetFocus;
+                                        end;  
+                                        CtrltoBeProcessed := false;
+                                      end else begin
+                                        for i := 0 to 5 do begin
+                                          PostMessage(FmsHTMLwinHandle, WM_KEYDOWN, VK_SPACE, 0);
+                                        end;  
+                                      end;  
+                                      Msg.Result := 1; //Handled
+                                    end;
+                       {             
+                       VK_RETURN :  if CtrlReturnToBeProcessed then begin 
+                                      Msg.Result := 1; //Handled
+                                      CtrlReturnToBeProcessed := false;
+                                    end else if CtrlToBeProcessed then begin
+                                      Msg.Result := 1; //Handled
+                                      CtrlToBeProcessed := False; 
+                                      CtrlReturnToBeProcessed := true;
+                                      //PostMessage(Msg.hwnd, WM_KEYUP, VK_CONTROL, 0);                                      
+                                    end else if ShiftToBeProcessed=false then begin
+                                      //kt if not FEditable then exit;
+                                      keybd_event(VK_SHIFT,0,0,0);
+                                      keybd_event(VK_RETURN,0,0,0);
+                                      keybd_event(VK_SHIFT,0,KEYEVENTF_KEYUP,0);
+                                      Msg.Result := 1; //Handled
+                                    end;
+                       }             
+                       Ord('B') :  if CtrlToBeProcessed then begin
+                                     //kt if not FEditable then exit;
+                                     ToggleBold;
+                                     Msg.Result := 1; //Handled
+                                     exit;
+                                   end;  
+                       Ord('U') :  if CtrlToBeProcessed then begin
+                                     //kt if not FEditable then exit;
+                                     ToggleUnderline;
+                                     Msg.Result := 1; //Handled
+                                     exit;
+                                   end;  
+                       Ord('I') :  if CtrlToBeProcessed then begin
+                                     //kt if not FEditable then exit;
+                                     ToggleItalic;
+                                     Msg.Result := 1; //Handled
+                                   end;  
+                     end; {case}
+                   end;
+    WM_KEYUP :     begin
+                     case Msg.WParam of
+                       VK_CONTROL : begin
+                                      CtrlToBeProcessed:=false;
+                                      Msg.Result := 1; //Handled
+                                      if CtrlReturnToBeProcessed then begin
+                                        PostMessage(FmsHTMLwinHandle, WM_KEYDOWN, VK_RETURN, 0);
+                                      end;                                      
+                                      exit;
+                                    end;
+                       VK_SHIFT :   begin
+                                      ShiftToBeProcessed:=false;
+                                      Msg.Result := 1; //Handled
+                                      exit;
+                                   end;
+                                   
+                     end; {case}
+                     exit;
+                   end;    
+  end;  {case}
+end;
+
+procedure THtmlObj.HandleBlur(Sender: TObject);
+//kt added function
+  function RecentKeyPressed : boolean;
+  var NowTime : FILETIME; //kt 
+      KeyTime,NowTime2 : LARGE_INTEGER;
+      Delta : int64;
+  begin
+    GetSystemTimeAsFileTime(NowTime); 
+    NowTime2.LowPart := NowTime.dwLowDateTime;
+    NowTime2.HighPart := NowTime.dwHighDateTime;
+    KeyTime.LowPart := KeyPressTime.dwLowDateTime;
+    KeyTime.HighPart := KeyPressTime.dwHighDateTime;
+    Delta := floor( (NowTime2.QuadPart - KeyTime.QuadPart) / 100000);
+    Result := (Delta < 100);
+  end;
+
+begin
+  //kt Handle loss of focus when attempting to cursor above top line, or below bottom line.
+  if (not AllowNextBlur) and RecentKeyPressed then begin   //kt entire block
+    SetFocusToDoc;
+    //beep(880,100);
+    KeyPressTime.dwLowDateTime := 0;
+    KeyPressTime.dwHighDateTime := 0;
+    exit; 
+  end;
+  AllowNextBlur := false;
+  SetMsgActive(false);
+end;
+
+function THtmlObj.SubFocusHandler(fGotFocus: BOOL): HResult; 
+begin
+  SetMsgActive(fGotFocus);
+end;
+
+function THtmlObj.GetActive : boolean;
+begin
+  Result := TWinControl(Owner).Visible;
+end;
+
+
+initialization
+
+finalization
+
+end.
+
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/TMGHTML2.~pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/TMGHTML2.~pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/TMGHTML2.~pas	(revision 541)
@@ -0,0 +1,921 @@
+unit TMGHTML2;
+
+(*
+NOTES:  By Kevin Toppenberg, MD 5/27/09
+
+Code heavily modified from original code found at www.supermemo.com/source/
+Their notes (below) indicate that the code may be freely used.
+---------------
+This unit encapsulates SHDocVw.dll and MSHTML.dll functionality by subclassing
+THtmlEditorBrowser object as THtmlEditor object
+
+THtmlEditor was designed for easy use of HTML display and editing capacity in
+SuperMemo 2002 for Windows developed by SuperMemo R&D in Fall 2001.
+
+SuperMemo 2002 implements HTML-based incremental reading in which extensive HTML
+support is vital.
+
+Pieces of this units can be used by anyone in other Delphi applications that make
+use of HTML WYSIWYG interfaces made open by Microsoft.
+*)
+
+(*
+NOTICE: Also Derived from EmbeddedED.  See notes in that code block.
+*)
+
+interface
+
+uses SysUtils, WinTypes, Dialogs, StdCtrls, Menus,
+     EmbeddedED,
+     ActiveX, MSHTMLEvents, SHDocVw, {MSHTML,} MSHTML_EWB,
+     AppEvnts, controls,
+     IeConst,Messages,Classes,Forms,Graphics;
+
+type  
+  TSetFontMode = (sfAll,sfSize,sfColor,sfName,sfStyle,sfCharset); 
+
+  TRGBColor = record
+       R : byte; 
+       G : byte;
+       B : byte;
+  end; {record}
+  
+  TMGColor = record
+    case boolean of
+      True: (Color : TColor);
+      False: (RGBColor : TRGBColor);
+  end; {record}
+                               
+type 
+    // THtmlObj=class(TWebBrowser)
+    THtmlObj=class(TEmbeddedED)
+    private
+      CtrlToBeProcessed  :     boolean; 
+      ShiftToBeProcessed :     boolean;
+      CtrlReturnToBeProcessed: boolean;
+      Modified:                boolean;
+      FOrigAppOnMessage :      TMessageEvent;  
+      FApplication :           TApplication;
+      FActive :                boolean;
+      FEditable:               boolean;       
+      ColorDialog:             TColorDialog;       
+      AllowNextBlur :          boolean;      
+      procedure SetMsgActive (Active : boolean);
+      function  GetHTMLText:string;
+      procedure SetHTMLText(HTML:String);
+      function  GetText:string;
+      procedure SetText(HTML:string);  
+      function  GetEditableState : boolean;
+      procedure SetEditableState (EditOn : boolean);         
+      procedure SetBackgroundColor(Color:TColor);
+      function  GetBackgroundColor : TColor;       
+      function ColorToMSHTMLStr(color : TColor) : string; 
+      function MSHTMLStrToColor(MSHTMLColor : string) : TColor;
+      procedure SetTextForegroundColor(Color:TColor);
+      function  GetTextForegroundColor : TColor; 
+      procedure SetTextBackgroundColor(Color:TColor);
+      function  GetTextBackgroundColor : TColor;
+      function  GetFontSize : integer;
+      procedure SetFontSize (Size : integer);                   
+      function  GetFontName : string;
+      procedure SetFontName (Name : string);
+      function  GetSelText:string;        
+      procedure SetSelText (HTMLText : string); 
+      procedure ReassignKeyboardHandler(TurnOn : boolean);
+      procedure GlobalMsgHandler(var Msg: TMsg; var Handled: Boolean);
+      procedure HandleBlur(Sender: TObject);
+      procedure SubMessageHandler(var Msg: TMessage); override;
+      function SubFocusHandler(fGotFocus: BOOL): HResult; override;
+      function GetActive : boolean;
+      {end private}
+    public
+      {end public}
+      PopupMenu:     TPopupMenu;      
+      KeyStruck : boolean; // A VERY crude determiner as to if Modified.
+      NextControl : TWinControl;
+      PrevControl : TWinControl;
+      constructor Create(Owner:TControl; Application : TApplication); 
+      destructor Destroy; override;
+      procedure Clear;       
+      procedure ToggleBullet;
+      procedure ToggleItalic;
+      procedure ToggleBold;         
+      procedure ToggleNumbering;
+      procedure ToggleUnderline;
+      procedure ToggleSubscript;
+      procedure ToggleSuperscript;
+      procedure Indent;
+      procedure Outdent;
+      procedure AlignLeft;
+      procedure AlignRight;
+      procedure AlignCenter;
+      procedure TextForeColorDialog;
+      procedure TextBackColorDialog;     
+      procedure FontDialog;
+      function  SelStart:integer;
+      function  SelEnd:integer;
+      function  SelLength:integer;
+      function  GetTextRange:IHtmlTxtRange;
+      procedure ReplaceSelection(HTML:string);
+      procedure Loaded; Override;      
+      function  GetTextLen : integer;
+      function  MoveCaretToEnd : boolean;
+      function  MoveCaretToPos(ScreenPos: TPoint) : HRESULT;  //kt added
+      procedure InsertTextAtCaret(Text : AnsiString); //Note: Text is NOT HTMLtext
+      property  HTMLText:string read GetHTMLText write SetHTMLText;
+      property  Text:string read GetText write SetText;
+      //property Active : boolean read FActive write SetMsgActive;        
+      property  Active : boolean read GetActive;
+      property  Editable : boolean read GetEditableState write SetEditableState;
+      property  BackgroundColor : TColor read GetBackgroundColor write SetBackgroundColor;
+      property  FontSize : integer read GetFontSize write SetFontSize;
+      property  FontName : string read GetFontName write SetFontName;
+      property  SelText : string read GetSelText write SetSelText;
+    end;
+
+implementation
+
+
+uses 
+  WinProcs,Variants,Clipbrd, StrUtils, Math,
+  Windows;
+
+const   
+  FontScale=3;  
+  MaxTextLength = 100;
+  nl = #13#10;
+  
+procedure EError(EText : string; E : Exception);
+begin
+  MessageDlg(EText,mtError,[mbOK],0);
+end;
+
+
+constructor THtmlObj.Create(Owner:TControl; Application : TApplication);
+begin
+  inherited Create(Owner);  //Note: Owner should be a descendant of TControl;  
+  FApplication := Application;
+  FOrigAppOnMessage := Application.OnMessage;
+  OnBlur := HandleBlur;
+  AllowNextBlur := false;  
+  KeyStruck := false;
+  NextControl := nil;
+  PrevControl := nil;  
+end;
+
+destructor THtmlObj.Destroy;
+begin
+  SetMsgActive(false); //Turns off local OnMessage handling
+  inherited Destroy;
+end;
+
+procedure THtmlObj.SetMsgActive (Active : boolean);
+//NOTE: This object grabs the OnMessage for the entire application, so that 
+//      it can intercept the right-click.  As a result, the object needs a
+//      way that it can turn off this feature when it is covered up by other
+//      windows application subwindows etc.  This function provides this.
+begin
+  FActive := Active;
+  ReassignKeyboardHandler(FActive);
+end;
+
+procedure THtmlObj.SetHTMLText(Html : String); 
+var //V : OleVariant;
+    V2 : variant;
+    body : IHTMLElement;
+    status : string;
+    temp : string;
+begin
+  DocumentHTML := Html;
+  exit; //kt
+  (*
+  try
+    Stop;
+    if Doc =nil then exit;
+    body := Doc.body;
+
+    if UpperCase(Doc.designMode) <> 'ON' then begin
+      Doc.designMode := 'on';
+      repeat  //NOTE: potential endless loop.  Perhaps loop only status='loading'?
+        status := Doc.readyState;
+        {Possible status values:
+          uninitialized	-- Object is not initialized with data.
+          loading	      -- Object is loading its data.
+          loaded	      -- Object has finished loading its data.
+          interactive	  -- User can interact with the object even though it is not fully loaded.
+          complete	    -- Object is completely initialized.                                      }      
+        if status <> 'complete' then FApplication.ProcessMessages;
+      until (status = 'complete') or (status='interactive') or (status='loaded');
+    end;  
+    body := Doc.body;
+    if (body = nil) then begin   //Do so stuff to get IE to make a 'body'.
+      V2 := VarArrayCreate([0, 0], VarVariant);
+      V2[0] := ' ';  //Html;
+      Doc.Write(PSafeArray(System.TVarData(V2).VArray));
+      body := Doc.body;
+      Doc.close;    
+      repeat  
+        status := Doc.readyState; //For possible status values, see above) 
+        if status <> 'complete' then FApplication.ProcessMessages;
+      until (status = 'complete') or (status='interactive') or (status='loaded');
+      body := Doc.body;
+    end;  
+    body.innerHTML := Html;
+    temp := body.innerHTML;  //to test if it was set or not...
+    Modified:=true;
+  except
+    on E:Exception do EError('Error setting HTML text',E);
+  end;  
+  *)
+end;
+  
+
+function THtmlObj.GetHTMLText:string;
+var WS:WideString;
+    ch:WideChar;
+    n:integer;
+    w:word;
+    s:string;
+begin
+  //Result:=DocumentHTML;
+  Result:='';
+  if Doc=nil then exit;
+  WS:=Doc.body.innerHTML;
+  for n:=1 to length(WS) do begin
+    ch := WS[n];
+    w := word(ch);
+    if w>255 then begin
+       s:=IntToStr(w);
+       s:='&#'+s+';';
+    end else s:=ch;
+    Result:=Result+s;
+  end;  
+end;
+
+function THtmlObj.GetText:string;
+var WS:WideString;
+    ch:WideChar;
+    n:integer;
+    w:word;
+    s:string;
+begin
+  Result:='';
+  if DOC=nil then exit;
+  WS:=Doc.body.innerText;
+  for n:=1 to length(WS) do begin
+    ch:=WS[n];
+    w:=word(ch);
+    if w>255 then begin
+      w:=(w mod 256)+48;
+      s:=IntToStr(w);
+      s:=char(w);
+    end else s:=ch;
+    Result:=Result+s;
+  end;
+end;
+
+procedure THtmlObj.SetText(HTML:string);
+begin
+  if (DOC=nil)or(DOC.body=nil) then SetHTMLText(HTML)
+  else DOC.body.innerHTML:=HTML;
+end;
+
+procedure THtmlObj.Clear;
+begin
+  //kt if IsDirty then
+    NewDocument;
+    KeyStruck := false;
+  //SetHTMLText('');
+end;
+
+function THtmlObj.GetEditableState : boolean;
+var mode : string;
+begin
+  mode := Doc.designMode;
+  result := (mode = 'On');
+end;
+
+procedure THtmlObj.SetEditableState(EditOn : boolean);
+var LastMode : string;
+    count : integer;
+begin
+  LastMode := 'Inherit';
+  try
+    count := 0;
+    repeat
+      inc (count);
+      if Doc = nil then begin
+        FApplication.ProcessMessages;
+        Sleep (100);
+        continue;
+      end else if Doc.body = nil then begin
+        FApplication.ProcessMessages;
+        Sleep (100);
+        continue;
+      end;  
+      if EditOn then begin
+        Doc.body.setAttribute('contentEditable','true',0);
+        Doc.designMode := 'On';  //kt
+        FEditable:=true;
+        //SetFocus;
+      end else begin
+        Doc.body.setAttribute('contentEditable','false',0);
+        Doc.designMode := 'Off';  //kt
+        FEditable:=false;
+      end;  
+      LastMode := Doc.designMode;
+    until (LastMode <> 'Inherit') or (count > 20);  
+  except
+    on E:Exception do EError('Error switching into HTML editing state',E);
+  end;
+end;
+
+procedure THtmlObj.SetBackgroundColor(Color:TColor);
+begin
+  if Doc=nil then exit;
+  //WaitLoad(true); //kt  
+  WaitForDocComplete;
+  if Doc.body=nil then exit;
+  Doc.body.style.backgroundColor := ColorToMSHTMLStr(Color);
+end;
+
+function  THtmlObj.GetBackgroundColor : TColor;       
+begin
+  Result := clBlack; //default;
+  if Doc=nil then exit;
+  if Doc.body=nil then exit;
+  Result := MSHTMLStrToColor(Doc.body.style.backgroundColor);
+end;
+
+function THtmlObj.ColorToMSHTMLStr(color : TColor) : string; 
+//Note: TColor stores colors lo-byte --> hi-byte as RGB
+//Function returns '#RRGGBB'
+var tempColor : TMGColor;        
+begin
+  tempColor.Color := color;
+  Result := '#'+
+            IntToHex(tempColor.RGBColor.R,2)+  
+            IntToHex(tempColor.RGBColor.G,2)+
+            IntToHex(tempColor.RGBColor.B,2);
+end;
+
+function THtmlObj.MSHTMLStrToColor(MSHTMLColor : string) : TColor;
+//Function converts '#RRGGBB' -- TColor
+//Note: TColor stores colors lo-byte --> hi-byte as RGB
+var tempColor : TMGColor;            
+    strHexRed,strHexGreen,strHexBlue : string[2];
+begin
+  Result := clBlack;  //FIX!!!! IMPLEMENT LATER...
+  if Pos('#',MSHTMLColor)=1 then begin
+   // MSHTMLColor := MidStr(MSHTMLColor,2,99);
+   strHexRed := MidStr(MSHTMLColor,2,2);
+   strHexGreen := MidStr(MSHTMLColor,4,2);
+   strHexBlue := MidStr(MSHTMLColor,6,2);
+   tempColor.RGBColor.R := StrToIntDef('$'+StrHexRed,0);
+   tempColor.RGBColor.G := StrToIntDef('$'+StrHexGreen,0);
+   tempColor.RGBColor.B := StrToIntDef('$'+StrHexBlue,0);
+   Result := tempColor.Color;
+   //NOTE: This function has not yet been tested....
+  end;
+end;
+
+procedure THtmlObj.ToggleBullet;
+begin
+  if DOC=nil then exit;
+  //SpecialCommand(IDM_UnORDERLIST,false,true,false,Null);
+  DOC.execCommand('InsertUnorderedList',false,null);  
+  Modified:=true;
+end;
+
+procedure THtmlObj.ToggleItalic;
+begin
+  if DOC=nil then exit;
+  DOC.execCommand('Italic',false,null);  
+  Modified:=true;
+end;
+
+procedure THtmlObj.ToggleBold;
+begin
+  if DOC=nil then exit;
+  DOC.execCommand('Bold',false,null);
+  Modified:=true;
+end;
+
+procedure THtmlObj.ToggleNumbering;
+begin
+  if DOC=nil then exit;
+  DOC.execCommand('InsertOrderedList',false,null);
+//  SpecialCommand(IDM_ORDERLIST,false,true,false,Null);
+  Modified:=true;
+end;
+
+procedure THtmlObj.ToggleUnderline;
+begin
+   if DOC=nil then exit;
+   DOC.execCommand('Underline',false,null);
+  Modified:=true;
+end;
+
+procedure THtmlObj.ToggleSubscript;
+begin
+  if DOC=nil then exit;
+  DOC.execCommand('Subscript',False,0);
+  Modified:=true;
+end;
+
+procedure THtmlObj.ToggleSuperscript;
+begin
+  if DOC=nil then exit;
+  DOC.execCommand('Superscript',False,0);
+  Modified:=true;
+end;
+
+
+procedure THtmlObj.Indent;
+begin
+  if DOC=nil then exit;
+  DOC.ExecCommand('Indent',false,0);
+  Modified:=true;
+end;
+
+procedure THtmlObj.Outdent;
+begin
+  if DOC=nil then exit;
+  DOC.ExecCommand('Outdent',false,0);
+  Modified:=true;
+end;
+
+
+procedure THtmlObj.AlignLeft;
+begin
+  if DOC=nil then exit;
+  DOC.ExecCommand('JustifyLeft',false,0);
+  Modified:=true;
+end;
+
+procedure THtmlObj.AlignRight;
+begin
+  if DOC=nil then exit;
+  DOC.ExecCommand('JustifyRight',false,0);
+  Modified:=true;
+end;
+
+procedure THtmlObj.AlignCenter;
+begin
+  if DOC=nil then exit;
+  DOC.ExecCommand('JustifyCenter',false,0);
+  Modified:=true;
+end;
+
+procedure THtmlObj.TextForeColorDialog;
+begin
+  if ColorDialog = nil then begin
+    ColorDialog := TColorDialog.Create(self);
+  end;
+  if ColorDialog.Execute then begin
+    SetTextForegroundColor(ColorDialog.Color);
+  end;  
+  Modified:=true;
+end;
+
+procedure THtmlObj.TextBackColorDialog;
+begin
+  if ColorDialog = nil then begin
+    ColorDialog := TColorDialog.Create(self);
+  end;
+  if ColorDialog.Execute then begin
+    SetTextBackgroundColor(ColorDialog.Color);
+  end;  
+  Modified:=true;
+end;
+
+procedure THtmlObj.SetTextForegroundColor(Color:TColor);
+begin
+  if DOC=nil then exit;
+  DOC.ExecCommand('ForeColor',false,Color);
+  Modified:=true;
+end;
+
+function THtmlObj.GetTextForegroundColor:TColor;
+var Background :  OleVariant;
+    vt         :  TVarType;
+begin
+  Result:=clWindow;
+  try
+    if DOC=nil then exit;
+    Background:=DOC.queryCommandValue('ForeColor');
+    vt:=varType(Background);
+    if vt<>varNull then Result:=Background;
+  except
+    on E:Exception do EError('Error retrieving foreground color',E);
+  end;
+end;
+
+procedure THtmlObj.SetTextBackgroundColor(Color:TColor);
+begin
+  if DOC=nil then exit;
+  DOC.ExecCommand('BackColor',false,Color);
+  Modified:=true;
+end;
+
+function THtmlObj.GetTextBackgroundColor:TColor;
+var Background :  OleVariant;
+    vt         :  TVarType;
+begin
+  Result:=clWindow;
+  try
+    if DOC=nil then exit;
+    Background:=DOC.queryCommandValue('BackColor');
+    vt:=varType(Background);
+    if vt<>varNull then Result:=Background;
+  except
+    on E:Exception do EError('Error retrieving background color',E);
+  end;
+end;
+
+procedure THtmlObj.FontDialog;
+begin
+  DoCommand(IDM_FONT);
+  Modified:=true;
+end;
+
+function THtmlObj.GetFontSize : integer;
+var FontSize : OleVariant;
+    vt       : TVarType;
+    
+begin
+  FontSize:=Doc.queryCommandValue('FontSize');
+  vt:=varType(FontSize);
+  if vt<>varNull then Result := FontSize*FontScale
+  else Result :=12*FontScale; //kt
+end;
+
+procedure THtmlObj.SetFontSize (Size : integer);
+begin
+  if Doc=nil then exit;
+  Doc.ExecCommand('FontSize', false, Size div FontScale);
+end;
+
+function THtmlObj.GetFontName : string;
+var FontName :OleVariant;
+    vt : TVarType;
+begin
+  if DOC=nil then exit;
+  FontName:=DOC.queryCommandValue('FontName');
+  vt:=varType(FontName);
+  if vt<>varNull then Result := FontName
+  else Result :='Times New Roman'; //kt
+end;
+
+procedure THtmlObj.SetFontName (Name : string);
+begin
+  if DOC=nil then exit;
+  DOC.ExecCommand('FontName', false, Name);
+end;
+
+function THtmlObj.SelStart:integer;
+var TextRange:IHtmlTxtRange;
+begin
+  Result:=0;
+  TextRange:=GetTextRange;
+  if TextRange=nil then exit;
+  Result:=Abs(Integer(TextRange.move('character',-MaxTextLength)));
+end;
+
+function THtmlObj.SelEnd:integer;
+var TextRange:IHtmlTxtRange;
+begin
+  Result:=0;
+  TextRange:=GetTextRange;
+  if TextRange=nil then exit;
+  Result:=Abs(Integer(TextRange.MoveEnd('character',-MaxTextLength)));
+end;
+
+function THtmlObj.SelLength:integer;
+begin
+  Result:=SelEnd-SelStart;
+end;
+
+function THtmlObj.GetTextRange:IHtmlTxtRange;
+begin
+  Result:=nil;
+  try
+    if DOC=nil then exit;
+    while DOC.body=nil do begin
+      //WaitLoad(true); //kt  
+      WaitForDocComplete;
+      if DOC.body=nil then begin
+        if MessageDlg('Wait for document loading?',mtConfirmation,
+                      [mbOK,mbCancel],0) <> mrOK then begin
+          exit;
+        end;  
+      end;  
+    end;
+    if (DOC.Selection.type_='Text') or (DOC.Selection.type_='None') then begin
+      Result:=DOC.Selection.CreateRange as IHtmlTxtRange;
+    end;  
+  except
+    on E:Exception do EError('This type of selection cannot be processed',E);
+  end;
+end;
+
+function THtmlObj.GetSelText:string;
+var TextRange:IHtmlTxtRange;
+begin
+  Result:='';
+  TextRange:=GetTextRange;
+  if TextRange=nil then
+     exit;
+  Result:=TextRange.text;
+end;
+
+procedure THtmlObj.SetSelText (HTMLText : string);
+begin
+  ReplaceSelection(HTMLText);
+end;
+
+procedure THtmlObj.ReplaceSelection(HTML:string);
+var TextRange:IHtmlTxtRange;
+begin
+  try
+    TextRange:=GetTextRange;
+    if TextRange=nil then exit;
+    TextRange.PasteHTML(HTML); 
+    Modified:=true;
+  except
+    on E:Exception do begin
+      // implement later... ShortenString(HTML,80);
+      EError('Error pasting HTML'+nl+
+             'Microsoft HTML refuses to paste this string:'+nl+
+             HTML+nl,E);
+    end;
+  end;
+end;
+
+
+function THtmlObj.MoveCaretToEnd : boolean;
+//kt added        
+var //TextRange:IHtmlTxtRange;
+    count : integer;
+begin
+  Result:=(S_OK = FTMGDisplayPointer.MoveUnit(DISPLAY_MOVEUNIT_BottomOfWindow,0));
+  count := 0;
+  repeat   
+    Result:=(S_OK = FTMGDisplayPointer.MoveUnit(DISPLAY_MOVEUNIT_NextLine,-1));
+    inc (count);
+  until (Result = false) or (count > 500);
+  Result:=(S_OK = FTMGDisplayPointer.MoveUnit(DISPLAY_MOVEUNIT_CurrentLineEnd,0));   
+  Result:=(S_OK = FCaret.MoveCaretToPointer(FTMGDisplayPointer,
+                                            integer(FALSE),
+                                            CARET_DIRECTION_SAME));
+  {
+  SendMessage(FmsHTMLwinHandle, WM_KEYDOWN, VK_END, 0); 
+  SendMessage(FmsHTMLwinHandle, WM_KEYUP, VK_END, 0);
+  SendMessage(FmsHTMLwinHandle, WM_KEYDOWN, VK_END, 0); 
+  SendMessage(FmsHTMLwinHandle, WM_KEYUP, VK_END, 0);
+  }
+end;
+
+function THtmlObj.MoveCaretToPos(ScreenPos: TPoint) : HRESULT;
+//kt added entire function
+var  OutTemp : DWORD;
+begin
+  if not assigned (FTMGDisplayPointer) then exit;
+  FTMGDisplayPointer.moveToPoint(ScreenPos, COORD_SYSTEM_GLOBAL, nil, HT_OPT_AllowAfterEOL, OutTemp);
+  Result := FCaret.MoveCaretToPointer(FTMGDisplayPointer,Integer(True),CARET_DIRECTION_INDETERMINATE);
+  FCaret.Show(Integer(True));
+end;
+
+procedure THtmlObj.InsertTextAtCaret(Text : AnsiString);
+//kt added.  Note: inserts external format (not HTML markup)
+var P : PWideChar;
+begin
+  P := StringToOleStr(Text);
+  FCaret.InsertText(P,Length(Text))
+end;
+
+
+procedure THtmlObj.Loaded; 
+begin
+  inherited Loaded;
+end;
+
+function THtmlObj.GetTextLen : integer;
+begin
+  Result := Length(GetText);
+end;    
+
+
+procedure THtmlObj.ReassignKeyboardHandler(TurnOn : boolean);
+{assign HTML keyboard handler to HTML component; restore standard if TurnOn=false}
+begin
+  if TurnOn then begin
+    FApplication.OnMessage := GlobalMsgHandler; 
+  end else begin
+    FApplication.OnMessage := FOrigAppOnMessage;
+  end;      
+end;
+
+procedure THtmlObj.GlobalMsgHandler(var Msg: TMsg; var Handled: Boolean);
+{NOTE: This message handler will receive ALL messages directed to CPRS.  I
+       have to do this, because something is filtering messages before they
+       get to this THTMLObj object.  My goal is to do as little here as possible,
+       and let the OnMessage for THTMLObj (found in EmbeddedED) take care of the rest.
+ NOTE: This should get activated by OnFocus for object, and deactivated 
+       by OnBlur, so it actually should only get messages when focused.   }       
+var 
+  i : Integer;
+  NewMsg : TMessage;
+  
+  function TransformMessage (WinMsg : TMsg) : TMessage;
+  begin
+    Result.Msg := WinMsg.message;
+    Result.WParam := WinMsg.wParam;
+    Result.LParam := WinMsg.lParam;
+    Result.Result := 0;
+  end;
+  
+begin
+  Handled:=false; //default to not handled  
+  if (Msg.Message=WM_KEYDOWN) then begin
+    if (Msg.WParam=VK_UP) or (Msg.WParam=VK_DOWN) or (Msg.WParam=VK_TAB) then begin
+        NewMsg := TransformMessage(Msg);
+        SubMessageHandler(NewMsg);               
+        Handled := (NewMsg.Result = 1);
+    end; 
+  end; 
+end;
+
+
+procedure THtmlObj.SubMessageHandler(var Msg: TMessage);
+//Called from parent's EDMessageHandler, or from GlobalMsgHandler
+var  i : Integer;
+     WinControl : TWinControl;
+
+begin
+  Msg.Result := 0; //default to not handled  
+  if not ((Msg.Msg=WM_KEYDOWN) or
+          (Msg.Msg=WM_KEYUP) or
+          (Msg.Msg=WM_RBUTTONUP) ) then exit;  //Speedy exit of non-handled messages
+  case Msg.Msg of
+    WM_RBUTTONUP : begin
+                     if CtrlToBeProcessed then begin
+                       CtrlToBeProcessed := false;                   
+                       exit; //Ctrl-right click is ignored
+                     end;  
+                     if assigned(PopupMenu) then PopupMenu.Popup(Mouse.CursorPos.X,Mouse.CursorPos.Y);
+                     Msg.Result := 1; //Handled
+                     exit;
+                   end;
+    WM_KEYDOWN :   begin
+                     GetSystemTimeAsFileTime(KeyPressTime);
+                     KeyStruck := true;
+                     //beep(200,50);
+                     case Msg.WParam of
+                       VK_ESCAPE  : begin
+                                      if Assigned(PrevControl) then begin
+                                        AllowNextBlur := true;
+                                        PrevControl.SetFocus;
+                                      end;  
+                                    end; 
+                       VK_CONTROL : begin
+                                      CtrlToBeProcessed:=true;
+                                      Msg.Result := 1; //Handled
+                                      exit;
+                                    end;
+                       VK_SHIFT :   begin
+                                      ShiftToBeProcessed:=true;
+                                      Msg.Result := 1; //Handled
+                                      exit;
+                                    end;
+                       VK_TAB :     begin
+                                      if (ShiftToBeProcessed and CtrlToBeProcessed) then begin
+                                        //This isn't working for some reason...
+                                        for i := 0 to 5 do begin
+                                          PostMessage(FmsHTMLwinHandle, WM_KEYDOWN, VK_LEFT, 0);
+                                        end;  
+                                        ShiftToBeProcessed := false;
+                                        CtrlToBeProcessed := false;
+                                      end else if ShiftToBeProcessed then begin 
+                                        if Assigned(PrevControl) then begin
+                                          AllowNextBlur := true;
+                                          PrevControl.SetFocus;
+                                        end;  
+                                        ShiftToBeProcessed := false;
+                                      end else if CtrlToBeProcessed then begin 
+                                        if Assigned(NextControl) then begin
+                                          AllowNextBlur := true;
+                                          NextControl.SetFocus;
+                                        end;  
+                                        CtrltoBeProcessed := false;
+                                      end else begin
+                                        for i := 0 to 5 do begin
+                                          PostMessage(FmsHTMLwinHandle, WM_KEYDOWN, VK_SPACE, 0);
+                                        end;  
+                                      end;  
+                                      Msg.Result := 1; //Handled
+                                    end;
+                       {             
+                       VK_RETURN :  if CtrlReturnToBeProcessed then begin 
+                                      Msg.Result := 1; //Handled
+                                      CtrlReturnToBeProcessed := false;
+                                    end else if CtrlToBeProcessed then begin
+                                      Msg.Result := 1; //Handled
+                                      CtrlToBeProcessed := False; 
+                                      CtrlReturnToBeProcessed := true;
+                                      //PostMessage(Msg.hwnd, WM_KEYUP, VK_CONTROL, 0);                                      
+                                    end else if ShiftToBeProcessed=false then begin
+                                      //kt if not FEditable then exit;
+                                      keybd_event(VK_SHIFT,0,0,0);
+                                      keybd_event(VK_RETURN,0,0,0);
+                                      keybd_event(VK_SHIFT,0,KEYEVENTF_KEYUP,0);
+                                      Msg.Result := 1; //Handled
+                                    end;
+                       }             
+                       Ord('B') :  if CtrlToBeProcessed then begin
+                                     //kt if not FEditable then exit;
+                                     ToggleBold;
+                                     Msg.Result := 1; //Handled
+                                     exit;
+                                   end;  
+                       Ord('U') :  if CtrlToBeProcessed then begin
+                                     //kt if not FEditable then exit;
+                                     ToggleUnderline;
+                                     Msg.Result := 1; //Handled
+                                     exit;
+                                   end;  
+                       Ord('I') :  if CtrlToBeProcessed then begin
+                                     //kt if not FEditable then exit;
+                                     ToggleItalic;
+                                     Msg.Result := 1; //Handled
+                                   end;  
+                     end; {case}
+                   end;
+    WM_KEYUP :     begin
+                     case Msg.WParam of
+                       VK_CONTROL : begin
+                                      CtrlToBeProcessed:=false;
+                                      Msg.Result := 1; //Handled
+                                      if CtrlReturnToBeProcessed then begin
+                                        PostMessage(FmsHTMLwinHandle, WM_KEYDOWN, VK_RETURN, 0);
+                                      end;                                      
+                                      exit;
+                                    end;
+                       VK_SHIFT :   begin
+                                      ShiftToBeProcessed:=false;
+                                      Msg.Result := 1; //Handled
+                                      exit;
+                                   end;
+                                   
+                     end; {case}
+                     exit;
+                   end;    
+  end;  {case}
+end;
+
+procedure THtmlObj.HandleBlur(Sender: TObject);
+//kt added function
+  function RecentKeyPressed : boolean;
+  var NowTime : FILETIME; //kt 
+      KeyTime,NowTime2 : LARGE_INTEGER;
+      Delta : int64;
+  begin
+    GetSystemTimeAsFileTime(NowTime); 
+    NowTime2.LowPart := NowTime.dwLowDateTime;
+    NowTime2.HighPart := NowTime.dwHighDateTime;
+    KeyTime.LowPart := KeyPressTime.dwLowDateTime;
+    KeyTime.HighPart := KeyPressTime.dwHighDateTime;
+    Delta := floor( (NowTime2.QuadPart - KeyTime.QuadPart) / 100000);
+    Result := (Delta < 100);
+  end;
+
+begin
+  //kt Handle loss of focus when attempting to cursor above top line, or below bottom line.
+  if (not AllowNextBlur) and RecentKeyPressed then begin   //kt entire block
+    SetFocusToDoc;
+    //beep(880,100);
+    KeyPressTime.dwLowDateTime := 0;
+    KeyPressTime.dwHighDateTime := 0;
+    exit; 
+  end;
+  AllowNextBlur := false;
+  SetMsgActive(false);
+end;
+
+function THtmlObj.SubFocusHandler(fGotFocus: BOOL): HResult; 
+begin
+  SetMsgActive(fGotFocus);
+end;
+
+function THtmlObj.GetActive : boolean;
+begin
+  Result := TWinControl(Owner).Visible;
+end;
+
+
+initialization
+
+finalization
+
+end.
+
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/fPtAdd.dfm
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/fPtAdd.dfm	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/fPtAdd.dfm	(revision 541)
@@ -0,0 +1,305 @@
+object frmPtAdd: TfrmPtAdd
+  Left = 438
+  Top = 165
+  Width = 289
+  Height = 300
+  Caption = 'Add A Patient'
+  Color = clBtnFace
+  Font.Charset = DEFAULT_CHARSET
+  Font.Color = clWindowText
+  Font.Height = -11
+  Font.Name = 'MS Sans Serif'
+  Font.Style = []
+  KeyPreview = True
+  OldCreateOrder = False
+  Position = poMainFormCenter
+  OnCreate = FormCreate
+  OnDestroy = FormDestroy
+  OnShow = OnShow
+  PixelsPerInch = 96
+  TextHeight = 13
+  object LNameLabel: TLabel
+    Left = 33
+    Top = 20
+    Width = 70
+    Height = 13
+    Caption = 'Family/Last:'
+    Font.Charset = DEFAULT_CHARSET
+    Font.Color = clWindowText
+    Font.Height = -11
+    Font.Name = 'MS Sans Serif'
+    Font.Style = [fsBold]
+    ParentFont = False
+  end
+  object FNameLabel: TLabel
+    Left = 33
+    Top = 44
+    Width = 68
+    Height = 13
+    Caption = 'Given/First:'
+    Font.Charset = DEFAULT_CHARSET
+    Font.Color = clWindowText
+    Font.Height = -11
+    Font.Name = 'MS Sans Serif'
+    Font.Style = [fsBold]
+    ParentFont = False
+  end
+  object MNameLabel: TLabel
+    Left = 64
+    Top = 68
+    Width = 34
+    Height = 13
+    Caption = 'Middle:'
+  end
+  object SuffixLabel: TLabel
+    Left = 70
+    Top = 92
+    Width = 26
+    Height = 13
+    Caption = 'Suffix'
+  end
+  object DOBLabel: TLabel
+    Left = 24
+    Top = 117
+    Width = 73
+    Height = 13
+    Caption = 'Date of Birth'
+    Font.Charset = DEFAULT_CHARSET
+    Font.Color = clWindowText
+    Font.Height = -11
+    Font.Name = 'MS Sans Serif'
+    Font.Style = [fsBold]
+    ParentFont = False
+  end
+  object SSNumLabel: TLabel
+    Left = 8
+    Top = 139
+    Width = 79
+    Height = 13
+    Caption = 'Social Sec Num.'
+    Font.Charset = DEFAULT_CHARSET
+    Font.Color = clWindowText
+    Font.Height = -11
+    Font.Name = 'MS Sans Serif'
+    Font.Style = []
+    ParentFont = False
+  end
+  object SexLabel: TLabel
+    Left = 74
+    Top = 164
+    Width = 22
+    Height = 13
+    Caption = 'Sex'
+    Font.Charset = DEFAULT_CHARSET
+    Font.Color = clWindowText
+    Font.Height = -11
+    Font.Name = 'MS Sans Serif'
+    Font.Style = [fsBold]
+    ParentFont = False
+  end
+  object PrefixLabel: TLabel
+    Left = 25
+    Top = 187
+    Width = 73
+    Height = 13
+    Caption = 'Patient Type'
+    Font.Charset = DEFAULT_CHARSET
+    Font.Color = clWindowText
+    Font.Height = -11
+    Font.Name = 'MS Sans Serif'
+    Font.Style = [fsBold]
+    ParentFont = False
+    Visible = False
+  end
+  object Label1: TLabel
+    Left = 16
+    Top = 232
+    Width = 39
+    Height = 13
+    Caption = 'Label1'
+    Color = clRed
+    Font.Charset = DEFAULT_CHARSET
+    Font.Color = clWindowText
+    Font.Height = -11
+    Font.Name = 'MS Sans Serif'
+    Font.Style = [fsBold]
+    ParentColor = False
+    ParentFont = False
+    Visible = False
+  end
+  object SSNHelpBtn: TSpeedButton
+    Left = 245
+    Top = 136
+    Width = 23
+    Height = 22
+    Glyph.Data = {
+      36010000424D3601000000000000760000002800000014000000100000000100
+      040000000000C000000000000000000000001000000000000000000000000000
+      8000008000000080800080000000800080008080000080808000C0C0C0000000
+      FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00FFFFFF000FFF
+      FFFFFFFF0000FFFFF06660FFFFFFFFFF0000FFFFF06660FFFFFFFFFF0000FFFF
+      FF000FFFFFFFFFFF0000FFFFF06660FFFFFFFFFF0000FFFFF06660FFFFFFFFFF
+      0000FFFFF066660FFFFFFFFF0000FFFFFF066660FFFFFFFF0000FFFFFFF06666
+      0FFFFFFF0000FFF000FF06660FFFFFFF0000FF06660006660FFFFFFF0000FF06
+      666666660FFFFFFF0000FF06666666660FFFFFFF0000FFF006666600FFFFFFFF
+      0000FFFFF00000FFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFF0000}
+    OnClick = SSNHelpBtnClick
+  end
+  object Label2: TLabel
+    Left = 206
+    Top = 117
+    Width = 65
+    Height = 13
+    Caption = '(mm/dd/yy)'
+    Font.Charset = DEFAULT_CHARSET
+    Font.Color = clWindowText
+    Font.Height = -11
+    Font.Name = 'MS Sans Serif'
+    Font.Style = [fsBold]
+    ParentFont = False
+  end
+  object SexComboBox: TComboBox
+    Left = 103
+    Top = 160
+    Width = 167
+    Height = 21
+    ItemHeight = 13
+    TabOrder = 6
+    Text = '<Sex>'
+    OnChange = SexComboBoxChange
+    OnKeyPress = SexComboBoxKeyPress
+    Items.Strings = (
+      'MALE'
+      'FEMALE')
+  end
+  object SSNumEdit: TEdit
+    Left = 103
+    Top = 136
+    Width = 138
+    Height = 21
+    TabOrder = 5
+    OnChange = SSNumEditChange
+    OnExit = SSNumEditExit
+    OnKeyPress = SSNumEditKeyPress
+  end
+  object DOBEdit: TEdit
+    Left = 103
+    Top = 112
+    Width = 99
+    Height = 21
+    TabOrder = 4
+    OnChange = DOBEditChange
+    OnExit = DOBEditExit
+    OnKeyPress = DOBEditKeyPress
+  end
+  object SuffixEdit: TEdit
+    Left = 103
+    Top = 88
+    Width = 167
+    Height = 21
+    TabOrder = 3
+    OnChange = SuffixEditChange
+    OnKeyPress = SuffixEditKeyPress
+  end
+  object MNameEdit: TEdit
+    Left = 103
+    Top = 64
+    Width = 167
+    Height = 21
+    TabOrder = 2
+    OnChange = MNameEditChange
+    OnKeyPress = MNameEditKeyPress
+  end
+  object FNameEdit: TEdit
+    Left = 103
+    Top = 40
+    Width = 167
+    Height = 21
+    TabOrder = 1
+    OnChange = FNameEditChange
+    OnKeyPress = FNameEditKeyPress
+  end
+  object LNameEdit: TEdit
+    Left = 103
+    Top = 16
+    Width = 167
+    Height = 21
+    TabOrder = 0
+    OnChange = LNameEditChange
+    OnKeyPress = LNameEditKeyPress
+  end
+  object PtTypeComboBox: TComboBox
+    Left = 103
+    Top = 184
+    Width = 167
+    Height = 21
+    ItemHeight = 13
+    TabOrder = 7
+    Text = '<Pt Type>'
+    Visible = False
+    OnChange = PtTypeComboBoxChange
+    OnKeyPress = PtTypeComboBoxKeyPress
+    Items.Strings = (
+      'ACTIVE DUTY'
+      'ALLIED VETERAN'
+      'COLLATERAL'
+      'EMPLOYEE'
+      'MILITARY RETIREE'
+      'NON-VETERAN (OTHER)'
+      'NSC VETERAN'
+      'SC VETERAN'
+      'TRICARE')
+  end
+  object VeteranCheckBox: TCheckBox
+    Left = 104
+    Top = 208
+    Width = 161
+    Height = 17
+    Caption = 'Patient Is A Veteran'
+    TabOrder = 8
+    Visible = False
+    OnClick = VeteranCheckBoxClick
+  end
+  object OkButton: TButton
+    Left = 92
+    Top = 231
+    Width = 89
+    Height = 25
+    Caption = '&Add Patient'
+    TabOrder = 9
+    OnClick = OkButtonClick
+  end
+  object CloseButton: TButton
+    Left = 188
+    Top = 231
+    Width = 81
+    Height = 25
+    Caption = '&Cancel'
+    TabOrder = 10
+    OnClick = CancelButtonClick
+  end
+  object DKLanguageController1: TDKLanguageController
+    Left = 8
+    Top = 152
+    LangData = {
+      080066726D5074416464010100000001000000070043617074696F6E01160000
+      0006004C6162656C31010100000002000000070043617074696F6E0006004C61
+      62656C32010100000003000000070043617074696F6E000A004C4E616D654C61
+      62656C010100000004000000070043617074696F6E000A00464E616D654C6162
+      656C010100000005000000070043617074696F6E000A004D4E616D654C616265
+      6C010100000006000000070043617074696F6E000B005375666669784C616265
+      6C010100000007000000070043617074696F6E000800444F424C6162656C0101
+      00000008000000070043617074696F6E000A0053534E756D4C6162656C010100
+      000009000000070043617074696F6E0008005365784C6162656C01010000000A
+      000000070043617074696F6E000B005072656669784C6162656C01010000000B
+      000000070043617074696F6E000A0053534E48656C7042746E00000B00536578
+      436F6D626F426F7801020000000D00000005004974656D730C00000004005465
+      787400090053534E756D4564697400000700444F424564697400000A00537566
+      66697845646974000009004D4E616D654564697400000900464E616D65456469
+      74000009004C4E616D654564697400000E00507454797065436F6D626F426F78
+      01020000000F00000005004974656D730E000000040054657874000F00566574
+      6572616E436865636B426F78010100000010000000070043617074696F6E0008
+      004F6B427574746F6E010100000011000000070043617074696F6E000B00436C
+      6F7365427574746F6E010100000012000000070043617074696F6E00}
+  end
+end
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/fPtAdd.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/fPtAdd.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/fPtAdd.pas	(revision 541)
@@ -0,0 +1,579 @@
+unit fPtAdd;
+//kt  This entire module and form was added.  Coded by Eddie Hagood 10/2007
+
+interface
+
+uses
+  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+  Dialogs, StdCtrls, Trpcb, mfunstr, ORNet, uCore, ExtCtrls, StrUtils,
+  Buttons, DKLang;
+
+const
+  SSNUM_REQUIRED = true;  //set to true to force entry of ssnum
+
+type
+  TPatientInfo = class(TObject)
+  public
+    LName: String;
+    FName: String;
+    MName: String;
+    CombinedName: String;
+    Suffix: String;
+    DOB: String;
+    Sex: String;
+    SSNum: String;
+    PtType: String;
+    Veteran: String;
+    procedure ClearArray;
+  end;
+  
+  TfrmPtAdd = class(TForm)
+    LNameLabel: TLabel;
+    SexComboBox: TComboBox;
+    SSNumEdit: TEdit;
+    DOBEdit: TEdit;
+    SuffixEdit: TEdit;
+    MNameEdit: TEdit;
+    FNameEdit: TEdit;
+    LNameEdit: TEdit;
+    FNameLabel: TLabel;
+    MNameLabel: TLabel;
+    SuffixLabel: TLabel;
+    DOBLabel: TLabel;
+    SSNumLabel: TLabel;
+    SexLabel: TLabel;
+    PrefixLabel: TLabel;
+    PtTypeComboBox: TComboBox;
+    VeteranCheckBox: TCheckBox;
+    OkButton: TButton;
+    CloseButton: TButton;
+    Label1: TLabel;
+    SSNHelpBtn: TSpeedButton;
+    Label2: TLabel;
+    DKLanguageController1: TDKLanguageController;
+    procedure OnShow(Sender: TObject);
+    procedure CancelButtonClick(Sender: TObject);
+    procedure OkButtonClick(Sender: TObject);
+    procedure LNameEditChange(Sender: TObject);
+    procedure FNameEditChange(Sender: TObject);
+    procedure DOBEditChange(Sender: TObject);
+    procedure SSNumEditChange(Sender: TObject);
+    procedure SexComboBoxChange(Sender: TObject);
+    procedure MNameEditChange(Sender: TObject);
+    procedure SuffixEditChange(Sender: TObject);
+    procedure PtTypeComboBoxChange(Sender: TObject);
+    procedure VeteranCheckBoxClick(Sender: TObject);
+    procedure FormCreate(Sender: TObject);
+    procedure SSNumEditExit(Sender: TObject);
+    procedure SSNumEditKeyPress(Sender: TObject; var Key: Char);
+    procedure DOBEditKeyPress(Sender: TObject; var Key: Char);
+    procedure LNameEditKeyPress(Sender: TObject; var Key: Char);
+    procedure FNameEditKeyPress(Sender: TObject; var Key: Char);
+    procedure MNameEditKeyPress(Sender: TObject; var Key: Char);
+    procedure SuffixEditKeyPress(Sender: TObject; var Key: Char);
+    procedure SexComboBoxKeyPress(Sender: TObject; var Key: Char);
+    procedure PtTypeComboBoxKeyPress(Sender: TObject; var Key: Char);
+    procedure FormDestroy(Sender: TObject);
+    procedure DOBEditExit(Sender: TObject);
+    procedure SSNHelpBtnClick(Sender: TObject);
+  private
+    { Private declarations }
+    ThisPatientInfo: TPatientInfo;
+    ProgModSSNum : boolean;
+    procedure ResetColors();
+    procedure ResetFields();
+    procedure TestUserInput();
+    procedure DataToArray();
+    procedure CreatePSSN();
+    procedure PostInfo(ThisPatientInfo : TPatientInfo);
+    function FrmtSSNum(SSNumStr : string) : string;
+    function UnFrmtSSNum(SSNumStr : string) : string;
+    function SSNumInvalid(SSNumStr: string) : boolean;
+  public
+    { Public declarations }
+    DFN: Int64;
+  end;
+
+var
+  frmPtAdd: TfrmPtAdd; 
+
+implementation
+
+uses fPtSel;
+
+{$R *.dfm}
+
+var
+  boolErrorFound: boolean; 
+  boolDirtyForm: boolean;
+
+procedure TfrmPtAdd.OnShow(Sender: TObject);
+begin
+  LNameEdit.SetFocus;
+  PtTypeComboBox.Text := 'NON-VETERAN (OTHER)';
+  ResetColors;
+  ResetFields;
+  ThisPatientInfo.ClearArray;
+  boolDirtyForm := False;
+  DFN := -1;
+end;
+//------------------------------------------------------------------------
+procedure TfrmPtAdd.CancelButtonClick(Sender: TObject);
+begin
+  if (boolDirtyForm = True) then begin
+    if MessageDlg('** Patient Not Yet Added **'+#10+#13+
+                  'ADD this patient before exiting?', 
+                   mtWarning, [mbYes, mbNo],0) = mrYes then begin
+      OkButtonClick(self);
+    end else begin
+      modalresult:=1;
+    end;       
+  end else begin
+    modalresult:=1;
+  end;
+end;
+//------------------------------------------------------------------------
+procedure TfrmPtAdd.ResetColors();
+begin
+  LNameEdit.Color := clWindow;
+  FNameEdit.Color := clWindow;
+  DOBEdit.Color := clWindow;
+  SSNumEdit.Color := clWindow;
+  SexComboBox.Color := clWindow;        
+end;
+//------------------------------------------------------------------------
+procedure TfrmPtAdd.ResetFields();
+begin
+  LNameEdit.text := '';
+  FNameEdit.text := '';
+  MNameEdit.text := '';
+  SuffixEdit.Text := '';
+  PtTypeComboBox.Text := 'NON-VETERAN (OTHER)';
+  DOBEdit.text := '';
+  SSNumEdit.text := '';
+  SexComboBox.text := '<Sex>'; 
+  Label1.Visible := False;
+  Label1.Caption := '';
+  VeteranCheckbox.Checked := False;       
+end;
+//------------------------------------------------------------------------
+
+procedure TfrmPtAdd.OkButtonClick(Sender: TObject);
+
+begin
+  TestUserInput;
+  if boolErrorFound = False then begin
+    DataToArray;    
+    PostInfo(ThisPatientInfo);
+    boolDirtyForm := False;
+    ThisPatientInfo.ClearArray;
+    modalresult:=1;
+  end else begin
+    label1.Caption := 'Needs: ' + label1.caption;
+    label1.Visible := True;
+  end;
+end;
+//------------------------------------------------------------------------
+procedure TfrmPtAdd.LNameEditChange(Sender: TObject);
+begin
+  ResetColors;
+  ThisPatientInfo.LName := LNameEdit.Text;
+  boolDirtyForm := True;
+  label1.Visible := False;
+  if Pos('P',SSNumEdit.Text) > 0 then begin
+    CreatePSSN();
+  end;
+end;
+//------------------------------------------------------------------------
+procedure TfrmPtAdd.FNameEditChange(Sender: TObject);
+begin
+  ResetColors;
+  ThisPatientInfo.FName := FNameEdit.Text;
+  boolDirtyForm := True;
+  label1.Visible := False;
+  if Pos('P',SSNumEdit.Text) > 0 then begin
+    CreatePSSN();
+  end;
+end;
+//------------------------------------------------------------------------    
+procedure TfrmPtAdd.MNameEditChange(Sender: TObject);
+begin
+  ThisPatientInfo.MName := MNameEdit.Text;
+  boolDirtyForm := True;
+  label1.Visible := False;
+  if Pos('P',SSNumEdit.Text) > 0 then begin
+    CreatePSSN();
+  end;
+end;
+//------------------------------------------------------------------------
+procedure TfrmPtAdd.DOBEditChange(Sender: TObject);
+begin
+  ResetColors;
+  label1.Visible := False;
+  ThisPatientInfo.DOB := DOBEdit.Text;
+  if Pos('P',SSNumEdit.Text) > 0 then begin
+    CreatePSSN();
+  end;
+end;
+//------------------------------------------------------------------------
+procedure TfrmPtAdd.SSNumEditChange(Sender: TObject);
+begin
+  if ProgModSSNum = false then begin
+    ResetColors;
+    ThisPatientInfo.SSNum := UnFrmtSSNum(SSNumEdit.Text);
+    //ProgModSSNum := true;
+    //SSNumEdit.Text := FrmtSSNum(ThisPatientInfo.SSNum);
+    //ProgModSSNum := false;
+    boolDirtyForm := True;
+    label1.Visible := False;
+  end;  
+end;
+//------------------------------------------------------------------------
+procedure TfrmPtAdd.SexComboBoxChange(Sender: TObject);
+begin
+  ResetColors;
+  ThisPatientInfo.Sex  := SexComboBox.Text;
+  boolDirtyForm := True;
+  label1.Visible := False;
+end;
+//------------------------------------------------------------------------
+
+procedure TfrmPtAdd.TestUserInput();
+begin
+  boolErrorFound := False;
+  label1.caption := '';
+  label1.Visible := False;
+  ResetColors;
+
+  if SSNumInvalid(ThisPatientInfo.SSNum) then begin
+    if MessageDlg('Invalid SSN. Would you like to use a pseudo-SSN?', mtConfirmation, [mbYes, mbNo],0) = mrYes then begin
+       SSNumEdit.Text := 'p';
+    end else begin   
+       label1.Caption := label1.Caption + 'SSN,';
+       boolErrorFound := True;
+       SSNumEdit.Color := clYellow;
+    end; 
+  end;  
+  
+  if LNameEdit.Text = '' then begin
+    label1.Caption := 'Last Name,';
+    boolErrorFound := True;
+    LNameEdit.Color := clYellow;
+  end;
+  if FNameEdit.Text = '' then begin
+    label1.Caption := label1.Caption + 'First Name,';
+    boolErrorFound := True;
+    FNameEdit.Color := clYellow;
+  end;  
+  if DOBEdit.Text = '' then begin
+    label1.Caption := label1.Caption + 'DOB,';
+    boolErrorFound := True;
+    DOBEdit.Color := clYellow;
+  end;  
+     
+  if SexComboBox.Text = '<Sex>' then begin
+    label1.Caption := label1.Caption + 'Gender';
+    boolErrorFound := True;
+    SexComboBox.Color := clYellow;
+  end;
+     
+end; 
+//------------------------------------------------------------------------
+procedure TfrmPtAdd.DataToArray();
+   
+begin
+  ThisPatientInfo.ClearArray; 
+  ThisPatientInfo.LName := LNameEdit.Text;
+  ThisPatientInfo.FName := FNameEdit.Text;
+  ThisPatientInfo.MName := MNameEdit.Text;
+  ThisPatientInfo.Suffix  := SuffixEdit.Text;
+  ThisPatientInfo.DOB := DOBEdit.Text;
+  ThisPatientInfo.Sex := SexComboBox.Text;
+
+  if Uppercase(SSNumEdit.Text) = 'P' then begin
+    CreatePSSN;
+  end else begin  
+    ThisPatientInfo.SSNum := UnFrmtSSNum(SSNumEdit.Text);
+  end;
+
+  ThisPatientInfo.PtType := PtTypeComboBox.Text;
+  if VeteranCheckBox.Checked = True then ThisPatientInfo.Veteran := 'True' else ThisPatientInfo.Veteran := 'False';
+      
+end;            
+//------------------------------------------------------------------------
+procedure TPatientInfo.ClearArray;
+begin
+  LName := '';
+  FName := '';
+  MName := '';
+  Suffix := '';
+  DOB := '';
+  Sex := '';
+  SSNum := '';
+  PtType := '';
+  Veteran := '';
+end; 
+//------------------------------------------------------------------------
+procedure TfrmPtAdd.SuffixEditChange(Sender: TObject);
+begin
+  ThisPatientInfo.Suffix := SuffixEdit.Text;
+  boolDirtyForm := True;
+end;
+//------------------------------------------------------------------------
+procedure TfrmPtAdd.PtTypeComboBoxChange(Sender: TObject);
+begin
+  ThisPatientInfo.PtType := PtTypeComboBox.Text;
+  boolDirtyForm := True;
+end;
+//------------------------------------------------------------------------
+procedure TfrmPtAdd.VeteranCheckBoxClick(Sender: TObject);
+begin
+  if VeteranCheckBox.Checked = True then ThisPatientInfo.Veteran := 'True' else ThisPatientInfo.Veteran := 'False';
+  boolDirtyForm := True;
+end;
+//------------------------------------------------------------------------
+procedure TfrmPtAdd.FormCreate(Sender: TObject);
+begin
+  ThisPatientInfo := TPatientInfo.Create;
+  DFN := -1;
+  ProgModSSNum := false;
+end;
+//------------------------------------------------------------------------
+procedure TfrmPtAdd.SSNumEditExit(Sender: TObject);
+begin
+  ProgModSSNum := true;
+  SSNumEdit.Text := FrmtSSNum(ThisPatientInfo.SSNum);
+  ProgModSSNum := false;
+
+  if (SSNumInvalid(ThisPatientInfo.SSNum)) and (SSNumEdit.Text <>'') then begin
+    label1.Caption := 'SSN not correct length';
+    label1.Visible := True;
+    SSNumEdit.Color := clYellow;
+  end;  
+end;
+//------------------------------------------------------------------------
+function TfrmPtAdd.SSNumInvalid(SSNumStr: string) : boolean;
+//kt 6/18/08 change.  Made null entry to be VALID optionally
+var targetLen : byte;
+begin
+  if (SSNumStr<>'') or SSNUM_REQUIRED then begin
+    if Pos('P',SSNumStr)>0 then targetLen := 10 else targetLen := 9;
+    Result := (length(SSNumStr) <> targetLen);
+  end else begin
+    Result := false;  //'' is valid entry now for SS (not required)
+  end;
+end;
+
+//------------------------------------------------------------------------
+procedure TfrmPtAdd.SSNumEditKeyPress(Sender: TObject; var Key: Char);
+begin
+  if Key = 'p' then Key := 'P';
+  if Key=#8 then begin
+    if Pos('P',SSNumEdit.Text)>0 then begin
+      SSNumEdit.Text := '';
+      Key := #0;
+    end;  
+  end else if Key='P' then begin  
+    CreatePSSN;
+    Key := #0;
+  end else if not (Key in ['0'..'9','-']) then Key := #0;
+end;
+//------------------------------------------------------------------------
+function TfrmPtAdd.FrmtSSNum(SSNumStr : string) : string;
+var partA,partB,partC : string;
+begin
+  partA := MidStr(SSNumStr,1,3);
+  partB := MidStr(SSNumStr,4,2);
+  partC := MidStr(SSNumStr,6,5);
+  Result := partA;
+  if length(partA)=3 then begin
+    Result := Result + '-' + partB;  
+    if partC<>'' then begin
+      Result := Result + '-' + partC;
+    end;  
+  end else begin
+    Result := SSNumStr;
+  end;
+end;
+//------------------------------------------------------------------------
+function TfrmPtAdd.UnFrmtSSNum(SSNumStr : string) : string;
+begin
+  Result := AnsiReplaceText(SSNumStr,'-','');  
+end;
+//------------------------------------------------------------------------
+procedure TfrmPtAdd.DOBEditKeyPress(Sender: TObject; var Key: Char);
+begin
+  if Key in ['-', '\'] then Key := '/';
+  if Key in ['0'..'9'] + ['/'] then Key := Key 
+  else if Key <> #8 then Key := #0;
+end;
+//------------------------------------------------------------------------
+procedure TfrmPtAdd.LNameEditKeyPress(Sender: TObject; var Key: Char);
+begin
+  Key := Uppercase(Key)[1];
+  if Key in ['0'..'9',','] then Key := #0
+end;
+//------------------------------------------------------------------------
+procedure TfrmPtAdd.FNameEditKeyPress(Sender: TObject; var Key: Char);
+begin
+  Key := Uppercase(Key)[1];
+  if Key in ['0'..'9'] then Key := #0
+end;
+//------------------------------------------------------------------------
+procedure TfrmPtAdd.MNameEditKeyPress(Sender: TObject; var Key: Char);
+begin
+  Key := Uppercase(Key)[1];
+  if Key in ['0'..'9'] then Key := #0
+end;
+//------------------------------------------------------------------------
+procedure TfrmPtAdd.SuffixEditKeyPress(Sender: TObject; var Key: Char);
+begin
+  if Key in ['0'..'9'] then Key := #0
+end;
+//------------------------------------------------------------------------
+procedure TfrmPtAdd.SexComboBoxKeyPress(Sender: TObject; var Key: Char);
+begin
+  Key := Uppercase(Key)[1];
+  if Key = 'M' then begin
+    SexComboBox.Text := 'MALE';
+    Key := #0;
+  end else if Key = 'F' then begin
+    SexComboBox.Text := 'FEMALE';
+    Key := #0;
+  end else if Key = #8 then begin
+    SexComboBox.Text := '';
+    Key := #0;
+  end else Key := #0;
+end;
+//------------------------------------------------------------------------
+procedure TfrmPtAdd.PtTypeComboBoxKeyPress(Sender: TObject; var Key: Char);
+begin
+  Key := #0;
+end;
+//------------------------------------------------------------------------
+procedure TfrmPtAdd.PostInfo(ThisPatientInfo : TPatientInfo);
+var tempResult: integer;
+    tempS,s2 : string;
+
+  procedure CheckPost(Title, Value : string);
+  begin
+    if Value <> '' then RPCBrokerV.Param[0].Mult['"'+Title+'"'] := Value;
+  end;
+
+begin
+  if MessageDlg('Add New Patient?  (Can Not Be Undone)',
+                mtConfirmation, [mbYes, mbNo],0) = mrNo then exit;
+  
+  RPCBrokerV.remoteprocedure := 'TMG ADD PATIENT';
+  
+  RPCBrokerV.Param[0].PType := list;
+  with ThisPatientInfo do begin
+    CombinedName := LName + ',' + FName;
+    If MName <> '' then CombinedName := CombinedName + ' ' + MName;
+    If Suffix <> '' then CombinedName := CombinedName + ' ' + Suffix;
+    CheckPost('COMBINED_NAME',CombinedName);
+    CheckPost('DOB',DOB);
+    CheckPost('SEX',Sex);
+    CheckPost('SS_NUM',SSNum);
+    //CheckPost('Veteran',Veteran);
+    //CheckPost('PtType',PtType);
+
+    RPCBrokerV.Call;
+    tempS := RPCBrokerV.Results.Strings[0];
+    tempResult := strtoint(piece(tempS,'^',1));
+    DFN := tempResult;
+    if DFN > 0 then begin
+       //MessageDlg('Patient successfully added',mtInformation,[mbOK],0);
+    end else begin
+      s2 := piece(tempS,'^',2);
+      if (tempResult = 0) and (s2 <> '') then begin
+        DFN := strtoint(s2);
+        MessageDlg('Patient already exists.',mtError,[mbOK],0);
+      end else begin
+        MessageDlg('Error Adding: "'+tempS+'"',mtError,[mbOK],0);
+      end;
+    end;
+  end;
+end;
+//------------------------------------------------------------------------
+procedure TfrmPtAdd.FormDestroy(Sender: TObject);
+begin
+  ThisPatientInfo.Destroy;
+end;
+//------------------------------------------------------------------------
+procedure TfrmPtAdd.CreatePSSN();
+var 
+  i: integer; 
+  tempPseudo: string; 
+  Init : array [1..3] of char;
+  code : char;
+  Month,Day,Year: string;
+  
+begin
+  for i := 1 to 3 do Init[i]:=' ';
+  if ThisPatientInfo.FName<>'' then Init[1] := UpperCase(ThisPatientInfo.FName)[1];
+  if ThisPatientInfo.MName<>'' then Init[2] := UpperCase(ThisPatientInfo.MName)[1];
+  if ThisPatientInfo.LName<>'' then Init[3] := UpperCase(ThisPatientInfo.LName)[1];
+
+  tempPseudo := '';
+  for i := 1 to 3 do begin
+    if      Init[i] in ['A','B','C'] then code := '1'
+    else if Init[i] in ['D','E','F'] then code := '2'
+    else if Init[i] in ['G','H','I'] then code := '3'
+    else if Init[i] in ['J','K','L'] then code := '4'
+    else if Init[i] in ['M','N','O'] then code := '5'
+    else if Init[i] in ['P','Q','R'] then code := '6'
+    else if Init[i] in ['S','T','U'] then code := '7'
+    else if Init[i] in ['V','W','X'] then code := '8'
+    else if Init[i] in ['Y','Z']     then code := '9'
+    else if Init[i] in [' ']         then code := '0'
+    else code := '0';
+    tempPseudo := tempPseudo + code;
+  end;  
+  
+  Month := piece(ThisPatientInfo.DOB,'/',1);
+  Day := piece(ThisPatientInfo.DOB,'/',2);     
+  Year := piece(ThisPatientInfo.DOB,'/',3);
+  tempPseudo := tempPseudo + Month + Day + Year + 'P';
+  ThisPatientInfo.SSNum := tempPseudo;
+  SSNumEdit.Text := ThisPatientInfo.SSNum;
+  SSNumEditExit(nil);
+end;
+
+procedure TfrmPtAdd.DOBEditExit(Sender: TObject);
+var
+  s,s2: string;
+  i:integer; boolInvalid: boolean;
+begin
+  boolInvalid := False;
+  s2 := '';
+  For i:=1 to 3 do begin
+   s := piece(DobEdit.Text,'/',i);
+   if ((i = 3) and (length(s) = 4)) then s := rightstr(s,2);      
+   if length(s) = 1 then s := '0' + s;
+   if s2 <> '' then s2 := s2 + '/';
+   s2 := s2 + s;
+   if length(s) <> 2 then boolInvalid := True;
+  end;               
+
+  if (boolInvalid = True) and (DOBEdit.Text<>'') then begin
+    messagedlg('DOB format is invalid. Please enter it in mm/dd/yy format.',mtError,[mbOK],0);
+    DOBEdit.text := '';
+  end else begin
+    DOBEdit.text := s2;  
+  end;
+end;
+
+procedure TfrmPtAdd.SSNHelpBtnClick(Sender: TObject);
+begin
+  if MessageDlg('If Soc. Sec. Number (SSN) is unknown, a "Pseudo" SSN may be used.'+#10+#13+
+                 'Create a Pseudo-SSN For this Patient?', 
+                  mtConfirmation, [mbYes, mbNo],0) = mrYes then begin
+    CreatePSSN;
+  end else begin
+    SSNumEdit.Text := '';
+  end;
+end;
+
+end.
+
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/fTMGPrintingAnimation.dfm
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/fTMGPrintingAnimation.dfm	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/fTMGPrintingAnimation.dfm	(revision 541)
@@ -0,0 +1,643 @@
+object frmTMGPrinting: TfrmTMGPrinting
+  Left = 407
+  Top = 190
+  BorderStyle = bsNone
+  ClientHeight = 198
+  ClientWidth = 161
+  Color = clBtnFace
+  Font.Charset = DEFAULT_CHARSET
+  Font.Color = clWindowText
+  Font.Height = -11
+  Font.Name = 'MS Sans Serif'
+  Font.Style = []
+  OldCreateOrder = False
+  Position = poOwnerFormCenter
+  PixelsPerInch = 96
+  TextHeight = 13
+  object pnlBackground: TPanel
+    Left = 0
+    Top = 0
+    Width = 161
+    Height = 198
+    Align = alClient
+    BevelInner = bvRaised
+    TabOrder = 0
+    object lblPrinting: TLabel
+      Left = 15
+      Top = 160
+      Width = 128
+      Height = 26
+      Caption = 'Printing . . . '
+      Font.Charset = ANSI_CHARSET
+      Font.Color = clWindowText
+      Font.Height = -24
+      Font.Name = 'Times New Roman'
+      Font.Style = [fsBold]
+      ParentFont = False
+    end
+    object Image1: TImage
+      Left = 15
+      Top = 16
+      Width = 129
+      Height = 137
+      Picture.Data = {
+        0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000008000
+        00008808060000002F6DE3A6000000017352474200AECE1CE900000006624B47
+        4400FF00FF00FFA0BDA793000000097048597300000F6100000F6101A83FA769
+        0000000774494D45000000000000000973942E00004A084944415478DAEDBD07
+        9C1CD5952F7CAA739AEEC9D39347394710D9AC3F7F0E20AFED5D07E480C16BD8
+        F53AE0C7DA5EB08D79C61847CC636131C126638C30788D0502EB0983484201A1
+        802494731A694693673AD73BE7DCBAD5B7AAAB7B46026BD8852BD5AF7BAABBAB
+        6EDDF3BF27DF733578AFBDAB9B36DA1D78AF8D6E7BC70260DB9E5D65813B7C67
+        1EFE70FBCC8E039DCD9EB8E7FD03890148A69290C96440D7B3E0F678C0EFF542
+        2C1A5DF8A1FFFF83BF18ED3EFF776CEF3800BCF9D2968FEF4F1FFC6A7BC7D169
+        038343CDA9541A90DA90CBE9F829BEE27BB7CB85A7727C5EC3D39170B8B3A1BE
+        7ED2851FB9A0F364EEA9EB746D08E331A069EFB821F99BB677DCD32E7A72D1CB
+        3BF7EE3D37EBD2412762E81A1319F03D7596494584C7932EA0CFF05573417D3C
+        7ED6673EF9A995E263DD83474E13D46CC3A30E8F263CB2784CC063088F73F0A8
+        546E4DEF0FE3E1C3DF4EC866B3EF3B88ADADAD4D1FED31F95BB677140068263E
+        F8F0C31776F5F43C9D819C416CA23D921A69994A26C1EF0FE0E107E4FCE0F578
+        21120A110780E6A6E6FDE3C68EB9DDEBF28D75BB5D7EFCD538FC75391E0D7804
+        11473E8DA1036EF9D0E6F58D91D08DF739E42E1D1DC736FCFEF78F9481E6F205
+        43018846A350D95975D033D9FDB82F135C3CF795D97B23D78706467BCCDE6A1B
+        3500102BC711D732A974A4B7A7C79FD573D50389A1CA6D5BB77FFED8B18EAF07
+        0321088543100CF9211C212247C085AC3F1289401809EEF579C1E7F5303034E2
+        052E10C4CC09B0D01F4C508DDF1123E1F7D95C0E398698D4B95C065C393A9785
+        6C3603C9640232D93494975761FF3CF0DCB21761E5EA3590C17FE046C0696EF0
+        7BFC50162A838A48C5F69654F3339131915F4EB97EE211DF326F76B4897932ED
+        9402A0F3C1E37377CFD853B172D5AAA1DAEAEA8B3FF4C10F5578DD9E2948A9DA
+        74361DD3DC2E9FCFEBF5604382328307C9F78948CCF64934E00C75E941F10006
+        8105B5595690A620888BA020C266D24330D8DF093D3DDDD0DD85AFBDDDD0D7D7
+        8B7F1F819EEE03F8BE0F06078758CF080543F0E57FBE1AEAE2332091C8C2030F
+        FF1E8E74B4A3ECC88017B05F8824EE1FDE9800198FC5A1B1B6FED996E92DFF7B
+        D2B8F1AF8E36414FB4FD4D00F0E6B6AD738F3CD03E7DE0AC81BFDBB16F0784DB
+        C31FE98C76D6F6F6F4BA13C9048A6D14D21E8FEB730B16C0AC1933412A5E8632
+        661052E7BF5D381385F4CF19B318A72C92239DEEC7193B80441A440276417F7F
+        0F74217107FA7AE078E731E8C3BF7B7A04B1753D0D03BDC7C0E7F323070983DB
+        EDC6F73E08F83DD0DBDB89ECBD02522924B02700BD3D7D50593305BEFC2FD780
+        CF5F06070F1F85858F3F0E83C941D63988E872D85819C5577C14A8A828CFB5EA
+        AD8F4F393CF9A6D6EF37AD1A6DC28EB4BD2500ECDEBF2FBC79F3E6E6506FF8A3
+        5BFBB656E2ECFDC28183075DC944B22E954AF93268AAE939C18735269E069A41
+        4E17BE6F6A6884CBBF7C1913C385334CCFA5D0C44B2171134890040C0DF5435F
+        6F3B1EC7A1ABBB8309DADD739C67F150A2C73009D3DC17BFDF0B89A12188FA7D
+        904EA598D004240F127B00CFF70E26209BC9A24809B3C86042EA3EF0BA62286A
+        22088272A840D61F8D954359792DCC987D3604C315C879DCF0D2ABAFC22BAF2E
+        67AD44EA233A2BA2865CC14F5C2E0D909B414DA83ADDDAD472D7988EB13F1F73
+        71F3C1D126F0DB0680A18F0EF95EFEF715A14AA8B868EF9ABD53F6F9F78DEDE9
+        ED9984DAF2A4EEFE3E9002973472BA2A2A62ACC5CB1B1832DFF8838E1C83E0D3
+        9FFC14CC9D3307962D7D18766C5D0D0303BD78F4E00CEE46F69D4250F4E33532
+        3CC06CFA19400A45AAA0AC2C869F133189F829E40403E0C7598EF002D2218241
+        D417425128AFAC8670AC1ACA2B2A215A560EB15805EA1111D4234210C0EF513F
+        7228620874A42390B219ABA8067F2086E7BD38FB53B0E8A9A7E0C0E1C3845C03
+        C8798B24875C897090CBE6F8BCDBE586E6F2C6AEB6094D57A0487964E6CC99B9
+        D126F44901E0F873BD8DAF26579CD3D5DDF989A3EB8F4EEF2F1F9C75BCEB383B
+        626806F140186C503354698FC79D67E5CC2EC520E94CF31C139E6622CD527AAD
+        ACA880EF5E75151CD9F732FCF68EEB11280966D98664078F16043DEBC62BA304
+        F606C1EF0D4304091F2E47C2E26F6365519EBD313C82656510087B218C72DCE5
+        22D1E101B7D7CFAF2E340C82A11ABC62D078EC341C38B003FA063A98F81A12D6
+        8F2281384A0E9F2F1AA984C6E689F8D5208242838EE39DB0E82FCF40329D16F2
+        9FB8003E0B3DAB8E9C86800312E47864D219082218EBEBEB6F3EEDF4793F6D6B
+        68E8186D628F0800BB7FBCEF927553DE38EFE8F6F60BF7A5F6D7F6F4F4F87096
+        0B622371F9D55080A4EC56DFCBCF9D1C2A0400120919247E7F7F3FCAEC2E3E2E
+        B9E412B8F83317C21F1EBE1D8E76EC45C296A1D65F0E55550DCCCABD6CF605C8
+        68402D1D70B627A10B657B26D50F43FD5D38D809400B02C5C21034D505A0321A
+        C419EE070FFE0E110035F1386AEEC8052293F0CF66BC4616F5843D28520E20C8
+        327C5DE204444CB20440CFF0FD2A2A9A915B3482CBED67A2BEB17D2BAC5CF31A
+        0BB19CC1C104BE75F3C819A0A0D7348D1BBE6FAC6F58DFDCD0F8C1B3E79DFE8E
+        038149A5BD070FB857AF5E7DC3CBCB5FF9460A4D33D2880B88ED76151058FDDC
+        7E586E64C84D56D8B3A4C4A559FB3E8C6C95DE3F7CDFFD389B6976267036EA3C
+        83D7ADDD0C3FF8DEF72091EC03B727058150164265C80BBC3954E03488040250
+        575501D1700C366DDE011555353079420BEA16B5280A5CE00D782086EC5FF37A
+        A1B2B20EAFD10491E8249ED589A13E38766C1FEA195D2098395E33104400A01E
+        924EB25E90C978A1A5653272863206490A89FAFCCB2FC1A14387CCE792624002
+        40028200403A037139379EAE2CAF78BD215E7FE1FBCF3FEFE86813DD11008FFD
+        D71FCFF9CB9225AF0C0C0DE2AC8BE2207B595B96CA0E2B4D0A00A839CD7C3B18
+        EC20A0339A5405709092286F8F1C3902EF3BEB7D70D93F5D4A86BC61D36B489C
+        24FCEBBFFC13AC58B10CD9BC1BAA2A7D102E03E4100128431DAF221C84327F18
+        5C592F7474F4C3EE3D0761CCF826F8C0FBCF42852ECC00402D021208B0F2AA6A
+        A8AD9980E2632C04232D783688F74F434FD701E8ED23A5B21F5089657D2285CA
+        25997A59143DA15005D437B461DF3DF81B2FF420689F7DEE3918C471CA898732
+        80AD9B6325C1409C8645424E1C9595956BC68F1F3F7FDEEC59EF18109814BAF3
+        37773DF15F4F3CF1093FCEAA08CAD5582C66DABB92B0BACB99F82AD1D5F72A30
+        E441A6935BB38284748A8EF60EF8D695DF8486C67AB6F765C7D6AC79192EF9E2
+        453890698845FC68A7E3AC8E8590A50344035EA84045AF2C18857442077F300C
+        894C170E74083900CAF4900F4E3BFB74140F497ED28AF23AD4F09BA1A2763AB8
+        7D0D68FBA7E1F0A1EDF800094867FAD162F0E01DBDA89FA4D997E0C2BF7DBE30
+        5A063508BE385EC2CF9C60C7EEDDB07CC5AB90D5843ECB7D5566BF6C521C48CE
+        477F373735AE3B63CE9C0FD7D7C58F8D36F12D00B8E3DA3BD72C5CFE87B98150
+        101F3A00E5E5E5EC752310102720C2E68C6FDB750026ACF11DF53D1DF45EFD8C
+        E4A60480040F0DD0106AF05154E22EBFFC32B6200473A55994801F5C73353CFD
+        E41F211272A35298C2D91FC06BF860A0BB1F5CE95EA8AF420510D93701F7BCF3
+        CF863DBBDF843D7BB6C2A4A9E361C669B350EEFBF0771A9B91CD6D9391707530
+        79CEC7F17C142D8E0E38D2BE033B92E4E1C8A4055573A80704427EE847F33180
+        D6404BD378F07962D87F37A451695CF1DA6AD8BA73072BBA9A32904E00C829FA
+        01CE2198D63861E3EC7DB33E10BB3C36EA20300170CF0DF7BC70CFD2FBCEF7FA
+        08F5641E0910942151D84EC707CD427EB64B02CB8380A2129C0FFA1B4D22975B
+        12DF182C4534C801CBA6327070FF01B8F8E22FC0B4A9538499458386AFBB766D
+        872F7EE193901EEA04AF27811ABA1FAA62B550575909835D1D7070CF5E9CDD28
+        B6B0EF6DADF5F81D0D0691A5C72A6328FF05176BAAAD41EED00BE3A622005C95
+        D036E17C68197B2676C60BDD7D8750F9DC8D661C8200ED7EAFC787DAFE105A1D
+        1E241E3DAB0F42813268A89FC8D604F5B87F701096FC75295A1103E6301AEE2B
+        9010D072D2E52CAC403685F1530F9E1FD734EE3FEBDAE2FF366DC2A45175219B
+        94F8CAD7FEE5CACD5B36DF9CC922F203283FD17C22C257A0A94520209D40F378
+        2D045767B785F092F89AAB40543835669338AB3A3B3A98957EEFEAAB0DB0680C
+        008AFDFFFAB65FC13D77DD8CC449227B0708E1FD6308D2186AEFDD1D9D6CCA95
+        5744D1720871AC60FF8103106F6884BA7AB20022B07BFB16288F8761FABCE908
+        00E472C15A38FBBCCFA2B23716B2687AF60F75E0EC1F809ECE634CC234F6C38B
+        9C2393CA324724D2D554B72197AAE6CFB378E2E0A183F0C24B2FE2C410CF9733
+        DCD2522C509C814C455301369E95449C0727C6B429537F3A6DD1946B23D78546
+        CD4F6002E09BFF76C5956BD7AFBD39ABE7D8B9525717471939C89137D207881B
+        F8D0BE2E20341E7630A8AC5E257A290090CF3E9D4EC1E68D9BE0D22F5E02E79C
+        7D169B8C1A0E54368B16436F075CF6A5CFC2A1833BF1DA69A8407190EE1F80AA
+        302A03F8BB60C08F2CDD0D6D932732905264CE2128C2C120728600F8FC681A96
+        7B21EB1E82C6B12DA8D1FB61DC8433E0DCF75D84D6410C67A71B45440724063A
+        85B309673D5942E974168141C1223211D3D0D63616CDC908FB3F68AC5E5FBB16
+        DEDCB64D0095475463973537B400A488CB8B0611CB20A5B0CC13865930EB7F4D
+        FDC2A45B471D00DFBDE6EA2B5F7AE5A59BE90CEA6438F32B79E6939D1EC441AC
+        A9A9614D9A00E1C40124173095402000688E0AA12A2765CBE22CCFA1D67CE8E0
+        41E8EDEE815FDD782304900389D1A459938127173D0E575D75252A6B3A448319
+        8822CBAF402E50110A4010D942AC026574590C6769145E5FBD1A15C32124E810
+        B422D156ADDB02B172379C7BFE4C708791287EE466A8037CF84317C3ACD91760
+        9F22DC8FF6F67DB07FDF5E24BE9B9D39A4F4D1C1DC209D6497F39CB973116C1E
+        2676022D86E796BD00C73A3B4DC2B3B22C68CD1CA0A7A70776EEDC09D3A74F67
+        4E4A1C4DCF92432C43E6E1C1CF7EFA334DA30E809FDFF8B32B9F7AFAA99B2916
+        9E45F5368B1DACABAB439328C5328C38406D7D03BF4A135125BE7A480EC04CDC
+        46FC622D4BF13604C010CAD4B5AFBD0E5FBCF862B8E0231F61566930581818EC
+        832F7C6101AC5FFF3A4C185B0E135A1AC183FD0BBB0176EFDC8620AD82B153A6
+        621F2BA1EB780FAC7C7525BFF60F2641436DFEDCB366422A7D1CA2B521184465
+        32870A5D6BD30CF8E2A557A3A63F964DBD2134EFF6EFDD0BC73B8FE3DF6E56EE
+        B3991C73039711886A1B33061A9B9B79F448AEB723C779EEF9656849A4D959C6
+        925ECF5B32478F1E85DFFFFEF73017814362D5EDD650918D709CA2BEB66EE07D
+        E79D77CE9C59B3378C2A00EEBEF7B7573EF8F08337D343E8BA8B591E996734FB
+        69B69352186F6C22D7269F2B60F90AF1250770013802407200F55C0EE5622697
+        81149A6CFB90001D478FC1ADFF710B54975728BFCBC1CBCB5F828B167C068261
+        5406FD6E387BC674A88B45E0C8C1BDA877E8EC0D8C446238EB27C0D163DDB071
+        E336D8B6EB00945554C1947171E83E7E08A69F361E20E246B93F88D64104CE3C
+        773E7C66C157116261E8E91A80ED5BDF44A93204017F00AD84219EFD434309D4
+        25422C8E9208BAC953A7A2FE10E68014E9035BB76F87DD7B76A3C2EB161CC0B0
+        0E64DBB56B173F77252AAE143D0C22270DA1E5E243BDAAB6A6E668341ABD36D0
+        EE2F0B76843E9E9C93A080B66945701E8437F2EBA0167AAC7642CDDB9AA164F6
+        F1F13F3D76E5ADB7DD2A0080A423F94B5C801AA1964010ABAC823188FE4A7CF5
+        B04228943D97DBCAEAA5AC971ABF386F4404C53BC79E903F9D7CF1DD5DDDB07A
+        D56AF8D427FF11BE74F117CDEBB0BF0EB9C4BF7EF52BF0EC5F9F00BF47870879
+        FC208384CC8217BF3867DA240820C17A91EDD6D4C6A1134DC5B51BB6C2D1F641
+        146B5E1833A10E2AE365907167514F7041EF4006BCE57EF8C6577F00F366CD87
+        441A50AE1BE283E202A4F0A128F0E3B32692490469CE0059041A1A1A80DCE459
+        1A2BD437BABBBB51DFC0B1420E49E3455684D491E4B8D098B96424493AD938A6
+        6238C93435ED4D8C13DD83B29F4299F08D63FE71CC2F3C7BDC2795FB5812004F
+        2F597CE58D37DD7833215AE45F0A7F3775821E8090E80F8551096A839696368E
+        AD934DCC0FE5064759AFBE37FFA681281283A2FBD1C30E0D0DC18E1D3BE0C8E1
+        C370E76DB751BE9FA94C51DBB66D2B82E3A330D8DF8D2222874000A8A6F841D0
+        8FA6622FA451792D8F8521140A823F58066E5F04B66FD907C96C1F34B455A238
+        1089612E0841577F0AD2BE0CB4C4A7C25557FC0CB4A00FD97F07B41F380A2964
+        F7293DC3C125C41A13941E96F4201A13290AEDCF2BB99CE67659CEC9667F7ECD
+        98199A567C72F33D9026D163D13FD63F58FF2FC1FB03C7DF56003CFFE27357FE
+        E4673FB9995C9CA4F450DC5B6AAFA6F64EF16E5406274F9E8A9641B90900F2DD
+        BF5D00A0FB91DED1DEDE0EEB50C3FEC0F9E7C377BEFD6D8B054120B9F1973F83
+        DBFEF3169C9D09F0E3D4F7E2C77E9F1B024137B26A3F2A9042160F2589996A10
+        4630245189F3E2E77E541A63E564DE5640201C8548650DD4445B60E6C439E02B
+        F7B12BDA9D7651D2219A8C1A87B589D3910AA00680A4C853459A8D6A66F8DAFC
+        0E5839A04537D29CAD41FB75235A6475A0C23FBFA9BEE92D0797CC2B2F5FF9CA
+        953FFCD10F6FEE1FE86712B9DD1ED37B253B99C39121F44F9C38195A5BDB7050
+        048B1B0900D41B1200A4DF5CFD4C0240068AB6BCF9261CDABF1F7E73E79D78BF
+        56F33B048063EDC7E0631FFB7B387C783F2A5368952017A21C41975F031FCE6E
+        0A2CD5D4D4416DBC11EA1A1AA1BAAA06E2750D5086266D2814013FCA5F2FCF68
+        2432F8C19FC16746519270A308C46BD18CD759ECA0428C40278F9F9B9C428A05
+        639FF505C472399CD7C102FFFCF7A507C199E8F67B04BD81D5D15CF4C2BA8975
+        6F491C98575DB3EEB52BAFB9F69A9B7BFA7A99FDBBDD426E99A1600300D4E2F1
+        06983963160E649817679066EC142154D9B6FC2C9948C09B9B36B35E416691DA
+        D4902A89018ABA6D5ABF1EA64D9902DFFAD6B7448815C1411C228336F6D34F3F
+        034F3EF967686C6A84A6C67A5650EB1A1BA1215E03D148C8E833996B2E215351
+        5BD0736EE65C42D266D9CF40F7F4A6BBA1BB631F4EAF0AF0A18E438FEF462468
+        597A669C0CA4F02A9ABD4A8C130200E48361EA792363A228000A08875F8D1E8D
+        AE2DDF59FEE1D8E5B193E604E65DB62C7CF3CA6F2FFCF6CD5D3DDD86C9239497
+        B49100A102803C633367CE84E6A656C19AB55C51B69F63C52EC3404A20F107FA
+        FBE1FFFE6509FF7DE9A597B245616F4490046ADDBD08C603A8590FF4F5C3E73F
+        FF79F64BC8EB4ABD84CC5692CDC2054B9FA16E8203E9D6843F4ECC5EE23629EC
+        A6976308227B29C37E4661E6F5C1B1FDABA1B37D272A84E320D0309E934BA268
+        3A86B520120CAFEFF23081A4A3D769F61710DA04800696AFE9E0F85B1DB22322
+        3E638BC4748ED2D0BC37693ED777C68F1DF7D600B0F7D23D5FB9A2FF8A3B3B8F
+        77B26D2B07398D1AB0A6C8318D41400B31EAE1B4D3E6B1B943432D6726CD5C3A
+        C88B9848A438B2464422B9472C37808ADAFE7D7B3825ABA5A505264D9EC4D7F6
+        21A1281C4B9C413D48F64AE793AA07981A85668B2D2023178B4584D5A0498B84
+        41EA328C532383C965D0229D428BA01706F4046CD8B38FA384A74F9F858A255A
+        3BE408CAE89CEE45A9E8AA9A26B3A0547AA97D7115A3A303818505501816608B
+        4C77B810474C456F5019BDDE1F085CDFDAD072C27105F3CAD7FFEC4755EBD6AD
+        EB683FDA9E77646856594D76B81C444AD8686E6E81FE810148213B268D980E99
+        B7EF47E25184CEE7F7B138110A9378249AFD94E347BE0592ED44E0A0D7CF9E43
+        D229D4C1B4B3D761E5AEEE2AF91BF53DD9EB9CBF28020E3088367E4F2E050904
+        6F7630C9FD4A21270AE373D0F3D0E21032F10AE9E9DC177711AD5E770480EE08
+        184166CDE1BCE97CE67B463A223F6EF85CC3FF4613F1E40070D3ADBFAA5AB972
+        65C78183074C0048195E08004A940821005AD1D6AE8500EA0232B983CEB35B98
+        662C50B6AE8F091D4453AAAC2C62BC0F9AB39933677264CA792DB66FD18492B7
+        19009CB89148424F679708E6A039D1DE718C094E608C51FE21AD3E22FFBF8333
+        AB545F8A7100DDE5CC015CE00418CD9163102DA4D2C821F841B47E0E967DBCFE
+        C2F893270580071F79A06AC992251DBB76EFB2DC50B3092F09003A3F0315410A
+        1A650D42D2399ADDC40128F9B302674C737313FF4D6161B180038C34718528CA
+        6BA9011D0E10FC5E77157C6EE764E6D3189E178ADAB924F890381CB635CCBF62
+        F7D56D60B59F67FDC7586B269F4CE605644137819FE35549220EA22151991B06
+        43260944F269A199A97200F999173CDD95FF55716EC5BF576E3E61003CF6C41F
+        AA9E7AEAA98EED3BB6DBE49C3300A8F9FD419837EF0C4EBE9433C2D4FCF1C1AA
+        6351B418E2505555C5333FAF4338CFC8E188FE7603C0F892F9A281F25ECF47F5
+        983368427B2F70EA189C4C5A304C4C83B8498A24A202CC4736C37A04790C3346
+        7E403E4A688C9DA1CA92D7AFA1A19EAD2C0A936B0EDCC60E0039FEC1C3816535
+        F7D47C307C7F7844FA80F9348B9EF973D5134F3CD1B175DB56237161380088F3
+        7134BDC68C1B6F9A8DD204EC445DA23C1264458F40407905E43E363D01A57C05
+        A71000C2BA01C1AF8DE00E297E5E5D9C67A22A0020F7B8206A9A155F3AE8EFFC
+        6CCE89994EEE614DEA3DB21FC690E75D02162268220BC614BFE476F75126B65E
+        681EAA00B070A31C3BADFE7EDCD8718B4F08002F2C5F56F5F0C30F776CDABCC9
+        028052032766801B264F9A0CB158158EA19765534E4F4357D73144B287677F73
+        7333FBCD39BBC8E33735711530AABFC0AA77383B9972E02AE80F5B2E5AE1791A
+        595591363D73860F5E3E677E0667C5DA059EC159E177E03586640D8061F60ABB
+        9D2EEFE6D4726339BBDBCB960869EFEC6D3044A315B0BAE57939DD4E5D380342
+        A412D76C696946826A16A55CF4D7AA049ABFD35121C73B075CC1731AC7340CBB
+        56D1FCE5AAB52BABEEBFFFFE8EF51BD69F1000E87332E9A64C9EC100A0F1A795
+        3D996C92670CC934721F4B4E501689A276ECB12A4B05CAE6C903C06D73B39A03
+        A6285E9245135153A6632963FA2BD8150E322F512E6BA35F0A87978C8292994A
+        964F3818E594722F2ABC3BF7EC8281C10136795DBACB5C4340D7A6EF1BA36A46
+        06E93AB44682FA606FF41D8A67343536987F2B9F0238288D0400B2B08207025B
+        BD933C73E3B5F5832302C0A66D1BABEEBAEBAE8E356BD718D5384606007A21B6
+        D7D0D00235D575DCA944B29FA0CF8A1F7D8F40D0D8D8C820A8AB89F3B22D35E5
+        DC2961E46401208CFBBC4791884C44158436D83571A9AC703BCB289C24B4D0DB
+        A8DFB4429966A1C888220207033E5EF9E4C2CF52A92C126E008E1FEF818ECE5E
+        387CA41D76EEDC01A18807264E6E83AA9A18F86855534EC436A80F644988E011
+        702A3CBDF77ABD2698A4096CB134B0AF31D4A56AD1DA92AE7239EEAA0830E9A5
+        09739294C7C81BE19BEAFE3EFE9D1101E0C891C35537DD7253C72B2B5E015D2F
+        F26547792C08E476D1228AB18CFC4C26C1ABC234C8E70A10FB6F6A6A42343743
+        75658DC514540958CA0B660908D99C23421E67209DC9E515AF4CC6140139C8B3
+        5066B939015035674182CDE3F633C1988BD16FB32E38DA4E4BCB07A1ABBB0706
+        07130C34F2889645D04C8C96B137B2AFAF07F6EEDD02CDAD95307E4223D4D734
+        B288A46B0D0C0C304B17CF2152E1C9334AFD26871B8D875D67910A222982949C
+        436398170539430CD868E412D7E7849C9C96F0F9BC13E3F186FDC30220F1CF43
+        FEAF1DFFDAAA2D9D5B66160B4A160380CEF136372FE7AAAEAE04A10F0A2968B2
+        664437EB034D2D505FD7C0EF89330C0780624AA0E400FBF7EF57B8032D4815A9
+        5ACCC4C9A4A3BC3E54D83C3E63A14B4E98660400CA36829CF06D70526979B931
+        43892DF7E2F7B248F47E387CB00782FE1A004F58A49823B1299BC7ED1133D8ED
+        A5045837A7791D3AB40B366E7A150110877163C6B2334CB5145C2E95B80A47CB
+        E589693531C1F4F851ACC36B3AA2F222C0EA7E363ECB099D22B0C5FFA7FA8F34
+        7E72580050FBC4A73FBEF868C7D1F900CEB3B0180058D8EBC2434848A5AA1ECC
+        0174373FB0C6C9A11A9777A9ADA983C6FA46A8437D8058ABCFEB2B09806289A4
+        94AE4D0ADAAAD5AB786002C180588003C2EBE83294C120CAD0C3C86E1BD91F11
+        E158C400AD66D672FC1D0AF8D06CECE9ED81309A5D549544A69FF5E1B9CACA38
+        0C2016CAC271E849E89C01ECF1BA91F577C0506290C3CCF1BA5AF02207248E42
+        2EE5ADDB5E87238777C2697367F178C8B885D57FA05B4C67992C624DB615BA86
+        C748ABEFC5FE9028E06219008E1C8074001E4F19B8D26128F65AF984AACF5439
+        2E55B78CF6A716FCE3E2C30800764A9400819D486AC8983C81D5D5D56C01A819
+        413269949C42B5B575AC1354565643B42C26B28B342333A688FB5755E8F8B98C
+        552A3B77EF82C36872529E9EC1FF40E63210CB2545ABAB07E534123D93D2C18F
+        848A86498677F26CA2994D6C98F2F6A46246FDA42CE5AEAE6E76FF52F20BE508
+        9645DA50971000A37035452B8948B535A404124730824C6C2564B87E11D9F4EA
+        F3CBC36B640DE553EB3C467E85DBE61B11138CAC8E8E8E0EBC8F57AC57C866D8
+        C290DF73E22AF2EF7047F85B4D67D6DF3C2C003EF7C5058B771FDC371F72C578
+        C0F000A0F7C4DE2B909DAA00900A0E3D78341AC359DBC05EC48A8A2AAEFF43F5
+        FE4AB97F0B7403C3E59BC68158BE720544CB63505D530B9A91A442AC9EF2F37A
+        7B7B218533DC1D2963D9AEA773D07DFC3034C4CB382B3716AE35FB4F7501340E
+        3EF98CBC839CA9F10F0D0EC2D050D698A51EE6689CFA656404B14870CBF43860
+        2EE1E7543A2FEB4552D9933111358956104AE3747C7E3435846E640AB9D8BA1A
+        80631D47842E6194C97302809A9B49E7825DC1956D67349F352C00BE74F9258B
+        B7ECDC3E5FC4CE4F8E03C80E501A170D803CA766105392257189BABA7A7CAD85
+        4A4A41270DD9D6713B002C9C01841541B9F9C77BBA611D9AAF6D2873C3A132D3
+        C24873743241378732B450C87339D0DB0F5DC7DB51A1F27292A727E731238686
+        D5C7BF272E687A09E96E864386327A19041EB719A9F47A885D8BA097C7EDE383
+        136ADC46952AB01594D03326A1F3CFA4711D0379DE345F2167287C598EB01E3C
+        B88FC59D66D445B2C727D4BFE56A2D6C2BA74E9C343C00BEF6CD7F5DBC76E386
+        A222A0D86C5459B3609FC2E4A9414E20D99FE402F26FCACA2151505B235CC595
+        C831A46560B70EECEF45791797B1744C870C0ED096AD5BA117D9F2F831136C40
+        0248A27590D2851EE261D9AAB1A24A4E23AF9ECFDBB32F71E3C44EE310D14E9F
+        C1B65D965C40CD9565EB3397D1580CE959A17C6638613467BA87056185A34CFA
+        2238A9943FD79903A8B506B85F86564F00205DA51F1592A0010095C3169BAC3C
+        F1C075B03A50393B3EB6AE2071C4F2CB7FBBEACAC52BD6AC9ACFA54E74E70B0E
+        0700937878AEB6A686653E7D6E5D4320641D8982BADA3872015A7D5B09E56C6F
+        07460400C90144A63EF9DD53B07AD56B687AD5B3A26466269BBFF188358A2E51
+        BEC6451A3CA220E0F19959CF92D0120442095366180778C070EC084F21F916D2
+        682EA6D294FB406628114A5441A18525349664613081754174973B5BF83C9ADB
+        309B5D16B1497E0A56A835B17AAA7FA00FC73464C407F4E22252A1173D4F2810
+        988456C9B69200F8EEB5572F7E69F9CBF3B3BCAEFDE400A03E140D666D6D8D50
+        84C0B04F0D0070F4CAEB47C2577148B9BAAA1AF5860A56BA281F5FA671C92A8E
+        C29C174415CAA248EBCA09038407F6C89176D8B16D07CC9E359B976F793D2247
+        81134D883DFB3C2C9BE93A94CA46CBBFD912A019ED1266A36EE42B8A6561C2B7
+        4044A624175A664E2B81D2C941D61788D829227656A485EB798E2FFA98138C5D
+        33C48AB486C8BCCC2BC7868850622C629C24871199452E4D68F84383FD5C3545
+        BA822D3106B0468E4D2089350A93664D9F591A003FFAE9758B973EBB743E1736
+        709881AA8CB19FB7DF94132AF1A1CAA3B4AEB08C1FCD6D2E98C8B35062FBA40F
+        101720ABA01C41100997B1934593D51FA190D539710962916BD7AEE5249359B3
+        E698892B42D3CE0FB8698BE3BF14A5AA25539CCB408750F6F07D22CDEB005437
+        7186CBD6A222984B30DF219F43D6E5E36733E8C8560889251637601DAB629554
+        F860BF8643091E235EC191422A609518C24912117A84A6174C4635B55C5E8775
+        B2CD753FAABFA8FEBA9200F8E5CDBF58FCE7457F9E9FCD3927279E080058161A
+        8921F1BA1A9C819208AEFC7A02E3207D81405055558B4735C70B82C1B0587BE0
+        2A1C2C7BBFE4DFD48F7DFBF60125B57C76C1E7396B99D7F671A916B1A287662E
+        79E0C48C1E82415A006278E4E421E4B1ED798833B8456A994B178B3E698D80CE
+        AC3B6B0C3C39A1F06FB778F5E4D2661AB9DA676710B84CCFA91D007465B7262A
+        9BEA08441A2FCE1F74040080DD41445CB02C14B961E2B809D79604C02DB7FFC7
+        E23F3CF6871302807DA1671E003C2CAC4BC46211A8E2255EBAE1A4715B660375
+        909C4235A810D6A22917460E20012094AF7C918A62A093BEFFBEC10158B26409
+        5CF49905AC995305504A304DA48690F862A60BDF7C46846EC1A9FF79FD413332
+        72384EE091F90C1E51C4DA58E243AC3B9BD161603009BDFD49E8EBA382550938
+        63562B19208EB10C75868AF7C279A519335E3343C982AA74AB34F69D52DF4341
+        3F534E07DD6142E860C384288AE9F1DF307DEAB4D200B8E3EEDB173FFCFB872D
+        22A0E007C3F8EB9D004039FB0D68F37BBC726994DBF41948C292F2578DA65A3C
+        5E6FE1002CC37D5ED5A4C9175C30B36A84864DC01D4C25E0E9A79F8639B34FE3
+        CC1A5ADA4D335A9A5EC5FA5BCCDC54BF43663A2D1D3B74A817FAFB53D0DFD785
+        CF47E20215462F9A941E3F97A959B3661DAFFFBBEC920F805844AC15D8E676FF
+        88FC4E81F9CB2BAF5C9025CE84A08D71A55317834457FA976FBAA12FE581C1A9
+        6DEDD107275F30E9D29200B8F7A17B16DF7BFFBDF349C37D3B01406CB3BC2C8A
+        323E666175EAC2135191A4927D03E41D2433910020896F96A951886E35AF84C2
+        9842DEBD74E95218376E02B2CA32430F70B3EBD7BE468125AF835871B98A0040
+        F3C2916383F0E4E2E508283F7CE2A31F4293AF0FDF7B6100F5068A3C0EA00EB1
+        FE8D0DD8FF005CFCA9F30A00E004BAFC3983844A6E823475033816D1329C146E
+        974C4D32C9371C00C8F4AD6EAFDE3B7EFEB8B692007868E1838B6FBFE3F6F932
+        29B4F0E2270000A3BA87A117F12B398788A02CD78D4552741752C47C681110EB
+        8F23A720C5314CAB77FC7E4B98540E8EE000CED944549EF6F965CF4353530B97
+        7DD50D0DDBA5E4DF6866FA97AA84195E3735CDDB6281100708C0E1A383C8615E
+        022A2635617C2B7E3A80FA42922D0C92CD91B208DE3786EF4310F5EBA236BD79
+        5DA9D50B42E9BAAD9014E8565731079D3CECD164D3550363C9FDF00050C786F4
+        B0982FB677DAACA9A501F0D89FFEB0F8C6FF73E37C4D733912B99812581C04D6
+        DF52B42D1AA3D029D7F064394A6B91A9FE5E5FEF0034D437420D2A8155E4190C
+        85992BC8FA44F6592A73E5EDFA08394C5E7CF145A8AB6F8028EA1D603C8B4B59
+        92A58254A6A789F3F92151CD2BF93ECD60D5A0F3D80004036164F71AF8033ACE
+        4AE9AC018BDF40CBE613BAD9B436899735B99A4CA7B7BA8AF3616BF95CF6EA6B
+        C52767612E07FD36168EEE9D397D4669002CF9CE5F16FFE0D51FCC1715B03D6F
+        1B00E4039186DD36A615BC38625E4E1F135B78EC3AB00F0E1D3802E79C7D0EC4
+        6BEBA00267500CF5005E5F805C40E500F9E6BCF29600B07CF972A84020955756
+        E501902B742DCB21B0BB52EDCF619E736738F0ADE93E06A0DB434E9D0C6987EC
+        0B90A563596E6B223D4D2E15E7194DBE088F584D6D3E85E2B0B23F8B1D00F631
+        761EF37C9858054045590C0130B33400FEF0D5477F78D3C69BAE23734922F264
+        44805307E503353435B23FC08F1A3A69BD6924CCEAF5EB50A11A80993366405B
+        4B2B72800AA88C194EA140A0C8FD9CB882C8D35BB16205441044040206802EF3
+        989DFAA80E5C7E4854C79339A09011F6BA2E329B89901EB6F83C62032B436995
+        9CC3EDA0F889312D349BD5EF142370B1BFADEF9D394055A872EF8CD9D34B03E0
+        D63B6E598056C0C2B4911B6797BF2702806220686D6B65B917F209BFFF502A03
+        2B5E7F8D4DB509E3C7C3D4C953500788420D3B85CAB90FCED774390C96403F39
+        83C8FEAA417D4278D6689167AEB09F46A4CDB4F395146DE9B51371010F87B7DD
+        14F071E58B3E08762FB51D217B2D29F5AE42E28EC4A1556CEC4A13DE3A062A08
+        A8D51F8F3F35ED1FA67EAC24007E73DF5D0BEEB9F79E8549A32E102538F8037E
+        EB0FDE0200A8332D0800BA2E6DBF42DE3E520097BFF61A2769B43437C3EC99B3
+        580448007895A558D66BBB8BDC27C785ADF6ECDB0FD5B5541F58881A97929DAB
+        02809C536AD0C75EFA4EF5E289B584C6002B9684DBB076EC7DD1351816006F07
+        F155F358F83732C6F23B97E967A92AAFBCE1F439A795F6033CBCF0770B6EBBFD
+        D70BC9352A831714CF26CD9D3D527A3EECAB39F7307F5EB3FAA5E50034363571
+        98988224C2A3A5C1DAF5EBA1BDFD306DFC04B366CEE69840150240D4D3F138DE
+        4BD39C924265B5761D8E7775B3B78F52C12826E066FFBF5BC861722C99052C75
+        738F833C30AC9C455A01626553CE74D6C807251103BA43F6924DB9D4E4186972
+        3C0C57B7ACB7AF15B3BCACE26A60A01F3A3A3A298F138E1FEF8279F34EE7821D
+        32834882585A18D213387BC6ACD20058F4D49F17FCFC97BF5838944CB1974C2A
+        1F7276883CF8E20121CB00687979249D3EF44AEB0348AEF37A405E06158463C7
+        8EC1CA952B61C284093069E2648E07509E002F2671392F76749A0D62A6593D94
+        3212A9B6BC6E63EC3F64AB6528AB7DAA8E191182B60E985CF24EDE455270E96F
+        1A27125B046E557C39E92B96734CDF3CEBA6D803258050420B959923AE46F792
+        A1760AA153BA195552193B76AC65E9BC7D9CC80F501E2DBF61C6D4E9A501F0C2
+        4BCB167CFF07D79800C80FAACE84220DFB6400A0128400206B02D0C390A24740
+        D8B3670F3F585919CA7F243E55F7A0CF6479D95200907F8B239F6E5E6CFD5EFE
+        F5440120662B119BB80B115E3AA3A4D3C6EEDCA218073D9F1360E5EF88D0B489
+        55776F37135CEA5F64051161E98829A172D55144D5C728F845A978EA38D80150
+        555175C3D449534A03E08D4D1B167CF5EB5F5B383094303900B5FC42084FC140
+        16258C0D00F281298193178F1A7FAB4918F440E4BE25F6CF1E41020068459D52
+        2AD1E44D5D2E65C712704E2AB5B276E7BEEBB6DFCA8ADF144C22E24B82CBDD53
+        E4E20FF95DF939B15FCE91C4572234E5F5757676327888A072497D3416651F09
+        2F41C7F150B3849DFA2EC76EDBB66DD0D6D6665A4BF63C086A1C96AFAAB961D2
+        F889A501B07BEFAE055FFAF23F2DECE9EB1781126511A3C869CF19668EE638B0
+        C30180AE43C91A8468D924DBE43472241E2DC0A07A3EF5F58D624936FFD076ED
+        62F7847C20C74AE8629A731E00966B6B60C86AEBFDD2463049F69B8849E2EBF8
+        F1E37C50CA16ADF291EB05C5D2AE1613F4F4DCB44A8A0041335C5DE8C145345C
+        E0687A176BF4BD37DF7C9345A714374E1C9A68D6505B7FC3B831634B03E0E8A6
+        F6059FFBB7CF2FECEC166562E82212D522C1C36D267A9C08075059312976A4DD
+        CBF3F64446E2000480C6C666516B009C89577C508A17982804C6C80140B3FEF0
+        C1432CAA682D02C965022E3D0B119766AE7CE5198DAFD28C758A5C16561813AB
+        7A4AF5DBFE0CF4DBCD9B37C3D4A953AD296A0E0068AE6ABAA16D7C6B6900F4DE
+        DB13FBE4EF3F75EC786F8F97659BBA1091A27A3E417855A669EA1485E21C4082
+        80D2BE28FDCB94D3208A3FB2BF9B6BF005A016EDF7C68626CE0C2A6633172BD0
+        6077EC5867BC75BD9F4A08D9D44254349BE920D64D5BDBC8347352C088C8A4CB
+        F0CC930B4C957EB19BD7ED712488340F650A51DEED5C5AD4399D570150CC7147
+        0098F0D2F81BE2DFA92B0D006A175E7861F2F0D1765F5629736E2A37A09B397E
+        1204D2FB361C0064A34D21AA7100D5EF4B51234C4E3FA78B3735B614559E4A35
+        D57DAACE36950BC95A84C4B2491ED36CCE1A21701980226293E225952FF91BA9
+        B8A97DE28C61C3FC921E54EE0B684501A0FEDE0E801301C1A64D9BB8DA9ABD60
+        A51D00F56BE2EF1FFFB5712F9404C08E1D3BCEFAC637BEF1CAB1E3C75D14DA54
+        77C1124F2464BF5CD225E48E75858A130054C585D2BF6B50063ABB71C5EA215A
+        33E0048062036157FAB8CA189A4CA45193F9448B3864B53339504454DE101A67
+        34999B52864A91A7F64B12543A570AAA9D7384CF65DEDF04DEDF100012D00480
+        19336638068B5400F8BCDE4967CE3DA3744E20B293C015575CD1DB3B38E09503
+        61316F8CE54CD28C13913A694ED9EBFB80C5B121072D14A4A554759673F23B94
+        8740006868688496E6367339B57A5D357C4A7D23E58B56F5D06C16E95C028CD4
+        4792C1445C7A952694AAC03A15ADB60FFE886662917A806E47675561AD82FCFB
+        E2007052BAA9FF5BB66C812953A694E40094148BFAD4A4D366CE2D0D006A175C
+        70411275009F5CAF6E0780BC0169B4F41D617E8C0C00AC3F20511B1B1A0A6791
+        D11D2222C5F20900728D81FCAD7DA30A6AE4F7274708C9643572E898A708CE91
+        B55291B677320008EC048069D3A695E400342E6104C09CE9B38707C0273EF189
+        E421D401549927336835C3DEA5461A705E14784A02401D7842635363A3E92CB1
+        76D6C53A005523273F00ADAC95447529F7968DB8D4BA75EBB80EBF7DE732A7BA
+        06C54CD7FFCE00202570F6ECD925EB3810372400CC9A3A7378005CB4E053C9FD
+        870EF932C68A159A91F266B420530D6E98051C8D65D2E4291499AAC5078EBC52
+        14F4B13F1CFBDE68A58EC7279440E40276DBD6FE900450E200679C7146FE7BB6
+        32AC4EEC7D3876FF7601C06EC2167B0E93124500E0C4B5642300901268DDABA1
+        100055159593268E9B383C00BEF4A58B93DB76EDF2C9C450727C487D402DC024
+        2F4E56412A9336C0000A001C2FCF317202807D66BE07801307009D2747102981
+        161F80038D6AABAA278D691D3B3C00BEFAD57F4EAEDFBCD927ED61BAB10C4250
+        6914CB126D0AB450758B50903FA7FD748603009D696D69B1B0E9771A00460282
+        B71D00FC83130300D168EBD6AD0C004BDA98720D3A4FD64E5D75CDA496A6D6E1
+        01F0AD6FFFAFE48AD5AB7DB2A821CD7EA90F9008B0CB6EB60AC221C3EFED3696
+        5E151F384A956A6E6AB244E84A01401D3CF990123C1200F3E6CDCBCB7F284EC4
+        E108E0C401D43E1603801AF7B7FC064E045C6217F252FD720286E4009667B4F5
+        3B1A8942736DE3A4BAC6F8F000F8EE77BF937C71F9729FBADBA50C7464D23913
+        00EA20D2126D32B7128941DEBC91EBF0838C7717DE909440B92DED70002888D4
+        29CAE6BB1D00440B0A069115500A00B144AC77CAD393A6856E0E1F181600D75E
+        7B4DF2AF2F3C6F0240DADB3CE0C94C81A3841A01808845B9F0E440A2020B4515
+        41BC1E7100755F62268A9165434BB069C57053532BFB17FBFB0779750F79EB28
+        644A8923B5D5D570FEF9E7B388FA5B00402DEF6A7CE0285BDF5E00D075722704
+        00A20B6DAD43AEE0520040FD6CE5B9679C337C7D006A37DC7043F2E9FFFBB44F
+        5D1E264140C94F141491C0300B1C6A028D14BC91D9C49445A46610E56FA82371
+        1B2C2B7D18CDDC715A00E1E52562750D2DB066FD26D8F8C636C810C1DC62B3A5
+        E4403734C6ABE10B9FFB2C0360CD9A35161D007256E216237AA98176F2D49522
+        C44888550C8CD6DF9E982B986842FB114E9E3C79382B60E539F3CE1E19007EF5
+        AB5F25FF6BD19F7CD99C7575108B826C7ECB77090C69D7CA655EE43B27A55178
+        0B1D108DA0686CAC2F60EF1600D012B1A63606C01B9B76D3F60F9C8E0D7A06B4
+        6C126A2ACBE00B0B3EC9E55ADFCD00206E4C0921E4092C660588621CA195679D
+        76E6C80070E35537EEFBD3CA279AB30EEB036901243522B09A2BC015B695757E
+        A4752612435C64D12E3BA9E65D4343BCA010840A005A25DCD832165E5BB71136
+        6CDC0D59109B38BBDD6875E869A845005CF4A9BFE715BF230140316216058032
+        3223B51ADE3A00AC8B3A87038054D077EFDECD22C0B4026CBF35565FAF3C63CE
+        BC9101E0F2CB2FBFFBCDED5B2E13050F6C091D39CD340D4914C88ED08C511534
+        B9A297E204F9F2A87900C4E3B52C2E54CD5E6CB7AA831F45434D6D3DC41B5BE1
+        B5F51B61E3C69DBCAF2FD51BA0D22E1EC840537D157CF4820F3307201DE0F4D3
+        4FB79881C5883B62F9CA0ACCC8093A1CA046FE7EF83D08D4F7440B02007100CB
+        33DAFA545E5EBEF2B499734706806F7EF39B77AFD9F0FA65D2076FFDB29B6F2A
+        094D011826AA96479BD40F285640BB6CD24C97459B460C00D40148046CDDB997
+        2B7E50850EDEB50B2DC7805783C6BA2A38EBACF3206D148478B7028044F18103
+        073823C84904C8BF2B2B2B57CE993E7B6400B8FAEAABEF7E79C52BC801323600
+        68E641E617B974870C5160DF5F400004501494316088D832644CEEE2BADA5AF6
+        4E5900603C18AD7FAF661130065C5E3FF47476C29EBDBBA17F60D0D871330D55
+        B128CC3EED4C8E1EFE6D00901F1A4D756869270682A2EF1DAE276E736200A009
+        4891500A861593FF74AEBABA7AE5ACA933470680EBAFBFFEEE257FFD8BB30850
+        0A3413FA88BD53AC1D205FD94B7514D1ABD86A45CF3B88F09AD546468DC50F60
+        0C34F9016A6A6A793B1AE222A46F501A163D2C177D46F05105ED193366F2DF14
+        0C3AEDB4D31C7500A7812BA60714CB30B210F9043943B1F7AA7968EA41255CC1
+        7690C946994A140E1F434532E5F3D8BE4BD7AFA9A9593973CA8C9101E0AEBBEE
+        BAFBA1850F5E263D80C500209D43E4EC4924926696AA9CD5B203B458819441B7
+        471463222B800A42950200D50B2200500229890F42393D28818180401C85502F
+        A381270B806203FBDF050094F042296BCD466CC50E0079FDBABABA9533264F1F
+        1900EEBCF3CEBB1F7AE4C1613900DD8CB8001188B687732A762C1028B68B0B06
+        FDBC1287004095C1E442866200204F200180884D0A2765E012B7210E40A62659
+        1A245E2CE16036159DAD00BB665C6A70470500BCB4C899D0C500409B55D3A4A0
+        B516C5006014E97E1075804B1DAF673FF1C0030FDCFD9BFB7E7319AD2F93C474
+        0280EC0C75802A701212550791FA9E62040400721313502ACB2B9888A500D0D2
+        D2CA153E289B87BE470F4B2C8FDECB20118900D20108004E3A40B1F578C538C0
+        DB0100FBB586038045EF38011D8097BF2157A431A08D388A39810800385E5F7F
+        DF59E7DD3E22003CFAE8A377FFE71DB75E4625D6EDCD0E006A39639B79EA10CD
+        547B460EF597587F3812E2B5F134432B860100550AA31DCA65BE815C4AA66607
+        49EFE4BB1900C415E96F5A6B608F04CAEF1A4BD5BE7EDE99E78E0C000BFFCFC2
+        6FDEF5F49DB7D026D279EDDCD896D5B17CACAB206C9C27BECB700EA1F916F081
+        CFEFE522CE324F4F6AD89A0652DDE6CA5EB432887400B9DCC904892DC3572A81
+        73E6CCB100003499642915A3130340510228FD2C456CF5378E22C83146204480
+        06D67B14FCAD008016A5788C7D99EC29E1D22144A9E9A86F7D7DDEDC792303C0
+        FA3BD69F77C3921FBFB8E7F01E4D73BB8C1DB485ADAFEEC76395F3C231449D31
+        7D03BA4C7BD77809367100AE73833A01CDFE4A656D807C30FABEE4000400FB2E
+        1AF60126AE4000A094A8E14C3FA70D9B8BBD1F0907B05FDF717047A003A8E0D2
+        8A4403A1C8F569DB191A239A50A602AE19CBDA74117AF7BADC34D65F9F3563F6
+        C80040EDBBDFBF7ACFB265CB5AA914BB8B363B1806007236F2362B997CC4506A
+        35C4FA69CF6051865DECCCF11E00DE3A006885124D26A927F1181AC9292A00D0
+        0AF8FAD4C9D3460E80FB7E72EF2FEE5B7ADF55541797363974D30605BA5E9203
+        50230D5DEE822566BFCB9CF5A40052956B72083901403C27ED8EE1E5A450D201
+        D478817D3025E8D6AF5F0FB366CD72B4EFF3FEF1E2A1DCB70A80915CEF440150
+        00A22200A04090DC4BC8140D461F65512CDA92B7A5A5E5EBE3C68C1F390036DC
+        BD7EF6ADAB6E5DF1C6A64DFE0C9983744192E5CA2C2AA66049D3706060D0A89A
+        E56211100A07D91C941C801648E60AAA76B8B880036D22410070DA48C9CE7586
+        038009D21388CD9F4A33D00E80C2F3C5390CE502900928575B0B00183F13EBD4
+        78E3EB29A1295F8ACFAB7F60C400A076DFB5F73EF4DB17EEB998C4002579B869
+        C9D30800203388C4FABA8C599C598A009DB7418BBD07809102001C0BB7F3E704
+        00DA7A47EE46C6E36FFC4C72002AD18BDF89B6B58CE93B21001CFDBB2353FE7D
+        EC55CF6DD9B62D9E330A26D097551BBF98DC955BA191E386BEC7F5EA4341913A
+        0E621FBC020068C2CEA0F58115E59508803106008A2D781060DBB0613DCC9C39
+        CB3CA7BAA54D8202582C8193F5046A2A004011079AF3755C16F0E4FB50DC2271
+        02802C5751D8B66FDF0E63DAC608D3DBB8BE5002F3BB8934D635AC1E5339E69C
+        9A31B58EB5728B0280DAC3F7FFEEFBBF7DF0EE9F0CA512BCFB8593ABD76930E9
+        7B326A48CE1B223CA194EC7A018032670068C0DBAD50899856048030038B0140
+        3700B00101305339EF76E44CAA7F6038A5ED446774B16C5E5711A00D6792AACD
+        BEF8566D940D442E71BBF34D5E17C72F373333F38AC60B9A6E2F76FD9277EFFA
+        EBF1B2EB9EBAEED915AB579D913558BB9ACD5BCAE121134AC82210019C90E1C1
+        D3B912C6BB0D00C34D9AE20070DE2092CC6E52B6691CD5F47A2AA9434538C3A1
+        F0919ACA9A5FCD9833F3A652D71FB6274BFEBAE41FEEFACD6FFEB4FFC001B39A
+        87CA058A0D8CE402D28347C02182D2AE17C401AA9425E24E00A0B581A5012006
+        E78D37DEE09531F9EF389754957277380FDE7044571D31E679577E24EDCE1827
+        008C8CF0EAB6B0D6380B8D2DB98129A0267330699C9B73CD49DF78DF3F37F637
+        1EACBEAF7A79E0FE6062B8FB0CDB9BD4FB5363FFE313B77CF985175FBC862A52
+        A97BFEAAACC769C0D4A249D4C4726FC1018607007902C3508A03D0B54B01E064
+        95402750940403E44C393D1C0046DAF2DFD7CDE45A6AB232995CF24EDC955EC9
+        B23ABBE5ECAEB33E7E76E589DC6744704C4C4F4E587EE7AB676C7D75EBA7F563
+        B939DDB11EEF534B9F6AE04CE122DC4082438A02FA9BD3C3907023E300A30B80
+        E2D5D225596CE734EBEFD4013E59E28BFC87240C0E0EB02E4526366F798BB39E
+        742A32FF64A1297A6DF3B72D3DF3A3677DF86D0780DA326DD9F24D3FDB14BDF5
+        F95B976CD9B2757256273F41D6E192C6DE83ECB1CB0A0B202776EB262BA03400
+        CAA1B9A98D591C4061D1271300381854208192224DF9AE540CCB7F5D03731710
+        457BA7F74E8A9A6EEC876CFFBEAA915BAE63318F73C6FD3450B78715BB99E664
+        55180B8BE72DE63262832A92EBB4FE81643C4D20B28424B1D5DD4625D8E50653
+        F49D9A9A9A5BDE7FEEDF5DF93705806CB7DEF69FE73DF9E4932FF50DF483EE1A
+        7E83095206C57272B1566D78008870F08902001C66B450900A37652C0E809CC5
+        F45259BDA3A9A614905439874A64C98DA48F445614A3437A5089B8A2566299B9
+        2CDE49EC88436C31276B25D0F7E3F1F82DE79E71CEA901C0EEBD7BB47BEFBDF7
+        0FCF2D7BFED3193D5512005214C8757D23E3002707007B7E62A9472DF6F03AE8
+        8E22C0DC99DB4E6CEB6993E0322E42C41EE4DDC886CCCC299AB134BBE990F590
+        D512FD76A7562110C44E28922390786D6C6CBCE58C39F34E0D00A821F1DBEE7B
+        E0810DDB76BEC985FF54855045BD243C219FDCC18472CAF6B13CACC147A91A37
+        D5BD252B40A48D292AB6D288D3D3DEBFB24A967231E7077594F5BA42383DCF9E
+        1D621EE277BA65A326E9F504638F4122B22C1D2B03624420C9C6E56218FBFE41
+        7642173BF2CF9EDF7C537209B29808007367CC397500A076F32DB77CEBC9BFFC
+        F926B9644C6D82E05ECBA053A611C93399C6241FC80E002A122532878BD40A86
+        9C592245E6C5170580CDCD6A79783D4F68B32F207608B5374A73A75439999B48
+        CFCCA57472BA496862C574C89929AF29D97F2977B57ABED41E8372A75175EB3D
+        02587373F32DB3A6CE3CB500D8D7BEAFECAE1FDDB5F6B9CDCF8D53075256EAA2
+        0ECBA81E1D343B4871210F963A402A00684B590280F003282AB60D007261C4C4
+        89134F000062A6837965C5E56A2864397E15CE16D2BE65012AB9EDAC24B264DF
+        52977066D556DF829DD02325BA7AC85D488518901B727B293BF8966913A79E5A
+        0050DB71DBAE1F7C6FF9F77FBCEFE07E2624EDC647A39C4964D85EA5E08FAC27
+        44E1EAEEEEE33067EE1C8BDCD40C5B4AAE2FA44CD7E1CAC4D1B5A9CE1FE50F16
+        F3AF98FE7B4D2BF04B50A3194C445659B7FC5C6ADF4468FB6AE662445467B45A
+        5287096C28A95A31A2DBEA1C295D2F0081CE25EE510934BE1BF2F961D2B393BE
+        D7F68B313F3FE500D8BE7B97EBF13FFEF1974F2D5EF46DDAB52B279672427220
+        C975FA3828D1D8C8DF757396B09B45409EF0A22BA220B58F0140F57525689CEC
+        68FA1DE5C41191E42A23D507A1A68DD1419B4B4B22CBED60653167BAA73CD42D
+        EAE47DECC5274B01C0F25E2F32A38B00006C6C1E0CE2BBB442CEA18BC2C29CA3
+        41C00AF959C738FDFDE7FF7F6B4E3900A86DDCF266C54D3FBF71C5963D5B2692
+        6F80070CF5205AD74F038EECC958554CC522C3ECC3B6B24C31FB69B651B2087D
+        5E2C7D9B1ACD52CA89236552DD865D96722762CB5277BCF5AAC76D06A424A19D
+        88AC02CC89B82A689DBE6325B4DBF1BC4BD30A000045AF09BC64AEE0FEBC17A2
+        707051DDA5200220140C9E7EDE39EF1B1D00507BE5D7CBEFBC61C98FBFD2D5D3
+        253C819AC7549664D082F301A2114E65A626B5584E0733B690253350CE6A7567
+        50E94F90757CA51B542D1D23376C901E3273805D560E31E2597CA244B710DAE3
+        FC7DDB6FF9B322DBC289EF16F637C7C83038802102A2D1E8E967CE3B6BF400B0
+        69DB66EDDE7BEF5EF8EAABAF5EC47C4B77991B2210E1387951035E2340228066
+        A3ACA82D3900118D5E89B8925D9B5BC31A6E65AFA87C697E57DACFAA262F35EE
+        3CCB2CAE94BDD5F7C50F77410E80A90B385D4BC9ECCD8B1B2B07C83F8F100352
+        0450E60F0160DE69678C1E00A82DB9F12FD31F5EF5BB55DBDB7704694D3F69FC
+        E4E2244286698F20940BB1B232DE5D338000A83258BD709C108175AE1A6EEEB5
+        C7FBEDB9B91A991C3CC14924EB2E8CE8D989CC036A93C1609B8D600EB6F2BEC0
+        0ECF9F57DF17B5DB759733608AF453ADCA92D70D0C1DC0DC6D55BCD70DFF88DB
+        D851258213A2A2BCE2F439B3E68E2E00A83DF4BB877EFBDBBB7F7B793A275C9C
+        1964FB945AE6A5DAF9388B2BD0CEA7C50C4464E20A349BA528503753B6B3448B
+        12962BFCBCE8EC1E81F65EECFD4834FF62DF296621D88B6FC966DFB5CCE4002E
+        EB723651544B330140B3A12C1C8186FAFAD3274F9C32FA0078E69967424B962E
+        D9BEFAF5550D3C5BA982089851108845CA389B95084F2E6135A74D25A69DC016
+        02E89A237B2D4AB0B7000247500D0306C9D5249149579166A65936D7B03C6490
+        472570BEF833B0693D1C00684C51AC9E3E71FCA4D10700B5071F79E0038F3CF2
+        C852B4025C592D1F5AA187A29DC40900A4F1937228EBF13B2967054A913CF4D2
+        4E13FBF7F512042BF6772930DACFC9CDA324A1C90AC9181B70CA9DCBA472AA7A
+        0AEDA6A05AD15CE50005DCC406808A688C4CEDD3C78D19FFCE0000B51FFDF4BA
+        679E7DF6D90B846F00CCC4520900E20072FF1CA70ADE2ADB2C9861E02E3A1B9D
+        F6E32D060095D8C35901AA55C2BE0583D0A4DF483354067BEC1B43CB592ECD4F
+        3BC1A5F8539F41702E6105D83940CEC8FF963A00EDB8DED6DA7A7A4B53EB3B07
+        006F7C65C3076F18FCC9E37BF6EFA595A00500A0600FE90276008C44EE0E0700
+        BBD34602A014A1ED449784961609115BEE0F28BD85928892B8D2B144B35CDD11
+        DC09DC4E62A380938904FF6101402BAE09004D0DCDEF1C0050BBFF77F7DD7DDF
+        03F75F4605A57346E9989801008A7B9323875701CBAAA2364D5D759F5AC001AE
+        11CDE8FC930AD7AA7C6CE96A953100E94412A667DA94DB6499C89237F27762B5
+        93CB98D93E5EEF40AF541B516CA865F8E8B57CB42F672C96E46BB9ED96853C0A
+        B99DDC0B38AF574810B8D9CA90B0A8A9AAEE6D6D6D99D3106FDCF58E02C04BAF
+        BC58F1D0430FAD7A63D31BE369CBD64C2EC3717E72F592D3270F00B7391805DC
+        C04E7C07CD5FB662A203B4FCB2759ABDC2899482543A096962E13911BF103E07
+        CD24B6BA15AB57DD0A5ED96F58FD9E250DCD90CFF61079D6952BE4004464A5B0
+        A6DCCE56B36530D17F5E6791089169BC2E1C096FF4C6BC2FC7F7C4D7C4FF21FE
+        DA89D2E76F0A80FE6BFB6B68ADC7CAE61597FDE24FBFF871FF603FCF660AB010
+        00C804244EC0411F708175366866078BB1E852E7EC834EB50D64928664E359DE
+        1749DADE9A65B7703A5402AB66AAD3166D2A70F344D50A0020F28A72A665A282
+        5CE3188A55945155154FD603BE886F77B95E9EF3A57C4BFD69FFE3654365BBEB
+        FE3D7EC0B3D7533C1B67B40120DBDECFEFF13E5AFDE8C6451B174DA49946B29F
+        0020F7BF653350B7B243D95C0EC475F2F439B5FC6C14913375474F351143DADD
+        851AB8E6C861EC842E5889645A2A0A004D20EA82D5CBAD68C50FD8A74F5741FD
+        211DF686539EC39E15FEA9FED7B1BF4FB475B741C523152B03F7078BE7DEBD93
+        0140EDF13F3FF6B13BEFBC73D1C0D02003805CC114F4A198801D006A73DB941F
+        BBA9A41EF23B76E2F076B2A0994A9D75EB99E289612A51D56BAA7D2925927465
+        FB5DF999CEC0CD719F4877080482C96C2EFB4C55AEF2885EA92FC589B11315B9
+        F5A78A2EA70C007F7DF1D98F5D7FFDF58BD2D9348A000100E2004E00B07300FB
+        00DB67AB9D18AA4C169FB938C3470D2C9944D2A5A8C9B3642892FC592C1C5C34
+        ED3BA79B6B230D4B674F084247425DBEA5E5B3CA8FA413E9C7A235D12134DDFA
+        4F151DECED940160F9AA151FFBE175D72EEAEBEFE385210DF50D5C08221FF72F
+        AC03404DD6BFB5FCADCA5ED56B06F973041CB11BA94B6C76A5B0E39C22F7791B
+        1C6361AA45EB36BEA13AA70A57336BE68EE2723126F50535FEC3D1B2B2646867
+        68A567B6671BA46149795DC551547A8F35D4D6759F520A0FD34E1900D6BEB1E1
+        63D7FCE09A451D1DED505E813A40BC912D8078BC81F70A8422725C05809DF0F2
+        9C1514EE024EC059C94556D83ADE93C090539437993C4AF4CEC9B501B4051E2F
+        794F561C8E0EA5C7A41FAB3A5675449BA22D45CEB60E395CDF886F388AED9401
+        60C3E64D1FFBFEF7BFBFA8B3EB2804835ECEFA2527901300EC5680FD7C81066D
+        399C3574B05DC7A9A969DEA6066F7C5F94BBD5D720B73A54D75337986A4BFDB1
+        4D6F85B2A7CB9E8C5C171A760DDE3BB59D32001CB8E5F0FBBEF3EA779E3FD4B1
+        DFEDF56A0C00AA07C8FB03D2DE02451429CDE99C740E39BA6BAD1E425339D4AC
+        29D81C65D7E5F637745684A1397D3BED3DE88B7A0FB993EE65A19AD07E345737
+        A452A9F5F83AD0D2D49C86FF41ED940180DAF53FFDC9AF9F5BF6ECD73C1E9D01
+        505151893A40E3B00050FDF0C53840FEB76E533153ED7197722D8EC469FEACE6
+        8343949710DC1978DD3BD5BBC9BDD5F35CF0DCD0C1A6650DC7CAFF35D639AA94
+        3945ED9402E0F9575E6A7BF4D187D7ECDCB9AD92B687A740503C7E7200D01DBE
+        2BB28A3C962DD470566762B1A8EE3FEADDA0D7EB348B0F0C0E0E3E3F696852B2
+        697EE3ABA338F6EF88764A0140ED8E7B7E7DC9337F79E601AA174C00A01DC202
+        540A06DC6C9249C59A5E6550C72DF726823CC129158A1432E193F7F035BCEDDE
+        3DD0089B6AA10E8692893F354C6B18687DBCE56594D107DE4A9FFF27B7530E80
+        63DF3C1AB92F7ADFB39BDB379F59555D85D640BD510B480437AC2B74F28D4C3A
+        DA783A1C0A8367D0B33B10F6EDECCFF43DD5D2D202F19DF1235D53BB968EBB6D
+        5CA2ECEEB2C1D11ED4FF4EED940380DAEB4FACB9E8C1E71E7CD417F6415D5C24
+        861007A0EE703835E70357D075A8D257A943172C094D091F0D1E0CAECE8EC96E
+        698A3741FC92DA83BE65DE9ED11EBCFF096D540090F8D290F6CA075EB9F698EF
+        D85511570406B481C748210C1C0FAEF5B478368EDB3A0EAA7E58B5CCB3C79D7B
+        EB777BAF956AA30280F7DA3BA7BD078077797B0F00EFF2F61E00DEE5EDFF01D3
+        1F4896F08F765D0000000049454E44AE426082}
+    end
+  end
+end
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/fTMGPrintingAnimation.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/fTMGPrintingAnimation.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/fTMGPrintingAnimation.pas	(revision 541)
@@ -0,0 +1,32 @@
+unit fTMGPrintingAnimation;
+//kt added this entire unit and form.
+//kt The initial plan was to have a printing animation.
+//   but it depended on an AVI begin found, and it was easy to break,
+//   so was replaced with simple picture of printer...
+
+interface
+
+uses
+  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+  Dialogs, ComCtrls, StdCtrls, ExtCtrls, pngimage;
+
+type
+  TfrmTMGPrinting = class(TForm)
+    lblPrinting: TLabel;
+    pnlBackground: TPanel;
+    Image1: TImage;
+  private
+    { Private declarations }
+  public
+    { Public declarations }
+  end;
+
+var
+  frmTMGPrinting: TfrmTMGPrinting;
+
+implementation
+
+{$R *.dfm}
+
+end.
+
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/fTMGPrintingAnimation.~dfm
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/fTMGPrintingAnimation.~dfm	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/fTMGPrintingAnimation.~dfm	(revision 541)
@@ -0,0 +1,643 @@
+object frmTMGPrinting: TfrmTMGPrinting
+  Left = 407
+  Top = 190
+  BorderStyle = bsNone
+  ClientHeight = 198
+  ClientWidth = 161
+  Color = clBtnFace
+  Font.Charset = DEFAULT_CHARSET
+  Font.Color = clWindowText
+  Font.Height = -11
+  Font.Name = 'MS Sans Serif'
+  Font.Style = []
+  OldCreateOrder = False
+  Position = poOwnerFormCenter
+  PixelsPerInch = 96
+  TextHeight = 13
+  object pnlBackground: TPanel
+    Left = 0
+    Top = 0
+    Width = 161
+    Height = 198
+    Align = alClient
+    BevelInner = bvRaised
+    TabOrder = 0
+    object lblPrinting: TLabel
+      Left = 15
+      Top = 160
+      Width = 128
+      Height = 26
+      Caption = 'Printing . . . '
+      Font.Charset = ANSI_CHARSET
+      Font.Color = clWindowText
+      Font.Height = -24
+      Font.Name = 'Times New Roman'
+      Font.Style = [fsBold]
+      ParentFont = False
+    end
+    object Image1: TImage
+      Left = 15
+      Top = 16
+      Width = 129
+      Height = 137
+      Picture.Data = {
+        0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000008000
+        00008808060000002F6DE3A6000000017352474200AECE1CE900000006624B47
+        4400FF00FF00FFA0BDA793000000097048597300000F6100000F6101A83FA769
+        0000000774494D45000000000000000973942E00004A084944415478DAEDBD07
+        9C1CD5952F7CAA739AEEC9D39347394710D9AC3F7F0E20AFED5D07E480C16BD8
+        F53AE0C7DA5EB08D79C61847CC636131C126638C30788D0502EB0983484201A1
+        802494731A694693673AD73BE7DCBAD5B7AAAB7B46026BD8852BD5AF7BAABBAB
+        6EDDF3BF27DF733578AFBDAB9B36DA1D78AF8D6E7BC70260DB9E5D65813B7C67
+        1EFE70FBCC8E039DCD9EB8E7FD03890148A69290C96440D7B3E0F678C0EFF542
+        2C1A5DF8A1FFFF83BF18ED3EFF776CEF3800BCF9D2968FEF4F1FFC6A7BC7D169
+        038343CDA9541A90DA90CBE9F829BEE27BB7CB85A7727C5EC3D39170B8B3A1BE
+        7ED2851FB9A0F364EEA9EB746D08E331A069EFB821F99BB677DCD32E7A72D1CB
+        3BF7EE3D37EBD2412762E81A1319F03D7596494584C7932EA0CFF05573417D3C
+        7ED6673EF9A995E263DD83474E13D46CC3A30E8F263CB2784CC063088F73F0A8
+        546E4DEF0FE3E1C3DF4EC866B3EF3B88ADADAD4D1FED31F95BB677140068263E
+        F8F0C31776F5F43C9D819C416CA23D921A69994A26C1EF0FE0E107E4FCE0F578
+        21120A110780E6A6E6FDE3C68EB9DDEBF28D75BB5D7EFCD538FC75391E0D7804
+        11473E8DA1036EF9D0E6F58D91D08DF739E42E1D1DC736FCFEF78F9481E6F205
+        43018846A350D95975D033D9FDB82F135C3CF795D97B23D78706467BCCDE6A1B
+        3500102BC711D732A974A4B7A7C79FD573D50389A1CA6D5BB77FFED8B18EAF07
+        0321088543100CF9211C212247C085AC3F1289401809EEF579C1E7F5303034E2
+        052E10C4CC09B0D01F4C508DDF1123E1F7D95C0E398698D4B95C065C393A9785
+        6C3603C9640232D93494975761FF3CF0DCB21761E5EA3590C17FE046C0696EF0
+        7BFC50162A838A48C5F69654F3339131915F4EB97EE211DF326F76B4897932ED
+        9402A0F3C1E37377CFD853B172D5AAA1DAEAEA8B3FF4C10F5578DD9E2948A9DA
+        74361DD3DC2E9FCFEBF5604382328307C9F78948CCF64934E00C75E941F10006
+        8105B5595690A620888BA020C266D24330D8DF093D3DDDD0DD85AFBDDDD0D7D7
+        8B7F1F819EEE03F8BE0F06078758CF080543F0E57FBE1AEAE2332091C8C2030F
+        FF1E8E74B4A3ECC88017B05F8824EE1FDE9800198FC5A1B1B6FED996E92DFF7B
+        D2B8F1AF8E36414FB4FD4D00F0E6B6AD738F3CD03E7DE0AC81BFDBB16F0784DB
+        C31FE98C76D6F6F6F4BA13C9048A6D14D21E8FEB730B16C0AC1933412A5E8632
+        661052E7BF5D381385F4CF19B318A72C92239DEEC7193B80441A440276417F7F
+        0F74217107FA7AE078E731E8C3BF7B7A04B1753D0D03BDC7C0E7F323070983DB
+        EDC6F73E08F83DD0DBDB89ECBD02522924B02700BD3D7D50593305BEFC2FD780
+        CF5F06070F1F85858F3F0E83C941D63988E872D85819C5577C14A8A828CFB5EA
+        AD8F4F393CF9A6D6EF37AD1A6DC28EB4BD2500ECDEBF2FBC79F3E6E6506FF8A3
+        5BFBB656E2ECFDC28183075DC944B22E954AF93268AAE939C18735269E069A41
+        4E17BE6F6A6884CBBF7C1913C385334CCFA5D0C44B2171134890040C0DF5435F
+        6F3B1EC7A1ABBB8309DADD739C67F150A2C73009D3DC17BFDF0B89A12188FA7D
+        904EA598D004240F127B00CFF70E26209BC9A24809B3C86042EA3EF0BA62286A
+        22088272A840D61F8D954359792DCC987D3604C315C879DCF0D2ABAFC22BAF2E
+        67AD44EA233A2BA2865CC14F5C2E0D909B414DA83ADDDAD472D7988EB13F1F73
+        71F3C1D126F0DB0680A18F0EF95EFEF715A14AA8B868EF9ABD53F6F9F78DEDE9
+        ED9984DAF2A4EEFE3E9002973472BA2A2A62ACC5CB1B1832DFF8838E1C83E0D3
+        9FFC14CC9D3307962D7D18766C5D0D0303BD78F4E00CEE46F69D4250F4E33532
+        3CC06CFA19400A45AAA0AC2C869F133189F829E40403E0C7598EF002D2218241
+        D417425128AFAC8670AC1ACA2B2A215A560EB15805EA1111D4234210C0EF513F
+        7228620874A42390B219ABA8067F2086E7BD38FB53B0E8A9A7E0C0E1C3845C03
+        C8798B24875C897090CBE6F8BCDBE586E6F2C6AEB6094D57A0487964E6CC99B9
+        D126F44901E0F873BD8DAF26579CD3D5DDF989A3EB8F4EEF2F1F9C75BCEB383B
+        626806F140186C503354698FC79D67E5CC2EC520E94CF31C139E6622CD527AAD
+        ACA880EF5E75151CD9F732FCF68EEB11280966D98664078F16043DEBC62BA304
+        F606C1EF0D4304091F2E47C2E26F6365519EBD313C82656510087B218C72DCE5
+        22D1E101B7D7CFAF2E340C82A11ABC62D078EC341C38B003FA063A98F81A12D6
+        8F2281384A0E9F2F1AA984C6E689F8D5208242838EE39DB0E82FCF40329D16F2
+        9FB8003E0B3DAB8E9C86800312E47864D219082218EBEBEB6F3EEDF4793F6D6B
+        68E8186D628F0800BB7FBCEF927553DE38EFE8F6F60BF7A5F6D7F6F4F4F87096
+        0B622371F9D55080A4EC56DFCBCF9D1C2A0400120919247E7F7F3FCAEC2E3E2E
+        B9E412B8F83317C21F1EBE1D8E76EC45C296A1D65F0E55550DCCCABD6CF605C8
+        68402D1D70B627A10B657B26D50F43FD5D38D809400B02C5C21034D505A0321A
+        C419EE070FFE0E110035F1386AEEC8052293F0CF66BC4616F5843D28520E20C8
+        327C5DE204444CB20440CFF0FD2A2A9A915B3482CBED67A2BEB17D2BAC5CF31A
+        0BB19CC1C104BE75F3C819A0A0D7348D1BBE6FAC6F58DFDCD0F8C1B3E79DFE8E
+        038149A5BD070FB857AF5E7DC3CBCB5FF9460A4D33D2880B88ED76151058FDDC
+        7E586E64C84D56D8B3A4C4A559FB3E8C6C95DE3F7CDFFD389B6976267036EA3C
+        83D7ADDD0C3FF8DEF72091EC03B727058150164265C80BBC3954E03488040250
+        575501D1700C366DDE011555353079420BEA16B5280A5CE00D782086EC5FF37A
+        A1B2B20EAFD10491E8249ED589A13E38766C1FEA195D2098395E33104400A01E
+        924EB25E90C978A1A5653272863206490A89FAFCCB2FC1A14387CCE792624002
+        40028200403A037139379EAE2CAF78BD215E7FE1FBCF3FEFE86813DD11008FFD
+        D71FCFF9CB9225AF0C0C0DE2AC8BE2207B595B96CA0E2B4D0A00A839CD7C3B18
+        EC20A0339A5405709092286F8F1C3902EF3BEB7D70D93F5D4A86BC61D36B489C
+        24FCEBBFFC13AC58B10CD9BC1BAA2A7D102E03E4100128431DAF221C84327F18
+        5C592F7474F4C3EE3D0761CCF826F8C0FBCF42852ECC00402D021208B0F2AA6A
+        A8AD9980E2632C04232D783688F74F434FD701E8ED23A5B21F5089657D2285CA
+        25997A59143DA15005D437B461DF3DF81B2FF420689F7DEE3918C471CA898732
+        80AD9B6325C1409C8645424E1C9595956BC68F1F3F7FDEEC59EF18109814BAF3
+        37773DF15F4F3CF1093FCEAA08CAD5582C66DABB92B0BACB99F82AD1D5F72A30
+        E441A6935BB38284748A8EF60EF8D695DF8486C67AB6F765C7D6AC79192EF9E2
+        453890698845FC68A7E3AC8E8590A50344035EA84045AF2C18857442077F300C
+        894C170E74083900CAF4900F4E3BFB74140F497ED28AF23AD4F09BA1A2763AB8
+        7D0D68FBA7E1F0A1EDF800094867FAD162F0E01DBDA89FA4D997E0C2BF7DBE30
+        5A063508BE385EC2CF9C60C7EEDDB07CC5AB90D5843ECB7D5566BF6C521C48CE
+        477F373735AE3B63CE9C0FD7D7C58F8D36F12D00B8E3DA3BD72C5CFE87B98150
+        101F3A00E5E5E5EC752310102720C2E68C6FDB750026ACF11DF53D1DF45EFD8C
+        E4A60480040F0DD0106AF05154E22EBFFC32B6200473A55994801F5C73353CFD
+        E41F211272A35298C2D91FC06BF860A0BB1F5CE95EA8AF420510D93701F7BCF3
+        CF863DBBDF843D7BB6C2A4A9E361C669B350EEFBF0771A9B91CD6D9391707530
+        79CEC7F17C142D8E0E38D2BE033B92E4E1C8A4055573A80704427EE847F33180
+        D6404BD378F07962D87F37A451695CF1DA6AD8BA73072BBA9A32904E00C829FA
+        01CE2198D63861E3EC7DB33E10BB3C36EA20300170CF0DF7BC70CFD2FBCEF7FA
+        08F5641E0910942151D84EC707CD427EB64B02CB8380A2129C0FFA1B4D22975B
+        12DF182C4534C801CBA6327070FF01B8F8E22FC0B4A9538499458386AFBB766D
+        872F7EE193901EEA04AF27811ABA1FAA62B550575909835D1D7070CF5E9CDD28
+        B6B0EF6DADF5F81D0D0691A5C72A6328FF05176BAAAD41EED00BE3A622005C95
+        D036E17C68197B2676C60BDD7D8750F9DC8D661C8200ED7EAFC787DAFE105A1D
+        1E241E3DAB0F42813268A89FC8D604F5B87F701096FC75295A1103E6301AEE2B
+        9010D072D2E52CAC403685F1530F9E1FD734EE3FEBDAE2FF366DC2A45175219B
+        94F8CAD7FEE5CACD5B36DF9CC922F203283FD17C22C257A0A94520209D40F378
+        2D045767B785F092F89AAB40543835669338AB3A3B3A98957EEFEAAB0DB0680C
+        008AFDFFFAB65FC13D77DD8CC449227B0708E1FD6308D2186AEFDD1D9D6CCA95
+        5744D1720871AC60FF8103106F6884BA7AB20022B07BFB16288F8761FABCE908
+        00E472C15A38FBBCCFA2B23716B2687AF60F75E0EC1F809ECE634CC234F6C38B
+        9C2393CA324724D2D554B72197AAE6CFB378E2E0A183F0C24B2FE2C410CF9733
+        DCD2522C509C814C455301369E95449C0727C6B429537F3A6DD1946B23D78546
+        CD4F6002E09BFF76C5956BD7AFBD39ABE7D8B9525717471939C89137D207881B
+        F8D0BE2E20341E7630A8AC5E257A290090CF3E9D4EC1E68D9BE0D22F5E02E79C
+        7D169B8C1A0E54368B16436F075CF6A5CFC2A1833BF1DA69A8407190EE1F80AA
+        302A03F8BB60C08F2CDD0D6D932732905264CE2128C2C120728600F8FC681A96
+        7B21EB1E82C6B12DA8D1FB61DC8433E0DCF75D84D6410C67A71B45440724063A
+        85B309673D5942E974168141C1223211D3D0D63616CDC908FB3F68AC5E5FBB16
+        DEDCB64D0095475463973537B400A488CB8B0611CB20A5B0CC13865930EB7F4D
+        FDC2A45B471D00DFBDE6EA2B5F7AE5A59BE90CEA6438F32B79E6939D1EC441AC
+        A9A9614D9A00E1C40124173095402000688E0AA12A2765CBE22CCFA1D67CE8E0
+        41E8EDEE815FDD782304900389D1A459938127173D0E575D75252A6B3A448319
+        8822CBAF402E50110A4010D942AC026574590C6769145E5FBD1A15C32124E810
+        B422D156ADDB02B172379C7BFE4C708791287EE466A8037CF84317C3ACD91760
+        9F22DC8FF6F67DB07FDF5E24BE9B9D39A4F4D1C1DC209D6497F39CB973116C1E
+        2676022D86E796BD00C73A3B4DC2B3B22C68CD1CA0A7A70776EEDC09D3A74F67
+        4E4A1C4DCF92432C43E6E1C1CF7EFA334DA30E809FDFF8B32B9F7AFAA99B2916
+        9E45F5368B1DACABAB439328C5328C38406D7D03BF4A135125BE7A480EC04CDC
+        46FC622D4BF13604C010CAD4B5AFBD0E5FBCF862B8E0231F61566930581818EC
+        832F7C6101AC5FFF3A4C185B0E135A1AC183FD0BBB0176EFDC8620AD82B153A6
+        621F2BA1EB780FAC7C7525BFF60F2641436DFEDCB366422A7D1CA2B521184465
+        32870A5D6BD30CF8E2A557A3A63F964DBD2134EFF6EFDD0BC73B8FE3DF6E56EE
+        B3991C73039711886A1B33061A9B9B79F448AEB723C779EEF9656849A4D959C6
+        925ECF5B32478F1E85DFFFFEF73017814362D5EDD650918D709CA2BEB66EE07D
+        E79D77CE9C59B3378C2A00EEBEF7B7573EF8F08337D343E8BA8B591E996734FB
+        69B69352186F6C22D7269F2B60F90AF1250770013802407200F55C0EE5622697
+        81149A6CFB90001D478FC1ADFF710B54975728BFCBC1CBCB5F828B167C068261
+        5406FD6E387BC674A88B45E0C8C1BDA877E8EC0D8C446238EB27C0D163DDB071
+        E336D8B6EB00945554C1947171E83E7E08A69F361E20E246B93F88D64104CE3C
+        773E7C66C157116261E8E91A80ED5BDF44A93204017F00AD84219EFD434309D4
+        25422C8E9208BAC953A7A2FE10E68014E9035BB76F87DD7B76A3C2EB161CC0B0
+        0E64DBB56B173F77252AAE143D0C22270DA1E5E243BDAAB6A6E668341ABD36D0
+        EE2F0B76843E9E9C93A080B66945701E8437F2EBA0167AAC7642CDDB9AA164F6
+        F1F13F3D76E5ADB7DD2A0080A423F94B5C801AA1964010ABAC823188FE4A7CF5
+        B04228943D97DBCAEAA5AC971ABF386F4404C53BC79E903F9D7CF1DD5DDDB07A
+        D56AF8D427FF11BE74F117CDEBB0BF0EB9C4BF7EF52BF0EC5F9F00BF47870879
+        FC208384CC8217BF3867DA240820C17A91EDD6D4C6A1134DC5B51BB6C2D1F641
+        146B5E1833A10E2AE365907167514F7041EF4006BCE57EF8C6577F00F366CD87
+        441A50AE1BE283E202A4F0A128F0E3B32692490469CE0059041A1A1A80DCE459
+        1A2BD437BABBBB51DFC0B1420E49E3455684D491E4B8D098B96424493AD938A6
+        6238C93435ED4D8C13DD83B29F4299F08D63FE71CC2F3C7BDC2795FB5812004F
+        2F597CE58D37DD7833215AE45F0A7F3775821E8090E80F8551096A839696368E
+        AD934DCC0FE5064759AFBE37FFA681281283A2FBD1C30E0D0DC18E1D3BE0C8E1
+        C370E76DB751BE9FA94C51DBB66D2B82E3A330D8DF8D2222874000A8A6F841D0
+        8FA6622FA451792D8F8521140A823F58066E5F04B66FD907C96C1F34B455A238
+        1089612E0841577F0AD2BE0CB4C4A7C25557FC0CB4A00FD97F07B41F380A2964
+        F7293DC3C125C41A13941E96F4201A13290AEDCF2BB99CE67659CEC9667F7ECD
+        98199A567C72F33D9026D163D13FD63F58FF2FC1FB03C7DF56003CFFE27357FE
+        E4673FB9995C9CA4F450DC5B6AAFA6F64EF16E5406274F9E8A9641B90900F2DD
+        BF5D00A0FB91DED1DEDE0EEB50C3FEC0F9E7C377BEFD6D8B054120B9F1973F83
+        DBFEF3169C9D09F0E3D4F7E2C77E9F1B024137B26A3F2A9042160F2589996A10
+        4630245189F3E2E77E541A63E564DE5640201C8548650DD4445B60E6C439E02B
+        F7B12BDA9D7651D2219A8C1A87B589D3910AA00680A4C853459A8D6A66F8DAFC
+        0E5839A04537D29CAD41FB75235A6475A0C23FBFA9BEE92D0797CC2B2F5FF9CA
+        953FFCD10F6FEE1FE86712B9DD1ED37B253B99C39121F44F9C38195A5BDB7050
+        048B1B0900D41B1200A4DF5CFD4C0240068AB6BCF9261CDABF1F7E73E79D78BF
+        56F33B048063EDC7E0631FFB7B387C783F2A5368952017A21C41975F031FCE6E
+        0A2CD5D4D4416DBC11EA1A1AA1BAAA06E2750D5086266D2814013FCA5F2FCF68
+        2432F8C19FC16746519270A308C46BD18CD759ECA0428C40278F9F9B9C428A05
+        639FF505C472399CD7C102FFFCF7A507C199E8F67B04BD81D5D15CF4C2BA8975
+        6F491C98575DB3EEB52BAFB9F69A9B7BFA7A99FDBBDD426E99A1600300D4E2F1
+        06983963160E649817679066EC142154D9B6FC2C9948C09B9B36B35E416691DA
+        D4902A89018ABA6D5ABF1EA64D9902DFFAD6B7448815C1411C228336F6D34F3F
+        034F3EF967686C6A84A6C67A5650EB1A1BA1215E03D148C8E833996B2E215351
+        5BD0736EE65C42D266D9CF40F7F4A6BBA1BB631F4EAF0AF0A18E438FEF462468
+        597A669C0CA4F02A9ABD4A8C130200E48361EA792363A228000A08875F8D1E8D
+        AE2DDF59FEE1D8E5B193E604E65DB62C7CF3CA6F2FFCF6CD5D3DDD86C9239497
+        B49100A102803C633367CE84E6A656C19AB55C51B69F63C52EC3404A20F107FA
+        FBE1FFFE6509FF7DE9A597B245616F4490046ADDBD08C603A8590FF4F5C3E73F
+        FF79F64BC8EB4ABD84CC5692CDC2054B9FA16E8203E9D6843F4ECC5EE23629EC
+        A6976308227B29C37E4661E6F5C1B1FDABA1B37D272A84E320D0309E934BA268
+        3A86B520120CAFEFF23081A4A3D769F61710DA04800696AFE9E0F85B1DB22322
+        3E638BC4748ED2D0BC37693ED777C68F1DF7D600B0F7D23D5FB9A2FF8A3B3B8F
+        77B26D2B07398D1AB0A6C8318D41400B31EAE1B4D3E6B1B943432D6726CD5C3A
+        C88B9848A438B2464422B9472C37808ADAFE7D7B3825ABA5A505264D9EC4D7F6
+        21A1281C4B9C413D48F64AE793AA07981A85668B2D2023178B4584D5A0498B84
+        41EA328C532383C965D0229D428BA01706F4046CD8B38FA384A74F9F858A255A
+        3BE408CAE89CEE45A9E8AA9A26B3A0547AA97D7115A3A303818505501816608B
+        4C77B810474C456F5019BDDE1F085CDFDAD072C27105F3CAD7FFEC4755EBD6AD
+        EB683FDA9E77646856594D76B81C444AD8686E6E81FE810148213B268D980E99
+        B7EF47E25184CEE7F7B138110A9378249AFD94E347BE0592ED44E0A0D7CF9E43
+        D229D4C1B4B3D761E5AEEE2AF91BF53DD9EB9CBF28020E3088367E4F2E050904
+        6F7630C9FD4A21270AE373D0F3D0E21032F10AE9E9DC177711AD5E770480EE08
+        184166CDE1BCE97CE67B463A223F6EF85CC3FF4613F1E40070D3ADBFAA5AB972
+        65C78183074C0048195E08004A940821005AD1D6AE8500EA0232B983CEB35B98
+        662C50B6AE8F091D4453AAAC2C62BC0F9AB39933677264CA792DB66FD18492B7
+        19009CB89148424F679708E6A039D1DE718C094E608C51FE21AD3E22FFBF8333
+        AB545F8A7100DDE5CC015CE00418CD9163102DA4D2C821F841B47E0E967DBCFE
+        C2F893270580071F79A06AC992251DBB76EFB2DC50B3092F09003A3F0315410A
+        1A650D42D2399ADDC40128F9B302674C737313FF4D6161B180038C34718528CA
+        6BA9011D0E10FC5E77157C6EE764E6D3189E178ADAB924F890381CB635CCBF62
+        F7D56D60B59F67FDC7586B269F4CE605644137819FE35549220EA22151991B06
+        43260944F269A199A97200F999173CDD95FF55716EC5BF576E3E61003CF6C41F
+        AA9E7AEAA98EED3BB6DBE49C3300A8F9FD419837EF0C4EBE9433C2D4FCF1C1AA
+        6351B418E2505555C5333FAF4338CFC8E188FE7603C0F892F9A281F25ECF47F5
+        983368427B2F70EA189C4C5A304C4C83B8498A24A202CC4736C37A04790C3346
+        7E403E4A688C9DA1CA92D7AFA1A19EAD2C0A936B0EDCC60E0039FEC1C3816535
+        F7D47C307C7F7844FA80F9348B9EF973D5134F3CD1B175DB56237161380088F3
+        7134BDC68C1B6F9A8DD204EC445DA23C1264458F40407905E43E363D01A57C05
+        A71000C2BA01C1AF8DE00E297E5E5D9C67A22A0020F7B8206A9A155F3AE8EFFC
+        6CCE89994EEE614DEA3DB21FC690E75D02162268220BC614BFE476F75126B65E
+        681EAA00B070A31C3BADFE7EDCD8718B4F08002F2C5F56F5F0C30F776CDABCC9
+        028052032766801B264F9A0CB158158EA19765534E4F4357D73144B287677F73
+        7333FBCD39BBC8E33735711530AABFC0AA77383B9972E02AE80F5B2E5AE1791A
+        595591363D73860F5E3E677E0667C5DA059EC159E177E03586640D8061F60ABB
+        9D2EEFE6D4726339BBDBCB960869EFEC6D3044A315B0BAE57939DD4E5D380342
+        A412D76C696946826A16A55CF4D7AA049ABFD35121C73B075CC1731AC7340CBB
+        56D1FCE5AAB52BABEEBFFFFE8EF51BD69F1000E87332E9A64C9EC100A0F1A795
+        3D996C92670CC934721F4B4E501689A276ECB12A4B05CAE6C903C06D73B39A03
+        A6285E9245135153A6632963FA2BD8150E322F512E6BA35F0A87978C8292994A
+        964F3818E594722F2ABC3BF7EC8281C10136795DBACB5C4340D7A6EF1BA36A46
+        06E93AB44682FA606FF41D8A67343536987F2B9F0238288D0400B2B08207025B
+        BD933C73E3B5F5832302C0A66D1BABEEBAEBAE8E356BD718D5384606007A21B6
+        D7D0D00235D575DCA944B29FA0CF8A1F7D8F40D0D8D8C820A8AB89F3B22D35E5
+        DC2961E46401208CFBBC4791884C44158436D83571A9AC703BCB289C24B4D0DB
+        A8DFB4429966A1C888220207033E5EF9E4C2CF52A92C126E008E1FEF818ECE5E
+        387CA41D76EEDC01A18807264E6E83AA9A18F86855534EC436A80F644988E011
+        702A3CBDF77ABD2698A4096CB134B0AF31D4A56AD1DA92AE7239EEAA0830E9A5
+        09739294C7C81BE19BEAFE3EFE9D1101E0C891C35537DD7253C72B2B5E015D2F
+        F26547792C08E476D1228AB18CFC4C26C1ABC234C8E70A10FB6F6A6A42343743
+        75658DC514540958CA0B660908D99C23421E67209DC9E515AF4CC6140139C8B3
+        5066B939015035674182CDE3F633C1988BD16FB32E38DA4E4BCB07A1ABBB0706
+        07130C34F2889645D04C8C96B137B2AFAF07F6EEDD02CDAD95307E4223D4D734
+        B288A46B0D0C0C304B17CF2152E1C9334AFD26871B8D875D67910A222982949C
+        436398170539430CD868E412D7E7849C9C96F0F9BC13E3F186FDC30220F1CF43
+        FEAF1DFFDAAA2D9D5B66160B4A160380CEF136372FE7AAAEAE04A10F0A2968B2
+        664437EB034D2D505FD7C0EF89330C0780624AA0E400FBF7EF57B8032D4815A9
+        5ACCC4C9A4A3BC3E54D83C3E63A14B4E98660400CA36829CF06D70526979B931
+        43892DF7E2F7B248F47E387CB00782FE1A004F58A49823B1299BC7ED1133D8ED
+        A5045837A7791D3AB40B366E7A150110877163C6B2334CB5145C2E95B80A47CB
+        E589693531C1F4F851ACC36B3AA2F222C0EA7E363ECB099D22B0C5FFA7FA8F34
+        7E72580050FBC4A73FBEF868C7D1F900CEB3B0180058D8EBC2434848A5AA1ECC
+        0174373FB0C6C9A11A9777A9ADA983C6FA46A8437D8058ABCFEB2B09806289A4
+        94AE4D0ADAAAD5AB786002C180588003C2EBE83294C120CAD0C3C86E1BD91F11
+        E158C400AD66D672FC1D0AF8D06CECE9ED81309A5D549544A69FF5E1B9CACA38
+        0C2016CAC271E849E89C01ECF1BA91F577C0506290C3CCF1BA5AF02207248E42
+        2EE5ADDB5E87238777C2697367F178C8B885D57FA05B4C67992C624DB615BA86
+        C748ABEFC5FE9028E06219008E1C8074001E4F19B8D26128F65AF984AACF5439
+        2E55B78CF6A716FCE3E2C30800764A9400819D486AC8983C81D5D5D56C01A819
+        413269949C42B5B575AC1354565643B42C26B28B342333A688FB5755E8F8B98C
+        552A3B77EF82C36872529E9EC1FF40E63210CB2545ABAB07E534123D93D2C18F
+        848A86498677F26CA2994D6C98F2F6A46246FDA42CE5AEAE6E76FF52F20BE508
+        9645DA50971000A37035452B8948B535A404124730824C6C2564B87E11D9F4EA
+        F3CBC36B640DE553EB3C467E85DBE61B11138CAC8E8E8E0EBC8F57AC57C866D8
+        C290DF73E22AF2EF7047F85B4D67D6DF3C2C003EF7C5058B771FDC371F72C578
+        C0F000A0F7C4DE2B909DAA00900A0E3D78341AC359DBC05EC48A8A2AAEFF43F5
+        FE4AB97F0B7403C3E59BC68158BE720544CB63505D530B9A91A442AC9EF2F37A
+        7B7B218533DC1D2963D9AEA773D07DFC3034C4CB382B3716AE35FB4F7501340E
+        3EF98CBC839CA9F10F0D0EC2D050D698A51EE6689CFA656404B14870CBF43860
+        2EE1E7543A2FEB4552D9933111358956104AE3747C7E3435846E640AB9D8BA1A
+        80631D47842E6194C97302809A9B49E7825DC1956D67349F352C00BE74F9258B
+        B7ECDC3E5FC4CE4F8E03C80E501A170D803CA766105392257189BABA7A7CAD85
+        4A4A41270DD9D6713B002C9C01841541B9F9C77BBA611D9AAF6D2873C3A132D3
+        C24873743241378732B450C87339D0DB0F5DC7DB51A1F27292A727E731238686
+        D5C7BF272E687A09E96E864386327A19041EB719A9F47A885D8BA097C7EDE383
+        136ADC46952AB01594D03326A1F3CFA4711D0379DE345F2167287C598EB01E3C
+        B88FC59D66D445B2C727D4BFE56A2D6C2BA74E9C343C00BEF6CD7F5DBC76E386
+        A222A0D86C5459B3609FC2E4A9414E20D99FE402F26FCACA2151505B235CC595
+        C831A46560B70EECEF45791797B1744C870C0ED096AD5BA117D9F2F831136C40
+        0248A27590D2851EE261D9AAB1A24A4E23AF9ECFDBB32F71E3C44EE310D14E9F
+        C1B65D965C40CD9565EB3397D1580CE959A17C6638613467BA87056185A34CFA
+        2238A9943FD79903A8B506B85F86564F00205DA51F1592A0010095C3169BAC3C
+        F1C075B03A50393B3EB6AE2071C4F2CB7FBBEACAC52BD6AC9ACFA54E74E70B0E
+        0700937878AEB6A686653E7D6E5D4320641D8982BADA3872015A7D5B09E56C6F
+        07460400C90144A63EF9DD53B07AD56B687AD5B3A26466269BBFF188358A2E51
+        BEC6451A3CA220E0F19959CF92D0120442095366180778C070EC084F21F916D2
+        682EA6D294FB406628114A5441A18525349664613081754174973B5BF83C9ADB
+        309B5D16B1497E0A56A835B17AAA7FA00FC73464C407F4E22252A1173D4F2810
+        988456C9B69200F8EEB5572F7E69F9CBF3B3BCAEFDE400A03E140D666D6D8D50
+        84C0B04F0D0070F4CAEB47C2577148B9BAAA1AF5860A56BA281F5FA671C92A8E
+        C29C174415CAA248EBCA09038407F6C89176D8B16D07CC9E359B976F793D2247
+        81134D883DFB3C2C9BE93A94CA46CBBFD912A019ED1266A36EE42B8A6561C2B7
+        4044A624175A664E2B81D2C941D61788D829227656A485EB798E2FFA98138C5D
+        33C48AB486C8BCCC2BC7868850622C629C24871199452E4D68F84383FD5C3545
+        BA822D3106B0468E4D2089350A93664D9F591A003FFAE9758B973EBB743E1736
+        709881AA8CB19FB7DF94132AF1A1CAA3B4AEB08C1FCD6D2E98C8B35062FBA40F
+        101720ABA01C41100997B1934593D51FA190D539710962916BD7AEE5249359B3
+        E698892B42D3CE0FB8698BE3BF14A5AA25539CCB408750F6F07D22CDEB005437
+        7186CBD6A222984B30DF219F43D6E5E36733E8C8560889251637601DAB629554
+        F860BF8643091E235EC191422A609518C24912117A84A6174C4635B55C5E8775
+        B2CD753FAABFA8FEBA9200F8E5CDBF58FCE7457F9E9FCD3927279E080058161A
+        8921F1BA1A9C819208AEFC7A02E3207D81405055558B4735C70B82C1B0587BE0
+        2A1C2C7BBFE4DFD48F7DFBF60125B57C76C1E7396B99D7F671A916B1A287662E
+        79E0C48C1E82415A006278E4E421E4B1ED798833B8456A994B178B3E698D80CE
+        AC3B6B0C3C39A1F06FB778F5E4D2661AB9DA676710B84CCFA91D007465B7262A
+        9BEA08441A2FCE1F74040080DD41445CB02C14B961E2B809D79604C02DB7FFC7
+        E23F3CF6871302807DA1671E003C2CAC4BC46211A8E2255EBAE1A4715B660375
+        909C4235A810D6A22917460E20012094AF7C918A62A093BEFFBEC10158B26409
+        5CF49905AC995305504A304DA48690F862A60BDF7C46846EC1A9FF79FD413332
+        72384EE091F90C1E51C4DA58E243AC3B9BD161603009BDFD49E8EBA382550938
+        63562B19208EB10C75868AF7C279A519335E3343C982AA74AB34F69D52DF4341
+        3F534E07DD6142E860C384288AE9F1DF307DEAB4D200B8E3EEDB173FFCFB872D
+        22A0E007C3F8EB9D004039FB0D68F37BBC726994DBF41948C292F2578DA65A3C
+        5E6FE1002CC37D5ED5A4C9175C30B36A84864DC01D4C25E0E9A79F8639B34FE3
+        CC1A5ADA4D335A9A5EC5FA5BCCDC54BF43663A2D1D3B74A817FAFB53D0DFD785
+        CF47E20215462F9A941E3F97A959B3661DAFFFBBEC920F805844AC15D8E676FF
+        88FC4E81F9CB2BAF5C9025CE84A08D71A55317834457FA976FBAA12FE581C1A9
+        6DEDD107275F30E9D29200B8F7A17B16DF7BFFBDF349C37D3B01406CB3BC2C8A
+        323E666175EAC2135191A4927D03E41D2433910020896F96A951886E35AF84C2
+        9842DEBD74E95218376E02B2CA32430F70B3EBD7BE468125AF835871B98A0040
+        F3C2916383F0E4E2E508283F7CE2A31F4293AF0FDF7B6100F5068A3C0EA00EB1
+        FE8D0DD8FF005CFCA9F30A00E004BAFC3983844A6E823475033816D1329C146E
+        974C4D32C9371C00C8F4AD6EAFDE3B7EFEB8B692007868E1838B6FBFE3F6F932
+        29B4F0E2270000A3BA87A117F12B398788A02CD78D4552741752C47C681110EB
+        8F23A720C5314CAB77FC7E4B98540E8EE000CED944549EF6F965CF4353530B97
+        7DD50D0DDBA5E4DF6866FA97AA84195E3735CDDB6281100708C0E1A383C8615E
+        022A2635617C2B7E3A80FA42922D0C92CD91B208DE3786EF4310F5EBA236BD79
+        5DA9D50B42E9BAAD9014E8565731079D3CECD164D3550363C9FDF00050C786F4
+        B0982FB677DAACA9A501F0D89FFEB0F8C6FF73E37C4D733912B99812581C04D6
+        DF52B42D1AA3D029D7F064394A6B91A9FE5E5FEF0034D437420D2A8155E4190C
+        85992BC8FA44F6592A73E5EDFA08394C5E7CF145A8AB6F8028EA1D603C8B4B59
+        92A58254A6A789F3F92151CD2BF93ECD60D5A0F3D80004036164F71AF8033ACE
+        4AE9AC018BDF40CBE613BAD9B436899735B99A4CA7B7BA8AF3616BF95CF6EA6B
+        C52767612E07FD36168EEE9D397D4669002CF9CE5F16FFE0D51FCC1715B03D6F
+        1B00E4039186DD36A615BC38625E4E1F135B78EC3AB00F0E1D3802E79C7D0EC4
+        6BEBA00267500CF5005E5F805C40E500F9E6BCF29600B07CF972A84020955756
+        E501902B742DCB21B0BB52EDCF619E736738F0ADE93E06A0DB434E9D0C6987EC
+        0B90A563596E6B223D4D2E15E7194DBE088F584D6D3E85E2B0B23F8B1D00F631
+        761EF37C9858054045590C0130B33400FEF0D5477F78D3C69BAE23734922F264
+        44805307E503353435B23FC08F1A3A69BD6924CCEAF5EB50A11A80993366405B
+        4B2B72800AA88C194EA140A0C8FD9CB882C8D35BB16205441044040206802EF3
+        989DFAA80E5C7E4854C79339A09011F6BA2E329B89901EB6F83C62032B436995
+        9CC3EDA0F889312D349BD5EF142370B1BFADEF9D394055A872EF8CD9D34B03E0
+        D63B6E598056C0C2B4911B6797BF2702806220686D6B65B917F209BFFF502A03
+        2B5E7F8D4DB509E3C7C3D4C953500788420D3B85CAB90FCED774390C96403F39
+        83C8FEAA417D4278D6689167AEB09F46A4CDB4F395146DE9B51371010F87B7DD
+        14F071E58B3E08762FB51D217B2D29F5AE42E28EC4A1556CEC4A13DE3A062A08
+        A8D51F8F3F35ED1FA67EAC24007E73DF5D0BEEB9F79E8549A32E102538F8037E
+        EB0FDE0200A8332D0800BA2E6DBF42DE3E520097BFF61A2769B43437C3EC99B3
+        580448007895A558D66BBB8BDC27C785ADF6ECDB0FD5B5541F58881A97929DAB
+        02809C536AD0C75EFA4EF5E289B584C6002B9684DBB076EC7DD1351816006F07
+        F155F358F83732C6F23B97E967A92AAFBCE1F439A795F6033CBCF0770B6EBBFD
+        D70BC9352A831714CF26CD9D3D527A3EECAB39F7307F5EB3FAA5E50034363571
+        98988224C2A3A5C1DAF5EBA1BDFD306DFC04B366CEE69840150240D4D3F138DE
+        4BD39C924265B5761D8E7775B3B78F52C12826E066FFBF5BC861722C99052C75
+        738F833C30AC9C455A01626553CE74D6C807251103BA43F6924DB9D4E4186972
+        3C0C57B7ACB7AF15B3BCACE26A60A01F3A3A3A298F138E1FEF8279F34EE7821D
+        32834882585A18D213387BC6ACD20058F4D49F17FCFC97BF5838944CB1974C2A
+        1F7276883CF8E20121CB00687979249D3EF44AEB0348AEF37A405E06158463C7
+        8EC1CA952B61C284093069E2648E07509E002F2671392F76749A0D62A6593D94
+        3212A9B6BC6E63EC3F64AB6528AB7DAA8E191182B60E985CF24EDE455270E96F
+        1A27125B046E557C39E92B96734CDF3CEBA6D803258050420B959923AE46F792
+        A1760AA153BA195552193B76AC65E9BC7D9CC80F501E2DBF61C6D4E9A501F0C2
+        4BCB167CFF07D79800C80FAACE84220DFB6400A0128400206B02D0C390A24740
+        D8B3670F3F585919CA7F243E55F7A0CF6479D95200907F8B239F6E5E6CFD5EFE
+        F5440120662B119BB80B115E3AA3A4D3C6EEDCA218073D9F1360E5EF88D0B489
+        55776F37135CEA5F64051161E98829A172D55144D5C728F845A978EA38D80150
+        555175C3D449534A03E08D4D1B167CF5EB5F5B383094303900B5FC42084FC140
+        16258C0D00F281298193178F1A7FAB4918F440E4BE25F6CF1E41020068459D52
+        2AD1E44D5D2E65C712704E2AB5B276E7BEEBB6DFCA8ADF144C22E24B82CBDD53
+        E4E20FF95DF939B15FCE91C4572234E5F5757676327888A072497D3416651F09
+        2F41C7F150B3849DFA2EC76EDBB66DD0D6D6665A4BF63C086A1C96AFAAB961D2
+        F889A501B07BEFAE055FFAF23F2DECE9EB1781126511A3C869CF19668EE638B0
+        C30180AE43C91A8468D924DBE43472241E2DC0A07A3EF5F58D624936FFD076ED
+        62F7847C20C74AE8629A731E00966B6B60C86AEBFDD2463049F69B8849E2EBF8
+        F1E37C50CA16ADF291EB05C5D2AE1613F4F4DCB44A8A0041335C5DE8C145345C
+        E0687A176BF4BD37DF7C9345A714374E1C9A68D6505B7FC3B831634B03E0E8A6
+        F6059FFBB7CF2FECEC166562E82212D522C1C36D267A9C08075059312976A4DD
+        CBF3F64446E2000480C6C666516B009C89577C508A17982804C6C80140B3FEF0
+        C1432CAA682D02C965022E3D0B119766AE7CE5198DAFD28C758A5C16561813AB
+        7A4AF5DBFE0CF4DBCD9B37C3D4A953AD296A0E0068AE6ABAA16D7C6B6900F4DE
+        DB13FBE4EF3F75EC786F8F97659BBA1091A27A3E417855A669EA1485E21C4082
+        80D2BE28FDCB94D3208A3FB2BF9B6BF005A016EDF7C68626CE0C2A6633172BD0
+        6077EC5867BC75BD9F4A08D9D44254349BE920D64D5BDBC8347352C088C8A4CB
+        F0CC930B4C957EB19BD7ED712488340F650A51DEED5C5AD4399D570150CC7147
+        0098F0D2F81BE2DFA92B0D006A175E7861F2F0D1765F5629736E2A37A09B397E
+        1204D2FB361C0064A34D21AA7100D5EF4B51234C4E3FA78B3735B614559E4A35
+        D57DAACE36950BC95A84C4B2491ED36CCE1A21701980226293E225952FF91BA9
+        B8A97DE28C61C3FC921E54EE0B684501A0FEDE0E801301C1A64D9BB8DA9ABD60
+        A51D00F56BE2EF1FFFB5712F9404C08E1D3BCEFAC637BEF1CAB1E3C75D14DA54
+        77C1124F2464BF5CD225E48E75858A130054C585D2BF6B50063ABB71C5EA215A
+        33E0048062036157FAB8CA189A4CA45193F9448B3864B53339504454DE101A67
+        34999B52864A91A7F64B12543A570AAA9D7384CF65DEDF04DEDF100012D00480
+        19336638068B5400F8BCDE4967CE3DA3744E20B293C015575CD1DB3B38E09503
+        61316F8CE54CD28C13913A694ED9EBFB80C5B121072D14A4A554759673F23B94
+        8740006868688496E6367339B57A5D357C4A7D23E58B56F5D06C16E95C028CD4
+        4792C1445C7A952694AAC03A15ADB60FFE886662917A806E47675561AD82FCFB
+        E2007052BAA9FF5BB66C812953A694E40094148BFAD4A4D366CE2D0D006A175C
+        70411275009F5CAF6E0780BC0169B4F41D617E8C0C00AC3F20511B1B1A0A6791
+        D11D2222C5F20900728D81FCAD7DA30A6AE4F7274708C9643572E898A708CE91
+        B55291B677320008EC048069D3A695E400342E6104C09CE9B38707C0273EF189
+        E421D401549927336835C3DEA5461A705E14784A02401D7842635363A3E92CB1
+        76D6C53A005523273F00ADAC95447529F7968DB8D4BA75EBB80EBF7DE732A7BA
+        06C54CD7FFCE00202570F6ECD925EB3810372400CC9A3A7378005CB4E053C9FD
+        870EF932C68A159A91F266B420530D6E98051C8D65D2E4291499AAC5078EBC52
+        14F4B13F1CFBDE68A58EC7279440E40276DBD6FE900450E200679C7146FE7BB6
+        32AC4EEC7D3876FF7601C06EC2167B0E93124500E0C4B5642300901268DDABA1
+        100055159593268E9B383C00BEF4A58B93DB76EDF2C9C450727C487D402DC024
+        2F4E56412A9336C0000A001C2FCF317202807D66BE07801307009D2747102981
+        161F80038D6AABAA278D691D3B3C00BEFAD57F4EAEDFBCD927ED61BAB10C4250
+        6914CB126D0AB450758B50903FA7FD748603009D696D69B1B0E9771A00460282
+        B71D00FC83130300D168EBD6AD0C004BDA98720D3A4FD64E5D75CDA496A6D6E1
+        01F0AD6FFFAFE48AD5AB7DB2A821CD7EA90F9008B0CB6EB60AC221C3EFED3696
+        5E151F384A956A6E6AB244E84A01401D3CF990123C1200F3E6CDCBCB7F284EC4
+        E108E0C401D43E1603801AF7B7FC064E045C6217F252FD720286E4009667B4F5
+        3B1A8942736DE3A4BAC6F8F000F8EE77BF937C71F9729FBADBA50C7464D23913
+        00EA20D2126D32B7128941DEBC91EBF0838C7717DE909440B92DED70002888D4
+        29CAE6BB1D00440B0A069115500A00B144AC77CAD393A6856E0E1F181600D75E
+        7B4DF2AF2F3C6F0240DADB3CE0C94C81A3841A01808845B9F0E440A2020B4515
+        41BC1E7100755F62268A9165434BB069C57053532BFB17FBFB0779750F79EB28
+        644A8923B5D5D570FEF9E7B388FA5B00402DEF6A7CE0285BDF5E00D075722704
+        00A20B6DAD43AEE0520040FD6CE5B9679C337C7D006A37DC7043F2E9FFFBB44F
+        5D1E264140C94F141491C0300B1C6A028D14BC91D9C49445A46610E56FA82371
+        1B2C2B7D18CDDC715A00E1E52562750D2DB066FD26D8F8C636C810C1DC62B3A5
+        E4403734C6ABE10B9FFB2C0360CD9A35161D007256E216237AA98176F2D49522
+        C44888550C8CD6DF9E982B986842FB114E9E3C79382B60E539F3CE1E19007EF5
+        AB5F25FF6BD19F7CD99C7575108B826C7ECB77090C69D7CA655EE43B27A55178
+        0B1D108DA0686CAC2F60EF1600D012B1A63606C01B9B76D3F60F9C8E0D7A06B4
+        6C126A2ACBE00B0B3EC9E55ADFCD00206E4C0921E4092C660588621CA195679D
+        76E6C80070E35537EEFBD3CA279AB30EEB036901243522B09A2BC015B695757E
+        A4752612435C64D12E3BA9E65D4343BCA010840A005A25DCD832165E5BB71136
+        6CDC0D59109B38BBDD6875E869A845005CF4A9BFE715BF230140316216058032
+        3223B51ADE3A00AC8B3A87038054D077EFDECD22C0B4026CBF35565FAF3C63CE
+        BC9101E0F2CB2FBFFBCDED5B2E13050F6C091D39CD340D4914C88ED08C511534
+        B9A297E204F9F2A87900C4E3B52C2E54CD5E6CB7AA831F45434D6D3DC41B5BE1
+        B5F51B61E3C69DBCAF2FD51BA0D22E1EC840537D157CF4820F3307201DE0F4D3
+        4FB79881C5883B62F9CA0ACCC8093A1CA046FE7EF83D08D4F7440B02007100CB
+        33DAFA545E5EBEF2B499734706806F7EF39B77AFD9F0FA65D2076FFDB29B6F2A
+        094D011826AA96479BD40F285640BB6CD24C97459B460C00D40148046CDDB997
+        2B7E50850EDEB50B2DC7805783C6BA2A38EBACF3206D148478B7028044F18103
+        073823C84904C8BF2B2B2B57CE993E7B6400B8FAEAABEF7E79C52BC801323600
+        68E641E617B974870C5160DF5F400004501494316088D832644CEEE2BADA5AF6
+        4E5900603C18AD7FAF661130065C5E3FF47476C29EBDBBA17F60D0D871330D55
+        B128CC3EED4C8E1EFE6D00901F1A4D756869270682A2EF1DAE276E736200A009
+        4891500A861593FF74AEBABA7AE5ACA933470680EBAFBFFEEE257FFD8BB30850
+        0A3413FA88BD53AC1D205FD94B7514D1ABD86A45CF3B88F09AD546468DC50F60
+        0C34F9016A6A6A793B1AE222A46F501A163D2C177D46F05105ED193366F2DF14
+        0C3AEDB4D31C7500A7812BA60714CB30B210F9043943B1F7AA7968EA41255CC1
+        7690C946994A140E1F434532E5F3D8BE4BD7AFA9A9593973CA8C9101E0AEBBEE
+        BAFBA1850F5E263D80C500209D43E4EC4924926696AA9CD5B203B458819441B7
+        471463222B800A42950200D50B2200500229890F42393D28818180401C85502F
+        A381270B806203FBDF050094F042296BCD466CC50E0079FDBABABA9533264F1F
+        1900EEBCF3CEBB1F7AE4C1613900DD8CB8001188B687732A762C1028B68B0B06
+        FDBC1287004095C1E442866200204F200180884D0A2765E012B7210E40A62659
+        1A245E2CE16036159DAD00BB665C6A70470500BCB4C899D0C500409B55D3A4A0
+        B516C5006014E97E1075804B1DAF673FF1C0030FDCFD9BFB7E7319AD2F93C474
+        0280EC0C75802A701212550791FA9E62040400721313502ACB2B9888A500D0D2
+        D2CA153E289B87BE470F4B2C8FDECB20118900D20108004E3A40B1F578C538C0
+        DB0100FBB586038045EF38011D8097BF2157A431A08D388A39810800385E5F7F
+        DF59E7DD3E22003CFAE8A377FFE71DB75E4625D6EDCD0E006A39639B79EA10CD
+        547B460EF597587F3812E2B5F134432B860100550AA31DCA65BE815C4AA66607
+        49EFE4BB1900C415E96F5A6B608F04CAEF1A4BD5BE7EDE99E78E0C000BFFCFC2
+        6FDEF5F49DB7D026D279EDDCD896D5B17CACAB206C9C27BECB700EA1F916F081
+        CFEFE522CE324F4F6AD89A0652DDE6CA5EB432887400B9DCC904892DC3572A81
+        73E6CCB100003499642915A3130340510228FD2C456CF5378E22C83146204480
+        06D67B14FCAD008016A5788C7D99EC29E1D22144A9E9A86F7D7DDEDC792303C0
+        FA3BD69F77C3921FBFB8E7F01E4D73BB8C1DB485ADAFEEC76395F3C231449D31
+        7D03BA4C7BD77809367100AE73833A01CDFE4A656D807C30FABEE4000400FB2E
+        1AF60126AE4000A094A8E14C3FA70D9B8BBD1F0907B05FDF717047A003A8E0D2
+        8A4403A1C8F569DB191A239A50A602AE19CBDA74117AF7BADC34D65F9F3563F6
+        C80040EDBBDFBF7ACFB265CB5AA914BB8B363B1806007236F2362B997CC4506A
+        35C4FA69CF6051865DECCCF11E00DE3A006885124D26A927F1181AC9292A00D0
+        0AF8FAD4C9D3460E80FB7E72EF2FEE5B7ADF55541797363974D30605BA5E9203
+        50230D5DEE822566BFCB9CF5A40052956B72083901403C27ED8EE1E5A450D201
+        D478817D3025E8D6AF5F0FB366CD72B4EFF3FEF1E2A1DCB70A80915CEF440150
+        00A22200A04090DC4BC8140D461F65512CDA92B7A5A5E5EBE3C68C1F390036DC
+        BD7EF6ADAB6E5DF1C6A64DFE0C9983744192E5CA2C2AA66049D3706060D0A89A
+        E56211100A07D91C941C801648E60AAA76B8B880036D22410070DA48C9CE7586
+        038009D21388CD9F4A33D00E80C2F3C5390CE502900928575B0B00183F13EBD4
+        78E3EB29A1295F8ACFAB7F60C400A076DFB5F73EF4DB17EEB998C4002579B869
+        C9D30800203388C4FABA8C599C598A009DB7418BBD07809102001C0BB7F3E704
+        00DA7A47EE46C6E36FFC4C72002AD18BDF89B6B58CE93B21001CFDBB2353FE7D
+        EC55CF6DD9B62D9E330A26D097551BBF98DC955BA191E386BEC7F5EA4341913A
+        0E621FBC020068C2CEA0F58115E59508803106008A2D781060DBB0613DCC9C39
+        CB3CA7BAA54D8202582C8193F5046A2A004011079AF3755C16F0E4FB50DC2271
+        02802C5751D8B66FDF0E63DAC608D3DBB8BE5002F3BB8934D635AC1E5339E69C
+        9A31B58EB5728B0280DAC3F7FFEEFBBF7DF0EE9F0CA512BCFB8593ABD76930E9
+        7B326A48CE1B223CA194EC7A018032670068C0DBAD50899856048030038B0140
+        3700B00101305339EF76E44CAA7F6038A5ED446774B16C5E5711A00D6792AACD
+        BEF8566D940D442E71BBF34D5E17C72F373333F38AC60B9A6E2F76FD9277EFFA
+        EBF1B2EB9EBAEED915AB579D913558BB9ACD5BCAE121134AC82210019C90E1C1
+        D3B912C6BB0D00C34D9AE20070DE2092CC6E52B6691CD5F47A2AA9434538C3A1
+        F0919ACA9A5FCD9833F3A652D71FB6274BFEBAE41FEEFACD6FFEB4FFC001B39A
+        87CA058A0D8CE402D28347C02182D2AE17C401AA9425E24E00A0B581A5012006
+        E78D37DEE09531F9EF389754957277380FDE7044571D31E679577E24EDCE1827
+        008C8CF0EAB6B0D6380B8D2DB98129A0267330699C9B73CD49DF78DF3F37F637
+        1EACBEAF7A79E0FE6062B8FB0CDB9BD4FB5363FFE313B77CF985175FBC862A52
+        A97BFEAAACC769C0D4A249D4C4726FC1018607007902C3508A03D0B54B01E064
+        95402750940403E44C393D1C0046DAF2DFD7CDE45A6AB232995CF24EDC955EC9
+        B23ABBE5ECAEB33E7E76E589DC6744704C4C4F4E587EE7AB676C7D75EBA7F563
+        B939DDB11EEF534B9F6AE04CE122DC4082438A02FA9BD3C3907023E300A30B80
+        E2D5D225596CE734EBEFD4013E59E28BFC87240C0E0EB02E4526366F798BB39E
+        742A32FF64A1297A6DF3B72D3DF3A3677DF86D0780DA326DD9F24D3FDB14BDF5
+        F95B976CD9B2757256273F41D6E192C6DE83ECB1CB0A0B202776EB262BA03400
+        CAA1B9A98D591C4061D1271300381854208192224DF9AE540CCB7F5D03731710
+        457BA7F74E8A9A6EEC876CFFBEAA915BAE63318F73C6FD3450B78715BB99E664
+        55180B8BE72DE63262832A92EBB4FE81643C4D20B28424B1D5DD4625D8E50653
+        F49D9A9A9A5BDE7FEEDF5DF93705806CB7DEF69FE73DF9E4932FF50DF483EE1A
+        7E83095206C57272B1566D78008870F08902001C66B450900A37652C0E809CC5
+        F45259BDA3A9A614905439874A64C98DA48F445614A3437A5089B8A2566299B9
+        2CDE49EC88436C31276B25D0F7E3F1F82DE79E71CEA901C0EEBD7BB47BEFBDF7
+        0FCF2D7BFED3193D5512005214C8757D23E3002707007B7E62A9472DF6F03AE8
+        8E22C0DC99DB4E6CEB6993E0322E42C41EE4DDC886CCCC299AB134BBE990F590
+        D512FD76A7562110C44E28922390786D6C6CBCE58C39F34E0D00A821F1DBEE7B
+        E0810DDB76BEC985FF54855045BD243C219FDCC18472CAF6B13CACC147A91A37
+        D5BD252B40A48D292AB6D288D3D3DEBFB24A967231E7077594F5BA42383DCF9E
+        1D621EE277BA65A326E9F504638F4122B22C1D2B03624420C9C6E56218FBFE41
+        7642173BF2CF9EDF7C537209B29808007367CC397500A076F32DB77CEBC9BFFC
+        F926B9644C6D82E05ECBA053A611C93399C6241FC80E002A122532878BD40A86
+        9C592245E6C5170580CDCD6A79783D4F68B32F207608B5374A73A75439999B48
+        CFCCA57472BA496862C574C89929AF29D97F2977B57ABED41E8372A75175EB3D
+        02587373F32DB3A6CE3CB500D8D7BEAFECAE1FDDB5F6B9CDCF8D53075256EAA2
+        0ECBA81E1D343B4871210F963A402A00684B590280F003282AB60D007261C4C4
+        89134F000062A6837965C5E56A2864397E15CE16D2BE65012AB9EDAC24B264DF
+        52977066D556DF829DD02325BA7AC85D488518901B727B293BF8966913A79E5A
+        0050DB71DBAE1F7C6FF9F77FBCEFE07E2624EDC647A39C4964D85EA5E08FAC27
+        44E1EAEEEEE33067EE1C8BDCD40C5B4AAE2FA44CD7E1CAC4D1B5A9CE1FE50F16
+        F3AF98FE7B4D2BF04B50A3194C445659B7FC5C6ADF4468FB6AE662445467B45A
+        5287096C28A95A31A2DBEA1C295D2F0081CE25EE510934BE1BF2F961D2B393BE
+        D7F68B313F3FE500D8BE7B97EBF13FFEF1974F2D5EF46DDAB52B279672427220
+        C975FA3828D1D8C8DF757396B09B45409EF0A22BA220B58F0140F57525689CEC
+        68FA1DE5C41191E42A23D507A1A68DD1419B4B4B22CBED60653167BAA73CD42D
+        EAE47DECC5274B01C0F25E2F32A38B00006C6C1E0CE2BBB442CEA18BC2C29CA3
+        41C00AF959C738FDFDE7FF7F6B4E3900A86DDCF266C54D3FBF71C5963D5B2692
+        6F80070CF5205AD74F038EECC958554CC522C3ECC3B6B24C31FB69B651B2087D
+        5E2C7D9B1ACD52CA89236552DD865D96722762CB5277BCF5AAC76D06A424A19D
+        88AC02CC89B82A689DBE6325B4DBF1BC4BD30A000045AF09BC64AEE0FEBC17A2
+        707051DDA5200220140C9E7EDE39EF1B1D00507BE5D7CBEFBC61C98FBFD2D5D3
+        253C819AC7549664D082F301A2114E65A626B5584E0733B690253350CE6A7567
+        50E94F90757CA51B542D1D23376C901E3273805D560E31E2597CA244B710DAE3
+        FC7DDB6FF9B322DBC289EF16F637C7C83038802102A2D1E8E967CE3B6BF400B0
+        69DB66EDDE7BEF5EF8EAABAF5EC47C4B77991B2210E1387951035E2340228066
+        A3ACA82D3900118D5E89B8925D9B5BC31A6E65AFA87C697E57DACFAA262F35EE
+        3CCB2CAE94BDD5F7C50F77410E80A90B385D4BC9ECCD8B1B2B07C83F8F100352
+        0450E60F0160DE69678C1E00A82DB9F12FD31F5EF5BB55DBDB7704694D3F69FC
+        E4E2244286698F20940BB1B232DE5D338000A83258BD709C108175AE1A6EEEB5
+        C7FBEDB9B91A991C3CC14924EB2E8CE8D989CC036A93C1609B8D600EB6F2BEC0
+        0ECF9F57DF17B5DB759733608AF453ADCA92D70D0C1DC0DC6D55BCD70DFF88DB
+        D851258213A2A2BCE2F439B3E68E2E00A83DF4BB877EFBDBBB7F7B793A275C9C
+        1964FB945AE6A5DAF9388B2BD0CEA7C50C4464E20A349BA528503753B6B3448B
+        12962BFCBCE8EC1E81F65EECFD4834FF62DF296621D88B6FC966DFB5CCE4002E
+        EB723651544B330140B3A12C1C8186FAFAD3274F9C32FA0078E69967424B962E
+        D9BEFAF5550D3C5BA982089851108845CA389B95084F2E6135A74D25A69DC016
+        02E89A237B2D4AB0B7000247500D0306C9D5249149579166A65936D7B03C6490
+        472570BEF833B0693D1C00684C51AC9E3E71FCA4D10700B5071F79E0038F3CF2
+        C852B4025C592D1F5AA187A29DC40900A4F1937228EBF13B2967054A913CF4D2
+        4E13FBF7F512042BF6772930DACFC9CDA324A1C90AC9181B70CA9DCBA472AA7A
+        0AEDA6A05AD15CE50005DCC406808A688C4CEDD3C78D19FFCE0000B51FFDF4BA
+        679E7DF6D90B846F00CCC4520900E20072FF1CA70ADE2ADB2C9861E02E3A1B9D
+        F6E32D060095D8C35901AA55C2BE0583D0A4DF483354067BEC1B43CB592ECD4F
+        3BC1A5F8539F41702E6105D83940CEC8FF963A00EDB8DED6DA7A7A4B53EB3B07
+        006F7C65C3076F18FCC9E37BF6EFA595A00500A0600FE90276008C44EE0E0700
+        BBD34602A014A1ED449784961609115BEE0F28BD85928892B8D2B144B35CDD11
+        DC09DC4E62A380938904FF6101402BAE09004D0DCDEF1C0050BBFF77F7DD7DDF
+        03F75F4605A57346E9989801008A7B9323875701CBAAA2364D5D759F5AC001AE
+        11CDE8FC930AD7AA7C6CE96A953100E94412A667DA94DB6499C89237F27762B5
+        93CB98D93E5EEF40AF541B516CA865F8E8B57CB42F672C96E46BB9ED96853C0A
+        B99DDC0B38AF574810B8D9CA90B0A8A9AAEE6D6D6D99D3106FDCF58E02C04BAF
+        BC58F1D0430FAD7A63D31BE369CBD64C2EC3717E72F592D3270F00B7391805DC
+        C04E7C07CD5FB662A203B4FCB2759ABDC2899482543A096962E13911BF103E07
+        CD24B6BA15AB57DD0A5ED96F58FD9E250DCD90CFF61079D6952BE4004464A5B0
+        A6DCCE56B36530D17F5E6791089169BC2E1C096FF4C6BC2FC7F7C4D7C4FF21FE
+        DA89D2E76F0A80FE6BFB6B68ADC7CAE61597FDE24FBFF871FF603FCF660AB010
+        00C804244EC0411F708175366866078BB1E852E7EC834EB50D64928664E359DE
+        1749DADE9A65B7703A5402AB66AAD3166D2A70F344D50A0020F28A72A665A282
+        5CE3188A55945155154FD603BE886F77B95E9EF3A57C4BFD69FFE3654365BBEB
+        FE3D7EC0B3D7533C1B67B40120DBDECFEFF13E5AFDE8C6451B174DA49946B29F
+        0020F7BF653350B7B243D95C0EC475F2F439B5FC6C14913375474F351143DADD
+        851AB8E6C861EC842E5889645A2A0A004D20EA82D5CBAD68C50FD8A74F5741FD
+        211DF686539EC39E15FEA9FED7B1BF4FB475B741C523152B03F7078BE7DEBD93
+        0140EDF13F3FF6B13BEFBC73D1C0D02003805CC114F4A198801D006A73DB941F
+        BBA9A41EF23B76E2F076B2A0994A9D75EB99E289612A51D56BAA7D2925927465
+        FB5DF999CEC0CD719F4877080482C96C2EFB4C55AEF2885EA92FC589B11315B9
+        F5A78A2EA70C007F7DF1D98F5D7FFDF58BD2D9348A000100E2004E00B07300FB
+        00DB67AB9D18AA4C169FB938C3470D2C9944D2A5A8C9B3642892FC592C1C5C34
+        ED3BA79B6B230D4B674F084247425DBEA5E5B3CA8FA413E9C7A235D12134DDFA
+        4F151DECED940160F9AA151FFBE175D72EEAEBEFE385210DF50D5C08221FF72F
+        AC03404DD6BFB5FCADCA5ED56B06F973041CB11BA94B6C76A5B0E39C22F7791B
+        1C6361AA45EB36BEA13AA70A57336BE68EE2723126F50535FEC3D1B2B2646867
+        68A567B6671BA46149795DC551547A8F35D4D6759F520A0FD34E1900D6BEB1E1
+        63D7FCE09A451D1DED505E813A40BC912D8078BC81F70A8422725C05809DF0F2
+        9C1514EE024EC059C94556D83ADE93C090539437993C4AF4CEC9B501B4051E2F
+        794F561C8E0EA5C7A41FAB3A5675449BA22D45CEB60E395CDF886F388AED9401
+        60C3E64D1FFBFEF7BFBFA8B3EB2804835ECEFA2527901300EC5680FD7C81066D
+        399C3574B05DC7A9A969DEA6066F7C5F94BBD5D720B73A54D75337986A4BFDB1
+        4D6F85B2A7CB9E8C5C171A760DDE3BB59D32001CB8E5F0FBBEF3EA779E3FD4B1
+        DFEDF56A0C00AA07C8FB03D2DE02451429CDE99C740E39BA6BAD1E425339D4AC
+        29D81C65D7E5F637745684A1397D3BED3DE88B7A0FB993EE65A19AD07E345737
+        A452A9F5F83AD0D2D49C86FF41ED940180DAF53FFDC9AF9F5BF6ECD73C1E9D01
+        505151893A40E3B00050FDF0C53840FEB76E533153ED7197722D8EC469FEACE6
+        8343949710DC1978DD3BD5BBC9BDD5F35CF0DCD0C1A6650DC7CAFF35D639AA94
+        3945ED9402E0F9575E6A7BF4D187D7ECDCB9AD92B687A740503C7E7200D01DBE
+        2BB28A3C962DD470566762B1A8EE3FEADDA0D7EB348B0F0C0E0E3E3F696852B2
+        697EE3ABA338F6EF88764A0140ED8E7B7E7DC9337F79E601AA174C00A01DC202
+        540A06DC6C9249C59A5E6550C72DF726823CC129158A1432E193F7F035BCEDDE
+        3DD0089B6AA10E8692893F354C6B18687DBCE56594D107DE4A9FFF27B7530E80
+        63DF3C1AB92F7ADFB39BDB379F59555D85D640BD510B480437AC2B74F28D4C3A
+        DA783A1C0A8367D0B33B10F6EDECCFF43DD5D2D202F19DF1235D53BB968EBB6D
+        5CA2ECEEB2C1D11ED4FF4EED940380DAEB4FACB9E8C1E71E7CD417F6415D5C24
+        861007A0EE703835E70357D075A8D257A943172C094D091F0D1E0CAECE8EC96E
+        698A3741FC92DA83BE65DE9ED11EBCFF096D540090F8D290F6CA075EB9F698EF
+        D85511570406B481C748210C1C0FAEF5B478368EDB3A0EAA7E58B5CCB3C79D7B
+        EB777BAF956AA30280F7DA3BA7BD078077797B0F00EFF2F61E00DEE5EDFF01D3
+        1F4896F08F765D0000000049454E44AE426082}
+    end
+  end
+end
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/fTMGPrintingAnimation.~pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/fTMGPrintingAnimation.~pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/fTMGPrintingAnimation.~pas	(revision 541)
@@ -0,0 +1,29 @@
+unit fTMGPrintingAnimation;
+//kt added this entire unit and form.
+
+interface
+
+uses
+  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+  Dialogs, ComCtrls, StdCtrls, ExtCtrls, pngimage;
+
+type
+  TfrmTMGPrinting = class(TForm)
+    lblPrinting: TLabel;
+    pnlBackground: TPanel;
+    Image1: TImage;
+  private
+    { Private declarations }
+  public
+    { Public declarations }
+  end;
+
+var
+  frmTMGPrinting: TfrmTMGPrinting;
+
+implementation
+
+{$R *.dfm}
+
+end.
+
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/fWebTab.dfm
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/fWebTab.dfm	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/fWebTab.dfm	(revision 541)
@@ -0,0 +1,32 @@
+object frmWebTab: TfrmWebTab
+  Left = 266
+  Top = 184
+  Width = 473
+  Height = 375
+  Caption = 'Web Browser'
+  Color = clBtnFace
+  Font.Charset = DEFAULT_CHARSET
+  Font.Color = clWindowText
+  Font.Height = -11
+  Font.Name = 'MS Sans Serif'
+  Font.Style = []
+  OldCreateOrder = True
+  Position = poScreenCenter
+  OnCreate = FormCreate
+  PixelsPerInch = 96
+  TextHeight = 13
+  object WebBrowser: TWebBrowser
+    Left = 0
+    Top = 0
+    Width = 465
+    Height = 341
+    Align = alClient
+    TabOrder = 0
+    ControlData = {
+      4C0000000F3000003E2300000000000000000000000000000000000000000000
+      000000004C000000000000000000000001000000E0D057007335CF11AE690800
+      2B2E126208000000000000004C0000000114020000000000C000000000000046
+      8000000000000000000000000000000000000000000000000000000000000000
+      00000000000000000100000000000000000000000000000000000000}
+  end
+end
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/fWebTab.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/fWebTab.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/HTMLEdit/fWebTab.pas	(revision 541)
@@ -0,0 +1,99 @@
+unit fWebTab;
+//kt Added entire unit and form.
+
+interface
+
+uses
+  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+  Dialogs, OleCtrls, SHDocVw, StdCtrls,fPage;
+
+type
+  TfrmWebTab = class(TfrmPage)
+    WebBrowser: TWebBrowser;
+  private
+    { Private declarations }
+  public
+    { Public declarations }
+    Procedure RequestPrint; override;
+    Procedure NagivateTo(URL: Widestring);
+  end;
+
+function AskServerForURLs(URLList : TStringList) : string;
+
+var
+  frmWebTabs: TList;
+
+  TMG_URL_RPC_Available : boolean;
+  TMG_URL_RPC_Checked : boolean;
+
+implementation
+
+{$R *.dfm}
+uses ORNet,ORFn,Trpcb,uConst;
+
+
+Procedure TfrmWebTab.RequestPrint;
+begin
+  inherited;
+  MessageDlg('Finish code: request printing from web browser...',mtInformation,[mbOK],0);
+end;
+
+
+Procedure TfrmWebTab.NagivateTo(URL: WideString);
+begin
+  WebBrowser.Navigate(URL);
+end;
+
+//=================================================================
+//===== Globally available functions, not part of object ==========
+//=================================================================
+
+function AskServerForURLs(URLList : TStringList) : string;
+//Get URL list from server.
+//URLList is filled with RPCBroker.Results.  Should have this format:
+//     URLList(0)='1^Success' pr '0^Failure'
+//     URLList(1)="URL#1"  a URL to display in tab 1
+//     URLList(2)="URL#2"  a URL to display in tab 2
+//     URLList(3)="URL#3"  a URL to display in tab 3
+//  Note: if URL='<!HIDE!>' then server is requesting tab to be hidden
+//Results of Fn: Returns '1^Success' if success, or '0^ErrorMessage'
+var
+    RPCResult              : AnsiString;
+    i                      : integer;
+begin
+  if TMG_URL_RPC_Checked = false then begin
+    RPCBrokerV.remoteprocedure := 'XWB IS RPC AVAILABLE';
+    RPCBrokerV.Param[0].Value := 'TMG CPRS GET URL LIST';
+    RPCBrokerV.Param[0].ptype := literal;
+    RPCBrokerV.Param[1].Value := 'R';
+    RPCBrokerV.Param[1].ptype := literal;
+    RPCResult := RPCBrokerV.StrCall;   {returns 1 if available, 0 if not available}
+    TMG_URL_RPC_Checked := true;
+    TMG_URL_RPC_Available := (RPCResult='1');
+  end;
+
+  if TMG_URL_RPC_Available= true then begin
+    if (URLList <> nil) then begin
+      RPCBrokerV.remoteprocedure := 'TMG CPRS GET URL LIST';
+      RPCBrokerV.Call;
+      URLList.Assign(RPCBrokerV.Results);
+      if RPCBrokerV.Results.Count>0 then Result := RPCBrokerV.Results.Strings[0]
+      else Result := '-1^Error: No URL''s returned from server.';
+    end else begin
+      Result := '0^Invalid TStringList URLList passed';
+    end;
+  end else begin
+    Result := '-1^"TMG CPRS GET URL LIST" RPC Not available on server';
+  end;
+end;
+
+
+initialization
+  TMG_URL_RPC_Available := false;  //default to not avail.
+  TMG_URL_RPC_Checked := false;   //default to not checked.
+  frmWebTabs := TList.Create;
+  frmWebTabs.Count := CT_LAST_WEBTAB-CT_WEBTAB1+1;   //fill up list with nil pointers
+finalization
+  frmWebTabs.Free;
+end.
+
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/LookupU.dfm
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/LookupU.dfm	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/LookupU.dfm	(revision 541)
@@ -0,0 +1,95 @@
+object FieldLookupForm: TFieldLookupForm
+  Left = 1376
+  Top = 349
+  Width = 302
+  Height = 169
+  BorderStyle = bsSizeToolWin
+  Caption = 'FieldLookupForm'
+  Color = clBtnFace
+  Font.Charset = DEFAULT_CHARSET
+  Font.Color = clWindowText
+  Font.Height = -11
+  Font.Name = 'MS Sans Serif'
+  Font.Style = []
+  OldCreateOrder = False
+  OnShow = FormShow
+  DesignSize = (
+    294
+    135)
+  PixelsPerInch = 96
+  TextHeight = 13
+  object ORComboBox: TORComboBox
+    Left = 8
+    Top = 8
+    Width = 218
+    Height = 121
+    Anchors = [akLeft, akTop, akRight, akBottom]
+    Style = orcsSimple
+    AutoSelect = False
+    Caption = 'CY'
+    Color = clWindow
+    DropDownCount = 8
+    ItemHeight = 13
+    ItemTipColor = clWindow
+    ItemTipEnable = True
+    ListItemsOnly = False
+    LongList = True
+    LookupPiece = 2
+    MaxLength = 0
+    Pieces = '2'
+    Sorted = False
+    SynonymChars = '<>'
+    TabOrder = 0
+    TabStop = True
+    CheckEntireLine = True
+    OnDblClick = ORComboBoxDblClick
+    OnNeedData = ORComboBoxNeedData
+    CharsNeedMatch = 1
+  end
+  object OKBtn: TBitBtn
+    Left = 232
+    Top = 8
+    Width = 23
+    Height = 22
+    Anchors = [akTop, akRight]
+    ModalResult = 1
+    TabOrder = 1
+    Glyph.Data = {
+      76010000424D7601000000000000760000002800000020000000100000000100
+      0400000000000001000000000000000000001000000000000000000000000000
+      8000008000000080800080000000800080008080000080808000C0C0C0000000
+      FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00555555555555
+      5555555555555555555555555555555555555555555555555555555555555555
+      5555555555555555555555555555555555555555555555555555555555055555
+      5555555555555555555555555000555555555555555555555555555500000555
+      5555555555555555555555550050005555555555555555555555555505550005
+      5555555555555555555555555555500555555555555555555555555555555505
+      5555555555555555555555555555555555555555555555555555555555555555
+      5555555555555555555555555555555555555555555555555555555555555555
+      5555555555555555555555555555555555555555555555555555}
+    NumGlyphs = 2
+  end
+  object CancelBtn: TBitBtn
+    Left = 264
+    Top = 8
+    Width = 23
+    Height = 22
+    Anchors = [akTop, akRight]
+    ModalResult = 2
+    TabOrder = 2
+    Glyph.Data = {
+      76010000424D7601000000000000760000002800000020000000100000000100
+      0400000000000001000000000000000000001000000000000000000000000000
+      8000008000000080800080000000800080008080000080808000C0C0C0000000
+      FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00111111111111
+      1111111111111111111111111111111111111111111111111111111111111111
+      111111FF11111111FF111001111111100111177FF11111177F11100011111100
+      01111777FF1111777111110001111000111111777FF117771111111000110001
+      1111111777FF7771111111110000001111111111777777111111111110000111
+      1111111117777F1111111111100001111111111117777FF11111111100000011
+      11111111777777FF1111111000110001111111177711777FF111110001111000
+      1111117771111777FF1110001111110001111777111111777111100111111110
+      0111177111111117711111111111111111111111111111111111}
+    NumGlyphs = 2
+  end
+end
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/LookupU.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/LookupU.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/LookupU.pas	(revision 541)
@@ -0,0 +1,147 @@
+unit LookupU;
+   (* 
+   WorldVistA Configuration Utility
+   (c) 8/2008 Kevin Toppenberg
+   Programmed by Kevin Toppenberg, Eddie Hagood  
+   
+   Family Physicians of Greeneville, PC
+   1410 Tusculum Blvd, Suite 2600
+   Greeneville, TN 37745
+   kdtop@yahoo.com
+                                                 
+   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 Street, Fifth Floor, Boston, MA  02110-1301  USA
+  *)
+
+interface
+
+uses
+  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+  Dialogs, StdCtrls, ORCtrls, Buttons;
+
+type
+  TFieldLookupForm = class(TForm)
+    ORComboBox: TORComboBox;
+    OKBtn: TBitBtn;
+    CancelBtn: TBitBtn;
+    procedure ORComboBoxNeedData(Sender: TObject; const StartFrom: String;
+      Direction, InsertAt: Integer);
+    procedure FormShow(Sender: TObject);
+    procedure ORComboBoxDblClick(Sender: TObject);
+  private
+    { Private declarations }
+    FFileNum : String;
+
+  public
+    { Public declarations }
+    procedure InitORComboBox(ORComboBox: TORComboBox; initValue : string);
+    procedure PrepForm(FileNum,InitValue : string);
+    function SubSetOfFile(FileNum: string; const StartFrom: string;
+                          Direction: Integer): TStrings;
+  end;
+
+var
+  FieldLookupForm: TFieldLookupForm;
+
+implementation
+
+uses
+ORNet, ORFn,
+Trpcb,   //needed for .ptype types
+QControls, fPtDemoEdit;
+{$R *.dfm}
+
+  procedure TFieldLookupForm.ORComboBoxNeedData(Sender: TObject;
+                                                const StartFrom: String;
+                                                Direction, InsertAt: Integer);
+  var
+    Result : TStrings;
+  begin
+    Result := SubSetOfFile(FFileNum, StartFrom, Direction);
+    TORComboBox(Sender).ForDataUse(Result);
+  end;
+
+  procedure TFieldLookupForm.InitORComboBox(ORComboBox: TORComboBox; initValue : string);
+  begin
+    ORComboBox.Text := initValue;
+    ORComboBox.InitLongList(initValue);
+    if ORComboBox.Items.Count > 0 then begin
+      ORComboBox.Text := Piece(ORComboBox.Items[0],'^',2);
+    end else begin
+      ORComboBox.Text := '<Start Typing to Search>';
+    end;
+  end;
+
+  procedure TFieldLookupForm.PrepForm(FileNum,InitValue : string);
+  begin
+    FFileNum := FileNum;
+    Self.Caption := 'Pick Entry from File # ' + FileNum;
+    //if (FileNum='200') and (InitValue='') then begin
+    //  InitValue := fPtDemoEdit.CurrentUserName;
+    //end;
+    InitORComboBox(ORComboBox,InitValue);
+  end;
+
+  
+  function TFieldLookupForm.SubSetOfFile(FileNum: string; 
+                                         const StartFrom: string;
+                                         Direction: Integer       ): TStrings;
+                                         
+  { returns a pointer to a list of file entries (for use in a long list box) -  
+    The return value is a pointer to RPCBrokerV.Results, so the data must 
+    be used BEFORE the next broker call! }
+  var 
+    cmd,RPCResult : string;  
+  begin
+    RPCBrokerV.remoteprocedure := 'TMG CHANNEL';
+    RPCBrokerV.Param[0].Value := '.X';  // not used
+    RPCBrokerV.param[0].ptype := list;
+    cmd := 'FILE ENTRY SUBSET';
+    cmd := cmd + '^' + FileNum + '^' + StartFrom + '^' + IntToStr(Direction);
+    RPCBrokerV.Param[0].Mult['"REQUEST"'] := cmd;
+    RPCBrokerV.Call;
+    RPCResult := RPCBrokerV.Results[0];    //returns:  error: -1;  success=1
+    if piece(RPCResult,'^',1)='-1' then begin
+     // handle error...
+    end else begin
+      RPCBrokerV.Results.Delete(0);
+      if RPCBrokerV.Results.Count=0 then begin
+        //RPCBrokerV.Results.Add('0^<NO DATA>');
+      end;
+    end;
+    Result := RPCBrokerV.Results;
+  end;
+  
+  procedure TFieldLookupForm.FormShow(Sender: TObject);
+    var mousePos : TPoint;
+  begin
+    GetCursorPos(mousePos);
+    with FieldLookupForm do begin
+      Top := mousePos.Y - 39;
+      Left := mousePos.X - 15;
+      if Left + Width > Screen.DesktopWidth then begin
+        Left := Screen.DesktopWidth - Width;
+      end;
+    end;
+//    ORComboBox.DroppedDown := true;
+  end;
+
+
+procedure TFieldLookupForm.ORComboBoxDblClick(Sender: TObject);
+begin
+  Modalresult := mrOK;  //Close form, item should be selected (?)
+end;
+
+end.
+
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/PostU.dfm
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/PostU.dfm	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/PostU.dfm	(revision 541)
@@ -0,0 +1,91 @@
+object PostForm: TPostForm
+  Left = 261
+  Top = 313
+  Width = 735
+  Height = 342
+  Caption = 'Save Changes To Server?'
+  Color = clBtnFace
+  Font.Charset = DEFAULT_CHARSET
+  Font.Color = clWindowText
+  Font.Height = -11
+  Font.Name = 'MS Sans Serif'
+  Font.Style = []
+  OldCreateOrder = False
+  Position = poOwnerFormCenter
+  OnCreate = FormCreate
+  OnDestroy = FormDestroy
+  PixelsPerInch = 96
+  TextHeight = 13
+  object Panel1: TPanel
+    Left = 0
+    Top = 275
+    Width = 727
+    Height = 33
+    Align = alBottom
+    Alignment = taLeftJustify
+    TabOrder = 0
+    DesignSize = (
+      727
+      33)
+    object CancelBtn: TBitBtn
+      Left = 553
+      Top = 5
+      Width = 75
+      Height = 25
+      Anchors = [akRight, akBottom]
+      Caption = '&Cancel'
+      ModalResult = 2
+      TabOrder = 0
+      OnClick = CancelBtnClick
+      Glyph.Data = {
+        76010000424D7601000000000000760000002800000020000000100000000100
+        0400000000000001000000000000000000001000000000000000000000000000
+        8000008000000080800080000000800080008080000080808000C0C0C0000000
+        FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00111111111111
+        1111111111111111111111111111111111111111111111111111111111111111
+        111111FF11111111FF111001111111100111177FF11111177F11100011111100
+        01111777FF1111777111110001111000111111777FF117771111111000110001
+        1111111777FF7771111111110000001111111111777777111111111110000111
+        1111111117777F1111111111100001111111111117777FF11111111100000011
+        11111111777777FF1111111000110001111111177711777FF111110001111000
+        1111117771111777FF1110001111110001111777111111777111100111111110
+        0111177111111117711111111111111111111111111111111111}
+      NumGlyphs = 2
+    end
+    object PostBtn: TBitBtn
+      Left = 637
+      Top = 5
+      Width = 75
+      Height = 25
+      Anchors = [akRight, akBottom]
+      Caption = '&Save'
+      ModalResult = 1
+      TabOrder = 1
+      OnClick = PostBtnClick
+      Glyph.Data = {
+        76010000424D7601000000000000760000002800000020000000100000000100
+        0400000000000001000000000000000000001000000000000000000000000000
+        8000008000000080800080000000800080008080000080808000C0C0C0000000
+        FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00555555555555
+        5555555555555555555555555555555555555555555555555555555555555555
+        5555555555555555555555555555555555555555555555555555555555055555
+        5555555555555555555555555000555555555555555555555555555500000555
+        5555555555555555555555550050005555555555555555555555555505550005
+        5555555555555555555555555555500555555555555555555555555555555505
+        5555555555555555555555555555555555555555555555555555555555555555
+        5555555555555555555555555555555555555555555555555555555555555555
+        5555555555555555555555555555555555555555555555555555}
+      NumGlyphs = 2
+    end
+  end
+  object Grid: TStringGrid
+    Left = 0
+    Top = 0
+    Width = 727
+    Height = 275
+    Align = alClient
+    FixedCols = 4
+    RowCount = 2
+    TabOrder = 1
+  end
+end
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/PostU.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/PostU.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/PostU.pas	(revision 541)
@@ -0,0 +1,170 @@
+unit PostU;
+(* WorldVistA Configuration Utility
+   (c) 8/2008.  Released under LGPL
+   Programmed by Kevin Toppenberg, Eddie Hagood  *)
+
+interface
+
+uses
+  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+  Dialogs, StdCtrls, Buttons, Grids, ExtCtrls;
+
+type
+  TPostForm = class(TForm)
+    Panel1: TPanel;
+    Grid: TStringGrid;
+    CancelBtn: TBitBtn;
+    PostBtn: TBitBtn;
+    procedure PostBtnClick(Sender: TObject);
+    procedure FormCreate(Sender: TObject);
+    procedure FormDestroy(Sender: TObject);
+    procedure CancelBtnClick(Sender: TObject);
+  private
+    { Private declarations }
+    FChanges : TStringList;
+    procedure LoadGrid(Changes : TStringList);
+  public
+    { Public declarations }
+    PostResults : TStringList;
+    NewValue01 : string;
+    procedure PrepForm(Changes : TStringList);
+    function SilentPost(Changes : TStringList) : TModalResult;
+    function GetNewIENS(oldIENS: string) : string;
+  end;
+
+var
+  PostForm: TPostForm;
+
+implementation
+
+{$R *.dfm}
+uses
+  ORNet, ORFn, ORCtrls,
+  Trpcb, // needed for .ptype types
+  FMErrorU, StrUtils;
+
+  procedure TPostForm.PrepForm(Changes : TStringList);
+  begin
+    FChanges.Clear;
+    FChanges.Assign(Changes);
+    LoadGrid(Changes);
+  end;
+
+  procedure TPostForm.LoadGrid(Changes : TStringList);
+  //Changes format:
+  // FileNum^IENS^FieldNum^FieldName^newValue^oldValue
+
+  var  i : integer;
+       oneEntry : String;
+       fieldNum,
+       newValue : string;
+  begin
+    Grid.Cells[0,0] := 'File #';
+    Grid.ColWidths[0] := 35;
+
+    Grid.Cells[1,0] := 'Rec #';
+    Grid.ColWidths[1] := 35;
+    
+    Grid.Cells[2,0] := 'Field';
+    Grid.ColWidths[2] := 125;
+
+    Grid.Cells[3,0] := 'Prior Value';
+    Grid.ColWidths[3] := 250;
+    
+    Grid.Cells[4,0] := 'New Value';
+    Grid.ColWidths[4] := 250;
+
+    NewValue01 := '';  //default to no change;
+
+    Grid.RowCount := Changes.Count+1;  
+    for i := 0 to Changes.Count-1 do begin
+      oneEntry := Changes.Strings[i];
+      fieldNum := Piece(OneEntry,'^',4);
+      newValue := Piece(OneEntry,'^',5);
+      Grid.Cells[0,i+1] := Piece(OneEntry,'^',1); //File Num
+      Grid.Cells[1,i+1] := Piece(OneEntry,'^',2); //IENS
+      Grid.Cells[2,i+1] := fieldNum; //Field
+      Grid.Cells[3,i+1] := Piece(OneEntry,'^',6); //Old Value
+      Grid.Cells[4,i+1] := newValue; //New Value
+      if fieldNum = '.01' then begin
+        NewValue01 := newValue;
+      end;
+    end;
+  end;  
+
+  procedure TPostForm.PostBtnClick(Sender: TObject);
+  var  RPCResult : string;
+       i : integer;
+  begin
+    RPCBrokerV.remoteprocedure := 'TMG CHANNEL';
+    RPCBrokerV.Param[0].Value := '.X';  // not used
+    RPCBrokerV.param[0].ptype := list;
+    RPCBrokerV.Param[0].Mult['"REQUEST"'] := 'POST DATA';
+    RPCBrokerV.Param[0].Mult.Sorted := false;
+    for i := 0 to FChanges.Count-1 do begin
+      // FileNum^IENS^FieldNum^FieldName^newValue^oldValue
+      RPCBrokerV.Param[0].Mult[IntToStr(i)] := FChanges.Strings[i];
+    end;
+    RPCBrokerV.Call;
+    RPCResult := RPCBrokerV.Results[0];    //returns:  error: -1;  success=1
+    if piece(RPCResult,'^',1)='1' then begin
+      PostResults.Assign(RPCBrokerV.Results);    
+    end else begin
+      FMErrorForm.Memo.Text := RPCBrokerV.Results[1];
+      FMErrorForm.ShowModal;
+      ModalResult := mrNO;  //signal error.
+    end;
+  end;  //form will close here because of modalresult set for button
+
+  function TPostForm.GetNewIENS(oldIENS: string) : string;
+  //If posted data had IENS of +1 (or +5 etc) then there should be returned
+  //a new, actual, IENS in the database.  This should be stored in PostResults
+  //in format of 4^1234, 2,4567 etc, for +4 --> converted to 1234, and +2 -->
+  //converted to 4567 etc.
+  //So this function will take input of +4, and return for example, 1234
+  //Or return '' if no match found.
+  var i : integer;
+  begin
+    result := '';
+    if Pos('+',oldIENS)=1 then begin
+      oldIENS := MidStr(oldIENS,2,999);
+    end;
+    if Pos(',',oldIENS)=length(oldIENS) then begin
+      oldIENS := MidStr(oldIENS,1,length(oldIENS)-1);
+    end;
+    for i := 0 to PostResults.Count-1 do begin
+      if piece(PostResults.Strings[i],'^',1)=oldIENS then begin
+        result := piece(PostResults.Strings[i],'^',2);
+        if result = 'Success' then result := '';
+      end;
+    end;
+  end;
+  
+  
+  procedure TPostForm.FormCreate(Sender: TObject);
+  begin
+    FChanges := TStringList.Create;
+    PostResults := TStringList.Create;
+  end;
+
+  procedure TPostForm.FormDestroy(Sender: TObject);
+  begin
+    FChanges.Free;
+    PostResults.Free;
+  end;
+
+  function TPostForm.SilentPost(Changes : TStringList) : TModalResult;
+  begin
+    FChanges.Clear;
+    FChanges.Assign(Changes);
+    PostBtnClick(self);
+    result := mrOK;  //maybe later vary if there was a FM error...
+  end;
+ 
+  procedure TPostForm.CancelBtnClick(Sender: TObject);
+  begin
+    NewValue01 := '';
+  end;
+
+end.
+
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/SelDateTimeU.dfm
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/SelDateTimeU.dfm	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/SelDateTimeU.dfm	(revision 541)
@@ -0,0 +1,78 @@
+object SelDateTimeForm: TSelDateTimeForm
+  Left = 437
+  Top = 108
+  BorderStyle = bsToolWindow
+  Caption = 'SelDateTimeForm'
+  ClientHeight = 36
+  ClientWidth = 232
+  Color = clBtnFace
+  Font.Charset = DEFAULT_CHARSET
+  Font.Color = clWindowText
+  Font.Height = -11
+  Font.Name = 'MS Sans Serif'
+  Font.Style = []
+  OldCreateOrder = False
+  OnShow = FormShow
+  DesignSize = (
+    232
+    36)
+  PixelsPerInch = 96
+  TextHeight = 13
+  object DateTimePicker: TDateTimePicker
+    Left = 8
+    Top = 8
+    Width = 157
+    Height = 21
+    Anchors = [akLeft, akTop, akRight]
+    Date = 39652.541666666660000000
+    Format = 'MM'#39'/'#39'dd'#39'/'#39'yyyy'#39
+    Time = 39652.541666666660000000
+    TabOrder = 0
+  end
+  object OKBtn: TBitBtn
+    Left = 169
+    Top = 8
+    Width = 26
+    Height = 22
+    Anchors = [akTop, akRight]
+    ModalResult = 1
+    TabOrder = 1
+    Glyph.Data = {
+      76010000424D7601000000000000760000002800000020000000100000000100
+      0400000000000001000000000000000000001000000000000000000000000000
+      8000008000000080800080000000800080008080000080808000C0C0C0000000
+      FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00555555555555
+      5555555555555555555555555555555555555555555555555555555555555555
+      5555555555555555555555555555555555555555555555555555555555055555
+      5555555555555555555555555000555555555555555555555555555500000555
+      5555555555555555555555550050005555555555555555555555555505550005
+      5555555555555555555555555555500555555555555555555555555555555505
+      5555555555555555555555555555555555555555555555555555555555555555
+      5555555555555555555555555555555555555555555555555555555555555555
+      5555555555555555555555555555555555555555555555555555}
+    NumGlyphs = 2
+  end
+  object CancelBtn: TBitBtn
+    Left = 201
+    Top = 8
+    Width = 26
+    Height = 22
+    Anchors = [akTop, akRight]
+    ModalResult = 2
+    TabOrder = 2
+    Glyph.Data = {
+      76010000424D7601000000000000760000002800000020000000100000000100
+      0400000000000001000000000000000000001000000000000000000000000000
+      8000008000000080800080000000800080008080000080808000C0C0C0000000
+      FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00111111111111
+      1111111111111111111111111111111111111111111111111111111111111111
+      111111FF11111111FF111001111111100111177FF11111177F11100011111100
+      01111777FF1111777111110001111000111111777FF117771111111000110001
+      1111111777FF7771111111110000001111111111777777111111111110000111
+      1111111117777F1111111111100001111111111117777FF11111111100000011
+      11111111777777FF1111111000110001111111177711777FF111110001111000
+      1111117771111777FF1110001111110001111777111111777111100111111110
+      0111177111111117711111111111111111111111111111111111}
+    NumGlyphs = 2
+  end
+end
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/SelDateTimeU.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/SelDateTimeU.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/SelDateTimeU.pas	(revision 541)
@@ -0,0 +1,46 @@
+unit SelDateTimeU;
+(* WorldVistA Configuration Utility
+   (c) 8/2008.  Released under LGPL
+   Programmed by Kevin Toppenberg, Eddie Hagood  *)
+
+interface
+
+uses
+  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+  Dialogs, StdCtrls, Buttons, ComCtrls;
+
+type
+  TSelDateTimeForm = class(TForm)
+    DateTimePicker: TDateTimePicker;
+    OKBtn: TBitBtn;
+    CancelBtn: TBitBtn;
+    procedure FormShow(Sender: TObject);
+  private
+    { Private declarations }
+  public
+    { Public declarations }
+  end;
+
+var
+  SelDateTimeForm: TSelDateTimeForm;
+
+implementation
+
+
+{$R *.dfm}
+
+  procedure TSelDateTimeForm.FormShow(Sender: TObject);
+    var mousePos : TPoint;
+  begin
+    GetCursorPos(mousePos);
+    with SelDateTimeForm do begin
+      Top := mousePos.Y - 39;
+      Left := mousePos.X - 15;
+      if Left + Width > Screen.DesktopWidth then begin
+        Left := Screen.DesktopWidth - Width;
+      end;
+    end;
+  end;
+
+end.
+
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/SetSelU.dfm
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/SetSelU.dfm	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/SetSelU.dfm	(revision 541)
@@ -0,0 +1,76 @@
+object SetSelForm: TSetSelForm
+  Left = 529
+  Top = 124
+  Width = 240
+  Height = 70
+  BorderStyle = bsSizeToolWin
+  Caption = 'Pick Option'
+  Color = clBtnFace
+  Font.Charset = DEFAULT_CHARSET
+  Font.Color = clWindowText
+  Font.Height = -11
+  Font.Name = 'MS Sans Serif'
+  Font.Style = []
+  OldCreateOrder = False
+  OnShow = FormShow
+  DesignSize = (
+    232
+    36)
+  PixelsPerInch = 96
+  TextHeight = 13
+  object ComboBox: TComboBox
+    Left = 8
+    Top = 8
+    Width = 155
+    Height = 21
+    Anchors = [akLeft, akTop, akRight]
+    ItemHeight = 13
+    TabOrder = 0
+  end
+  object CancelBtn: TBitBtn
+    Left = 202
+    Top = 8
+    Width = 23
+    Height = 22
+    Anchors = [akTop, akRight]
+    ModalResult = 2
+    TabOrder = 2
+    Glyph.Data = {
+      76010000424D7601000000000000760000002800000020000000100000000100
+      0400000000000001000000000000000000001000000000000000000000000000
+      8000008000000080800080000000800080008080000080808000C0C0C0000000
+      FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00111111111111
+      1111111111111111111111111111111111111111111111111111111111111111
+      111111FF11111111FF111001111111100111177FF11111177F11100011111100
+      01111777FF1111777111110001111000111111777FF117771111111000110001
+      1111111777FF7771111111110000001111111111777777111111111110000111
+      1111111117777F1111111111100001111111111117777FF11111111100000011
+      11111111777777FF1111111000110001111111177711777FF111110001111000
+      1111117771111777FF1110001111110001111777111111777111100111111110
+      0111177111111117711111111111111111111111111111111111}
+    NumGlyphs = 2
+  end
+  object OKBtn: TBitBtn
+    Left = 170
+    Top = 8
+    Width = 23
+    Height = 22
+    Anchors = [akTop, akRight]
+    ModalResult = 1
+    TabOrder = 1
+    Glyph.Data = {
+      76010000424D7601000000000000760000002800000020000000100000000100
+      0400000000000001000000000000000000001000000000000000000000000000
+      8000008000000080800080000000800080008080000080808000C0C0C0000000
+      FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00555555555555
+      5555555555555555555555555555555555555555555555555555555555555555
+      5555555555555555555555555555555555555555555555555555555555055555
+      5555555555555555555555555000555555555555555555555555555500000555
+      5555555555555555555555550050005555555555555555555555555505550005
+      5555555555555555555555555555500555555555555555555555555555555505
+      5555555555555555555555555555555555555555555555555555555555555555
+      5555555555555555555555555555555555555555555555555555555555555555
+      5555555555555555555555555555555555555555555555555555}
+    NumGlyphs = 2
+  end
+end
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/SetSelU.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/SetSelU.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/SetSelU.pas	(revision 541)
@@ -0,0 +1,90 @@
+unit SetSelU;
+   (* 
+   WorldVistA Configuration Utility
+   (c) 8/2008 Kevin Toppenberg
+   Programmed by Kevin Toppenberg, Eddie Hagood  
+   
+   Family Physicians of Greeneville, PC
+   1410 Tusculum Blvd, Suite 2600
+   Greeneville, TN 37745
+   kdtop@yahoo.com
+                                                 
+   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 Street, Fifth Floor, Boston, MA  02110-1301  USA
+  *)   
+
+interface
+
+uses
+  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+  Dialogs, StdCtrls, Buttons,
+  ORNet, ORFn, ComCtrls, ToolWin, Grids, ORCtrls;
+
+type
+  TSetSelForm = class(TForm)
+    ComboBox: TComboBox;
+    CancelBtn: TBitBtn;
+    OKBtn: TBitBtn;
+    procedure FormShow(Sender: TObject);
+  private
+    { Private declarations }
+  public
+    { Public declarations }
+    procedure PrepForm(setDef : string);
+  end;
+
+var
+  SetSelForm: TSetSelForm;
+
+implementation
+{$R *.dfm}
+
+  procedure TSetSelForm.PrepForm(setDef : string);
+  var  oneOption : string;
+  begin
+    ComboBox.Items.Clear;
+    ComboBox.Text := '';
+    oneOption := 'x';
+    while (setDef <> '') and (oneOption <> '') do begin
+      oneOption := piece(setDef,';',1);
+      setDef := pieces(setDef,';',2,32);
+      oneOption := piece(oneOption,':',2);
+      if oneOption <> '' then begin
+        ComboBox.Items.Add(oneOption);
+      end;
+    end;
+    if ComboBox.Items.Count > 0 then begin
+//      ComboBox.Text := ComboBox.Items[0];
+      ComboBox.SelText := ComboBox.Items[0];
+    end else begin
+      ComboBox.Text := '(none defined)';
+    end;
+  end;
+
+
+  procedure TSetSelForm.FormShow(Sender: TObject);
+    var mousePos : TPoint;
+  begin
+    GetCursorPos(mousePos);
+    with SetSelForm do begin
+      Top := mousePos.Y - 39;
+      Left := mousePos.X - 15;
+      if Left + Width > Screen.DesktopWidth then begin
+        Left := Screen.DesktopWidth - Width;
+      end;
+    end;
+  end;
+
+end.
+
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/SubfilesU.dfm
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/SubfilesU.dfm	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/SubfilesU.dfm	(revision 541)
@@ -0,0 +1,312 @@
+object SubfileForm: TSubfileForm
+  Left = 239
+  Top = 266
+  Width = 769
+  Height = 385
+  BorderStyle = bsSizeToolWin
+  Caption = 'Edit Sub Files'
+  Color = clBtnFace
+  Font.Charset = DEFAULT_CHARSET
+  Font.Color = clWindowText
+  Font.Height = -11
+  Font.Name = 'MS Sans Serif'
+  Font.Style = []
+  Icon.Data = {
+    0000010001002020100000000000E80200001600000028000000200000004000
+    0000010004000000000080020000000000000000000000000000000000000000
+    000000008000008000000080800080000000800080008080000080808000C0C0
+    C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000
+    0000000000000000000000000000000000000000007777770000000000000000
+    0000000000000007000000000000000000000000000000070000000000000000
+    0000000000777007000000000000000000077070007770070000700000000000
+    0077000700787000000007000000000007708000077877000070007000000000
+    07088807777777770777000700000000008F88877FFFFF077887700700000000
+    00088888F88888FF08870070000000000000880888877778F070007000000007
+    77088888880007778F770077777000700008F088007777077F07000000700700
+    008F08880800077778F7700000700708888F0880F08F807078F7777700700708
+    F88F0780F070F07078F7887700700708888F0780F077807088F7777700700700
+    008F0788FF00080888F77000007000000008F0780FFFF0088F77007000000000
+    0008F07788000888887700700000000000008F07788888880870007000000000
+    00088FF0077788088887000700000000008F888FF00000F87887700700000000
+    0708F8088FFFFF88078700700000000007708000088888000070070000000000
+    0077007000888007000070000000000000077700008F80070007000000000000
+    0000000000888007000000000000000000000000000000070000000000000000
+    000000000777777700000000000000000000000000000000000000000000FFFF
+    FFFFFFFC0FFFFFFC0FFFFFF80FFFFFF80FFFFE180E7FFC00043FF800001FF800
+    000FF800000FFC00001FFE00001FE0000001C000000180000001800000018000
+    00018000000180000001FC00001FFC00001FFE00001FFC00000FF800000FF800
+    001FF800003FFC180C7FFE380EFFFFF80FFFFFF80FFFFFF80FFFFFFFFFFF}
+  OldCreateOrder = False
+  Position = poOwnerFormCenter
+  OnCreate = FormCreate
+  OnDestroy = FormDestroy
+  OnShow = FormShow
+  PixelsPerInch = 96
+  TextHeight = 13
+  object Splitter1: TSplitter
+    Left = 0
+    Top = 33
+    Height = 318
+  end
+  object Panel1: TPanel
+    Left = 0
+    Top = 0
+    Width = 761
+    Height = 33
+    Align = alTop
+    BevelInner = bvRaised
+    BevelOuter = bvLowered
+    TabOrder = 0
+    object SubFileLabel: TLabel
+      Left = 16
+      Top = 8
+      Width = 120
+      Height = 13
+      Caption = 'Pick and Edit Sub Entries'
+    end
+  end
+  object RightPanel: TPanel
+    Left = 188
+    Top = 33
+    Width = 573
+    Height = 318
+    Align = alClient
+    TabOrder = 1
+    object SubFileGrid: TStringGrid
+      Left = 1
+      Top = 1
+      Width = 571
+      Height = 285
+      Align = alClient
+      Color = 11075574
+      ColCount = 3
+      FixedColor = 12183481
+      FixedCols = 2
+      RowCount = 2
+      Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goDrawFocusSelected, goRowSizing, goColSizing, goEditing]
+      TabOrder = 0
+      OnClick = SubFileGridClick
+      OnSelectCell = SubFileGridSelectCell
+      RowHeights = (
+        24
+        24)
+    end
+    object ButtonPanel: TPanel
+      Left = 1
+      Top = 286
+      Width = 571
+      Height = 31
+      Align = alBottom
+      BevelInner = bvLowered
+      TabOrder = 1
+      DesignSize = (
+        571
+        31)
+      object ApplyBtn: TBitBtn
+        Left = 401
+        Top = 3
+        Width = 75
+        Height = 25
+        Anchors = [akRight, akBottom]
+        Caption = '&Apply'
+        TabOrder = 0
+        OnClick = ApplyBtnClick
+        Glyph.Data = {
+          36030000424D3603000000000000360000002800000010000000100000000100
+          18000000000000030000120B0000120B00000000000000000000FF00FF0274AC
+          0274AC0274AC0274AC0274AC0274AC0274AC0274AC0274AC0274AC0274AC0274
+          AC0274ACFF00FFFF00FF0274AC48BCF60274AC8CD8FA4BBFF74ABFF64ABFF74A
+          BFF74ABFF64ABFF74ABFF64BBFF62398CC97E0F20274ACFF00FF0274AC4FC4F7
+          0274AC92DDFB54C7F854C7F753C7F854C7F754C7F854C7F854C7F853C7F7279D
+          CE9DE3F20274ACFF00FF0274AC57CAF80274AC99E3FB5ED1FA5ED1FA5ED1FA5E
+          D1FA5ED1FA5FD1FA5ED1F85ED1F82CA1CEA3E9F30274ACFF00FF0274AC5ED3FA
+          0274ACA1E9FC69DCFA2C9D6703690804740A2C9C675ED0E269DCFA6ADDFB2FA6
+          CFA9EEF30274ACFF00FF0274AC67D9F70274ABA7EFFC74E5FB74E5FB39AC7E05
+          7F0B04800B157F2E70E2F674E5FB33A9CFACF0F40274ACFF00FF0274AC6FE3FA
+          0274ABFFFFFFBAF4FEB8F4FEBAF4FE58B27E05860D047E0A1E812DB8F4FE83C9
+          E0D4F7FA0274ACFF00FF0274AC7AEBFE0274AC0274AC0274AC0274AC0274AC02
+          6C7005830C06910D03681102709A0274AC0274AC0274ACFF00FF0274AC83F2FE
+          82F3FE82F3FE83F2FC83F3FE82F3FE5BC7B00A80140A9A14047B0B49B591036F
+          A7FF00FFFF00FFFF00FF0274ACFEFEFE89FAFF89FAFE89FAFE8AF8FE8AFAFE6C
+          D9C90F871F13A926098E122D9754036FA7FF00FFFF00FFFF00FFFF00FF0274AC
+          FEFEFE8FFEFF046B0B046B0B046B0B046B0B15932A1FB53812A123046B0B046B
+          0B046B0B046B0BFF00FFFF00FFFF00FF0274AC0274AC027399046B0B107D1D36
+          CE6032C95A27BC471DB03614A527098713046B0BFF00FFFF00FFFF00FFFF00FF
+          FF00FFFF00FFFF00FFFF00FF046B0B1D993541DE7535CC5D2BC24D1AA732046B
+          0BFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF04
+          6B0B27AC4546E37A35CA5C046B0BFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+          FF00FFFF00FFFF00FFFF00FFFF00FFFF00FF046B0B2DB851046B0BFF00FFFF00
+          FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+          00FFFF00FF046B0BFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF}
+      end
+      object RevertBtn: TBitBtn
+        Left = 317
+        Top = 3
+        Width = 75
+        Height = 25
+        Anchors = [akRight, akBottom]
+        Caption = '&Revert'
+        TabOrder = 1
+        OnClick = RevertBtnClick
+        Glyph.Data = {
+          36030000424D3603000000000000360000002800000010000000100000000100
+          18000000000000030000120B0000120B00000000000000000000FF00FFFF00FF
+          FF00FFFF00FFFF00FF000288010893010B99010C99010893000389FF00FFFF00
+          FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF000186010D9D021CAF021FB402
+          1FB5021FB5021FB2021CB0010F9F000287FF00FFFF00FFFF00FFFF00FFFF00FF
+          00038A0118B2021FB7021EB1021DB1021DB1021DB1021DB1021EB2021FB40219
+          AC00048EFF00FFFF00FFFF00FF0001830118BB0220CC011CBF0015B4011AB002
+          1DB1021DB1011CB00015AD011BB0021FB4021AAC000287FF00FFFF00FF010CA7
+          0121E0011CD30726CC4966D70B28BC0018B00019AF0622B44A66CE0D2BB7011B
+          B0021FB5010F9FFF00FF000187011CDC0120ED0017DC3655E2FFFFFFA4B4ED05
+          20BB0119B28B9EE1FFFFFF4E6ACF0014AC021EB2021CB000038900069A0120F8
+          011FF6001DE9031FE1738BEEFFFFFFA0B1ED93A5E7FFFFFF91A4E20823B4011B
+          B0021DB1021FB4010895020CAA0A2EFE0323FB011FF6001CEB0018E1788FF0FF
+          FFFFFFFFFF96A7EA021BB50019AF021DB1021DB10220B5010C99040EAC294DFE
+          0D30FB011FFA001CF7011CEE8EA1F4FFFFFFFFFFFFA6B6EE0520C20018B6021D
+          B1021DB10220B5010B980208A04162FB2F51FC001EFA0725FA8AA0FEFFFFFF8E
+          A3F67991F2FFFFFFA3B4EE0C29C6011BB8021DB4021FB2000793000189314FEF
+          7690FF0F2DFA3354FBFFFFFF91A5FE021EF30017E7738BF3FFFFFF4765E00016
+          C2021FBD021CB2000288FF00FF0C1BBC819AFF728BFE1134FA3456FB0526FA00
+          1CFA001CF40220ED3353ED0625DA011DD00220CB010DA1FF00FFFF00FF000189
+          2943E6A5B7FF849AFC2341FB0323FA011FFA011FFA001EF7011BEE021FE50121
+          E20118BF000184FF00FFFF00FFFF00FF01038F2A45E693A9FFABBBFF758FFE49
+          69FC3658FB3153FC2346FC092CF70118CB00038BFF00FFFF00FFFF00FFFF00FF
+          FF00FF0001890F1DBF3E5BF36B87FE728CFF5E7BFE395BFB1231EB010FB50001
+          84FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF000189030AA306
+          11B2050FB10107A0000188FF00FFFF00FFFF00FFFF00FFFF00FF}
+      end
+      object DoneBtn: TBitBtn
+        Left = 483
+        Top = 3
+        Width = 75
+        Height = 25
+        Anchors = [akRight, akBottom]
+        Caption = '&Done'
+        TabOrder = 2
+        OnClick = DoneBtnClick
+        Glyph.Data = {
+          76010000424D7601000000000000760000002800000020000000100000000100
+          0400000000000001000000000000000000001000000000000000000000000000
+          8000008000000080800080000000800080008080000080808000C0C0C0000000
+          FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00555555555555
+          5555555555555555555555555555555555555555555555555555555555555555
+          5555555555555555555555555555555555555555555555555555555555055555
+          5555555555555555555555555000555555555555555555555555555500000555
+          5555555555555555555555550050005555555555555555555555555505550005
+          5555555555555555555555555555500555555555555555555555555555555505
+          5555555555555555555555555555555555555555555555555555555555555555
+          5555555555555555555555555555555555555555555555555555555555555555
+          5555555555555555555555555555555555555555555555555555}
+        NumGlyphs = 2
+      end
+    end
+  end
+  object LeftPanel: TPanel
+    Left = 3
+    Top = 33
+    Width = 185
+    Height = 318
+    Align = alLeft
+    Caption = 'LeftPanel'
+    TabOrder = 2
+    object TreeView: TTreeView
+      Left = 1
+      Top = 1
+      Width = 183
+      Height = 281
+      Align = alClient
+      Indent = 19
+      SortType = stText
+      TabOrder = 0
+      OnChange = TreeViewChange
+      OnChanging = TreeViewChanging
+    end
+    object Panel5: TPanel
+      Left = 1
+      Top = 282
+      Width = 183
+      Height = 35
+      Align = alBottom
+      BevelInner = bvLowered
+      TabOrder = 1
+      DesignSize = (
+        183
+        35)
+      object AddBtn: TBitBtn
+        Left = 27
+        Top = 4
+        Width = 60
+        Height = 25
+        Anchors = [akLeft, akBottom]
+        Caption = '&Add'
+        TabOrder = 0
+        OnClick = AddBtnClick
+        Glyph.Data = {
+          36030000424D3603000000000000360000002800000010000000100000000100
+          18000000000000030000120B0000120B00000000000000000000FFFFFFFFFFFF
+          FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3830EFFFFFFFFFFFFFFFFFFFFFFF
+          FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEAE9FDF2F1FEFFFFFFFFFFFFFE
+          FFFF3830EFFFFFFFFFFFFFFFFFFFEFEEFEF3F2FEFFFFFFFFFFFFFFFFFFFFFFFF
+          FFFFFFF1F0FE4E48F17DBDF743FAF513F9F13830EF19F9F255FBF68FBDF75750
+          F2FCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDCFEFD3A5FF03830EF2F79F020
+          EDF31EFAF320EDF32E7AF03830EF4678F2F2FFFEFFFFFFFFFFFFFFFFFFFFFFFF
+          E9FEFE46FAF53599F23830EF3830EF3745F0359FF23745F03830EF3830EF33B2
+          F264FBF7FBFFFF473FF03830EFFFFFFF81FCF847FBF544D4F43830EF3830EF38
+          30EF3830EF3830EF3830EF3832EF44ECF53830EF3830EFACA8F8C6C4FA615FF2
+          3830EF5CFBF65BFAF63C45F03830EF3830EF3830EF3830EF3830EF405EF15AFB
+          F63830EF70FCF7FFFFFFFFFFFFCEFEFC70FCF770FCF759A8F43934EF3830EF38
+          30EF3830EF3830EF3830EF3A38EF5CB8F46EFCF76DFCF7F0FFFEFFFFFFCEFEFC
+          83F8F85482F23830EF3830EF3830EF3830EF3830EF3830EF3830EF3830EF3932
+          EF5897F381FBF8ECFFFEFFFFFFD2EDFC4B61F13830EF3830EF3830EF3830EF38
+          30EF3830EF3830EF3830EF3830EF3830EF3830EF5977F2F3F9FFFFFFFFBCBCFA
+          5E7AF3474FF04048F0424EF04046F03830EF3830EF3830EF4147F0444FF0434A
+          F04857F181A1F6CFCDFBFFFFFFFFFFFFDDFEFDADFDFA88FCF87FFBF765B3F438
+          30EF3830EF3831EF77DBF575CFF4A1FCF9B2FCFAECFEFEFFFFFFFFFFFFFFFFFF
+          FEFFFFDEFEFE3830EF3830EF97F6F74041F03830EF4E61F096FAF7BCFDFA3830
+          EFE6FEFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3830EF3830EFDFFDFDDFFDFD6C
+          6DF33830EF888EF6E7FEFEE8FEFEF3FFFE3830EFFFFFFFFFFFFFFFFFFFFFFFFF
+          FFFFFF3830EFFFFFFFFEFFFFFBFFFFE5E7FD524CF1F7FCFFFBFFFFFEFFFFFFFF
+          FFFFFFFF3830EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+          FFFFD7D6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF}
+      end
+      object DeleteBtn: TBitBtn
+        Left = 96
+        Top = 4
+        Width = 63
+        Height = 25
+        Anchors = [akLeft, akBottom]
+        Caption = '&Delete'
+        TabOrder = 1
+        OnClick = DeleteBtnClick
+        Glyph.Data = {
+          36030000424D3603000000000000360000002800000010000000100000000100
+          18000000000000030000120B0000120B00000000000000000000FFFFFFFFFFFF
+          FFFFFFFFFFFFFFFFFFFBFBFBF2F2F2EBEBECEBEBEDF2F2F2FBFBFBFFFFFFFFFF
+          FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCD5D5DFA3A3D88E8EE187
+          87E77373E77070E29292D8D1D1DEFCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+          D7D7EB7373DA3F3FF45F5FFF8D8DFFA0A0FF9B9BFF7F7FFF4242FE2525EE6D6D
+          D1D5D5E8FFFFFFFFFFFFFFFFFFE7E7EC4747DF3131F96060FF7A7AFF9494FFA6
+          A6FFAFAFFFA8A8FF9393FF7272FD3A3AEC4545D1E5E5EBFFFFFFEBEBF45B5BD9
+          2929F83E3EFF5252FF6060FF7B7BE5DFDFEFF8F8FDEEEEFDC1C1FD8686FE5A5A
+          FF3B3BF05A5ACDE9E9F2B3B3E42424E62222FF2B2BFF3D3DFF4A4AFF3131F762
+          62DFEEEEEFFFFFFFFCFCFFDFDFFD6363FD3939FF2E2EDCB0B0DE6B6BDB0808F7
+          1A1AFE4B4BFC2E2EFF2F2FFF3E3EFF2828FA4A4ADAC8C8E3FEFEFEFFFFFFC8C8
+          FA3A3AFC1818F46C6CD44A4ADD0101FD2B2BFBBBBBF97878FC2A2AFF2424FF2C
+          2CFE2222F03737D5CDCDDFFDFDFDE4E4F64B4BF60A0AFD4A4AD94444E00101FF
+          3636F4DADAF3F8F8FEA8A8FC4343FE5454FF5959FF3C3CF32323CD9A9AD0D2D2
+          E73535E70101FF4343DF5F5FE33C3CFE3737F1AAAADFFFFFFFFCFCFEADADFC5E
+          5EFE8181FF7C7CFF3535EE1818C55A5AB81717E50101FF5353E3A0A0EC6666F7
+          6464FC3838D1C4C4DBF8F8F8FFFFFFD8D8FC6969FD8181FF8D8DFF5454F80D0D
+          D65959F55353F79999ECD9D9F55E5EEF9292FF4747F64242C38787C2DDDDDFF0
+          F0F0C5C5EE6969F19191FF9D9DFF7474FC9090FE5D5DF0D7D7F4FFFFFFC1C1EF
+          6D6DF49D9DFE5C5CFA3636DF2222C33333B82F2FB81B1BC63F3FF99C9CFFA7A7
+          FE6E6EF4BEBEEFFFFFFFFFFFFFFEFEFEB2B2F06F6FEFA7A7FF9999FF6F6FF851
+          51F34D4DF36565F89393FFA9A9FF7070EFB0B0F0FEFEFEFFFFFFFFFFFFFFFFFF
+          FFFFFFF1F1FA9494ED9090F3A7A7F6AAAAF7AAAAF7A7A7F69292F39494EDF0F0
+          FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFEEBEBF9D0D0F6CB
+          CBF6CBCBF6D0D0F6EBEBF9FDFDFEFFFFFFFFFFFFFFFFFFFFFFFF}
+      end
+    end
+  end
+end
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/SubfilesU.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/SubfilesU.pas	(revision 541)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/SubfilesU.pas	(revision 541)
@@ -0,0 +1,418 @@
+unit SubfilesU;
+   (* 
+   WorldVistA Configuration Utility
+   (c) 8/2008 Kevin Toppenberg
+   Programmed by Kevin Toppenberg, Eddie Hagood  
+   
+   Family Physicians of Greeneville, PC
+   1410 Tusculum Blvd, Suite 2600
+   Greeneville, TN 37745
+   kdtop@yahoo.com
+                                                 
+   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 Street, Fifth Floor, Boston, MA  02110-1301  USA
+  *)   
+
+interface
+
+uses
+  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+  StrUtils, fPtDemoEdit,
+  Dialogs, StdCtrls, ExtCtrls, Grids, ComCtrls, Buttons;
+
+type
+  TSubfileForm = class(TForm)
+    Panel1: TPanel;
+    TreeView: TTreeView;
+    SubFileGrid: TStringGrid;
+    Splitter1: TSplitter;
+    SubFileLabel: TLabel;
+    RightPanel: TPanel;
+    ButtonPanel: TPanel;
+    ApplyBtn: TBitBtn;
+    RevertBtn: TBitBtn;
+    DoneBtn: TBitBtn;
+    LeftPanel: TPanel;
+    Panel5: TPanel;
+    AddBtn: TBitBtn;
+    DeleteBtn: TBitBtn;
+    procedure TreeViewChange(Sender: TObject; Node: TTreeNode);
+    procedure TreeViewChanging(Sender: TObject; Node: TTreeNode; var AllowChange: Boolean);
+    procedure FormCreate(Sender: TObject);
+    procedure FormDestroy(Sender: TObject);
+    procedure SubFileGridSelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean);
+    procedure AddBtnClick(Sender: TObject);
+    procedure FormShow(Sender: TObject);
+    procedure RevertBtnClick(Sender: TObject);
+    procedure ApplyBtnClick(Sender: TObject);
+    procedure SubFileGridClick(Sender: TObject);
+    procedure DoneBtnClick(Sender: TObject);
+    procedure DeleteBtnClick(Sender: TObject);
+  private
+    { Private declarations }
+    Root  : TTreeNode;
+    FSubFileNum : string;
+    FParentIENS : string;
+    IENS_Store : TStringList;
+    BlankFileInfo : TStringList;
+    //FLastSelectedRow : integer;
+    FLastSelectedNode : TTreeNode;
+    AllSubRecords : TStringList;
+    LastAddNum : integer;
+    IgnoreSelections : boolean;
+    CurrentSubFileData : TStringList;   
+    GridInfo : TGridInfo;
+    ModifiedForm : boolean;  //Used to see if current record is unsaved
+    procedure CompileChanges(Grid : TStringGrid; CurrentUser,Changes : TStringList);
+    procedure PostChanges(Grid : TStringGrid; IENS : string; SilentMode : boolean = false);
+    procedure GetAllSubRecords(SubFileNum, ParentIENS : string; SubRecsList : TStringList);
+    procedure InitTreeView;
+    Procedure LoadTreeView(AllSubRecords : TStringList);
+    Procedure ClearTreeView;
+//    procedure ClearGrid;
+    function GetIENS(Node: TTreeNode) : string;
+    function StoreIENS(IENS: string) : integer;
+  public
+    { Public declarations }
+    procedure PrepForm(subFileNum : string; ParentIENS : string);
+  end;
+
+const
+  MSG_SUB_FILE = 'SubFile';
+
+implementation
+
+uses
+  ORNet, ORFn, ORCtrls,
+  Trpcb,  //needed for .ptype types
+  ToolWin, SelDateTimeU,  SetSelU,LookupU, PostU, FMErrorU;
+
+{$R *.dfm}
+
+  procedure TSubfileForm.PrepForm(subFileNum : string; ParentIENS : string);
+  //Format is: FileNum^IENS^FieldNum^ExternalValue^DDInfo...
+  begin
+    GridInfo.Grid := SubFileGrid;
+    GridInfo.Data := CurrentSubFileData;  
+    GridInfo.BasicMode := false;
+    GridInfo.FileNum := subFileNum;
+    GridInfo.IENS := ParentIENS;
+    GridInfo.ApplyBtn := ApplyBtn;
+    GridInfo.RevertBtn := RevertBtn;
+    //fPtDemoEdit.RegisterGridInfo(GridInfo);
+
+    BlankFileInfo.Clear;
+    IENS_Store.Clear;
+    FSubFileNum := subFileNum;
+    FParentIENS := ParentIENS;
+    self.caption := 'Edit Sub-File Entries in Subfile #' + subFileNum;
+    ClearTreeView;
+    InitTreeView;
+  end;
+
+  procedure TSubfileForm.InitTreeView;
+  begin
+    IgnoreSelections := true;
+    GetAllSubRecords(FSubFileNum,FParentIENS, AllSubRecords);
+    //fPtDemoEdit.ClearGrid(SubFileGrid);
+    LoadTreeView(AllSubRecords);
+    Root.Expand(true);
+    IgnoreSelections := false;
+  end;
+  
+  Procedure TSubfileForm.LoadTreeView(AllSubRecords : TStringList);
+  //Format is: FullIENS^.01Value
+
+  var i : integer;
+      dataLine : integer;
+      oneEntry,value,Name,IENS : string;
+  begin
+    ClearTreeView;
+    for i := 1 to AllSubRecords.Count-1 do begin    //0 is 1^Success
+      oneEntry := AllSubRecords.Strings[i];
+      IENS := Piece(oneEntry,'^',1);
+      value := Piece(oneEntry,'^',2);
+      dataLine := StoreIENS(IENS);
+      Name := value;
+      //Name := value + '^'+ IENS;
+      //TreeView.Items.AddChild(Root,Name);
+      TreeView.Items.AddChildObject(Root,Name,Pointer(dataLine));
+    end;
+  End;
+
+  Procedure TSubfileForm.ClearTreeView;
+  begin  
+    TreeView.Items.Clear;
+    IENS_Store.Clear;
+    Root := TreeView.Items.Add(nil,'Subrecords');
+    //if Root.HasChildren then Root.DeleteChildren;
+//    ClearGrid;
+    //fPtDemoEdit.ClearGrid(SubFileGrid);
+    
+  end;
+  
+
+  procedure TSubfileForm.TreeViewChanging(Sender: TObject; Node: TTreeNode;
+    var AllowChange: Boolean);
+  begin
+    ApplyBtnClick(self);
+  end;
+  
+  procedure TSubfileForm.TreeViewChange(Sender: TObject; Node: TTreeNode);
+  begin
+    FLastSelectedNode := Node;
+    GridInfo.IENS := GetIENS(Node);
+    frmPtDemoEdit.GetOneRecord(GridInfo.FileNum, GridInfo.IENS, GridInfo.Data, BlankFileInfo);
+    frmPtDemoEdit.LoadAnyGridFromInfo(GridInfo);
+  end;
+
+  function TSubfileForm.GetIENS(Node: TTreeNode) : string;
+  var dataLine : integer;
+  begin
+    if Node= nil then exit;
+    dataLine := integer(Node.Data);
+    if dataLine < IENS_Store.Count then begin
+      result := IENS_Store.Strings[dataLine];
+    end else result := '';
+  end;
+
+  function TSubfileForm.StoreIENS(IENS: string) : integer;
+  begin
+    result := IENS_Store.Add(IENS);
+  end;
+  
+  
+  procedure TSubfileForm.GetAllSubRecords(SubFileNum, ParentIENS : string; SubRecsList : TStringList);
+  var  cmd,RPCResult : string;
+  begin
+    SubRecsList.Clear;
+    RPCBrokerV.remoteprocedure := 'TMG CHANNEL';
+    RPCBrokerV.Param[0].Value := '.X';  // not used
+    RPCBrokerV.param[0].ptype := list;
+    cmd := 'GET SUB RECS LIST' + '^' + SubFileNum + '^' + ParentIENS;
+    RPCBrokerV.Param[0].Mult['"REQUEST"'] := cmd;
+    RPCBrokerV.Call;
+    RPCResult := RPCBrokerV.Results[0];    //returns:  error: -1;  success=1
+    if piece(RPCResult,'^',1)='-1' then begin
+      FMErrorForm.Memo.Lines.Assign(RPCBrokerV.Results);
+      FMErrorForm.PrepMessage;
+      FMErrorForm.ShowModal;
+    end else begin
+      SubRecsList.Assign(RPCBrokerV.Results);
+    end;
+  end;
+  
+  procedure TSubfileForm.FormCreate(Sender: TObject);
+  begin
+    AllSubRecords := TStringList.Create;
+    BlankFileInfo := TStringList.Create;
+    IENS_Store := TStringList.Create;
+    CurrentSubFileData := TStringList.Create;  
+    GridInfo := TGridInfo.Create;
+
+    ModifiedForm := False;   
+  end;
+
+  procedure TSubfileForm.FormDestroy(Sender: TObject);
+  begin
+    AllSubRecords.Free;
+    BlankFileInfo.Free;
+    IENS_Store.Free;
+    CurrentSubFileData.Free;
+//    fPtDemoEdit.UnRegisterGridInfo(GridInfo);
+    GridInfo.Free;
+  end;
+
+  procedure TSubfileForm.SubFileGridSelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean); 
+  begin
+    GridInfo.Message := MSG_SUB_FILE;
+    frmPtDemoEdit.gridPatientDemoSelectCell(Sender, ACol, ARow, CanSelect);
+  end;
+
+  
+  procedure TSubfileForm.AddBtnClick(Sender: TObject);
+  var Name,IENS : string;
+      tempNode : TTreeNode;
+      dataLine : integer;
+  begin
+    RevertBtn.Enabled := True;
+    ApplyBtn.Enabled := True;
+    ModifiedForm := True;
+    Inc(LastAddNum);
+    IENS := '+' + IntToStr(LastAddNum) + ',' + FParentIENS;
+    Name := '<NEW>';
+    dataLine := StoreIENS(IENS);
+    tempNode := TreeView.Items.AddChildObject(Root,Name,Pointer(dataLine));
+    frmPtDemoEdit.GetOneRecord(FSubfileNum,IENS,CurrentSubFileData, BlankFileInfo);
+    Root.expand(true);
+    TreeView.Select(tempNode);
+  end;
+
+  procedure TSubfileForm.FormShow(Sender: TObject);
+  begin
+    LastAddNum := 0;
+  end;
+
+  procedure TSubfileForm.RevertBtnClick(Sender: TObject);
+  begin
+    ModifiedForm := False;
+    frmPtDemoEdit.LoadAnyGridFromInfo(GridInfo);
+  end;
+
+  procedure TSubfileForm.ApplyBtnClick(Sender: TObject);
+  var  IENS : string;
+  begin
+    ModifiedForm := False;
+    IENS := GetIENS(FLastSelectedNode);
+    PostChanges(SubFileGrid,IENS);
+  end;
+
+  procedure TSubfileForm.SubFileGridClick(Sender: TObject);
+  //var sel : TGridRect;
+  //    temp : boolean;
+  begin
+    ModifiedForm := True;
+    RevertBtn.Enabled := True;
+    ApplyBtn.Enabled := True;
+    {//kt Eddie, what was the purpose of this?  Causes unexpected click
+          when returning from sub-sub file...
+    Sel := SubFileGrid.Selection;
+    if Sel.Top <> FLastSelectedRow then begin
+      SubFileGridSelectCell(SubFileGrid, Sel.Left, Sel.Top, temp);    
+    end;
+    }
+  end;
+
+  
+  procedure TSubfileForm.PostChanges(Grid : TStringGrid; IENS : string; SilentMode : boolean);
+  
+    function NewIENS(oldIENS : string; PostResults : TStringList) : string;
+    //format of PostResults is:  oldIENS^newIENS
+    var i : integer;
+        oneEntry : string;
+        newIENS,
+        parentIENS : string;
+    begin
+      result := '';
+      newIENS := piece(oldIENS,',',1);   // +1,123, --> +1
+      parentIENS := MidStr(oldIENS,length(newIENS)+1,99);
+      newIENS := piece(newIENS,'+',2);   // +1 --> 1
+      for i := 1 to PostResults.Count-1 do begin  //0 is 1^Success
+        oneEntry := PostResults.Strings[i];
+        if piece(oneEntry,'^',1) <> newIENS then continue;
+        result := piece(oneEntry,'^',2) + parentIENS;
+        break;                
+      end;
+    end;
+    
+  var Changes : TStringList;
+      PostResult : TModalResult;
+  begin
+    Changes := TStringList.Create;
+    CompileChanges(Grid,CurrentSubFileData,Changes);
+    if Changes.Count>0 then begin      
+      if SilentMode = false then begin
+        PostForm.PrepForm(Changes);
+        PostResult := PostForm.ShowModal;
+      end else begin
+        PostResult := PostForm.SilentPost(Changes);
+      end;  
+      if PostResult in [mrOK,mrNone] then begin
+        RevertBtn.Enabled := false;
+        ApplyBtn.Enabled := false;
+        if PostResult = mrOK then InitTreeView;
+      end else if PostResult = mrNo then begin  //mrNo is signal of post Error
+        // show error...
+      end;
+    end;  
+    Changes.Free;
+  end;
+
+  procedure TSubfileForm.CompileChanges(Grid : TStringGrid; CurrentUser,Changes : TStringList);
+  //Output format:
+  // FileNum^IENS^FieldNum^FieldName^newValue^oldValue
+
+  var row : integer;
+      Entry : tFileEntry;
+      oneEntry : string;
+  begin
+    for row := 1 to Grid.RowCount-1 do begin
+      Entry := frmPtDemoEdit.GetLineInfo(Grid,CurrentSubFileData,row);
+      if (Entry.oldValue <> Entry.newValue) then begin
+        if (Entry.newValue <> CLICK_FOR_SUBS) and
+          (Entry.newValue <> COMPUTED_FIELD) and
+          (Entry.newValue <> CLICK_TO_EDIT) then begin   
+          oneEntry := Entry.FileNum + '^' + Entry.IENS + '^' + Entry.Field + '^' + Entry.FieldName;
+          oneEntry := oneEntry + '^' + Entry.newValue + '^' + Entry.oldValue;
+          Changes.Add(oneEntry);
+        end;  
+      end;
+    end;
+  end;
+
+  
+  procedure TSubfileForm.DoneBtnClick(Sender: TObject);
+  var Changes : TStringList;
+  begin
+    if ModifiedForm = True then begin
+      Changes := TStringList.Create;
+      CompileChanges(SubFileGrid,CurrentSubFileData,Changes);
+      if Changes.Count>0 then begin
+        ApplyBtnClick(self);
+        ModalResult := mrNo;
+      end else begin
+        ModalResult := mrNo;    
+      end;    
+    end else begin
+      ModalResult := mrNo;      
+    end;   
+  end;
+
+  procedure TSubfileForm.DeleteBtnClick(Sender: TObject);
+  var  IENS : string;
+       row,ARow : integer;
+       response: integer;
+  begin
+    //The rows can be rearranged, so row 1 will not reliably hold
+    //the .01 field.  And if there is a .001 field, it might be
+    //shown above the .01 field etc.
+    response := messagedlg('Are you sure you want to delete ' + TreeView.Selected.Text,mtWarning,[mbYes,mbNo],0);
+    if response = mrYes then begin
+      ARow := 0;
+      for row := 1 to SubFileGrid.RowCount-1 do begin
+        if SubFileGrid.Cells[0,row]='.01' then begin
+          ARow := row; break;
+        end;  
+      end;      
+      if ARow > 0 then begin
+        SubFileGrid.Cells[2,ARow] := '@';   //columns can't be rearranged (for now)
+        IENS := GetIENS(FLastSelectedNode);
+     //I wonder what Fileman will say if the .01 field has '@'
+     //  and there are other fields with changes also.  I might
+     //  complain about making changes and a deletion at the same
+     //  time.  Perhaps we ought to have a custom delete function
+     //  that deletes everything from the CompiledChanges except for
+     //  the .01 record.  Let's wait and see if this is a problem or
+     //  not first.
+        PostChanges(SubfileGrid,IENS,true);  //<-- true = SilentMode
+      end else begin
+       MessageDlg('Unable to find row containing .01 field',mtError,[mbOK],0);
+      end;  
+    end;  
+  end;
+
+  
+
+end.
+
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/fPtDemoEdit.dfm
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/fPtDemoEdit.dfm	(revision 498)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/fPtDemoEdit.dfm	(revision 541)
@@ -1,5 +1,5 @@
 object frmPtDemoEdit: TfrmPtDemoEdit
-  Left = 322
-  Top = 116
+  Left = 279
+  Top = 142
   Width = 684
   Height = 498
@@ -58,8 +58,10 @@
     Width = 676
     Height = 424
-    ActivePage = DemoTabSheet
+    ActivePage = Advanced
     Align = alTop
     Anchors = [akLeft, akTop, akRight, akBottom]
     TabOrder = 3
+    OnChange = PageControlChange
+    OnChanging = PageControlChanging
     object DemoTabSheet: TTabSheet
       Caption = 'Demographics'
@@ -581,4 +583,18 @@
       end
     end
+    object Advanced: TTabSheet
+      Caption = 'Advanced'
+      ImageIndex = 1
+      object gridPatientDemo: TStringGrid
+        Left = 0
+        Top = 0
+        Width = 665
+        Height = 393
+        Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goEditing]
+        TabOrder = 0
+        OnSelectCell = gridPatientDemoSelectCell
+        OnSetEditText = gridPatientDemoSetEditText
+      end
+    end
   end
   object DKLanguageController1: TDKLanguageController
@@ -587,5 +603,5 @@
     LangData = {
       0D0066726D507444656D6F45646974010100000001000000070043617074696F
-      6E013900000005004F4B42746E010100000002000000070043617074696F6E00
+      6E013B00000005004F4B42746E010100000002000000070043617074696F6E00
       090043616E63656C42746E010100000003000000070043617074696F6E000800
       4170706C7942746E010100000004000000070043617074696F6E000B00506167
@@ -634,5 +650,6 @@
       617074696F6E0006004C6162656C3201010000002B000000070043617074696F
       6E0006004C6162656C3301010000002C000000070043617074696F6E00090045
-      4D61696C456469740000}
+      4D61696C4564697400000800416476616E63656401010000002D000000070043
+      617074696F6E000F006772696450617469656E7444656D6F0000}
   end
 end
Index: cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/fPtDemoEdit.pas
===================================================================
--- cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/fPtDemoEdit.pas	(revision 498)
+++ cprs/branches/tmg-cprs/CPRS-Chart/TMG_Extra/fPtDemoEdit.pas	(revision 541)
@@ -6,9 +6,32 @@
 uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
-  Dialogs, ComCtrls, StdCtrls, ExtCtrls, DKLang;
+  Dialogs, ComCtrls, StdCtrls, ExtCtrls, DKLang, Grids;
 
 type
   BoolUC = (bucFalse, bucTrue, bucUnchanged);
-  
+
+  tFileEntry = record
+    Field     : string;
+    FileNum   : string;
+    FieldName : String;
+    IENS      : string;
+    oldValue,newValue : string;
+  end;
+
+  TGridInfo = class;  //forward declaration
+  TGridDataLoader = procedure (GridInfo: TGridInfo) of object;
+  TGridInfo = class (TObject)
+  public
+    Grid      : TStringGrid;  //doesn't own object
+    FileNum   : string;
+    IENS      : string;
+    BasicMode : Boolean;
+    Data      : TStringList;  //doesn't own object
+    Message   : string;  //optional text.
+    DataLoadProc : TGridDataLoader;
+    ApplyBtn  : TButton;
+    RevertBtn : TButton;
+  end;
+
   TPatientInfo = class(TObject)
   public
@@ -58,5 +81,5 @@
 
     Modified : boolean;
-      
+
     constructor Create;
     destructor Destroy; override;
@@ -126,4 +149,6 @@
     DKLanguageController1: TDKLanguageController;
     EMailEdit: TEdit;
+    Advanced: TTabSheet;
+    gridPatientDemo: TStringGrid;
     procedure AliasComboBoxChange(Sender: TObject);
     procedure FormCreate(Sender: TObject);
@@ -162,4 +187,11 @@
     procedure DOBEditChange(Sender: TObject);
     procedure SSNumEditChange(Sender: TObject);
+    procedure PageControlChange(Sender: TObject);
+    procedure gridPatientDemoSelectCell(Sender: TObject; ACol,
+      ARow: Integer; var CanSelect: Boolean);
+    procedure gridPatientDemoSetEditText(Sender: TObject; ACol,
+      ARow: Integer; const Value: String);
+    procedure PageControlChanging(Sender: TObject;
+      var AllowChange: Boolean);
   private
     { Private declarations }
@@ -167,20 +199,52 @@
     FServerPatientInfo : TPatientInfo;
     FCurAliasEdit : integer;
+    CurrentAnyFileData : TStringList;
     ProgAliasChangeOccuring : boolean;
+    CurrentPatientData : TStringList;
     ProgNameChangeOccuring : boolean;
     ProgPhoneChangeOccuring : boolean;
+    FLastSelectedRow,FLastSelectedCol : integer;
     ProgAddressChangeOccuring : boolean;
+    DataForGrid : TStringList;
     MaxAliasIEN : integer;
+    Data : TStringList;
     ChangesMade : boolean;
+    BasicTemplate : TStringList;
+    FLoadingGrid: boolean;
+    CachedWPField : TStringList;
     procedure GetPtInfo(PatientInfo : TPatientInfo);
     procedure PostChangedInfo(PatientInfo : TPatientInfo);
     procedure ShowAliasInfo(Patient : TPatientInfo);
+    procedure GetPatientInfo(GridInfo: TGridInfo);
     procedure ShowPtInfo(Patient : TPatientInfo);
     function CombinedName : string;
+    procedure AddGridInfo(Grid: TStringGrid;
+                                  Data : TStringList;
+                                  BasicMode : boolean;
+                                  DataLoader : TGridDataLoader;
+                                  FileNum : string);
     procedure NameParts(CombinedName: string; var LName, FName, MName : string);
+    function ExtractNum (S : String; StartPos : integer) : string;
     procedure SetModified(value : boolean);
     procedure SetAliasEnabled(value : boolean);
+    function PostChanges(Grid : TStringGrid) : TModalResult;
+    procedure CompileChanges(Grid : TStringGrid; CurrentUserData,Changes : TStringList);
+    procedure RegisterGridInfo(GridInfo : TGridInfo);
   public
     { Public declarations }
+    function GetInfoForGrid(Grid : TStringGrid) : TGridInfo;
+    procedure LoadAnyGrid(Grid : TStringGrid; BasicMode: boolean; FileNum : string;
+                                  IENS : string;
+                                  CurrentData : TStringList);
+    procedure LoadAnyGridFromInfo(GridInfo : TGridInfo);
+    function IsWPField(FileNum,FieldNum : string) : boolean;
+    function IsSubFile(FieldDef: string ; var SubFileNum : string) : boolean;
+    function GetInfoIndexForGrid(Grid : TStringGrid) : integer;
+    function PostVisibleGrid: TModalResult;
+    function GetLineInfo(Grid : TStringGrid; CurrentUserData : TStringList; ARow: integer) : tFileEntry;
+    procedure GetOneRecord(FileNum, IENS : string; Data, BlankFileInfo: TStringList);
+    //procedure GridSelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean);
+    function GetUserLine(CurrentUserData : TStringList; Grid : TStringGrid; ARow: integer) : integer;
+    function FindInStrings(fieldNum : string; Strings : TStringList; var fileNum : string) : integer;
   end;
 
@@ -188,4 +252,11 @@
   frmPtDemoEdit: TfrmPtDemoEdit;
 
+Const
+  DEF_GRID_ROW_HEIGHT = 17;  
+  CLICK_FOR_SUBS = '<CLICK for Sub-Entries>';
+  COMPUTED_FIELD = '<Computed Field --> CAN''T EDIT>';
+  CLICK_TO_EDIT = '<CLICK to Edit Text>';
+  HIDDEN_FIELD = '<Hidden>';
+
 implementation
 
@@ -193,5 +264,6 @@
 
 uses
-  IniFiles,Trpcb,ORNet,uCore, mfunstr, strutils;
+  IniFiles,Trpcb,ORNet,uCore, mfunstr, subfilesU, strutils, LookupU, SetSelU,
+  SelDateTimeU, PostU, EditTextU, FMErrorU;
 
 const
@@ -218,4 +290,5 @@
 begin
   AliasInfo := TStringList.Create;
+  
   Clear;
 end;
@@ -250,4 +323,5 @@
   DOB:= '';
   SSNum:= '';
+  EMail:= '';
   ClearAliasInfo;  
   AddressLine1:= '';
@@ -300,4 +374,5 @@
   DOB:=Source.DOB;
   SSNum:=Source.SSNum;
+  EMail:=Source.EMail;
   
   ClearAliasInfo;
@@ -424,4 +499,5 @@
   CompStrs(DOB, OldInfo.DOB);
   CompStrs(SSNum, OldInfo.SSNum);
+  CompStrs(EMail, OldInfo.EMail);
   
   CompStrs(AddressLine1, OldInfo.AddressLine1);
@@ -554,4 +630,5 @@
     Sex:= tempINI.ReadString('DATA','SEX','');
     SSNum:= tempINI.ReadString('DATA','SS_NUM','');
+    EMail:= tempINI.ReadString('DATA','EMAIL','');
     AddressLine1:= tempINI.ReadString('DATA','ADDRESS_LINE_1','');
     AddressLine2:= tempINI.ReadString('DATA','ADDRESS_LINE_2','');
@@ -621,4 +698,5 @@
     CheckPost('SEX',Sex);
     CheckPost('SS_NUM',SSNum);
+    CheckPost('EMAIL',EMail);
     CheckPost('ADDRESS_LINE_1',AddressLine1);
     CheckPost('ADDRESS_LINE_2',AddressLine2);
@@ -690,4 +768,5 @@
     DOBEdit.Text := DOB;
     SSNumEdit.Text := SSNum;
+    EMailEdit.Text := EMail;
     if Sex='MALE' then SexComboBox.ItemIndex := 0 else SexComboBox.ItemIndex := 1;
     AliasComboBox.Items.Clear;
@@ -748,5 +827,5 @@
     end;  
     ShowAliasInfo(FCurPatientInfo);
-  end;  
+  end;
 end;
 
@@ -756,4 +835,5 @@
   FCurPatientInfo := TPatientInfo.Create;
   FServerPatientInfo := TPatientInfo.Create;
+  DataForGrid := TStringList.Create;  //will own GridInfo objects.
   ProgAliasChangeOccuring  := false;
   ProgNameChangeOccuring := false;
@@ -762,10 +842,15 @@
   MaxAliasIEN := 0;
   ChangesMade := false;
+  CurrentPatientData := TStringList.Create;
+  AddGridInfo(GridPatientDemo,CurrentPatientData,false,GetPatientInfo,'2');
+
 end;
 
 procedure TfrmPtDemoEdit.FormDestroy(Sender: TObject);
 begin
+  DataForGrid.Free;
   FCurPatientInfo.Destroy;
   FServerPatientInfo.Destroy;
+  CurrentPatientData.Free;
 end;
 
@@ -887,7 +972,8 @@
 procedure TfrmPtDemoEdit.FormShow(Sender: TObject);
 begin
+  PageControl.ActivePageIndex := 0;
   GetPtInfo(FServerPatientInfo);
   FCurPatientInfo.Assign(FServerPatientInfo);
-  ShowPtInfo(FCurPatientInfo);  
+  ShowPtInfo(FCurPatientInfo);
 end;
 
@@ -1178,4 +1264,5 @@
 var TempPatientInfo : tPatientInfo;
 begin
+if pagecontrol.ActivePageIndex = 0 then begin
   TempPatientInfo := tPatientInfo.Create;
   TempPatientInfo.Assign(FCurPatientInfo);
@@ -1184,5 +1271,90 @@
   TempPatientInfo.Destroy;
   SetModified(false);
-end;
+end else begin
+  PostVisibleGrid;
+  SetModified(false);
+end;
+end;
+function TfrmPtDemoEdit.PostVisibleGrid: TModalResult;
+  begin
+    result := PostChanges(gridPatientDemo);
+  end;
+
+function TfrmPtDemoEdit.PostChanges(Grid : TStringGrid) : TModalResult;
+  //Results:  mrNone -- no post done (not needed)
+  //          mrCancel -- user pressed cancel on confirmation screen.
+  //          mrNo -- signals posting error.
+  var Changes : TStringList;
+      PostResult : TModalResult;
+      CurrentData : TStringList;
+      GridInfo : TGridInfo;
+      IENS : string;  
+  begin
+    Result := mrNone;  //default to No changes
+    GridInfo := GetInfoForGrid(Grid);
+    if GridInfo=nil then exit;
+    CurrentData := GridInfo.Data;
+    if CurrentData=nil then exit;
+    if CurrentData.Count = 0 then exit;
+    IENS := Patient.DFN;
+    if IENS='' then exit;
+    Changes := TStringList.Create;
+    CompileChanges(Grid,CurrentData,Changes);
+    if Changes.Count>0 then begin
+      PostForm.PrepForm(Changes);
+      PostResult := PostForm.ShowModal;
+      if PostResult = mrOK then begin
+        //if DisuserChanged(Changes) then begin  //looks for change in file 200, field 4
+        //  InitializeUsersTreeView;
+        //end else begin
+          if Pos('+',IENS)>0 then begin
+            GridInfo.IENS := PostForm.GetNewIENS(IENS);
+          end;
+          if assigned(GridInfo.DataLoadProc) then begin
+            GridInfo.DataLoadProc(GridInfo);
+          end;
+          {
+          if CurrentData = CurrentUserData then begin
+            LoadUserData(IENS,CurrentData);  //reload record from server.
+          end else if CurrentData = CurrentSettingsData then begin
+            GetSettingsInfo(GridInfo.FileNum, GridInfo.IENS, CurrentData);
+          end else if CurrentData = CurrentPatientData then begin
+            GetPatientInfo(GridInfo.IENS, CurrentData);            
+          end else if CurrentData = CurrentAnyFileData then begin
+            GetAnyFileInfo(GridInfo.FileNum, GridInfo.IENS, CurrentData);
+          end;  
+          }
+        //end;  
+      end else if PostResult = mrNo then begin  //mrNo is signal of post Error
+        // show error...
+      end;
+      Result := PostResult;
+    end else begin
+      Result := mrNone;  
+    end;
+    Changes.Free;
+  end;
+
+  procedure TfrmPtDemoEdit.CompileChanges(Grid : TStringGrid; CurrentUserData,Changes : TStringList);
+  //Output format:
+  // FileNum^IENS^FieldNum^FieldName^newValue^oldValue
+
+  var row : integer;
+      Entry : tFileEntry;
+      oneEntry : string;
+  begin
+    for row := 1 to Grid.RowCount-1 do begin
+      Entry := GetLineInfo(Grid,CurrentUserData, row);
+      if Entry.oldValue <> Entry.newValue then begin
+        if (Entry.newValue <> CLICK_FOR_SUBS) and
+          (Entry.newValue <> COMPUTED_FIELD) and
+          (Entry.newValue <> CLICK_TO_EDIT) then begin   
+          oneEntry := Entry.FileNum + '^' + Entry.IENS + '^' + Entry.Field + '^' + Entry.FieldName;
+          oneEntry := oneEntry + '^' + Entry.newValue + '^' + Entry.oldValue;
+          Changes.Add(oneEntry);
+        end;  
+      end;
+    end;
+  end;
 
 procedure TfrmPtDemoEdit.SetModified(value : boolean);
@@ -1219,6 +1391,6 @@
     case MessageDlg('Apply Changes?',mtConfirmation,mbYesNoCancel,0) of
       mrYes : begin
-                ApplyBtnClick(Sender);    
-                frmPtDemoEdit.ModalResult := mrOK;  //closes form                                        
+                ApplyBtnClick(Sender);
+                frmPtDemoEdit.ModalResult := mrOK;  //closes form
               end;
       mrNo : begin
@@ -1249,4 +1421,518 @@
 
 
-
+procedure TfrmPtDemoEdit.PageControlChange(Sender: TObject);
+var
+   GridInfo : TGridInfo;
+   IEN : longInt;
+   ModalResult : TModalResult;
+
+begin
+    if pagecontrol.ActivePageIndex = 0 then begin
+       GetPtInfo(FServerPatientInfo);
+       FCurPatientInfo.Assign(FServerPatientInfo);
+       ShowPtInfo(FCurPatientInfo);
+    end else begin
+       IEN := strtoint(patient.dfn);  //get info from selected patient
+       if IEN = 0 then exit;
+       GridInfo := GetInfoForGrid(gridPatientDemo);
+       if GridInfo = nil then exit;
+       GridInfo.IENS := IntToStr(IEN)+',';
+       GetPatientInfo(GridInfo);
+    end;
+
+end;
+
+procedure TfrmPtDemoEdit.GetPatientInfo(GridInfo: TGridInfo);
+
+var cmd,RPCResult : string;
+    IENS : String;
+    grid : TStringGrid;
+begin
+//    IENS := Patient.DFN;
+    IENS := GridInfo.IENS;
+//    Data := GridInfo.Data;
+    grid := GridInfo.Grid;
+    grid.Cells[0,1] := '';
+    grid.Cells[1,1] := '';
+    grid.Cells[2,1] := '';
+    grid.RowCount :=2;
+    grid.Cursor := crHourGlass;
+    if IENS <> '0,' then begin
+      RPCBrokerV.remoteprocedure := 'TMG CHANNEL';
+      RPCBrokerV.param[0].ptype := list;
+      cmd := 'GET ONE RECORD^2^' + IENS;
+      RPCBrokerV.Param[0].Mult['"REQUEST"'] := cmd;
+      RPCBrokerV.Call;
+      RPCResult := RPCBrokerV.Results[0];    //returns:  error: -1;  success=1
+      //Results[1]='FileNum^IENS^FieldNum^ExtValue^FieldName^DDInfo...
+      //Results[2]='FileNum^IENS^FieldNum^ExtValue^FieldName^DDInfo...
+      if piece(RPCResult,'^',1)='-1' then begin
+        messagedlg(RPCBrokerV.Results[1],mtError,mbOKCancel,0);
+        //FMErrorForm.Memo.Lines.Assign(RPCBrokerV.Results);
+      end else begin
+        GridInfo.Data.Assign(RPCBrokerV.results);
+        //LoadAnyGrid(grid,false,'2',IENS,Data);
+        LoadAnyGridFromInfo(GridInfo);
+      end;
+    end;
+  gridPatientDemo.Cursor := crDefault;
+end;
+
+procedure TfrmPtDemoEdit.LoadAnyGrid(Grid : TStringGrid;  //the TStringGrid to load
+                                     BasicMode: boolean;
+                                     FileNum : string;
+                                     IENS : string;
+                                     CurrentData : TStringList);
+  var
+    GridInfo : TGridInfo;
+  begin
+    GridInfo := TGridInfo.Create;
+    //This stores load information into a GridInfo
+    GridInfo.Grid := Grid;
+    GridInfo.BasicMode := BasicMode;
+    GridInfo.FileNum := FileNum;
+    GridInfo.IENS := IENS;
+    GridInfo.Data := CurrentData;
+    LoadAnyGridFromInfo(GridInfo);
+    GridInfo.Free;
+  end;
+
+procedure TfrmPtDemoEdit.LoadAnyGridFromInfo(GridInfo : TGridInfo);
+  //This assumes that GridInfo already has loaded info.
+  var
+    Grid : TStringGrid;  //the TStringGrid to load
+    BasicMode: boolean;
+    FileNum : string;
+    IENS : string;
+    CurrentData : TStringList;
+
+    procedure LoadOneLine (Grid : TStringGrid; oneEntry : string; GridRow : integer);
+    var
+      tempFile,IENS : string;
+      fieldNum,fieldName,fieldDef : string;
+      subFileNum : string;
+      value : string;
+    begin
+      tempFile := Piece(oneEntry,'^',1);
+      if tempFile = FileNum then begin //handle subfiles later...
+        IENS := Piece(oneEntry,'^',2);
+        fieldNum := Piece(oneEntry,'^',3);
+        value := Piece(oneEntry,'^',4);
+        fieldName := Piece(oneEntry,'^',5);
+        fieldDef := Piece(oneEntry,'^',6);
+        Grid.RowCount := GridRow + 1;
+        Grid.Cells[0,GridRow] := fieldNum;
+        Grid.Cells[1,GridRow] := fieldName;
+        if Pos('W',fieldDef)>0 then begin
+          Grid.Cells[2,GridRow] := CLICK_TO_EDIT;
+        end else if IsSubFile(fieldDef, subFileNum) then begin
+          if IsWPField(FileNum,fieldNum) then begin
+            Grid.Cells[2,GridRow] := CLICK_TO_EDIT;
+          end else begin
+            Grid.Cells[2,GridRow] := CLICK_FOR_SUBS;
+          end;
+        end else if Pos('C',fieldDef)>0 then begin
+          Grid.Cells[2,GridRow] := COMPUTED_FIELD;
+        end else begin
+          Grid.Cells[2,GridRow] := value;
+        end;
+        Grid.RowHeights[GridRow] := DEF_GRID_ROW_HEIGHT;
+      end;
+    end;
+
+    function getOneLine(CurrentData : TStringList; oneFileNum,oneFieldNum : string) : string;
+    var i : integer;
+        FileNum,FieldNum : string;
+    begin
+      result := '';
+      // FileNum^IENS^FieldNum^FieldName^newValue^oldValue
+      for i := 1 to CurrentData.Count - 1 do begin
+        FileNum := piece(CurrentData.Strings[i],'^',1);
+        if FileNum <> oneFileNum then continue;
+        FieldNum := piece(CurrentData.Strings[i],'^',3);
+        if FieldNum <> oneFieldNum then continue;
+        result := CurrentData.Strings[i];
+        break;
+      end;
+    end;
+
+  var i : integer;
+      oneEntry  : string;
+      oneFileNum,oneFieldNum : string;
+      gridRow : integer;
+
+  begin
+    FLoadingGrid := true;
+    if GridInfo=nil then exit;
+    Grid := GridInfo.Grid;
+    BasicMode := GridInfo.BasicMode;
+    FileNum := GridInfo.FileNum;
+    IENS := GridInfo.IENS;
+    CurrentData := GridInfo.Data;
+
+    Grid.Cells[0,1] := '';
+    Grid.Cells[1,1] := '';
+    Grid.Cells[2,1] := '';
+    Grid.RowCount :=2;
+    Grid.ColWidths[0] := 50;
+    Grid.ColWidths[1] := 200;
+    Grid.ColWidths[2] := 300;
+    Grid.Cells[0,0] := '#';
+    Grid.Cells[1,0] := 'Name';
+    Grid.Cells[2,0] := 'Value';
+
+    if BasicMode=false then begin
+      for i := 1 to CurrentData.Count-1 do begin  //start at 1 because [0] = 1^Success
+        oneEntry := CurrentData.Strings[i];
+        LoadOneLine (Grid,oneEntry,i);
+      end;
+    end else if BasicMode=true then begin
+      gridRow := 1;
+      for i := 0 to BasicTemplate.Count-1 do begin
+        oneFileNum := Piece(BasicTemplate.Strings[i],'^',1);
+        if oneFileNum <> fileNum then continue;
+        oneFieldNum := Piece(BasicTemplate.Strings[i],'^',2);
+        oneEntry := getOneLine(CurrentData,oneFileNum,oneFieldNum);
+        LoadOneLine (Grid,oneEntry,gridRow);
+        Inc(GridRow);
+      end;
+    end;
+    FLoadingGrid := false;
+  end;
+
+  function TfrmPtDemoEdit.GetInfoForGrid(Grid : TStringGrid) : TGridInfo;
+  var i : integer;
+  begin
+    i := GetInfoIndexForGrid(Grid);
+    if i > -1 then begin
+      result := TGridInfo(DataForGrid.Objects[i]);
+    end else begin
+      result := nil;
+    end;
+  end;
+
+
+  function TfrmPtDemoEdit.GetInfoIndexForGrid(Grid : TStringGrid) : integer;
+  var s : string;
+  begin
+    s := IntToStr(integer(Grid));
+    result := Dataforgrid.indexof(s);
+  end;
+
+function TfrmPtDemoEdit.IsSubFile(FieldDef: string ; var SubFileNum : string) : boolean;
+  //SubFileNum is OUT parameter
+  begin
+    SubFileNum := ExtractNum(FieldDef,1);
+    result := (SubFileNum <> '');
+  end;
+    
+  function TfrmPtDemoEdit.IsWPField(FileNum,FieldNum : string) : boolean;
+  var RPCResult : string;
+      SrchStr : string;
+      Idx: integer;
+  begin
+    SrchStr := FileNum + '^' +  FieldNum + '^';
+    //Idx := CachedWPField.IndexOf(SrchStr + 'YES');
+    //if Idx > -1 then begin Result := true; exit; end;
+    //Idx := CachedWPField.IndexOf(SrchStr + 'NO');
+    //if Idx > -1 then begin Result := false; exit; end;
+  
+    result := false;
+    RPCBrokerV.remoteprocedure := 'TMG CHANNEL';
+    RPCBrokerV.param[0].ptype := list;
+    RPCBrokerV.Param[0].Mult['"REQUEST"'] := 'IS WP FIELD^' + FileNum + '^' + FieldNum;
+    RPCBrokerV.Call;
+    RPCResult := RPCBrokerV.Results[0];    //returns:  error: -1;  success=1
+    if piece(RPCResult,'^',1)='-1' then begin
+      //FMErrorForm.Memo.Lines.Assign(RPCBrokerV.Results);
+      //FMErrorForm.PrepMessage;
+      //FMErrorForm.ShowModal;
+    end else begin
+      RPCResult := piece(RPCResult,'^',3);
+      result := (RPCResult = 'YES');
+      //CachedWPField.Add(SrchStr + RPCResult);
+    end;    
+  end;
+
+  function TfrmPtDemoEdit.ExtractNum (S : String; StartPos : integer) : string;
+  var i : integer;
+      ch : char;
+  begin
+    result := '';
+    if (S = '') or (StartPos < 0) then exit;
+    i := StartPos;
+    repeat
+      ch := S[i]; 
+      i := i + 1;
+      if ch in ['0'..'9','.'] then begin
+        Result := Result + ch;
+      end;  
+    until (i > length(S)) or not  (ch in ['0'..'9','.'])
+  end;
+
+  procedure TfrmPtDemoEdit.gridPatientDemoSelectCell(Sender: TObject; ACol,
+  ARow: Integer; var CanSelect: Boolean);
+    (*
+    For Field def, here is the legend
+    character     meaning
+
+    BC 	          The data is Boolean Computed (true or false).
+    C 	          The data is Computed.
+    Cm 	          The data is multiline Computed.
+    DC 	          The data is Date-valued, Computed.
+    D 	          The data is Date-valued.
+    F 	          The data is Free text.
+    I 	          The data is uneditable.
+    Pn 	          The data is a Pointer reference to file "n".
+    S 	          The data is from a discrete Set of codes.
+    
+    N 	          The data is Numeric-valued.
+    
+    Jn 	          To specify a print length of n characters.
+    Jn,d 	        To specify printing n characters with decimals.
+
+    V 	          The data is a Variable pointer.
+    W 	          The data is Word processing.
+    WL 	          The Word processing data is normally printed in Line mode (i.e., without word wrap).
+      *)
+  var oneEntry,FieldDef : string;                                     
+      date,time: string;
+      FileNum,FieldNum,SubFileNum : string;
+      GridFileNum : string;
+      UserLine : integer;
+      Grid : TStringGrid;
+      IEN : int64;
+      IENS : string;
+      CurrentData : TStringList;
+      GridInfo : TGridInfo;
+      SubFileForm : TSubFileForm;
+  begin
+    if FLoadingGrid then exit;  //prevent pseudo-clicks during loading...
+    Grid := (Sender as TStringGrid);
+    GridInfo := GetInfoForGrid(Grid);
+    if GridInfo=nil then exit;
+    GridFileNum := GridInfo.FileNum;
+    CanSelect := false;  //default to NOT selectable.
+    CurrentData := GridInfo.Data;
+    if CurrentData=nil then exit;
+    if CurrentData.Count = 0 then exit;
+    UserLine := GetUserLine(CurrentData,Grid,ARow);
+    if UserLine = -1 then exit;
+    oneEntry := CurrentData.Strings[UserLine];
+    FieldDef := Piece(oneEntry,'^',6);
+    if Pos('F',FieldDef)>0 then begin  //Free text
+      CanSelect := true;
+    end else if IsSubFile(FieldDef,SubFileNum) then begin  //Subfiles.
+      FileNum :=  Piece(oneEntry,'^',1);
+      FieldNum :=  Piece(oneEntry,'^',3);
+      if IsWPField(FileNum,FieldNum) then begin
+        IENS :=  Piece(oneEntry,'^',2);
+        EditTextForm.PrepForm(FileNum,FieldNum,IENS);
+        EditTextForm.ShowModal;
+      end else begin
+        //handle subfiles here
+        IENS := '';
+        if GridInfo.Message = MSG_SUB_FILE then begin  //used message from subfile Grid
+          IENS := GridInfo.IENS;
+        end; // else if LastSelTreeNode <> nil then begin  //this is one of the selction trees.
+          IEN := strtoint(Patient.DFN); //longInt(LastSelTreeNode.Data);
+          if IEN > 0 then IENS := InttoStr(IEN) + ',';
+        if GridInfo.Data = CurrentAnyFileData then begin
+          IEN := strtoint(patient.dfn);  //get info from selected record
+          if IEN > 0 then IENS := InttoStr(IEN) + ',';
+        end;
+        if IENS <> '' then begin
+          SubFileForm := TSubFileForm.Create(self);
+          SubFileForm.PrepForm(SubFileNum,IENS);
+          SubfileForm.ShowModal;  // note: may call this function again recursively for sub-sub-files etc.
+          SubFileForm.Free;
+        end else begin
+          MessageDlg('IENS for File="".  Can''t process.',mtInformation,[MBOK],0);
+        end;
+      end;
+    end else if Pos('C',FieldDef)>0 then begin  //computed fields.
+      CanSelect := false;
+    end else if Pos('D',FieldDef)>0 then begin  //date field
+      date := piece(Grid.Cells[ACol,ARow],'@',1);
+      time := piece(Grid.Cells[ACol,ARow],'@',2);
+      if date <> '' then begin
+        SelDateTimeForm.DateTimePicker.Date := StrToDate(date);
+      end else begin
+        SelDateTimeForm.DateTimePicker.Date := SysUtils.Date;
+      end;
+      if SelDateTimeForm.ShowModal = mrOK then begin
+        date := DateToStr(SelDateTimeForm.DateTimePicker.Date);
+        time := TimeToStr(SelDateTimeForm.DateTimePicker.Time);
+        if time <> '' then date := date; // + '@' + time;    elh 8/15/08
+        Grid.Cells[ACol,ARow] := date;
+      end;
+      CanSelect := true;
+    end else if Pos('S',FieldDef)>0 then begin  //Set of Codes
+      SetSelForm.PrepForm(Piece(oneEntry,'^',7));
+      if SetSelForm.ShowModal = mrOK then begin
+        Grid.Cells[ACol,ARow] := SetSelForm.ComboBox.Text;
+        CanSelect := true;
+      end;
+    end else if Pos('I',FieldDef)>0 then begin  //uneditable
+      ShowMessage('Sorry. Flagged as UNEDITABLE.');
+    end else if Pos('P',FieldDef)>0 then begin  //Pointer to file.
+      FileNum := ExtractNum (FieldDef,Pos('P',FieldDef)+1);
+      //check for validity here...
+      FieldLookupForm.PrepForm(FileNum,Grid.Cells[ACol,ARow]);
+      if FieldLookupForm.ShowModal = mrOK then begin
+        Grid.Cells[ACol,ARow] := FieldLookupForm.ORComboBox.Text;
+        CanSelect := true;
+      end;
+    end;
+    if CanSelect then begin
+      FLastSelectedRow := ARow;
+      FLastSelectedCol := ACol;
+      SetModified(True);
+    end;
+    //GridInfo.ApplyBtn.Enabled := true;
+    //GridInfo.RevertBtn.Enabled := true;
+  end;
+
+  function TfrmPtDemoEdit.GetLineInfo(Grid : TStringGrid; CurrentUserData : TStringList; ARow: integer) : tFileEntry;
+  var fieldNum : string;
+      oneEntry : string;
+      fileNum : string;
+      gridRow : integer;
+  begin
+    fieldNum := Grid.Cells[0,ARow];
+    gridRow := FindInStrings(fieldNum, CurrentUserData, fileNum);
+    if gridRow > -1 then begin
+      oneEntry := CurrentUserData.Strings[gridRow];
+      Result.Field := fieldNum;
+      Result.FieldName := Grid.Cells[1,ARow];
+      Result.FileNum := fileNum;
+      Result.IENS := Piece(oneEntry,'^',2);
+      Result.oldValue := Piece(oneEntry,'^',4);
+      Result.newValue := Grid.Cells[2,ARow];
+    end else begin
+      Result.Field := '';
+      Result.FieldName := '';
+      Result.FileNum := '';
+      Result.IENS := '';
+      Result.oldValue := '';
+      Result.newValue := '';
+    end;
+  end;
+
+procedure TfrmPtDemoEdit.GetOneRecord(FileNum, IENS : string; Data, BlankFileInfo: TStringList);
+  var cmd,RPCResult : string;
+      i : integer;
+      oneEntry : string;
+  begin
+    Data.Clear;
+    if (IENS='') then exit;
+    if Pos('+',IENS)=0 then begin //don't ask server to load +1 records.
+      RPCBrokerV.remoteprocedure := 'TMG CHANNEL';
+      RPCBrokerV.Param[0].Value := '.X';  // not used
+      RPCBrokerV.param[0].ptype := list;
+      cmd := 'GET ONE RECORD^' + FileNum + '^' + IENS;
+      RPCBrokerV.Param[0].Mult['"REQUEST"'] := cmd;
+      RPCBrokerV.Call;
+      RPCResult := RPCBrokerV.Results[0];    //returns:  error: -1;  success=1
+      if piece(RPCResult,'^',1)='-1' then begin
+      FMErrorForm.Memo.Lines.Assign(RPCBrokerV.Results);
+      FMErrorForm.PrepMessage;
+      FMErrorForm.ShowModal;
+      end else begin
+        Data.Assign(RPCBrokerV.Results);
+      end;
+    end else begin
+      Data.Add('1^Success');  //to keep same as call to server
+      if BlankFileInfo.Count = 0 then begin
+        //Format is: FileNum^^FieldNum^^DDInfo...
+        //  elh GetBlankFileInfo(FileNum,BlankFileInfo);
+      end;  
+      for i := 1 to BlankFileInfo.Count-1 do begin  //0 is 1^success
+        oneEntry := BlankFileInfo.Strings[i];
+        //  elh SetPiece(oneEntry,'^',2,IENS);
+        Data.Add(oneEntry);
+      end;
+    end;
+  end;
+
+function TfrmPtDemoEdit.GetUserLine(CurrentUserData : TStringList; Grid : TStringGrid; ARow: integer) : integer;
+  var fieldNum: string;
+      tempFileNum : string;
+  begin
+    fieldNum := Grid.Cells[0,ARow];
+    Result := FindInStrings(fieldNum,CurrentUserData,tempFileNum);
+  end;
+
+  function TfrmPtDemoEdit.FindInStrings(fieldNum : string; Strings : TStringList; var fileNum : string) : integer;
+  //Note: if fileNum is passed blank, then first matching file will be placed in it (i.e. OUT parameter)
+  var tempFieldNum : string;
+      oneEntry,tempFile : string;
+      i : integer;
+  begin
+    result := -1;
+    fileNum := '';
+    for i := 1 to Strings.Count-1 do begin   //0 --> 1^success
+      oneEntry := Strings.Strings[i];
+      tempFile := Piece(oneEntry,'^',1);
+      if fileNum='' then fileNum := tempFile;
+      if tempFile <> fileNum then continue; //ignore subfiles
+      tempFieldNum := Piece(oneEntry,'^',3);
+      if tempFieldNum <> fieldNum then continue;
+      Result := i;
+      break;
+    end;
+  end;
+
+ procedure TfrmPtDemoEdit.AddGridInfo(Grid: TStringGrid;
+                                  Data : TStringList;
+                                  BasicMode : boolean;
+                                  DataLoader : TGridDataLoader;
+                                  FileNum : string);
+  var tempGridInfo : TGridInfo;
+  begin
+    tempGridInfo := TGridInfo.Create;
+    tempGridInfo.Grid := Grid;
+    tempGridInfo.Data := Data;
+    tempGridInfo.BasicMode := BasicMode;
+    tempGridInfo.FileNum := FileNum;
+    tempGridInfo.DataLoadProc := DataLoader;
+    //tempGridInfo.ApplyBtn := ApplyBtn;
+    //tempGridInfo.RevertBtn := RevertBtn;
+    RegisterGridInfo(tempGridInfo);
+  end;
+
+procedure TfrmPtDemoEdit.RegisterGridInfo(GridInfo : TGridInfo);
+  var s : string;
+  begin
+    if GridInfo = nil then exit;
+    s := IntToStr(integer(GridInfo.Grid));
+    DataForGrid.AddObject(s,GridInfo);
+  end;
+
+procedure TfrmPtDemoEdit.gridPatientDemoSetEditText(Sender: TObject; ACol,
+                                            ARow: Integer; const Value: String);
+begin
+  SetModified(True);
+end;
+
+procedure TfrmPtDemoEdit.PageControlChanging(Sender: TObject;
+  var AllowChange: Boolean);
+var
+   intAnswer : Integer;
+begin
+//Before changing the form, find out if changes need to be applied and
+//prompt user.            elh
+    if ApplyBtn.enabled = True then begin
+       intAnswer := messagedlg('Do you want to apply your changes?', mtWarning,mbYesNoCancel,0);
+       if intAnswer = mrYes then begin  //Yes
+          ApplyBtnClick(Sender);
+          //messagedlg('Changes Saved.', mtWarning,[mbOK],0);
+          SetModified(False);
+        end else if intAnswer = mrNo then begin    //No
+          SetModified(False);
+        end else if intAnswer = mrCancel then begin    //Cancel
+          AllowChange := False;
+        end;
+    end;
+end;
 end.
