home *** CD-ROM | disk | FTP | other *** search
/ PC World Plus! (NZ) 2001 June / HDC50.iso / Runimage / Delphi50 / Ocx / Isp / ISP3.PAS < prev    next >
Pascal/Delphi Source File  |  1999-06-18  |  148KB  |  3,664 lines

  1. unit isp3;
  2.  
  3. {$IFDEF InvisibleInk}    { internal comments, not to appear in shipping code }
  4.  
  5. { To correct problems in the NetManage OCX type library interface definitions,
  6.   the following changes **MUST** be made to the auto-generated interfaces
  7.   whenever the ISP wrappers are regenerated:
  8.  
  9.   1) Merge all the NetManage OCX declarations into one unit. Each NM OCX
  10.      typelib declares same-named base interfaces, like INMOleControl and
  11.      INMOleClientControl.  If we left the separate NM OCX controls in
  12.      separate units, you'd run into mysterious type mismatch problems when two
  13.      such units were used in another unit.
  14.  
  15.   2) Edit the INMWinsockControl base interface to inherit from IDispatch
  16.      instead of INMOleControl, and insert procedure AboutBox; safecall; at
  17.      the top of the interface declaration.  The TCP/UDP typelib declares the
  18.      INMWinsockControl interface as inheriting from INMOleControl, but that
  19.      typelib defines INMOleControl as having only one method.  All the other
  20.      NM typelibs define INMOleControl (same type name, same GUID)
  21.      with 6 methods, 3 properties.
  22.  
  23.   3) Edit the IHTTPCT interface to inherit from INMOleControl instead of
  24.      INMOleClientControl, copy all the methods and properties from
  25.      INMOleClientControl to the top of IHTTPCT, and delete the Connect method
  26.      from IHTTPCT.  The INMOleClientControl declaration in the HTTP OCX typelib
  27.      (same type name, same GUID) is missing the Connect procedure, which throws
  28.      all the vtable methods in IHTTPCT off by one if the interface were to
  29.      inherit from the definition of INMOleClientControl that all the other
  30.      NM OCXs use.
  31. }
  32. {$ENDIF}
  33. { NetManage Internet Controls }
  34. { Version 1.0 }
  35.  
  36. interface
  37.  
  38. uses Windows, ActiveX, Classes, Graphics, OleCtrls, StdVCL;
  39.  
  40. const
  41.   LIBID_NMOCODObjects: TGUID = '{B7FC35A4-8CE7-11CF-9754-00AA00C00908}';
  42.  
  43. const
  44.  
  45. { DocStateConstants }
  46.  
  47.   icDocNone = 0;
  48.   icDocBegin = 1;
  49.   icDocHeaders = 2;
  50.   icDocData = 3;
  51.   icDocError = 4;
  52.   icDocEnd = 5;
  53.  
  54. const
  55.  
  56. { Component class GUIDs }
  57.   Class_DocHeaderCls: TGUID = '{B7FC3591-8CE7-11CF-9754-00AA00C00908}';
  58.   Class_DocHeadersCls: TGUID = '{B7FC3593-8CE7-11CF-9754-00AA00C00908}';
  59.   Class_DocInputCls: TGUID = '{B7FC3596-8CE7-11CF-9754-00AA00C00908}';
  60.   Class_DocOutputCls: TGUID = '{B7FC3598-8CE7-11CF-9754-00AA00C00908}';
  61.   Class_icErrorCls: TGUID = '{B7FC35A1-8CE7-11CF-9754-00AA00C00908}';
  62.   Class_icErrorsCls: TGUID = '{B7FC35A3-8CE7-11CF-9754-00AA00C00908}';
  63.  
  64. type
  65.  
  66. { Forward declarations }
  67. { Forward declarations: Interfaces }
  68.   DocHeader = interface;
  69.   DocHeaderDisp = dispinterface;
  70.   DocHeaders = interface;
  71.   DocHeadersDisp = dispinterface;
  72.   DocInput = interface;
  73.   DocInputDisp = dispinterface;
  74.   DocOutput = interface;
  75.   DocOutputDisp = dispinterface;
  76.   icError = interface;
  77.   icErrorDisp = dispinterface;
  78.   icErrors = interface;
  79.   icErrorsDisp = dispinterface;
  80.  
  81. { Forward declarations: CoClasses }
  82.   DocHeaderCls = DocHeader;
  83.   DocHeadersCls = DocHeaders;
  84.   DocInputCls = DocInput;
  85.   DocOutputCls = DocOutput;
  86.   icErrorCls = icError;
  87.   icErrorsCls = icErrors;
  88.  
  89. { Forward declarations: Enums }
  90.   DocStateConstants = TOleEnum;
  91.  
  92. { Internet DocHeader object properties and methods }
  93.  
  94.   DocHeader = interface(IDispatch)
  95.     ['{B7FC3590-8CE7-11CF-9754-00AA00C00908}']
  96.     function Get_Name: WideString; safecall;
  97.     procedure Set_Name(const Value: WideString); safecall;
  98.     function Get_Value: WideString; safecall;
  99.     procedure Set_Value(const Value: WideString); safecall;
  100.     procedure SetThisObject(var ThisObject: SYSINT); safecall;
  101.     property Name: WideString read Get_Name write Set_Name;
  102.     property Value: WideString read Get_Value write Set_Value;
  103.   end;
  104.  
  105. { DispInterface declaration for Dual Interface DocHeader }
  106.  
  107.   DocHeaderDisp = dispinterface
  108.     ['{B7FC3590-8CE7-11CF-9754-00AA00C00908}']
  109.     property Name: WideString dispid 0;
  110.     property Value: WideString dispid 2;
  111.     procedure SetThisObject(var ThisObject: SYSINT); dispid 3;
  112.   end;
  113.  
  114. { Internet DocHeaders collection properties and methods }
  115.  
  116.   DocHeaders = interface(IDispatch)
  117.     ['{B7FC3592-8CE7-11CF-9754-00AA00C00908}']
  118.     function Get_Count: Integer; safecall;
  119.     function Get_Text: WideString; safecall;
  120.     procedure Set_Text(const Value: WideString); safecall;
  121.     function Get__NewEnum: IUnknown; safecall;
  122.     function Item(Index: OleVariant): DocHeader; safecall;
  123.     function Add(const Name, Value: WideString): DocHeader; safecall;
  124.     procedure Remove(Index: OleVariant); safecall;
  125.     procedure Clear; safecall;
  126.     procedure SetThisObject(var ThisObject: SYSINT); safecall;
  127.     property Count: Integer read Get_Count;
  128.     property Text: WideString read Get_Text write Set_Text;
  129.     property _NewEnum: IUnknown read Get__NewEnum;
  130.   end;
  131.  
  132. { DispInterface declaration for Dual Interface DocHeaders }
  133.  
  134.   DocHeadersDisp = dispinterface
  135.     ['{B7FC3592-8CE7-11CF-9754-00AA00C00908}']
  136.     property Count: Integer readonly dispid 1;
  137.     property Text: WideString dispid 2;
  138.     property _NewEnum: IUnknown readonly dispid -4;
  139.     function Item(Index: OleVariant): DocHeader; dispid 0;
  140.     function Add(const Name, Value: WideString): DocHeader; dispid 4;
  141.     procedure Remove(Index: OleVariant); dispid 5;
  142.     procedure Clear; dispid 6;
  143.     procedure SetThisObject(var ThisObject: SYSINT); dispid 7;
  144.   end;
  145.  
  146. { Internet DocInput object properties and methods }
  147.  
  148.   DocInput = interface(IDispatch)
  149.     ['{B7FC3595-8CE7-11CF-9754-00AA00C00908}']
  150.     function Get_Headers: DocHeaders; safecall;
  151.     function Get_State: DocStateConstants; safecall;
  152.     function Get_BytesTotal: Integer; safecall;
  153.     function Get_BytesTransferred: Integer; safecall;
  154.     function Get_FileName: WideString; safecall;
  155.     procedure Set_FileName(const Value: WideString); safecall;
  156.     function Get_DocLink: IUnknown; safecall;
  157.     procedure Set_DocLink(Value: IUnknown); safecall;
  158.     function Get_Suspended: WordBool; safecall;
  159.     function Get_PushStreamMode: WordBool; safecall;
  160.     procedure Set_PushStreamMode(Value: WordBool); safecall;
  161.     procedure GetData(out Data: OleVariant; Type_: OleVariant); safecall;
  162.     procedure SetData(Data: OleVariant); safecall;
  163.     procedure Suspend(Suspend: WordBool); safecall;
  164.     function Get_CPPObject: SYSINT; safecall;
  165.     procedure Set_CPPObject(Value: SYSINT); safecall;
  166.     procedure PushStream; safecall;
  167.     function Get_Tag: OleVariant; safecall;
  168.     procedure Set_Tag(Value: OleVariant); safecall;
  169.     function Get_Errors: icErrors; safecall;
  170.     function Get_URL: WideString; safecall;
  171.     property Headers: DocHeaders read Get_Headers;
  172.     property State: DocStateConstants read Get_State;
  173.     property BytesTotal: Integer read Get_BytesTotal;
  174.     property BytesTransferred: Integer read Get_BytesTransferred;
  175.     property FileName: WideString read Get_FileName write Set_FileName;
  176.     property DocLink: IUnknown read Get_DocLink write Set_DocLink;
  177.     property Suspended: WordBool read Get_Suspended;
  178.     property PushStreamMode: WordBool read Get_PushStreamMode write Set_PushStreamMode;
  179.     property CPPObject: SYSINT read Get_CPPObject write Set_CPPObject;
  180.     property Tag: OleVariant read Get_Tag write Set_Tag;
  181.     property Errors: icErrors read Get_Errors;
  182.     property URL: WideString read Get_URL;
  183.   end;
  184.  
  185. { DispInterface declaration for Dual Interface DocInput }
  186.  
  187.   DocInputDisp = dispinterface
  188.     ['{B7FC3595-8CE7-11CF-9754-00AA00C00908}']
  189.     property Headers: DocHeaders readonly dispid 2;
  190.     property State: DocStateConstants readonly dispid 3;
  191.     property BytesTotal: Integer readonly dispid 4;
  192.     property BytesTransferred: Integer readonly dispid 5;
  193.     property FileName: WideString dispid 6;
  194.     property DocLink: IUnknown dispid 7;
  195.     property Suspended: WordBool readonly dispid 11;
  196.     property PushStreamMode: WordBool dispid 12;
  197.     procedure GetData(out Data: OleVariant; Type_: OleVariant); dispid 9;
  198.     procedure SetData(Data: OleVariant); dispid 8;
  199.     procedure Suspend(Suspend: WordBool); dispid 10;
  200.     property CPPObject: SYSINT dispid 14;
  201.     procedure PushStream; dispid 13;
  202.     property Tag: OleVariant dispid 16;
  203.     property Errors: icErrors readonly dispid 17;
  204.     property URL: WideString readonly dispid 1;
  205.   end;
  206.  
  207. { Internet DocOutput object properties and methods }
  208.  
  209.   DocOutput = interface(IDispatch)
  210.     ['{B7FC3597-8CE7-11CF-9754-00AA00C00908}']
  211.     function Get_Headers: DocHeaders; safecall;
  212.     function Get_State: DocStateConstants; safecall;
  213.     function Get_BytesTotal: Integer; safecall;
  214.     function Get_BytesTransferred: Integer; safecall;
  215.     function Get_FileName: WideString; safecall;
  216.     procedure Set_FileName(const Value: WideString); safecall;
  217.     function Get_DocLink: IUnknown; safecall;
  218.     function Get_Suspended: WordBool; safecall;
  219.     function Get_PushStreamMode: WordBool; safecall;
  220.     function Get_DataString: WideString; safecall;
  221.     function Get_DataBlock: OleVariant; safecall;
  222.     procedure GetData(out Data: OleVariant; Type_: OleVariant); safecall;
  223.     procedure SetData(Data: OleVariant); safecall;
  224.     procedure Suspend(Suspend: WordBool); safecall;
  225.     function Get_CPPObject: SYSINT; safecall;
  226.     procedure Set_CPPObject(Value: SYSINT); safecall;
  227.     function Get_AppendToFile: WordBool; safecall;
  228.     procedure Set_AppendToFile(Value: WordBool); safecall;
  229.     function Get_Tag: OleVariant; safecall;
  230.     procedure Set_Tag(Value: OleVariant); safecall;
  231.     function Get_Errors: icErrors; safecall;
  232.     function Get_URL: WideString; safecall;
  233.     property Headers: DocHeaders read Get_Headers;
  234.     property State: DocStateConstants read Get_State;
  235.     property BytesTotal: Integer read Get_BytesTotal;
  236.     property BytesTransferred: Integer read Get_BytesTransferred;
  237.     property FileName: WideString read Get_FileName write Set_FileName;
  238.     property DocLink: IUnknown read Get_DocLink;
  239.     property Suspended: WordBool read Get_Suspended;
  240.     property PushStreamMode: WordBool read Get_PushStreamMode;
  241.     property DataString: WideString read Get_DataString;
  242.     property DataBlock: OleVariant read Get_DataBlock;
  243.     property CPPObject: SYSINT read Get_CPPObject write Set_CPPObject;
  244.     property AppendToFile: WordBool read Get_AppendToFile write Set_AppendToFile;
  245.     property Tag: OleVariant read Get_Tag write Set_Tag;
  246.     property Errors: icErrors read Get_Errors;
  247.     property URL: WideString read Get_URL;
  248.   end;
  249.  
  250. { DispInterface declaration for Dual Interface DocOutput }
  251.  
  252.   DocOutputDisp = dispinterface
  253.     ['{B7FC3597-8CE7-11CF-9754-00AA00C00908}']
  254.     property Headers: DocHeaders readonly dispid 2;
  255.     property State: DocStateConstants readonly dispid 3;
  256.     property BytesTotal: Integer readonly dispid 4;
  257.     property BytesTransferred: Integer readonly dispid 5;
  258.     property FileName: WideString dispid 6;
  259.     property DocLink: IUnknown readonly dispid 7;
  260.     property Suspended: WordBool readonly dispid 11;
  261.     property PushStreamMode: WordBool readonly dispid 12;
  262.     property DataString: WideString readonly dispid 19;
  263.     property DataBlock: OleVariant readonly dispid 18;
  264.     procedure GetData(out Data: OleVariant; Type_: OleVariant); dispid 9;
  265.     procedure SetData(Data: OleVariant); dispid 8;
  266.     procedure Suspend(Suspend: WordBool); dispid 10;
  267.     property CPPObject: SYSINT dispid 14;
  268.     property AppendToFile: WordBool dispid 15;
  269.     property Tag: OleVariant dispid 16;
  270.     property Errors: icErrors readonly dispid 17;
  271.     property URL: WideString readonly dispid 1;
  272.   end;
  273.  
  274. { Internet error object properties and methods }
  275.  
  276.   icError = interface(IDispatch)
  277.     ['{B7FC35A0-8CE7-11CF-9754-00AA00C00908}']
  278.     function Get_Type_: WideString; safecall;
  279.     function Get_Code: Integer; safecall;
  280.     function Get_Description: WideString; safecall;
  281.     procedure SetThisObject(var ThisObject: SYSINT); safecall;
  282.     procedure InitProperties(var ErrorType, ErrorDesc: WideString; var ErrorCode: Integer); safecall;
  283.     property Type_: WideString read Get_Type_;
  284.     property Code: Integer read Get_Code;
  285.     property Description: WideString read Get_Description;
  286.   end;
  287.  
  288. { DispInterface declaration for Dual Interface icError }
  289.  
  290.   icErrorDisp = dispinterface
  291.     ['{B7FC35A0-8CE7-11CF-9754-00AA00C00908}']
  292.     property Type_: WideString readonly dispid 0;
  293.     property Code: Integer readonly dispid 151;
  294.     property Description: WideString readonly dispid 152;
  295.     procedure SetThisObject(var ThisObject: SYSINT); dispid 154;
  296.     procedure InitProperties(var ErrorType, ErrorDesc: WideString; var ErrorCode: Integer); dispid 155;
  297.   end;
  298.  
  299. { Internet errors collection properties and methods }
  300.  
  301.   icErrors = interface(IDispatch)
  302.     ['{B7FC35A2-8CE7-11CF-9754-00AA00C00908}']
  303.     function Get_Count: Integer; safecall;
  304.     function Get_Source: OleVariant; safecall;
  305.     function Get__NewEnum: IUnknown; safecall;
  306.     function Item(Index: OleVariant): icError; safecall;
  307.     procedure Clear; safecall;
  308.     procedure SetItem(var ErrCode: Integer; var ErrType, ErrDesc: WideString); safecall;
  309.     procedure SetThisObject(var ThisObject: SYSINT); safecall;
  310.     procedure SetCollection(var initString: WideString); safecall;
  311.     property Count: Integer read Get_Count;
  312.     property Source: OleVariant read Get_Source;
  313.     property _NewEnum: IUnknown read Get__NewEnum;
  314.   end;
  315.  
  316. { DispInterface declaration for Dual Interface icErrors }
  317.  
  318.   icErrorsDisp = dispinterface
  319.     ['{B7FC35A2-8CE7-11CF-9754-00AA00C00908}']
  320.     property Count: Integer readonly dispid 100;
  321.     property Source: OleVariant readonly dispid 102;
  322.     property _NewEnum: IUnknown readonly dispid -4;
  323.     function Item(Index: OleVariant): icError; dispid 0;
  324.     procedure Clear; dispid 103;
  325.     procedure SetItem(var ErrCode: Integer; var ErrType, ErrDesc: WideString); dispid 153;
  326.     procedure SetThisObject(var ThisObject: SYSINT); dispid 104;
  327.     procedure SetCollection(var initString: WideString); dispid 105;
  328.   end;
  329.  
  330. { Internet DocHeader object }
  331.  
  332.   CoDocHeaderCls = class
  333.     class function Create: DocHeader;
  334.     class function CreateRemote(const MachineName: string): DocHeader;
  335.   end;
  336.  
  337. { Internet DocHeaders object }
  338.  
  339.   CoDocHeadersCls = class
  340.     class function Create: DocHeaders;
  341.     class function CreateRemote(const MachineName: string): DocHeaders;
  342.   end;
  343.  
  344. { Internet DocInput object }
  345.  
  346.   CoDocInputCls = class
  347.     class function Create: DocInput;
  348.     class function CreateRemote(const MachineName: string): DocInput;
  349.   end;
  350.  
  351. { Internet DocOutput object }
  352.  
  353.   CoDocOutputCls = class
  354.     class function Create: DocOutput;
  355.     class function CreateRemote(const MachineName: string): DocOutput;
  356.   end;
  357.  
  358. { Internet error object }
  359.  
  360.   CoicErrorCls = class
  361.     class function Create: icError;
  362.     class function CreateRemote(const MachineName: string): icError;
  363.   end;
  364.  
  365. { Internet errors collection }
  366.  
  367.   CoicErrorsCls = class
  368.     class function Create: icErrors;
  369.     class function CreateRemote(const MachineName: string): icErrors;
  370.   end;
  371.  
  372. const
  373.   LIBID_FTPCTLib: TGUID = '{B7FC3542-8CE7-11CF-9754-00AA00C00908}';
  374.  
  375. const
  376.  
  377. { FTPFirewallModeConstants }
  378.  
  379.   ftpFirewallOff = 0;
  380.   ftpFirewallSite = 1;
  381.   ftpFirewallOpen = 2;
  382.   ftpFirewallUserLogin = 3;
  383.   ftpFirewallUserNoLogin = 4;
  384.   ftpFirewallManual = 5;
  385.  
  386. { FTPFirewallStateConstants }
  387.  
  388.   ftpFirewallBase = 1300;
  389.   ftpFirewallConnected = 1301;
  390.   ftpFirewallConnected_Msg = 1302;
  391.   ftpFirewallUser_OK = 1303;
  392.   ftpFirewallAuthorized = 1304;
  393.   ftpFirewallRemoteConnected = 1305;
  394.   ftpFirewallDisconnecting = 1306;
  395.  
  396. { NotificationModeConstants }
  397.  
  398.   icCompleteMode = 0;
  399.   icContinousMode = 1;
  400.  
  401. { BlockResultConstants }
  402.  
  403.   icBlockOK = 0;
  404.   icTimedOut = 1;
  405.   icErrorExit = 2;
  406.   icBlockCancel = 3;
  407.   icUserQuit = 4;
  408.  
  409. { StateConstants }
  410.  
  411.   prcConnecting = 1;
  412.   prcResolvingHost = 2;
  413.   prcHostResolved = 3;
  414.   prcConnected = 4;
  415.   prcDisconnecting = 5;
  416.   prcDisconnected = 6;
  417.  
  418. { TimeoutConstants }
  419.  
  420.   prcConnectTimeout = 1;
  421.   prcReceiveTimeout = 2;
  422.   prcUserTimeout = 65;
  423.  
  424. { FTPTypeConstants }
  425.  
  426.   ftpAscii = 0;
  427.   ftpEBCDIC = 1;
  428.   ftpImage = 2;
  429.   ftpBinary = 3;
  430.  
  431. { FTPModeConstants }
  432.  
  433.   ftpStream = 0;
  434.   ftpBlock = 1;
  435.   ftpCompressed = 2;
  436.  
  437. { FTPOperationConstants }
  438.  
  439.   ftpFile = 0;
  440.   ftpList = 1;
  441.   ftpNameList = 2;
  442.  
  443. { FTPProtocolStateConstants }
  444.  
  445.   ftpBase = 0;
  446.   ftpAuthentication = 1;
  447.   ftpTransaction = 2;
  448.  
  449. const
  450.  
  451. { Component class GUIDs }
  452.   Class_FTPDirItemCls: TGUID = '{B7FC3544-8CE7-11CF-9754-00AA00C00908}';
  453.   Class_Firewall: TGUID = '{71A0C640-E157-11CF-A306-00A0243B6C29}';
  454.   Class_FTP: TGUID = '{B7FC354C-8CE7-11CF-9754-00AA00C00908}';
  455.  
  456. type
  457.  
  458. { Forward declarations }
  459. { Forward declarations: Interfaces }
  460.   FTPDirItem = interface;
  461.   FTPDirItemDisp = dispinterface;
  462.   IFirewall = interface;
  463.   IFirewallDisp = dispinterface;
  464.   INMOleControl = interface;
  465.   INMOleControlDisp = dispinterface;
  466.   DNMOleControlEvents = dispinterface;
  467.   INMOleClientControl = interface;
  468.   INMOleClientControlDisp = dispinterface;
  469.   DNMOleClientControlEvents = dispinterface;
  470.   INMOleAuthClientControl = interface;
  471.   INMOleAuthClientControlDisp = dispinterface;
  472.   DNMOleAuthClientControlEvents = dispinterface;
  473.   Iftpct = interface;
  474.   IftpctDisp = dispinterface;
  475.   DftpctEvents = dispinterface;
  476.  
  477. { Forward declarations: CoClasses }
  478.   FTPDirItemCls = FTPDirItem;
  479.   Firewall = IFirewall;
  480.   FTP = Iftpct;
  481.  
  482. { Forward declarations: Enums }
  483.   FTPFirewallModeConstants = TOleEnum;
  484.   FTPFirewallStateConstants = TOleEnum;
  485.   NotificationModeConstants = TOleEnum;
  486.   BlockResultConstants = TOleEnum;
  487.   StateConstants = TOleEnum;
  488.   TimeoutConstants = TOleEnum;
  489.   FTPTypeConstants = TOleEnum;
  490.   FTPModeConstants = TOleEnum;
  491.   FTPOperationConstants = TOleEnum;
  492.   FTPProtocolStateConstants = TOleEnum;
  493.  
  494. { FTP directory item properties and methods }
  495.  
  496.   FTPDirItem = interface(IDispatch)
  497.     ['{B7FC3543-8CE7-11CF-9754-00AA00C00908}']
  498.     function Get_Date: WideString; safecall;
  499.     function Get_Size: Integer; safecall;
  500.     function Get_Attributes: SYSINT; safecall;
  501.     function Get_Detail: WideString; safecall;
  502.     function Get_FileName: WideString; safecall;
  503.     property Date: WideString read Get_Date;
  504.     property Size: Integer read Get_Size;
  505.     property Attributes: SYSINT read Get_Attributes;
  506.     property Detail: WideString read Get_Detail;
  507.     property FileName: WideString read Get_FileName;
  508.   end;
  509.  
  510. { DispInterface declaration for Dual Interface FTPDirItem }
  511.  
  512.   FTPDirItemDisp = dispinterface
  513.     ['{B7FC3543-8CE7-11CF-9754-00AA00C00908}']
  514.     property Date: WideString readonly dispid 70;
  515.     property Size: Integer readonly dispid 71;
  516.     property Attributes: SYSINT readonly dispid 72;
  517.     property Detail: WideString readonly dispid 73;
  518.     property FileName: WideString readonly dispid 74;
  519.   end;
  520.  
  521. { FirewallObject }
  522.  
  523.   IFirewall = interface(IDispatch)
  524.     ['{7061DDA0-E157-11CF-A306-00A0243B6C29}']
  525.     function Get_Mode: Smallint; safecall;
  526.     procedure Set_Mode(Value: Smallint); safecall;
  527.     function Get_State: Smallint; safecall;
  528.     function Get_StateString: WideString; safecall;
  529.     function Get_Host: WideString; safecall;
  530.     procedure Set_Host(const Value: WideString); safecall;
  531.     function Get_Port: Integer; safecall;
  532.     procedure Set_Port(Value: Integer); safecall;
  533.     function Get_UserId: WideString; safecall;
  534.     procedure Set_UserId(const Value: WideString); safecall;
  535.     function Get_Password: WideString; safecall;
  536.     procedure Set_Password(const Value: WideString); safecall;
  537.     property Mode: Smallint read Get_Mode write Set_Mode;
  538.     property State: Smallint read Get_State;
  539.     property StateString: WideString read Get_StateString;
  540.     property Host: WideString read Get_Host write Set_Host;
  541.     property Port: Integer read Get_Port write Set_Port;
  542.     property UserId: WideString read Get_UserId write Set_UserId;
  543.     property Password: WideString read Get_Password write Set_Password;
  544.   end;
  545.  
  546. { DispInterface declaration for Dual Interface IFirewall }
  547.  
  548.   IFirewallDisp = dispinterface
  549.     ['{7061DDA0-E157-11CF-A306-00A0243B6C29}']
  550.     property Mode: Smallint dispid 80;
  551.     property State: Smallint readonly dispid 81;
  552.     property StateString: WideString readonly dispid 92;
  553.     property Host: WideString dispid 82;
  554.     property Port: Integer dispid 83;
  555.     property UserId: WideString dispid 84;
  556.     property Password: WideString dispid 85;
  557.   end;
  558.  
  559. { NetManage Internet Control }
  560.  
  561.   INMOleControl = interface(IDispatch)
  562.     ['{B7FC35B6-8CE7-11CF-9754-00AA00C00908}']
  563.     function Get_Blocking: WordBool; safecall;
  564.     procedure Set_Blocking(Value: WordBool); safecall;
  565.     function Get_SleepTime: Integer; safecall;
  566.     procedure Set_SleepTime(Value: Integer); safecall;
  567.     function Get_BlockResult: Smallint; safecall;
  568.     procedure AboutBox; safecall;
  569.     property Blocking: WordBool read Get_Blocking write Set_Blocking;
  570.     property SleepTime: Integer read Get_SleepTime write Set_SleepTime;
  571.     property BlockResult: Smallint read Get_BlockResult;
  572.   end;
  573.  
  574. { DispInterface declaration for Dual Interface INMOleControl }
  575.  
  576.   INMOleControlDisp = dispinterface
  577.     ['{B7FC35B6-8CE7-11CF-9754-00AA00C00908}']
  578.     property Blocking: WordBool dispid 515;
  579.     property SleepTime: Integer dispid 516;
  580.     property BlockResult: Smallint readonly dispid 519;
  581.     procedure AboutBox; dispid -552;
  582.   end;
  583.  
  584. { NetManage Internet Control events }
  585.  
  586.   DNMOleControlEvents = dispinterface
  587.     ['{B7FC35B7-8CE7-11CF-9754-00AA00C00908}']
  588.     procedure Error(Number: Smallint; var Description: WideString; Scode: Integer; const Source, HelpFile: WideString; HelpContext: Integer; var CancelDisplay: WordBool); dispid -608;
  589.   end;
  590.  
  591. { NetManage internet client control }
  592.  
  593.   INMOleClientControl = interface(INMOleControl)
  594.     ['{B7FC35B4-8CE7-11CF-9754-00AA00C00908}']
  595.     function Get_RemoteHost: WideString; safecall;
  596.     procedure Set_RemoteHost(const Value: WideString); safecall;
  597.     function Get_RemotePort: Integer; safecall;
  598.     procedure Set_RemotePort(Value: Integer); safecall;
  599.     function Get_State: Smallint; safecall;
  600.     function Get_ProtocolState: Smallint; safecall;
  601.     function Get_ReplyString: WideString; safecall;
  602.     function Get_ReplyCode: Integer; safecall;
  603.     function Get_Timeout(event: Smallint): Integer; safecall;
  604.     procedure Set_Timeout(event: Smallint; Value: Integer); safecall;
  605.     procedure Set_EnableTimer(event: Smallint; Value: WordBool); safecall;
  606.     function Get_Errors: icErrors; safecall;
  607.     function Get_Busy: WordBool; safecall;
  608.     function Get_NotificationMode: Smallint; safecall;
  609.     procedure Set_NotificationMode(Value: Smallint); safecall;
  610.     function Get_StateString: WideString; safecall;
  611.     function Get_ProtocolStateString: WideString; safecall;
  612.     function Get_Logging: WordBool; safecall;
  613.     procedure Set_Logging(Value: WordBool); safecall;
  614.     function Get_LocalPort: Integer; safecall;
  615.     procedure Set_LocalPort(Value: Integer); safecall;
  616.     function Get_SocketHandle: Integer; safecall;
  617.     procedure Cancel; safecall;
  618.     procedure Connect(RemoteHost, RemotePort: OleVariant); safecall;
  619.     property RemoteHost: WideString read Get_RemoteHost write Set_RemoteHost;
  620.     property RemotePort: Integer read Get_RemotePort write Set_RemotePort;
  621.     property State: Smallint read Get_State;
  622.     property ProtocolState: Smallint read Get_ProtocolState;
  623.     property ReplyString: WideString read Get_ReplyString;
  624.     property ReplyCode: Integer read Get_ReplyCode;
  625.     property Timeout[event: Smallint]: Integer read Get_Timeout write Set_Timeout;
  626.     property EnableTimer[event: Smallint]: WordBool write Set_EnableTimer;
  627.     property Errors: icErrors read Get_Errors;
  628.     property Busy: WordBool read Get_Busy;
  629.     property NotificationMode: Smallint read Get_NotificationMode write Set_NotificationMode;
  630.     property StateString: WideString read Get_StateString;
  631.     property ProtocolStateString: WideString read Get_ProtocolStateString;
  632.     property Logging: WordBool read Get_Logging write Set_Logging;
  633.     property LocalPort: Integer read Get_LocalPort write Set_LocalPort;
  634.     property SocketHandle: Integer read Get_SocketHandle;
  635.   end;
  636.  
  637. { DispInterface declaration for Dual Interface INMOleClientControl }
  638.  
  639.   INMOleClientControlDisp = dispinterface
  640.     ['{B7FC35B4-8CE7-11CF-9754-00AA00C00908}']
  641.     property RemoteHost: WideString dispid 0;
  642.     property RemotePort: Integer dispid 502;
  643.     property State: Smallint readonly dispid 503;
  644.     property ProtocolState: Smallint readonly dispid 504;
  645.     property ReplyString: WideString readonly dispid 505;
  646.     property ReplyCode: Integer readonly dispid 506;
  647.     property Timeout[event: Smallint]: Integer dispid 507;
  648.     property EnableTimer[event: Smallint]: WordBool writeonly dispid 513;
  649.     property Errors: icErrors readonly dispid 508;
  650.     property Busy: WordBool readonly dispid 509;
  651.     property NotificationMode: Smallint dispid 510;
  652.     property StateString: WideString readonly dispid 511;
  653.     property ProtocolStateString: WideString readonly dispid 512;
  654.     property Logging: WordBool dispid 514;
  655.     property LocalPort: Integer dispid 517;
  656.     property SocketHandle: Integer readonly dispid 518;
  657.     procedure Cancel; dispid 520;
  658.     procedure Connect(RemoteHost, RemotePort: OleVariant); dispid 521;
  659.   end;
  660.  
  661. { NetManage Internet Client control events }
  662.  
  663.   DNMOleClientControlEvents = dispinterface
  664.     ['{B7FC35B5-8CE7-11CF-9754-00AA00C00908}']
  665.     procedure Timeout(event: Smallint); dispid 551;
  666.     procedure Cancel; dispid 552;
  667.     procedure StateChanged(State: Smallint); dispid 553;
  668.     procedure ProtocolStateChanged(ProtocolState: Smallint); dispid 554;
  669.     procedure Busy(isBusy: WordBool); dispid 555;
  670.     procedure Log; dispid 556;
  671.   end;
  672.  
  673. { NetManage Authenticated Client Control }
  674.  
  675.   INMOleAuthClientControl = interface(INMOleClientControl)
  676.     ['{B7FC35B0-8CE7-11CF-9754-00AA00C00908}']
  677.     function Get_UserId: WideString; safecall;
  678.     procedure Set_UserId(const Value: WideString); safecall;
  679.     function Get_Password: WideString; safecall;
  680.     procedure Set_Password(const Value: WideString); safecall;
  681.     procedure Authenticate(UserId, Password: OleVariant); safecall;
  682.     property UserId: WideString read Get_UserId write Set_UserId;
  683.     property Password: WideString read Get_Password write Set_Password;
  684.   end;
  685.  
  686. { DispInterface declaration for Dual Interface INMOleAuthClientControl }
  687.  
  688.   INMOleAuthClientControlDisp = dispinterface
  689.     ['{B7FC35B0-8CE7-11CF-9754-00AA00C00908}']
  690.     property UserId: WideString dispid 601;
  691.     property Password: WideString dispid 602;
  692.     procedure Authenticate(UserId, Password: OleVariant); dispid 610;
  693.   end;
  694.  
  695. { Event interface for NetManage Authenticated Client Control }
  696.  
  697.   DNMOleAuthClientControlEvents = dispinterface
  698.     ['{B7FC35B1-8CE7-11CF-9754-00AA00C00908}']
  699.   end;
  700.  
  701. { Properties/Methods for NetManage FTP Client Control }
  702.  
  703.   Iftpct = interface(INMOleAuthClientControl)
  704.     ['{B7FC354A-8CE7-11CF-9754-00AA00C00908}']
  705.     function Get_URL: WideString; safecall;
  706.     procedure Set_URL(const Value: WideString); safecall;
  707.     function Get_DocInput: DocInput; safecall;
  708.     function Get_DocOutput: DocOutput; safecall;
  709.     procedure SendDoc(URL, Headers, InputData, InputFile, OutputFile: OleVariant); safecall;
  710.     procedure GetDoc(URL, Headers, OutputFile: OleVariant); safecall;
  711.     function Get_AppendToFile: WordBool; safecall;
  712.     procedure Set_AppendToFile(Value: WordBool); safecall;
  713.     function Get_ListItemNotify: WordBool; safecall;
  714.     procedure Set_ListItemNotify(Value: WordBool); safecall;
  715.     function Get_RemoteFile: WideString; safecall;
  716.     procedure Set_RemoteFile(const Value: WideString); safecall;
  717.     function Get_Operation: FTPOperationConstants; safecall;
  718.     function Get_PassiveMode: WordBool; safecall;
  719.     procedure Set_PassiveMode(Value: WordBool); safecall;
  720.     function Get_Firewall: IFirewall; safecall;
  721.     procedure Abort; safecall;
  722.     procedure Account(const Account: WideString); safecall;
  723.     procedure ChangeDir(const directory: WideString); safecall;
  724.     procedure CreateDir(const directory: WideString); safecall;
  725.     procedure DeleteDir(const directory: WideString); safecall;
  726.     procedure DeleteFile(const FileName: WideString); safecall;
  727.     procedure Quit; safecall;
  728.     procedure Help(const Help: WideString); safecall;
  729.     procedure Noop; safecall;
  730.     procedure Mode(ftpMode: FTPModeConstants); safecall;
  731.     procedure Type_(ftpType: FTPTypeConstants); safecall;
  732.     procedure List(const List: WideString); safecall;
  733.     procedure NameList(const NameList: WideString); safecall;
  734.     procedure ParentDir; safecall;
  735.     procedure PrintDir; safecall;
  736.     procedure Execute(const Execute: WideString); safecall;
  737.     procedure Status(const Status: WideString); safecall;
  738.     procedure PutFile(const srcFileName, destFileName: WideString); safecall;
  739.     procedure Reinitialize; safecall;
  740.     procedure System; safecall;
  741.     procedure GetFile(const srcFileName, destFileName: WideString); safecall;
  742.     procedure PutFileUnique(const FileName: WideString); safecall;
  743.     procedure Site(const Site: WideString); safecall;
  744.     property URL: WideString read Get_URL write Set_URL;
  745.     property DocInput: DocInput read Get_DocInput;
  746.     property DocOutput: DocOutput read Get_DocOutput;
  747.     property AppendToFile: WordBool read Get_AppendToFile write Set_AppendToFile;
  748.     property ListItemNotify: WordBool read Get_ListItemNotify write Set_ListItemNotify;
  749.     property RemoteFile: WideString read Get_RemoteFile write Set_RemoteFile;
  750.     property Operation: FTPOperationConstants read Get_Operation;
  751.     property PassiveMode: WordBool read Get_PassiveMode write Set_PassiveMode;
  752.     property Firewall: IFirewall read Get_Firewall;
  753.   end;
  754.  
  755. { DispInterface declaration for Dual Interface Iftpct }
  756.  
  757.   IftpctDisp = dispinterface
  758.     ['{B7FC354A-8CE7-11CF-9754-00AA00C00908}']
  759.     property URL: WideString dispid 1001;
  760.     property DocInput: DocInput readonly dispid 1002;
  761.     property DocOutput: DocOutput readonly dispid 1003;
  762.     procedure SendDoc(URL, Headers, InputData, InputFile, OutputFile: OleVariant); dispid 1005;
  763.     procedure GetDoc(URL, Headers, OutputFile: OleVariant); dispid 1004;
  764.     property AppendToFile: WordBool dispid 1;
  765.     property ListItemNotify: WordBool dispid 2;
  766.     property RemoteFile: WideString dispid 3;
  767.     property Operation: FTPOperationConstants readonly dispid 5;
  768.     property PassiveMode: WordBool dispid 6;
  769.     property Firewall: IFirewall readonly dispid 86;
  770.     procedure Abort; dispid 8;
  771.     procedure Account(const Account: WideString); dispid 9;
  772.     procedure ChangeDir(const directory: WideString); dispid 10;
  773.     procedure CreateDir(const directory: WideString); dispid 11;
  774.     procedure DeleteDir(const directory: WideString); dispid 12;
  775.     procedure DeleteFile(const FileName: WideString); dispid 13;
  776.     procedure Quit; dispid 14;
  777.     procedure Help(const Help: WideString); dispid 16;
  778.     procedure Noop; dispid 18;
  779.     procedure Mode(ftpMode: FTPModeConstants); dispid 19;
  780.     procedure Type_(ftpType: FTPTypeConstants); dispid 20;
  781.     procedure List(const List: WideString); dispid 21;
  782.     procedure NameList(const NameList: WideString); dispid 22;
  783.     procedure ParentDir; dispid 23;
  784.     procedure PrintDir; dispid 24;
  785.     procedure Execute(const Execute: WideString); dispid 25;
  786.     procedure Status(const Status: WideString); dispid 26;
  787.     procedure PutFile(const srcFileName, destFileName: WideString); dispid 27;
  788.     procedure Reinitialize; dispid 28;
  789.     procedure System; dispid 29;
  790.     procedure GetFile(const srcFileName, destFileName: WideString); dispid 30;
  791.     procedure PutFileUnique(const FileName: WideString); dispid 31;
  792.     procedure Site(const Site: WideString); dispid 32;
  793.   end;
  794.  
  795. { FTP client control events }
  796.  
  797.   DftpctEvents = dispinterface
  798.     ['{B7FC354B-8CE7-11CF-9754-00AA00C00908}']
  799.     procedure Error(Number: Smallint; var Description: WideString; Scode: Integer; const Source, HelpFile: WideString; HelpContext: Integer; var CancelDisplay: WordBool); dispid -608;
  800.     procedure Timeout(event: Smallint; var Continue: WordBool); dispid 551;
  801.     procedure Cancel; dispid 552;
  802.     procedure StateChanged(State: Smallint); dispid 553;
  803.     procedure ProtocolStateChanged(ProtocolState: Smallint); dispid 554;
  804.     procedure Busy(isBusy: WordBool); dispid 555;
  805.     procedure Log; dispid 556;
  806.     procedure DocInput(const DocInput: DocInput); dispid 1016;
  807.     procedure DocOutput(const DocOutput: DocOutput); dispid 1017;
  808.     procedure Abort; dispid 43;
  809.     procedure Account; dispid 44;
  810.     procedure ChangeDir; dispid 45;
  811.     procedure CreateDir; dispid 47;
  812.     procedure DeleteDir; dispid 48;
  813.     procedure DelFile; dispid 49;
  814.     procedure Help; dispid 54;
  815.     procedure Mode; dispid 55;
  816.     procedure Noop; dispid 56;
  817.     procedure ParentDir; dispid 57;
  818.     procedure PrintDir; dispid 58;
  819.     procedure Execute; dispid 60;
  820.     procedure Status; dispid 62;
  821.     procedure Reinitialize; dispid 63;
  822.     procedure System; dispid 64;
  823.     procedure Site; dispid 66;
  824.     procedure Type_; dispid 68;
  825.     procedure ListItem(const Item: FTPDirItem); dispid 67;
  826.     procedure FirewallStateChanged(sFirewallState: Smallint); dispid 90;
  827.   end;
  828.  
  829. { FTP directory item object }
  830.  
  831.   CoFTPDirItemCls = class
  832.     class function Create: FTPDirItem;
  833.     class function CreateRemote(const MachineName: string): FTPDirItem;
  834.   end;
  835.  
  836. { Firewall Object }
  837.  
  838.   CoFirewall = class
  839.     class function Create: IFirewall;
  840.     class function CreateRemote(const MachineName: string): IFirewall;
  841.   end;
  842.  
  843. { NetManage FTP Client Control }
  844.  
  845.   TFTPError = procedure(Sender: TObject; Number: Smallint; var Description: WideString; Scode: Integer; const Source, HelpFile: WideString; HelpContext: Integer; var CancelDisplay: WordBool) of object;
  846.   TFTPTimeout = procedure(Sender: TObject; event: Smallint; var Continue: WordBool) of object;
  847.   TFTPStateChanged = procedure(Sender: TObject; State: Smallint) of object;
  848.   TFTPProtocolStateChanged = procedure(Sender: TObject; ProtocolState: Smallint) of object;
  849.   TFTPBusy = procedure(Sender: TObject; isBusy: WordBool) of object;
  850.   TFTPDocInput = procedure(Sender: TObject; const DocInput: DocInput) of object;
  851.   TFTPDocOutput = procedure(Sender: TObject; const DocOutput: DocOutput) of object;
  852.   TFTPListItem = procedure(Sender: TObject; const Item: FTPDirItem) of object;
  853.   TFTPFirewallStateChanged = procedure(Sender: TObject; sFirewallState: Smallint) of object;
  854.  
  855.   TFTP = class(TOleControl)
  856.   private
  857.     FOnError: TFTPError;
  858.     FOnTimeout: TFTPTimeout;
  859.     FOnCancel: TNotifyEvent;
  860.     FOnStateChanged: TFTPStateChanged;
  861.     FOnProtocolStateChanged: TFTPProtocolStateChanged;
  862.     FOnBusy: TFTPBusy;
  863.     FOnLog: TNotifyEvent;
  864.     FOnDocInput: TFTPDocInput;
  865.     FOnDocOutput: TFTPDocOutput;
  866.     FOnAbort: TNotifyEvent;
  867.     FOnAccount: TNotifyEvent;
  868.     FOnChangeDir: TNotifyEvent;
  869.     FOnCreateDir: TNotifyEvent;
  870.     FOnDeleteDir: TNotifyEvent;
  871.     FOnDelFile: TNotifyEvent;
  872.     FOnHelp: TNotifyEvent;
  873.     FOnMode: TNotifyEvent;
  874.     FOnNoop: TNotifyEvent;
  875.     FOnParentDir: TNotifyEvent;
  876.     FOnPrintDir: TNotifyEvent;
  877.     FOnExecute: TNotifyEvent;
  878.     FOnStatus: TNotifyEvent;
  879.     FOnReinitialize: TNotifyEvent;
  880.     FOnSystem: TNotifyEvent;
  881.     FOnSite: TNotifyEvent;
  882.     FOnType_: TNotifyEvent;
  883.     FOnListItem: TFTPListItem;
  884.     FOnFirewallStateChanged: TFTPFirewallStateChanged;
  885.     FIntf: Iftpct;
  886.     function Get_Timeout(event: Smallint): Integer;
  887.     procedure Set_Timeout(event: Smallint; Value: Integer);
  888.     procedure Set_EnableTimer(event: Smallint; Value: WordBool);
  889.     function Get_Errors: icErrors;
  890.     function Get_DocInput: DocInput;
  891.     function Get_DocOutput: DocOutput;
  892.     function Get_Firewall: IFirewall;
  893.   protected
  894.     procedure InitControlData; override;
  895.     procedure InitControlInterface(const Obj: IUnknown); override;
  896.   public
  897.     procedure AboutBox;
  898.     procedure Cancel;
  899.     procedure Connect(RemoteHost, RemotePort: OleVariant);
  900.     procedure Authenticate(UserId, Password: OleVariant);
  901.     procedure SendDoc(URL, Headers, InputData, InputFile, OutputFile: OleVariant);
  902.     procedure GetDoc(URL, Headers, OutputFile: OleVariant);
  903.     procedure Abort;
  904.     procedure Account(const Account: WideString);
  905.     procedure ChangeDir(const directory: WideString);
  906.     procedure CreateDir(const directory: WideString);
  907.     procedure DeleteDir(const directory: WideString);
  908.     procedure DeleteFile(const FileName: WideString);
  909.     procedure Quit;
  910.     procedure Help(const Help: WideString);
  911.     procedure Noop;
  912.     procedure Mode(ftpMode: FTPModeConstants);
  913.     procedure Type_(ftpType: FTPTypeConstants);
  914.     procedure List(const List: WideString);
  915.     procedure NameList(const NameList: WideString);
  916.     procedure ParentDir;
  917.     procedure PrintDir;
  918.     procedure Execute(const Execute: WideString);
  919.     procedure Status(const Status: WideString);
  920.     procedure PutFile(const srcFileName, destFileName: WideString);
  921.     procedure Reinitialize;
  922.     procedure System;
  923.     procedure GetFile(const srcFileName, destFileName: WideString);
  924.     procedure PutFileUnique(const FileName: WideString);
  925.     procedure Site(const Site: WideString);
  926.     property ControlInterface: Iftpct read FIntf;
  927.     property BlockResult: Smallint index 519 read GetSmallintProp;
  928.     property State: Smallint index 503 read GetSmallintProp;
  929.     property ProtocolState: Smallint index 504 read GetSmallintProp;
  930.     property ReplyString: WideString index 505 read GetWideStringProp;
  931.     property ReplyCode: Integer index 506 read GetIntegerProp;
  932.     property Timeout[event: Smallint]: Integer read Get_Timeout write Set_Timeout;
  933.     property EnableTimer[event: Smallint]: WordBool write Set_EnableTimer;
  934.     property Errors: icErrors read Get_Errors;
  935.     property Busy: WordBool index 509 read GetWordBoolProp;
  936.     property StateString: WideString index 511 read GetWideStringProp;
  937.     property ProtocolStateString: WideString index 512 read GetWideStringProp;
  938.     property SocketHandle: Integer index 518 read GetIntegerProp;
  939.     property DocInput: DocInput read Get_DocInput;
  940.     property DocOutput: DocOutput read Get_DocOutput;
  941.     property Operation: FTPOperationConstants index 5 read GetTOleEnumProp;
  942.     property Firewall: IFirewall read Get_Firewall;
  943.   published
  944.     property Blocking: WordBool index 515 read GetWordBoolProp write SetWordBoolProp stored False;
  945.     property SleepTime: Integer index 516 read GetIntegerProp write SetIntegerProp stored False;
  946.     property RemoteHost: WideString index 0 read GetWideStringProp write SetWideStringProp stored False;
  947.     property RemotePort: Integer index 502 read GetIntegerProp write SetIntegerProp stored False;
  948.     property NotificationMode: Smallint index 510 read GetSmallintProp write SetSmallintProp stored False;
  949.     property Logging: WordBool index 514 read GetWordBoolProp write SetWordBoolProp stored False;
  950.     property LocalPort: Integer index 517 read GetIntegerProp write SetIntegerProp stored False;
  951.     property UserId: WideString index 601 read GetWideStringProp write SetWideStringProp stored False;
  952.     property Password: WideString index 602 read GetWideStringProp write SetWideStringProp stored False;
  953.     property URL: WideString index 1001 read GetWideStringProp write SetWideStringProp stored False;
  954.     property AppendToFile: WordBool index 1 read GetWordBoolProp write SetWordBoolProp stored False;
  955.     property ListItemNotify: WordBool index 2 read GetWordBoolProp write SetWordBoolProp stored False;
  956.     property RemoteFile: WideString index 3 read GetWideStringProp write SetWideStringProp stored False;
  957.     property PassiveMode: WordBool index 6 read GetWordBoolProp write SetWordBoolProp stored False;
  958.     property OnError: TFTPError read FOnError write FOnError;
  959.     property OnTimeout: TFTPTimeout read FOnTimeout write FOnTimeout;
  960.     property OnCancel: TNotifyEvent read FOnCancel write FOnCancel;
  961.     property OnStateChanged: TFTPStateChanged read FOnStateChanged write FOnStateChanged;
  962.     property OnProtocolStateChanged: TFTPProtocolStateChanged read FOnProtocolStateChanged write FOnProtocolStateChanged;
  963.     property OnBusy: TFTPBusy read FOnBusy write FOnBusy;
  964.     property OnLog: TNotifyEvent read FOnLog write FOnLog;
  965.     property OnDocInput: TFTPDocInput read FOnDocInput write FOnDocInput;
  966.     property OnDocOutput: TFTPDocOutput read FOnDocOutput write FOnDocOutput;
  967.     property OnAbort: TNotifyEvent read FOnAbort write FOnAbort;
  968.     property OnAccount: TNotifyEvent read FOnAccount write FOnAccount;
  969.     property OnChangeDir: TNotifyEvent read FOnChangeDir write FOnChangeDir;
  970.     property OnCreateDir: TNotifyEvent read FOnCreateDir write FOnCreateDir;
  971.     property OnDeleteDir: TNotifyEvent read FOnDeleteDir write FOnDeleteDir;
  972.     property OnDelFile: TNotifyEvent read FOnDelFile write FOnDelFile;
  973.     property OnHelp: TNotifyEvent read FOnHelp write FOnHelp;
  974.     property OnMode: TNotifyEvent read FOnMode write FOnMode;
  975.     property OnNoop: TNotifyEvent read FOnNoop write FOnNoop;
  976.     property OnParentDir: TNotifyEvent read FOnParentDir write FOnParentDir;
  977.     property OnPrintDir: TNotifyEvent read FOnPrintDir write FOnPrintDir;
  978.     property OnExecute: TNotifyEvent read FOnExecute write FOnExecute;
  979.     property OnStatus: TNotifyEvent read FOnStatus write FOnStatus;
  980.     property OnReinitialize: TNotifyEvent read FOnReinitialize write FOnReinitialize;
  981.     property OnSystem: TNotifyEvent read FOnSystem write FOnSystem;
  982.     property OnSite: TNotifyEvent read FOnSite write FOnSite;
  983.     property OnType_: TNotifyEvent read FOnType_ write FOnType_;
  984.     property OnListItem: TFTPListItem read FOnListItem write FOnListItem;
  985.     property OnFirewallStateChanged: TFTPFirewallStateChanged read FOnFirewallStateChanged write FOnFirewallStateChanged;
  986.   end;
  987.  
  988. const
  989.   LIBID_HTTPCTLib: TGUID = '{B7FC355F-8CE7-11CF-9754-00AA00C00908}';
  990.  
  991. const
  992.  
  993. { MethodConstants }
  994.  
  995.   prcGet = 1;
  996.   prcHead = 2;
  997.   prcPost = 3;
  998.   prcPut = 4;
  999.  
  1000. { HTTPProtocolStateConstants }
  1001.  
  1002.   httpBase = 0;
  1003.   httpTransferring = 1;
  1004.  
  1005. const
  1006.  
  1007. { Component class GUIDs }
  1008.   Class_Proxy: TGUID = '{70F78900-F452-11CF-A306-00A0243B6C29}';
  1009.   Class_HTTP: TGUID = '{B7FC3563-8CE7-11CF-9754-00AA00C00908}';
  1010.  
  1011. type
  1012.  
  1013. { Forward declarations }
  1014. { Forward declarations: Interfaces }
  1015.   IHttpProxy = interface;
  1016.   IHttpProxyDisp = dispinterface;
  1017.   IHTTPCT = interface;
  1018.   IHTTPCTDisp = dispinterface;
  1019.   DHTTPCTEvents = dispinterface;
  1020.  
  1021. { Forward declarations: CoClasses }
  1022.   Proxy = IHttpProxy;
  1023.   HTTP = IHTTPCT;
  1024.  
  1025. { Forward declarations: Enums }
  1026.   MethodConstants = TOleEnum;
  1027.   HTTPProtocolStateConstants = TOleEnum;
  1028.  
  1029. { Proxy Object }
  1030.  
  1031.   IHttpProxy = interface(IDispatch)
  1032.     ['{6FB8A060-F452-11CF-A306-00A0243B6C29}']
  1033.     function Get_Mode: WordBool; safecall;
  1034.     procedure Set_Mode(Value: WordBool); safecall;
  1035.     function Get_Host: WideString; safecall;
  1036.     procedure Set_Host(const Value: WideString); safecall;
  1037.     function Get_Port: Integer; safecall;
  1038.     procedure Set_Port(Value: Integer); safecall;
  1039.     property Mode: WordBool read Get_Mode write Set_Mode;
  1040.     property Host: WideString read Get_Host write Set_Host;
  1041.     property Port: Integer read Get_Port write Set_Port;
  1042.   end;
  1043.  
  1044. { DispInterface declaration for Dual Interface IHttpProxy }
  1045.  
  1046.   IHttpProxyDisp = dispinterface
  1047.     ['{6FB8A060-F452-11CF-A306-00A0243B6C29}']
  1048.     property Mode: WordBool dispid 20;
  1049.     property Host: WideString dispid 22;
  1050.     property Port: Integer dispid 23;
  1051.   end;
  1052.  
  1053. { Properties/Methods for NetManage HTTP Client Control }
  1054.  
  1055.   IHTTPCT = interface(INMOleControl)
  1056.     ['{B7FC3561-8CE7-11CF-9754-00AA00C00908}']
  1057.     function Get_RemoteHost: WideString; safecall;
  1058.     procedure Set_RemoteHost(const Value: WideString); safecall;
  1059.     function Get_RemotePort: Integer; safecall;
  1060.     procedure Set_RemotePort(Value: Integer); safecall;
  1061.     function Get_State: Smallint; safecall;
  1062.     function Get_ProtocolState: Smallint; safecall;
  1063.     function Get_ReplyString: WideString; safecall;
  1064.     function Get_ReplyCode: Integer; safecall;
  1065.     function Get_Timeout(event: Smallint): Integer; safecall;
  1066.     procedure Set_Timeout(event: Smallint; Value: Integer); safecall;
  1067.     procedure Set_EnableTimer(event: Smallint; Value: WordBool); safecall;
  1068.     function Get_Errors: icErrors; safecall;
  1069.     function Get_Busy: WordBool; safecall;
  1070.     function Get_NotificationMode: Smallint; safecall;
  1071.     procedure Set_NotificationMode(Value: Smallint); safecall;
  1072.     function Get_StateString: WideString; safecall;
  1073.     function Get_ProtocolStateString: WideString; safecall;
  1074.     function Get_Logging: WordBool; safecall;
  1075.     procedure Set_Logging(Value: WordBool); safecall;
  1076.     function Get_LocalPort: Integer; safecall;
  1077.     procedure Set_LocalPort(Value: Integer); safecall;
  1078.     function Get_SocketHandle: Integer; safecall;
  1079.     procedure Cancel; safecall;
  1080.     property RemoteHost: WideString read Get_RemoteHost write Set_RemoteHost;
  1081.     property RemotePort: Integer read Get_RemotePort write Set_RemotePort;
  1082.     property State: Smallint read Get_State;
  1083.     property ProtocolState: Smallint read Get_ProtocolState;
  1084.     property ReplyString: WideString read Get_ReplyString;
  1085.     property ReplyCode: Integer read Get_ReplyCode;
  1086.     property Timeout[event: Smallint]: Integer read Get_Timeout write Set_Timeout;
  1087.     property EnableTimer[event: Smallint]: WordBool write Set_EnableTimer;
  1088.     property Errors: icErrors read Get_Errors;
  1089.     property Busy: WordBool read Get_Busy;
  1090.     property NotificationMode: Smallint read Get_NotificationMode write Set_NotificationMode;
  1091.     property StateString: WideString read Get_StateString;
  1092.     property ProtocolStateString: WideString read Get_ProtocolStateString;
  1093.     property Logging: WordBool read Get_Logging write Set_Logging;
  1094.     property LocalPort: Integer read Get_LocalPort write Set_LocalPort;
  1095.     property SocketHandle: Integer read Get_SocketHandle;
  1096.  
  1097.     function Get_Document: WideString; safecall;
  1098.     procedure Set_Document(const Value: WideString); safecall;
  1099.     function Get_Method: MethodConstants; safecall;
  1100.     procedure Set_Method(Value: MethodConstants); safecall;
  1101.     function Get_URL: WideString; safecall;
  1102.     procedure Set_URL(const Value: WideString); safecall;
  1103.     function Get_DocInput: DocInput; safecall;
  1104.     function Get_DocOutput: DocOutput; safecall;
  1105.     function Get_Proxy: IHttpProxy; safecall;
  1106.     procedure SendDoc(URL, Headers, InputData, InputFile, OutputFile: OleVariant); safecall;
  1107.     procedure GetDoc(URL, Headers, OutputFile: OleVariant); safecall;
  1108.     property Document: WideString read Get_Document write Set_Document;
  1109.     property Method: MethodConstants read Get_Method write Set_Method;
  1110.     property URL: WideString read Get_URL write Set_URL;
  1111.     property DocInput: DocInput read Get_DocInput;
  1112.     property DocOutput: DocOutput read Get_DocOutput;
  1113.     property Proxy: IHttpProxy read Get_Proxy;
  1114.   end;
  1115.  
  1116. { DispInterface declaration for Dual Interface IHTTPCT }
  1117.  
  1118.   IHTTPCTDisp = dispinterface
  1119.     ['{B7FC3561-8CE7-11CF-9754-00AA00C00908}']
  1120.     property Document: WideString dispid 10;
  1121.     property Method: MethodConstants dispid 11;
  1122.     property URL: WideString dispid 1001;
  1123.     property DocInput: DocInput readonly dispid 1002;
  1124.     property DocOutput: DocOutput readonly dispid 1003;
  1125.     property Proxy: IHttpProxy readonly dispid 21;
  1126.     procedure SendDoc(URL, Headers, InputData, InputFile, OutputFile: OleVariant); dispid 1005;
  1127.     procedure GetDoc(URL, Headers, OutputFile: OleVariant); dispid 1004;
  1128.   end;
  1129.  
  1130. { Event interface for NetManage HTTP Client Control }
  1131.  
  1132.   DHTTPCTEvents = dispinterface
  1133.     ['{B7FC3562-8CE7-11CF-9754-00AA00C00908}']
  1134.     procedure Error(Number: Smallint; var Description: WideString; Scode: Integer; const Source, HelpFile: WideString; HelpContext: Integer; var CancelDisplay: WordBool); dispid -608;
  1135.     procedure Timeout(event: Smallint; var Continue: WordBool); dispid 551;
  1136.     procedure Cancel; dispid 552;
  1137.     procedure StateChanged(State: Smallint); dispid 553;
  1138.     procedure ProtocolStateChanged(ProtocolState: Smallint); dispid 554;
  1139.     procedure Busy(isBusy: WordBool); dispid 555;
  1140.     procedure Log; dispid 556;
  1141.     procedure DocInput(const DocInput: DocInput); dispid 1016;
  1142.     procedure DocOutput(const DocOutput: DocOutput); dispid 1017;
  1143.   end;
  1144.  
  1145. { Proxy Object }
  1146.  
  1147.   CoProxy = class
  1148.     class function Create: IHttpProxy;
  1149.     class function CreateRemote(const MachineName: string): IHttpProxy;
  1150.   end;
  1151.  
  1152. { NetManage HTTP Client Control }
  1153.  
  1154.   THTTPError = procedure(Sender: TObject; Number: Smallint; var Description: WideString; Scode: Integer; const Source, HelpFile: WideString; HelpContext: Integer; var CancelDisplay: WordBool) of object;
  1155.   THTTPTimeout = procedure(Sender: TObject; event: Smallint; var Continue: WordBool) of object;
  1156.   THTTPStateChanged = procedure(Sender: TObject; State: Smallint) of object;
  1157.   THTTPProtocolStateChanged = procedure(Sender: TObject; ProtocolState: Smallint) of object;
  1158.   THTTPBusy = procedure(Sender: TObject; isBusy: WordBool) of object;
  1159.   THTTPDocInput = procedure(Sender: TObject; const DocInput: DocInput) of object;
  1160.   THTTPDocOutput = procedure(Sender: TObject; const DocOutput: DocOutput) of object;
  1161.  
  1162.   THTTP = class(TOleControl)
  1163.   private
  1164.     FOnError: THTTPError;
  1165.     FOnTimeout: THTTPTimeout;
  1166.     FOnCancel: TNotifyEvent;
  1167.     FOnStateChanged: THTTPStateChanged;
  1168.     FOnProtocolStateChanged: THTTPProtocolStateChanged;
  1169.     FOnBusy: THTTPBusy;
  1170.     FOnLog: TNotifyEvent;
  1171.     FOnDocInput: THTTPDocInput;
  1172.     FOnDocOutput: THTTPDocOutput;
  1173.     FIntf: IHTTPCT;
  1174.     function Get_Timeout(event: Smallint): Integer;
  1175.     procedure Set_Timeout(event: Smallint; Value: Integer);
  1176.     procedure Set_EnableTimer(event: Smallint; Value: WordBool);
  1177.     function Get_Errors: icErrors;
  1178.     function Get_DocInput: DocInput;
  1179.     function Get_DocOutput: DocOutput;
  1180.     function Get_Proxy: IHttpProxy;
  1181.   protected
  1182.     procedure InitControlData; override;
  1183.     procedure InitControlInterface(const Obj: IUnknown); override;
  1184.   public
  1185.     procedure AboutBox;
  1186.     procedure Cancel;
  1187.     procedure SendDoc(URL, Headers, InputData, InputFile, OutputFile: OleVariant);
  1188.     procedure GetDoc(URL, Headers, OutputFile: OleVariant);
  1189.     property ControlInterface: IHTTPCT read FIntf;
  1190.     property BlockResult: Smallint index 519 read GetSmallintProp;
  1191.     property State: Smallint index 503 read GetSmallintProp;
  1192.     property ProtocolState: Smallint index 504 read GetSmallintProp;
  1193.     property ReplyString: WideString index 505 read GetWideStringProp;
  1194.     property ReplyCode: Integer index 506 read GetIntegerProp;
  1195.     property Timeout[event: Smallint]: Integer read Get_Timeout write Set_Timeout;
  1196.     property EnableTimer[event: Smallint]: WordBool write Set_EnableTimer;
  1197.     property Errors: icErrors read Get_Errors;
  1198.     property Busy: WordBool index 509 read GetWordBoolProp;
  1199.     property StateString: WideString index 511 read GetWideStringProp;
  1200.     property ProtocolStateString: WideString index 512 read GetWideStringProp;
  1201.     property SocketHandle: Integer index 518 read GetIntegerProp;
  1202.     property DocInput: DocInput read Get_DocInput;
  1203.     property DocOutput: DocOutput read Get_DocOutput;
  1204.     property Proxy: IHttpProxy read Get_Proxy;
  1205.   published
  1206.     property Blocking: WordBool index 515 read GetWordBoolProp write SetWordBoolProp stored False;
  1207.     property SleepTime: Integer index 516 read GetIntegerProp write SetIntegerProp stored False;
  1208.     property RemoteHost: WideString index 0 read GetWideStringProp write SetWideStringProp stored False;
  1209.     property RemotePort: Integer index 502 read GetIntegerProp write SetIntegerProp stored False;
  1210.     property NotificationMode: Smallint index 510 read GetSmallintProp write SetSmallintProp stored False;
  1211.     property Logging: WordBool index 514 read GetWordBoolProp write SetWordBoolProp stored False;
  1212.     property LocalPort: Integer index 517 read GetIntegerProp write SetIntegerProp stored False;
  1213.     property Document: WideString index 10 read GetWideStringProp write SetWideStringProp stored False;
  1214.     property Method: MethodConstants index 11 read GetTOleEnumProp write SetTOleEnumProp stored False;
  1215.     property URL: WideString index 1001 read GetWideStringProp write SetWideStringProp stored False;
  1216.     property OnError: THTTPError read FOnError write FOnError;
  1217.     property OnTimeout: THTTPTimeout read FOnTimeout write FOnTimeout;
  1218.     property OnCancel: TNotifyEvent read FOnCancel write FOnCancel;
  1219.     property OnStateChanged: THTTPStateChanged read FOnStateChanged write FOnStateChanged;
  1220.     property OnProtocolStateChanged: THTTPProtocolStateChanged read FOnProtocolStateChanged write FOnProtocolStateChanged;
  1221.     property OnBusy: THTTPBusy read FOnBusy write FOnBusy;
  1222.     property OnLog: TNotifyEvent read FOnLog write FOnLog;
  1223.     property OnDocInput: THTTPDocInput read FOnDocInput write FOnDocInput;
  1224.     property OnDocOutput: THTTPDocOutput read FOnDocOutput write FOnDocOutput;
  1225.   end;
  1226.  
  1227. const
  1228.   LIBID_HTMLObjects: TGUID = '{B7FC354D-8CE7-11CF-9754-00AA00C00908}';
  1229.  
  1230. { Component class GUIDs }
  1231.   Class_HTMLElementCls: TGUID = '{B7FC3550-8CE7-11CF-9754-00AA00C00908}';
  1232.   Class_HTMLFormCls: TGUID = '{B7FC3554-8CE7-11CF-9754-00AA00C00908}';
  1233.   Class_HTMLFormsCls: TGUID = '{B7FC3557-8CE7-11CF-9754-00AA00C00908}';
  1234.   Class_HTMLAttrCls: TGUID = '{B7FC3559-8CE7-11CF-9754-00AA00C00908}';
  1235.   Class_HTMLAttrsCls: TGUID = '{B7FC355B-8CE7-11CF-9754-00AA00C00908}';
  1236.   Class_HTML: TGUID = '{B7FC355E-8CE7-11CF-9754-00AA00C00908}';
  1237.  
  1238. type
  1239.  
  1240. { Forward declarations }
  1241. { Forward declarations: Interfaces }
  1242.   HTMLElement = interface;
  1243.   HTMLElementDisp = dispinterface;
  1244.   HTMLForm = interface;
  1245.   HTMLFormDisp = dispinterface;
  1246.   HTMLForms = interface;
  1247.   HTMLFormsDisp = dispinterface;
  1248.   HTMLAttr = interface;
  1249.   HTMLAttrDisp = dispinterface;
  1250.   HTMLAttrs = interface;
  1251.   HTMLAttrsDisp = dispinterface;
  1252.   IHTML = interface;
  1253.   IHTMLDisp = dispinterface;
  1254.   DHTMLEvents = dispinterface;
  1255.  
  1256. { Forward declarations: CoClasses }
  1257.   HTMLElementCls = HTMLElement;
  1258.   HTMLFormCls = HTMLForm;
  1259.   HTMLFormsCls = HTMLForms;
  1260.   HTMLAttrCls = HTMLAttr;
  1261.   HTMLAttrsCls = HTMLAttrs;
  1262.   HTML = IHTML;
  1263.  
  1264. { HTML Element properties and methods }
  1265.  
  1266.   HTMLElement = interface(IDispatch)
  1267.     ['{B7FC354E-8CE7-11CF-9754-00AA00C00908}']
  1268.   end;
  1269.  
  1270. { DispInterface declaration for Dual Interface HTMLElement }
  1271.  
  1272.   HTMLElementDisp = dispinterface
  1273.     ['{B7FC354E-8CE7-11CF-9754-00AA00C00908}']
  1274.   end;
  1275.  
  1276. { HTML Form properties and methods }
  1277.  
  1278.   HTMLForm = interface(IDispatch)
  1279.     ['{B7FC3551-8CE7-11CF-9754-00AA00C00908}']
  1280.     function Get_Method: WideString; safecall;
  1281.     function Get_URL: WideString; safecall;
  1282.     function Get_URLEncodedBody: WideString; safecall;
  1283.     procedure RequestSubmit; safecall;
  1284.     function Get_CPPObject: SYSINT; safecall;
  1285.     procedure Set_CPPObject(Value: SYSINT); safecall;
  1286.     property Method: WideString read Get_Method;
  1287.     property URL: WideString read Get_URL;
  1288.     property URLEncodedBody: WideString read Get_URLEncodedBody;
  1289.     property CPPObject: SYSINT read Get_CPPObject write Set_CPPObject;
  1290.   end;
  1291.  
  1292. { DispInterface declaration for Dual Interface HTMLForm }
  1293.  
  1294.   HTMLFormDisp = dispinterface
  1295.     ['{B7FC3551-8CE7-11CF-9754-00AA00C00908}']
  1296.     property Method: WideString readonly dispid 1;
  1297.     property URL: WideString readonly dispid 2;
  1298.     property URLEncodedBody: WideString readonly dispid 3;
  1299.     procedure RequestSubmit; dispid 4;
  1300.     property CPPObject: SYSINT dispid 100;
  1301.   end;
  1302.  
  1303. { HTML Forms collection properties and methods }
  1304.  
  1305.   HTMLForms = interface(IDispatch)
  1306.     ['{B7FC3555-8CE7-11CF-9754-00AA00C00908}']
  1307.     function Get_Count: Integer; safecall;
  1308.     function Get__NewEnum: IUnknown; safecall;
  1309.     function Item(Index: OleVariant): HTMLForm; safecall;
  1310.     function Get_CPPObject: SYSINT; safecall;
  1311.     procedure Set_CPPObject(Value: SYSINT); safecall;
  1312.     property Count: Integer read Get_Count;
  1313.     property _NewEnum: IUnknown read Get__NewEnum;
  1314.     property CPPObject: SYSINT read Get_CPPObject write Set_CPPObject;
  1315.   end;
  1316.  
  1317. { DispInterface declaration for Dual Interface HTMLForms }
  1318.  
  1319.   HTMLFormsDisp = dispinterface
  1320.     ['{B7FC3555-8CE7-11CF-9754-00AA00C00908}']
  1321.     property Count: Integer readonly dispid 1;
  1322.     property _NewEnum: IUnknown readonly dispid -4;
  1323.     function Item(Index: OleVariant): HTMLForm; dispid 2;
  1324.     property CPPObject: SYSINT dispid 100;
  1325.   end;
  1326.  
  1327. { HTML Attribute properties and methods }
  1328.  
  1329.   HTMLAttr = interface(IDispatch)
  1330.     ['{B7FC3558-8CE7-11CF-9754-00AA00C00908}']
  1331.     function Get_Name: WideString; safecall;
  1332.     function Get_Value: WideString; safecall;
  1333.     function Get_CPPObject: SYSINT; safecall;
  1334.     procedure Set_CPPObject(Value: SYSINT); safecall;
  1335.     property Name: WideString read Get_Name;
  1336.     property Value: WideString read Get_Value;
  1337.     property CPPObject: SYSINT read Get_CPPObject write Set_CPPObject;
  1338.   end;
  1339.  
  1340. { DispInterface declaration for Dual Interface HTMLAttr }
  1341.  
  1342.   HTMLAttrDisp = dispinterface
  1343.     ['{B7FC3558-8CE7-11CF-9754-00AA00C00908}']
  1344.     property Name: WideString readonly dispid 1;
  1345.     property Value: WideString readonly dispid 2;
  1346.     property CPPObject: SYSINT dispid 100;
  1347.   end;
  1348.  
  1349. { HTML Attributes collection properties and methods }
  1350.  
  1351.   HTMLAttrs = interface(IDispatch)
  1352.     ['{B7FC355A-8CE7-11CF-9754-00AA00C00908}']
  1353.     function Get_Count: Integer; safecall;
  1354.     function Get__NewEnum: IUnknown; safecall;
  1355.     function Item(Index: OleVariant): HTMLAttr; safecall;
  1356.     function Get_CPPObject: SYSINT; safecall;
  1357.     procedure Set_CPPObject(Value: SYSINT); safecall;
  1358.     procedure Set_InternalCount(Value: Integer); safecall;
  1359.     property Count: Integer read Get_Count;
  1360.     property _NewEnum: IUnknown read Get__NewEnum;
  1361.     property CPPObject: SYSINT read Get_CPPObject write Set_CPPObject;
  1362.     property InternalCount: Integer write Set_InternalCount;
  1363.   end;
  1364.  
  1365. { DispInterface declaration for Dual Interface HTMLAttrs }
  1366.  
  1367.   HTMLAttrsDisp = dispinterface
  1368.     ['{B7FC355A-8CE7-11CF-9754-00AA00C00908}']
  1369.     property Count: Integer readonly dispid 1;
  1370.     property _NewEnum: IUnknown readonly dispid -4;
  1371.     function Item(Index: OleVariant): HTMLAttr; dispid 2;
  1372.     property CPPObject: SYSINT dispid 100;
  1373.     property InternalCount: Integer writeonly dispid 3;
  1374.   end;
  1375.  
  1376. { Properties/Methods for NetManage HTML Control }
  1377.  
  1378.   IHTML = interface(INMOleControl)
  1379.     ['{B7FC355C-8CE7-11CF-9754-00AA00C00908}']
  1380.     function Get_DocInput: DocInput; safecall;
  1381.     function Get_DocOutput: DocOutput; safecall;
  1382.     function Get_URL: WideString; safecall;
  1383.     function Get_RequestURL: WideString; safecall;
  1384.     function Get_BaseURL: WideString; safecall;
  1385.     function Get_Forms: HTMLForms; safecall;
  1386.     function Get_TotalWidth: Integer; safecall;
  1387.     function Get_TotalHeight: Integer; safecall;
  1388.     function Get_RetrieveBytesTotal: Integer; safecall;
  1389.     function Get_RetrieveBytesDone: Integer; safecall;
  1390.     function Get_ParseDone: WordBool; safecall;
  1391.     function Get_LayoutDone: WordBool; safecall;
  1392.     function Get_DeferRetrieval: WordBool; safecall;
  1393.     procedure Set_DeferRetrieval(Value: WordBool); safecall;
  1394.     function Get_ViewSource: WordBool; safecall;
  1395.     procedure Set_ViewSource(Value: WordBool); safecall;
  1396.     function Get_RetainSource: WordBool; safecall;
  1397.     procedure Set_RetainSource(Value: WordBool); safecall;
  1398.     function Get_SourceText: WideString; safecall;
  1399.     function Get_ElemNotification: WordBool; safecall;
  1400.     procedure Set_ElemNotification(Value: WordBool); safecall;
  1401.     function Get_Timeout: Integer; safecall;
  1402.     procedure Set_Timeout(Value: Integer); safecall;
  1403.     function Get_Redraw: WordBool; safecall;
  1404.     procedure Set_Redraw(Value: WordBool); safecall;
  1405.     function Get_UnderlineLinks: WordBool; safecall;
  1406.     procedure Set_UnderlineLinks(Value: WordBool); safecall;
  1407.     function Get_UseDocColors: WordBool; safecall;
  1408.     procedure Set_UseDocColors(Value: WordBool); safecall;
  1409.     function Get_BackImage: WideString; safecall;
  1410.     procedure Set_BackImage(const Value: WideString); safecall;
  1411.     function Get_BackColor: TColor; safecall;
  1412.     procedure Set_BackColor(Value: TColor); safecall;
  1413.     function Get_ForeColor: TColor; safecall;
  1414.     procedure Set_ForeColor(Value: TColor); safecall;
  1415.     function Get_LinkColor: TColor; safecall;
  1416.     procedure Set_LinkColor(Value: TColor); safecall;
  1417.     function Get_VisitedColor: TColor; safecall;
  1418.     procedure Set_VisitedColor(Value: TColor); safecall;
  1419.     function Get_DocBackColor: TColor; safecall;
  1420.     function Get_DocForeColor: TColor; safecall;
  1421.     function Get_DocLinkColor: TColor; safecall;
  1422.     function Get_DocVisitedColor: TColor; safecall;
  1423.     function Get_Font: IFontDisp; safecall;
  1424.     procedure Set_Font(const Value: IFontDisp); safecall;
  1425.     function Get_FixedFont: IFontDisp; safecall;
  1426.     procedure Set_FixedFont(const Value: IFontDisp); safecall;
  1427.     function Get_Heading1Font: IFontDisp; safecall;
  1428.     procedure Set_Heading1Font(const Value: IFontDisp); safecall;
  1429.     function Get_Heading2Font: IFontDisp; safecall;
  1430.     procedure Set_Heading2Font(const Value: IFontDisp); safecall;
  1431.     function Get_Heading3Font: IFontDisp; safecall;
  1432.     procedure Set_Heading3Font(const Value: IFontDisp); safecall;
  1433.     function Get_Heading4Font: IFontDisp; safecall;
  1434.     procedure Set_Heading4Font(const Value: IFontDisp); safecall;
  1435.     function Get_Heading5Font: IFontDisp; safecall;
  1436.     procedure Set_Heading5Font(const Value: IFontDisp); safecall;
  1437.     function Get_Heading6Font: IFontDisp; safecall;
  1438.     procedure Set_Heading6Font(const Value: IFontDisp); safecall;
  1439.     function Get_IsPrintingDone(PageNumber: Integer): WordBool; safecall;
  1440.     procedure RequestDoc(const URL: WideString); safecall;
  1441.     procedure RequestAllEmbedded; safecall;
  1442.     procedure Cancel(Message: OleVariant); safecall;
  1443.     procedure BeginPrinting(hDC: Integer; x, y, Width, Height, DefaultHeaders, DefaultTitle: OleVariant); safecall;
  1444.     procedure PrintPage(hDC, PageNumber: Integer); safecall;
  1445.     procedure EndPrinting; safecall;
  1446.     procedure AutoPrint(hDC: Integer); safecall;
  1447.     function Get_Errors: icErrors; safecall;
  1448.     function Get_hWnd: OLE_HANDLE; safecall;
  1449.     function GetPlainText(selected, fancy: WordBool): WideString; safecall;
  1450.     function HasSelection: WordBool; safecall;
  1451.     procedure SelectAll; safecall;
  1452.     property DocInput: DocInput read Get_DocInput;
  1453.     property DocOutput: DocOutput read Get_DocOutput;
  1454.     property URL: WideString read Get_URL;
  1455.     property RequestURL: WideString read Get_RequestURL;
  1456.     property BaseURL: WideString read Get_BaseURL;
  1457.     property Forms: HTMLForms read Get_Forms;
  1458.     property TotalWidth: Integer read Get_TotalWidth;
  1459.     property TotalHeight: Integer read Get_TotalHeight;
  1460.     property RetrieveBytesTotal: Integer read Get_RetrieveBytesTotal;
  1461.     property RetrieveBytesDone: Integer read Get_RetrieveBytesDone;
  1462.     property ParseDone: WordBool read Get_ParseDone;
  1463.     property LayoutDone: WordBool read Get_LayoutDone;
  1464.     property DeferRetrieval: WordBool read Get_DeferRetrieval write Set_DeferRetrieval;
  1465.     property ViewSource: WordBool read Get_ViewSource write Set_ViewSource;
  1466.     property RetainSource: WordBool read Get_RetainSource write Set_RetainSource;
  1467.     property SourceText: WideString read Get_SourceText;
  1468.     property ElemNotification: WordBool read Get_ElemNotification write Set_ElemNotification;
  1469.     property Timeout: Integer read Get_Timeout write Set_Timeout;
  1470.     property Redraw: WordBool read Get_Redraw write Set_Redraw;
  1471.     property UnderlineLinks: WordBool read Get_UnderlineLinks write Set_UnderlineLinks;
  1472.     property UseDocColors: WordBool read Get_UseDocColors write Set_UseDocColors;
  1473.     property BackImage: WideString read Get_BackImage write Set_BackImage;
  1474.     property BackColor: TColor read Get_BackColor write Set_BackColor;
  1475.     property ForeColor: TColor read Get_ForeColor write Set_ForeColor;
  1476.     property LinkColor: TColor read Get_LinkColor write Set_LinkColor;
  1477.     property VisitedColor: TColor read Get_VisitedColor write Set_VisitedColor;
  1478.     property DocBackColor: TColor read Get_DocBackColor;
  1479.     property DocForeColor: TColor read Get_DocForeColor;
  1480.     property DocLinkColor: TColor read Get_DocLinkColor;
  1481.     property DocVisitedColor: TColor read Get_DocVisitedColor;
  1482.     property Font: IFontDisp read Get_Font write Set_Font;
  1483.     property FixedFont: IFontDisp read Get_FixedFont write Set_FixedFont;
  1484.     property Heading1Font: IFontDisp read Get_Heading1Font write Set_Heading1Font;
  1485.     property Heading2Font: IFontDisp read Get_Heading2Font write Set_Heading2Font;
  1486.     property Heading3Font: IFontDisp read Get_Heading3Font write Set_Heading3Font;
  1487.     property Heading4Font: IFontDisp read Get_Heading4Font write Set_Heading4Font;
  1488.     property Heading5Font: IFontDisp read Get_Heading5Font write Set_Heading5Font;
  1489.     property Heading6Font: IFontDisp read Get_Heading6Font write Set_Heading6Font;
  1490.     property IsPrintingDone[PageNumber: Integer]: WordBool read Get_IsPrintingDone;
  1491.     property Errors: icErrors read Get_Errors;
  1492.     property hWnd: OLE_HANDLE read Get_hWnd;
  1493.   end;
  1494.  
  1495. { DispInterface declaration for Dual Interface IHTML }
  1496.  
  1497.   IHTMLDisp = dispinterface
  1498.     ['{B7FC355C-8CE7-11CF-9754-00AA00C00908}']
  1499.     property DocInput: DocInput readonly dispid 1002;
  1500.     property DocOutput: DocOutput readonly dispid 1003;
  1501.     property URL: WideString readonly dispid 1001;
  1502.     property RequestURL: WideString readonly dispid 2;
  1503.     property BaseURL: WideString readonly dispid 3;
  1504.     property Forms: HTMLForms readonly dispid 4;
  1505.     property TotalWidth: Integer readonly dispid 5;
  1506.     property TotalHeight: Integer readonly dispid 6;
  1507.     property RetrieveBytesTotal: Integer readonly dispid 7;
  1508.     property RetrieveBytesDone: Integer readonly dispid 8;
  1509.     property ParseDone: WordBool readonly dispid 9;
  1510.     property LayoutDone: WordBool readonly dispid 10;
  1511.     property DeferRetrieval: WordBool dispid 11;
  1512.     property ViewSource: WordBool dispid 12;
  1513.     property RetainSource: WordBool dispid 13;
  1514.     property SourceText: WideString readonly dispid 14;
  1515.     property ElemNotification: WordBool dispid 15;
  1516.     property Timeout: Integer dispid 507;
  1517.     property Redraw: WordBool dispid 17;
  1518.     property UnderlineLinks: WordBool dispid 18;
  1519.     property UseDocColors: WordBool dispid 19;
  1520.     property BackImage: WideString dispid 20;
  1521.     property BackColor: TColor dispid -501;
  1522.     property ForeColor: TColor dispid -513;
  1523.     property LinkColor: TColor dispid 21;
  1524.     property VisitedColor: TColor dispid 22;
  1525.     property DocBackColor: TColor readonly dispid 23;
  1526.     property DocForeColor: TColor readonly dispid 24;
  1527.     property DocLinkColor: TColor readonly dispid 25;
  1528.     property DocVisitedColor: TColor readonly dispid 26;
  1529.     property Font: IFontDisp dispid -512;
  1530.     property FixedFont: IFontDisp dispid 27;
  1531.     property Heading1Font: IFontDisp dispid 28;
  1532.     property Heading2Font: IFontDisp dispid 29;
  1533.     property Heading3Font: IFontDisp dispid 30;
  1534.     property Heading4Font: IFontDisp dispid 31;
  1535.     property Heading5Font: IFontDisp dispid 32;
  1536.     property Heading6Font: IFontDisp dispid 33;
  1537.     property IsPrintingDone[PageNumber: Integer]: WordBool readonly dispid 39;
  1538.     procedure RequestDoc(const URL: WideString); dispid 34;
  1539.     procedure RequestAllEmbedded; dispid 35;
  1540.     procedure Cancel(Message: OleVariant); dispid 520;
  1541.     procedure BeginPrinting(hDC: Integer; x, y, Width, Height, DefaultHeaders, DefaultTitle: OleVariant); dispid 36;
  1542.     procedure PrintPage(hDC, PageNumber: Integer); dispid 37;
  1543.     procedure EndPrinting; dispid 38;
  1544.     procedure AutoPrint(hDC: Integer); dispid 50;
  1545.     property Errors: icErrors readonly dispid 508;
  1546.     property hWnd: OLE_HANDLE readonly dispid -515;
  1547.     function GetPlainText(selected, fancy: WordBool): WideString; dispid 41;
  1548.     function HasSelection: WordBool; dispid 42;
  1549.     procedure SelectAll; dispid 43;
  1550.   end;
  1551.  
  1552. { HTML Control events }
  1553.  
  1554.   DHTMLEvents = dispinterface
  1555.     ['{B7FC355D-8CE7-11CF-9754-00AA00C00908}']
  1556.     procedure Error(Number: Smallint; var Description: WideString; Scode: Integer; const Source, HelpFile: WideString; HelpContext: Integer; var CancelDisplay: WordBool); dispid -608;
  1557.     procedure DocInput(const DocInput: DocInput); dispid 1016;
  1558.     procedure DocOutput(const DocOutput: DocOutput); dispid 1017;
  1559.     procedure ParseComplete; dispid 1;
  1560.     procedure LayoutComplete; dispid 2;
  1561.     procedure Timeout; dispid 551;
  1562.     procedure BeginRetrieval; dispid 4;
  1563.     procedure UpdateRetrieval; dispid 5;
  1564.     procedure EndRetrieval; dispid 6;
  1565.     procedure DoRequestDoc(const URL: WideString; const Element: HTMLElement; const DocInput: DocInput; var EnableDefault: WordBool); dispid 7;
  1566.     procedure DoRequestEmbedded(const URL: WideString; const Element: HTMLElement; const DocInput: DocInput; var EnableDefault: WordBool); dispid 8;
  1567.     procedure DoRequestSubmit(const URL: WideString; const Form: HTMLForm; const DocOutput: DocOutput; var EnableDefault: WordBool); dispid 9;
  1568.     procedure DoNewElement(const ElemType: WideString; EndTag: WordBool; const Attrs: HTMLAttrs; const text: WideString; var EnableDefault: WordBool); dispid 10;
  1569.     procedure KeyPress(KeyAscii: Smallint); dispid -603;
  1570.     procedure KeyDown(KeyCode, Shift: Smallint); dispid -602;
  1571.     procedure KeyUp(KeyCode, Shift: Smallint); dispid -604;
  1572.     procedure Click; dispid -600;
  1573.     procedure DblClick; dispid -601;
  1574.     procedure MouseDown(Button, Shift: Smallint; x: OLE_XPOS_PIXELS; y: OLE_YPOS_PIXELS); dispid -605;
  1575.     procedure MouseMove(Button, Shift: Smallint; x: OLE_XPOS_PIXELS; y: OLE_YPOS_PIXELS); dispid -606;
  1576.     procedure MouseUp(Button, Shift: Smallint; x: OLE_XPOS_PIXELS; y: OLE_YPOS_PIXELS); dispid -607;
  1577.   end;
  1578.  
  1579. { HTML Element }
  1580.  
  1581.   CoHTMLElementCls = class
  1582.     class function Create: HTMLElement;
  1583.     class function CreateRemote(const MachineName: string): HTMLElement;
  1584.   end;
  1585.  
  1586. { HTML Form object }
  1587.  
  1588.   CoHTMLFormCls = class
  1589.     class function Create: HTMLForm;
  1590.     class function CreateRemote(const MachineName: string): HTMLForm;
  1591.   end;
  1592.  
  1593. { HTML Forms collection }
  1594.  
  1595.   CoHTMLFormsCls = class
  1596.     class function Create: HTMLForms;
  1597.     class function CreateRemote(const MachineName: string): HTMLForms;
  1598.   end;
  1599.  
  1600. { HTML Attribute object }
  1601.  
  1602.   CoHTMLAttrCls = class
  1603.     class function Create: HTMLAttr;
  1604.     class function CreateRemote(const MachineName: string): HTMLAttr;
  1605.   end;
  1606.  
  1607. { HTML Attributes collection }
  1608.  
  1609.   CoHTMLAttrsCls = class
  1610.     class function Create: HTMLAttrs;
  1611.     class function CreateRemote(const MachineName: string): HTMLAttrs;
  1612.   end;
  1613.  
  1614. { NetManage HTML Client Control }
  1615.  
  1616.   THTMLError = procedure(Sender: TObject; Number: Smallint; var Description: WideString; Scode: Integer; const Source, HelpFile: WideString; HelpContext: Integer; var CancelDisplay: WordBool) of object;
  1617.   THTMLDocInput = procedure(Sender: TObject; const DocInput: DocInput) of object;
  1618.   THTMLDocOutput = procedure(Sender: TObject; const DocOutput: DocOutput) of object;
  1619.   THTMLDoRequestDoc = procedure(Sender: TObject; const URL: WideString; const Element: HTMLElement; const DocInput: DocInput; var EnableDefault: WordBool) of object;
  1620.   THTMLDoRequestEmbedded = procedure(Sender: TObject; const URL: WideString; const Element: HTMLElement; const DocInput: DocInput; var EnableDefault: WordBool) of object;
  1621.   THTMLDoRequestSubmit = procedure(Sender: TObject; const URL: WideString; const Form: HTMLForm; const DocOutput: DocOutput; var EnableDefault: WordBool) of object;
  1622.   THTMLDoNewElement = procedure(Sender: TObject; const ElemType: WideString; EndTag: WordBool; const Attrs: HTMLAttrs; const text: WideString; var EnableDefault: WordBool) of object;
  1623.  
  1624.   THTML = class(TOleControl)
  1625.   private
  1626.     FOnError: THTMLError;
  1627.     FOnDocInput: THTMLDocInput;
  1628.     FOnDocOutput: THTMLDocOutput;
  1629.     FOnParseComplete: TNotifyEvent;
  1630.     FOnLayoutComplete: TNotifyEvent;
  1631.     FOnTimeout: TNotifyEvent;
  1632.     FOnBeginRetrieval: TNotifyEvent;
  1633.     FOnUpdateRetrieval: TNotifyEvent;
  1634.     FOnEndRetrieval: TNotifyEvent;
  1635.     FOnDoRequestDoc: THTMLDoRequestDoc;
  1636.     FOnDoRequestEmbedded: THTMLDoRequestEmbedded;
  1637.     FOnDoRequestSubmit: THTMLDoRequestSubmit;
  1638.     FOnDoNewElement: THTMLDoNewElement;
  1639.     FIntf: IHTML;
  1640.     function Get_DocInput: DocInput;
  1641.     function Get_DocOutput: DocOutput;
  1642.     function Get_Forms: HTMLForms;
  1643.     function Get_IsPrintingDone(PageNumber: Integer): WordBool;
  1644.     function Get_Errors: icErrors;
  1645.     function Get_hWnd: OLE_HANDLE;
  1646.   protected
  1647.     procedure InitControlData; override;
  1648.     procedure InitControlInterface(const Obj: IUnknown); override;
  1649.   public
  1650.     procedure AboutBox;
  1651.     procedure RequestDoc(const URL: WideString);
  1652.     procedure RequestAllEmbedded;
  1653.     procedure Cancel(Message: OleVariant);
  1654.     procedure BeginPrinting(hDC: Integer; x, y, Width, Height, DefaultHeaders, DefaultTitle: OleVariant);
  1655.     procedure PrintPage(hDC, PageNumber: Integer);
  1656.     procedure EndPrinting;
  1657.     procedure AutoPrint(hDC: Integer);
  1658.     function GetPlainText(selected, fancy: WordBool): WideString;
  1659.     function HasSelection: WordBool;
  1660.     procedure SelectAll;
  1661.     property ControlInterface: IHTML read FIntf;
  1662.     property BlockResult: Smallint index 519 read GetSmallintProp;
  1663.     property DocInput: DocInput read Get_DocInput;
  1664.     property DocOutput: DocOutput read Get_DocOutput;
  1665.     property URL: WideString index 1001 read GetWideStringProp;
  1666.     property RequestURL: WideString index 2 read GetWideStringProp;
  1667.     property BaseURL: WideString index 3 read GetWideStringProp;
  1668.     property Forms: HTMLForms read Get_Forms;
  1669.     property TotalWidth: Integer index 5 read GetIntegerProp;
  1670.     property TotalHeight: Integer index 6 read GetIntegerProp;
  1671.     property RetrieveBytesTotal: Integer index 7 read GetIntegerProp;
  1672.     property RetrieveBytesDone: Integer index 8 read GetIntegerProp;
  1673.     property ParseDone: WordBool index 9 read GetWordBoolProp;
  1674.     property LayoutDone: WordBool index 10 read GetWordBoolProp;
  1675.     property SourceText: WideString index 14 read GetWideStringProp;
  1676.     property DocBackColor: TColor index 23 read GetTColorProp;
  1677.     property DocForeColor: TColor index 24 read GetTColorProp;
  1678.     property DocLinkColor: TColor index 25 read GetTColorProp;
  1679.     property DocVisitedColor: TColor index 26 read GetTColorProp;
  1680.     property IsPrintingDone[PageNumber: Integer]: WordBool read Get_IsPrintingDone;
  1681.     property Errors: icErrors read Get_Errors;
  1682.     property hWnd: OLE_HANDLE read Get_hWnd;
  1683.   published
  1684.     property ParentColor;
  1685.     property ParentFont;
  1686.     property TabStop;
  1687.     property Align;
  1688.     property DragCursor;
  1689.     property DragMode;
  1690.     property ParentShowHint;
  1691.     property PopupMenu;
  1692.     property ShowHint;
  1693.     property TabOrder;
  1694.     property Visible;
  1695.     property OnDragDrop;
  1696.     property OnDragOver;
  1697.     property OnEndDrag;
  1698.     property OnEnter;
  1699.     property OnExit;
  1700.     property OnStartDrag;
  1701.     property OnMouseUp;
  1702.     property OnMouseMove;
  1703.     property OnMouseDown;
  1704.     property OnKeyUp;
  1705.     property OnKeyPress;
  1706.     property OnKeyDown;
  1707.     property OnDblClick;
  1708.     property OnClick;
  1709.     property Blocking: WordBool index 515 read GetWordBoolProp write SetWordBoolProp stored False;
  1710.     property SleepTime: Integer index 516 read GetIntegerProp write SetIntegerProp stored False;
  1711.     property DeferRetrieval: WordBool index 11 read GetWordBoolProp write SetWordBoolProp stored False;
  1712.     property ViewSource: WordBool index 12 read GetWordBoolProp write SetWordBoolProp stored False;
  1713.     property RetainSource: WordBool index 13 read GetWordBoolProp write SetWordBoolProp stored False;
  1714.     property ElemNotification: WordBool index 15 read GetWordBoolProp write SetWordBoolProp stored False;
  1715.     property Timeout: Integer index 507 read GetIntegerProp write SetIntegerProp stored False;
  1716.     property Redraw: WordBool index 17 read GetWordBoolProp write SetWordBoolProp stored False;
  1717.     property UnderlineLinks: WordBool index 18 read GetWordBoolProp write SetWordBoolProp stored False;
  1718.     property UseDocColors: WordBool index 19 read GetWordBoolProp write SetWordBoolProp stored False;
  1719.     property BackImage: WideString index 20 read GetWideStringProp write SetWideStringProp stored False;
  1720.     property BackColor: TColor index -501 read GetTColorProp write SetTColorProp stored False;
  1721.     property ForeColor: TColor index -513 read GetTColorProp write SetTColorProp stored False;
  1722.     property LinkColor: TColor index 21 read GetTColorProp write SetTColorProp stored False;
  1723.     property VisitedColor: TColor index 22 read GetTColorProp write SetTColorProp stored False;
  1724.     property Font: TFont index -512 read GetTFontProp write SetTFontProp stored False;
  1725.     property FixedFont: TFont index 27 read GetTFontProp write SetTFontProp stored False;
  1726.     property Heading1Font: TFont index 28 read GetTFontProp write SetTFontProp stored False;
  1727.     property Heading2Font: TFont index 29 read GetTFontProp write SetTFontProp stored False;
  1728.     property Heading3Font: TFont index 30 read GetTFontProp write SetTFontProp stored False;
  1729.     property Heading4Font: TFont index 31 read GetTFontProp write SetTFontProp stored False;
  1730.     property Heading5Font: TFont index 32 read GetTFontProp write SetTFontProp stored False;
  1731.     property Heading6Font: TFont index 33 read GetTFontProp write SetTFontProp stored False;
  1732.     property OnError: THTMLError read FOnError write FOnError;
  1733.     property OnDocInput: THTMLDocInput read FOnDocInput write FOnDocInput;
  1734.     property OnDocOutput: THTMLDocOutput read FOnDocOutput write FOnDocOutput;
  1735.     property OnParseComplete: TNotifyEvent read FOnParseComplete write FOnParseComplete;
  1736.     property OnLayoutComplete: TNotifyEvent read FOnLayoutComplete write FOnLayoutComplete;
  1737.     property OnTimeout: TNotifyEvent read FOnTimeout write FOnTimeout;
  1738.     property OnBeginRetrieval: TNotifyEvent read FOnBeginRetrieval write FOnBeginRetrieval;
  1739.     property OnUpdateRetrieval: TNotifyEvent read FOnUpdateRetrieval write FOnUpdateRetrieval;
  1740.     property OnEndRetrieval: TNotifyEvent read FOnEndRetrieval write FOnEndRetrieval;
  1741.     property OnDoRequestDoc: THTMLDoRequestDoc read FOnDoRequestDoc write FOnDoRequestDoc;
  1742.     property OnDoRequestEmbedded: THTMLDoRequestEmbedded read FOnDoRequestEmbedded write FOnDoRequestEmbedded;
  1743.     property OnDoRequestSubmit: THTMLDoRequestSubmit read FOnDoRequestSubmit write FOnDoRequestSubmit;
  1744.     property OnDoNewElement: THTMLDoNewElement read FOnDoNewElement write FOnDoNewElement;
  1745.   end;
  1746.  
  1747. const
  1748.   LIBID_POPCTLib: TGUID = '{B7FC356A-8CE7-11CF-9754-00AA00C00908}';
  1749.  
  1750. { PopProtocolStateConstants }
  1751.  
  1752.   popBase = 0;
  1753.   popAuthorization = 1;
  1754.   popTransaction = 2;
  1755.   popUpdate = 3;
  1756.  
  1757. { Component class GUIDs }
  1758.   Class_POP: TGUID = '{B7FC356E-8CE7-11CF-9754-00AA00C00908}';
  1759.  
  1760. type
  1761.  
  1762. { Forward declarations }
  1763. { Forward declarations: Interfaces }
  1764.   Ipopct = interface;
  1765.   IpopctDisp = dispinterface;
  1766.   DpopctEvents = dispinterface;
  1767.  
  1768. { Forward declarations: CoClasses }
  1769.   POP = Ipopct;
  1770.  
  1771. { Forward declarations: Enums }
  1772.   PopProtocolStateConstants = TOleEnum;
  1773.  
  1774. { Properties/Methods for NetManage POP Client Control }
  1775.  
  1776.   Ipopct = interface(INMOleAuthClientControl)
  1777.     ['{B7FC356C-8CE7-11CF-9754-00AA00C00908}']
  1778.     function Get_URL: WideString; safecall;
  1779.     procedure Set_URL(const Value: WideString); safecall;
  1780.     function Get_DocOutput: DocOutput; safecall;
  1781.     function Get_TopSupported: WordBool; safecall;
  1782.     function Get_TopLines: Integer; safecall;
  1783.     procedure Set_TopLines(Value: Integer); safecall;
  1784.     function Get_MessageCount: Smallint; safecall;
  1785.     procedure GetDoc(URL, Headers, OutputFile: OleVariant); safecall;
  1786.     procedure MessageSize(MessageNumber: Smallint); safecall;
  1787.     procedure RetrieveMessage(MessageNumber: Smallint); safecall;
  1788.     procedure Delete(MessageNumber: Smallint); safecall;
  1789.     procedure Reset; safecall;
  1790.     procedure Last; safecall;
  1791.     procedure Noop; safecall;
  1792.     procedure TopMessage(MessageNumber: Smallint); safecall;
  1793.     procedure Quit; safecall;
  1794.     procedure RefreshMessageCount; safecall;
  1795.     property URL: WideString read Get_URL write Set_URL;
  1796.     property DocOutput: DocOutput read Get_DocOutput;
  1797.     property TopSupported: WordBool read Get_TopSupported;
  1798.     property TopLines: Integer read Get_TopLines write Set_TopLines;
  1799.     property MessageCount: Smallint read Get_MessageCount;
  1800.   end;
  1801.  
  1802. { DispInterface declaration for Dual Interface Ipopct }
  1803.  
  1804.   IpopctDisp = dispinterface
  1805.     ['{B7FC356C-8CE7-11CF-9754-00AA00C00908}']
  1806.     property URL: WideString dispid 1001;
  1807.     property DocOutput: DocOutput readonly dispid 1003;
  1808.     property TopSupported: WordBool readonly dispid 2452;
  1809.     property TopLines: Integer dispid 2453;
  1810.     property MessageCount: Smallint readonly dispid 2454;
  1811.     procedure GetDoc(URL, Headers, OutputFile: OleVariant); dispid 1004;
  1812.     procedure MessageSize(MessageNumber: Smallint); dispid 2456;
  1813.     procedure RetrieveMessage(MessageNumber: Smallint); dispid 2457;
  1814.     procedure Delete(MessageNumber: Smallint); dispid 2458;
  1815.     procedure Reset; dispid 2459;
  1816.     procedure Last; dispid 2460;
  1817.     procedure Noop; dispid 2455;
  1818.     procedure TopMessage(MessageNumber: Smallint); dispid 2461;
  1819.     procedure Quit; dispid 2462;
  1820.     procedure RefreshMessageCount; dispid 2500;
  1821.   end;
  1822.  
  1823. { Event interface for NetManage POP Client Control }
  1824.  
  1825.   DpopctEvents = dispinterface
  1826.     ['{B7FC356D-8CE7-11CF-9754-00AA00C00908}']
  1827.     procedure Error(Number: Smallint; var Description: WideString; Scode: Integer; const Source, HelpFile: WideString; HelpContext: Integer; var CancelDisplay: WordBool); dispid -608;
  1828.     procedure Timeout(event: Smallint; var Continue: WordBool); dispid 551;
  1829.     procedure Cancel; dispid 552;
  1830.     procedure StateChanged(State: Smallint); dispid 553;
  1831.     procedure ProtocolStateChanged(ProtocolState: Smallint); dispid 554;
  1832.     procedure Busy(isBusy: WordBool); dispid 555;
  1833.     procedure Log; dispid 556;
  1834.     procedure DocOutput(const DocOutput: DocOutput); dispid 1017;
  1835.     procedure MessageSize(msgSize: Integer); dispid 2465;
  1836.     procedure Delete; dispid 2466;
  1837.     procedure Reset; dispid 2467;
  1838.     procedure Last(Number: Integer); dispid 2468;
  1839.     procedure Noop; dispid 2470;
  1840.     procedure RefreshMessageCount(Number: Integer); dispid 2471;
  1841.   end;
  1842.  
  1843. { NetManage POP Client Control }
  1844.  
  1845.   TPOPError = procedure(Sender: TObject; Number: Smallint; var Description: WideString; Scode: Integer; const Source, HelpFile: WideString; HelpContext: Integer; var CancelDisplay: WordBool) of object;
  1846.   TPOPTimeout = procedure(Sender: TObject; event: Smallint; var Continue: WordBool) of object;
  1847.   TPOPStateChanged = procedure(Sender: TObject; State: Smallint) of object;
  1848.   TPOPProtocolStateChanged = procedure(Sender: TObject; ProtocolState: Smallint) of object;
  1849.   TPOPBusy = procedure(Sender: TObject; isBusy: WordBool) of object;
  1850.   TPOPDocOutput = procedure(Sender: TObject; const DocOutput: DocOutput) of object;
  1851.   TPOPMessageSize = procedure(Sender: TObject; msgSize: Integer) of object;
  1852.   TPOPLast = procedure(Sender: TObject; Number: Integer) of object;
  1853.   TPOPRefreshMessageCount = procedure(Sender: TObject; Number: Integer) of object;
  1854.  
  1855.   TPOP = class(TOleControl)
  1856.   private
  1857.     FOnError: TPOPError;
  1858.     FOnTimeout: TPOPTimeout;
  1859.     FOnCancel: TNotifyEvent;
  1860.     FOnStateChanged: TPOPStateChanged;
  1861.     FOnProtocolStateChanged: TPOPProtocolStateChanged;
  1862.     FOnBusy: TPOPBusy;
  1863.     FOnLog: TNotifyEvent;
  1864.     FOnDocOutput: TPOPDocOutput;
  1865.     FOnMessageSize: TPOPMessageSize;
  1866.     FOnDelete: TNotifyEvent;
  1867.     FOnReset: TNotifyEvent;
  1868.     FOnLast: TPOPLast;
  1869.     FOnNoop: TNotifyEvent;
  1870.     FOnRefreshMessageCount: TPOPRefreshMessageCount;
  1871.     FIntf: Ipopct;
  1872.     function Get_Timeout(event: Smallint): Integer;
  1873.     procedure Set_Timeout(event: Smallint; Value: Integer);
  1874.     procedure Set_EnableTimer(event: Smallint; Value: WordBool);
  1875.     function Get_Errors: icErrors;
  1876.     function Get_DocOutput: DocOutput;
  1877.   protected
  1878.     procedure InitControlData; override;
  1879.     procedure InitControlInterface(const Obj: IUnknown); override;
  1880.   public
  1881.     procedure AboutBox;
  1882.     procedure Cancel;
  1883.     procedure Connect(RemoteHost, RemotePort: OleVariant);
  1884.     procedure Authenticate(UserId, Password: OleVariant);
  1885.     procedure GetDoc(URL, Headers, OutputFile: OleVariant);
  1886.     procedure MessageSize(MessageNumber: Smallint);
  1887.     procedure RetrieveMessage(MessageNumber: Smallint);
  1888.     procedure Delete(MessageNumber: Smallint);
  1889.     procedure Reset;
  1890.     procedure Last;
  1891.     procedure Noop;
  1892.     procedure TopMessage(MessageNumber: Smallint);
  1893.     procedure Quit;
  1894.     procedure RefreshMessageCount;
  1895.     property ControlInterface: Ipopct read FIntf;
  1896.     property BlockResult: Smallint index 519 read GetSmallintProp;
  1897.     property State: Smallint index 503 read GetSmallintProp;
  1898.     property ProtocolState: Smallint index 504 read GetSmallintProp;
  1899.     property ReplyString: WideString index 505 read GetWideStringProp;
  1900.     property ReplyCode: Integer index 506 read GetIntegerProp;
  1901.     property Timeout[event: Smallint]: Integer read Get_Timeout write Set_Timeout;
  1902.     property EnableTimer[event: Smallint]: WordBool write Set_EnableTimer;
  1903.     property Errors: icErrors read Get_Errors;
  1904.     property Busy: WordBool index 509 read GetWordBoolProp;
  1905.     property StateString: WideString index 511 read GetWideStringProp;
  1906.     property ProtocolStateString: WideString index 512 read GetWideStringProp;
  1907.     property SocketHandle: Integer index 518 read GetIntegerProp;
  1908.     property DocOutput: DocOutput read Get_DocOutput;
  1909.     property TopSupported: WordBool index 2452 read GetWordBoolProp;
  1910.     property MessageCount: Smallint index 2454 read GetSmallintProp;
  1911.   published
  1912.     property Blocking: WordBool index 515 read GetWordBoolProp write SetWordBoolProp stored False;
  1913.     property SleepTime: Integer index 516 read GetIntegerProp write SetIntegerProp stored False;
  1914.     property RemoteHost: WideString index 0 read GetWideStringProp write SetWideStringProp stored False;
  1915.     property RemotePort: Integer index 502 read GetIntegerProp write SetIntegerProp stored False;
  1916.     property NotificationMode: Smallint index 510 read GetSmallintProp write SetSmallintProp stored False;
  1917.     property Logging: WordBool index 514 read GetWordBoolProp write SetWordBoolProp stored False;
  1918.     property LocalPort: Integer index 517 read GetIntegerProp write SetIntegerProp stored False;
  1919.     property UserId: WideString index 601 read GetWideStringProp write SetWideStringProp stored False;
  1920.     property Password: WideString index 602 read GetWideStringProp write SetWideStringProp stored False;
  1921.     property URL: WideString index 1001 read GetWideStringProp write SetWideStringProp stored False;
  1922.     property TopLines: Integer index 2453 read GetIntegerProp write SetIntegerProp stored False;
  1923.     property OnError: TPOPError read FOnError write FOnError;
  1924.     property OnTimeout: TPOPTimeout read FOnTimeout write FOnTimeout;
  1925.     property OnCancel: TNotifyEvent read FOnCancel write FOnCancel;
  1926.     property OnStateChanged: TPOPStateChanged read FOnStateChanged write FOnStateChanged;
  1927.     property OnProtocolStateChanged: TPOPProtocolStateChanged read FOnProtocolStateChanged write FOnProtocolStateChanged;
  1928.     property OnBusy: TPOPBusy read FOnBusy write FOnBusy;
  1929.     property OnLog: TNotifyEvent read FOnLog write FOnLog;
  1930.     property OnDocOutput: TPOPDocOutput read FOnDocOutput write FOnDocOutput;
  1931.     property OnMessageSize: TPOPMessageSize read FOnMessageSize write FOnMessageSize;
  1932.     property OnDelete: TNotifyEvent read FOnDelete write FOnDelete;
  1933.     property OnReset: TNotifyEvent read FOnReset write FOnReset;
  1934.     property OnLast: TPOPLast read FOnLast write FOnLast;
  1935.     property OnNoop: TNotifyEvent read FOnNoop write FOnNoop;
  1936.     property OnRefreshMessageCount: TPOPRefreshMessageCount read FOnRefreshMessageCount write FOnRefreshMessageCount;
  1937.   end;
  1938.  
  1939. const
  1940.   LIBID_NNTPCTLib: TGUID = '{B7FC3564-8CE7-11CF-9754-00AA00C00908}';
  1941.  
  1942. { NNTPProtocolStateConstants }
  1943.  
  1944.   nntpBase = 0;
  1945.   nntpTransaction = 1;
  1946.  
  1947. { Component class GUIDs }
  1948.   Class_NNTP: TGUID = '{B7FC3568-8CE7-11CF-9754-00AA00C00908}';
  1949.  
  1950. type
  1951.  
  1952. { Forward declarations }
  1953. { Forward declarations: Interfaces }
  1954.   Inntpct = interface;
  1955.   InntpctDisp = dispinterface;
  1956.   DnntpctEvents = dispinterface;
  1957.  
  1958. { Forward declarations: CoClasses }
  1959.   NNTP = Inntpct;
  1960.  
  1961. { Forward declarations: Enums }
  1962.   NNTPProtocolStateConstants = TOleEnum;
  1963.  
  1964. { Properties/Methods for NetManage NNTP Client Control }
  1965.  
  1966.   Inntpct = interface(INMOleClientControl)
  1967.     ['{B7FC3566-8CE7-11CF-9754-00AA00C00908}']
  1968.     function Get_URL: WideString; safecall;
  1969.     procedure Set_URL(const Value: WideString); safecall;
  1970.     function Get_DocInput: DocInput; safecall;
  1971.     function Get_DocOutput: DocOutput; safecall;
  1972.     procedure SendDoc(URL, Headers, InputData, InputFile, OutputFile: OleVariant); safecall;
  1973.     procedure GetDoc(URL, Headers, OutputFile: OleVariant); safecall;
  1974.     function Get_ArticleNumbersSupported: WordBool; safecall;
  1975.     function Get_OverviewSupported: WordBool; safecall;
  1976.     function Get_PostingAllowed: WordBool; safecall;
  1977.     function Get_LastUpdate: TDateTime; safecall;
  1978.     procedure Set_LastUpdate(Value: TDateTime); safecall;
  1979.     procedure GetAdministrationFile(LastUpdate: OleVariant); safecall;
  1980.     procedure SelectGroup(const groupName: WideString); safecall;
  1981.     procedure SetNextArticle; safecall;
  1982.     procedure SetLastArticle; safecall;
  1983.     procedure GetArticleNumbers(groupName: OleVariant); safecall;
  1984.     procedure GetArticleHeaders(const header: WideString; firstArticle, lastArticle: OleVariant); safecall;
  1985.     procedure GetArticleByArticleNumber(articleNumber: OleVariant); safecall;
  1986.     procedure GetArticleByMessageID(const messageID: WideString); safecall;
  1987.     procedure GetHeaderByArticleNumber(articleNumber: OleVariant); safecall;
  1988.     procedure GetHeaderByMessageID(const messageID: WideString); safecall;
  1989.     procedure GetBodyByArticleNumber(articleNumber: OleVariant); safecall;
  1990.     procedure GetBodyByMessageID(const messageID: WideString); safecall;
  1991.     procedure GetStatByArticleNumber(articleNumber: OleVariant); safecall;
  1992.     procedure GetOverviewFormat; safecall;
  1993.     procedure GetOverview(firstArticle, lastArticle: OleVariant); safecall;
  1994.     procedure ListGroups; safecall;
  1995.     procedure ListGroupDescriptions; safecall;
  1996.     procedure ListNewGroups(LastUpdate: OleVariant); safecall;
  1997.     procedure Quit; safecall;
  1998.     property URL: WideString read Get_URL write Set_URL;
  1999.     property DocInput: DocInput read Get_DocInput;
  2000.     property DocOutput: DocOutput read Get_DocOutput;
  2001.     property ArticleNumbersSupported: WordBool read Get_ArticleNumbersSupported;
  2002.     property OverviewSupported: WordBool read Get_OverviewSupported;
  2003.     property PostingAllowed: WordBool read Get_PostingAllowed;
  2004.     property LastUpdate: TDateTime read Get_LastUpdate write Set_LastUpdate;
  2005.   end;
  2006.  
  2007. { DispInterface declaration for Dual Interface Inntpct }
  2008.  
  2009.   InntpctDisp = dispinterface
  2010.     ['{B7FC3566-8CE7-11CF-9754-00AA00C00908}']
  2011.     property URL: WideString dispid 1001;
  2012.     property DocInput: DocInput readonly dispid 1002;
  2013.     property DocOutput: DocOutput readonly dispid 1003;
  2014.     procedure SendDoc(URL, Headers, InputData, InputFile, OutputFile: OleVariant); dispid 1005;
  2015.     procedure GetDoc(URL, Headers, OutputFile: OleVariant); dispid 1004;
  2016.     property ArticleNumbersSupported: WordBool readonly dispid 1;
  2017.     property OverviewSupported: WordBool readonly dispid 2;
  2018.     property PostingAllowed: WordBool readonly dispid 3;
  2019.     property LastUpdate: TDateTime dispid 4;
  2020.     procedure GetAdministrationFile(LastUpdate: OleVariant); dispid 5;
  2021.     procedure SelectGroup(const groupName: WideString); dispid 6;
  2022.     procedure SetNextArticle; dispid 7;
  2023.     procedure SetLastArticle; dispid 8;
  2024.     procedure GetArticleNumbers(groupName: OleVariant); dispid 9;
  2025.     procedure GetArticleHeaders(const header: WideString; firstArticle, lastArticle: OleVariant); dispid 10;
  2026.     procedure GetArticleByArticleNumber(articleNumber: OleVariant); dispid 11;
  2027.     procedure GetArticleByMessageID(const messageID: WideString); dispid 12;
  2028.     procedure GetHeaderByArticleNumber(articleNumber: OleVariant); dispid 13;
  2029.     procedure GetHeaderByMessageID(const messageID: WideString); dispid 14;
  2030.     procedure GetBodyByArticleNumber(articleNumber: OleVariant); dispid 15;
  2031.     procedure GetBodyByMessageID(const messageID: WideString); dispid 16;
  2032.     procedure GetStatByArticleNumber(articleNumber: OleVariant); dispid 17;
  2033.     procedure GetOverviewFormat; dispid 18;
  2034.     procedure GetOverview(firstArticle, lastArticle: OleVariant); dispid 19;
  2035.     procedure ListGroups; dispid 20;
  2036.     procedure ListGroupDescriptions; dispid 21;
  2037.     procedure ListNewGroups(LastUpdate: OleVariant); dispid 22;
  2038.     procedure Quit; dispid 24;
  2039.   end;
  2040.  
  2041. { Event interface for NetManage NNTP Client Control }
  2042.  
  2043.   DnntpctEvents = dispinterface
  2044.     ['{B7FC3567-8CE7-11CF-9754-00AA00C00908}']
  2045.     procedure Error(Number: Smallint; var Description: WideString; Scode: Integer; const Source, HelpFile: WideString; HelpContext: Integer; var CancelDisplay: WordBool); dispid -608;
  2046.     procedure Timeout(event: Smallint; var Continue: WordBool); dispid 551;
  2047.     procedure Cancel; dispid 552;
  2048.     procedure StateChanged(State: Smallint); dispid 553;
  2049.     procedure ProtocolStateChanged(ProtocolState: Smallint); dispid 554;
  2050.     procedure Busy(isBusy: WordBool); dispid 555;
  2051.     procedure Log; dispid 556;
  2052.     procedure DocInput(const DocInput: DocInput); dispid 1016;
  2053.     procedure DocOutput(const DocOutput: DocOutput); dispid 1017;
  2054.     procedure AuthenticateRequest(var UserId, Password: WideString); dispid 0;
  2055.     procedure AuthenticateResponse(Authenticated: WordBool); dispid 1;
  2056.     procedure Banner(const Banner: WideString); dispid 2;
  2057.     procedure SelectGroup(const groupName: WideString; firstMessage, lastMessage, msgCount: Integer); dispid 3;
  2058.     procedure NextArticle(articleNumber: Integer; const messageID: WideString); dispid 4;
  2059.     procedure lastArticle(articleNumber: Integer; const messageID: WideString); dispid 5;
  2060.     procedure ArticleStatus(articleNumber: Integer; const messageID: WideString); dispid 6;
  2061.   end;
  2062.  
  2063. { NetManage NNTP Client Control }
  2064.  
  2065.   TNNTPError = procedure(Sender: TObject; Number: Smallint; var Description: WideString; Scode: Integer; const Source, HelpFile: WideString; HelpContext: Integer; var CancelDisplay: WordBool) of object;
  2066.   TNNTPTimeout = procedure(Sender: TObject; event: Smallint; var Continue: WordBool) of object;
  2067.   TNNTPStateChanged = procedure(Sender: TObject; State: Smallint) of object;
  2068.   TNNTPProtocolStateChanged = procedure(Sender: TObject; ProtocolState: Smallint) of object;
  2069.   TNNTPBusy = procedure(Sender: TObject; isBusy: WordBool) of object;
  2070.   TNNTPDocInput = procedure(Sender: TObject; const DocInput: DocInput) of object;
  2071.   TNNTPDocOutput = procedure(Sender: TObject; const DocOutput: DocOutput) of object;
  2072.   TNNTPAuthenticateRequest = procedure(Sender: TObject; var UserId, Password: WideString) of object;
  2073.   TNNTPAuthenticateResponse = procedure(Sender: TObject; Authenticated: WordBool) of object;
  2074.   TNNTPBanner = procedure(Sender: TObject; const Banner: WideString) of object;
  2075.   TNNTPSelectGroup = procedure(Sender: TObject; const groupName: WideString; firstMessage, lastMessage, msgCount: Integer) of object;
  2076.   TNNTPNextArticle = procedure(Sender: TObject; articleNumber: Integer; const messageID: WideString) of object;
  2077.   TNNTPlastArticle = procedure(Sender: TObject; articleNumber: Integer; const messageID: WideString) of object;
  2078.   TNNTPArticleStatus = procedure(Sender: TObject; articleNumber: Integer; const messageID: WideString) of object;
  2079.  
  2080.   TNNTP = class(TOleControl)
  2081.   private
  2082.     FOnError: TNNTPError;
  2083.     FOnTimeout: TNNTPTimeout;
  2084.     FOnCancel: TNotifyEvent;
  2085.     FOnStateChanged: TNNTPStateChanged;
  2086.     FOnProtocolStateChanged: TNNTPProtocolStateChanged;
  2087.     FOnBusy: TNNTPBusy;
  2088.     FOnLog: TNotifyEvent;
  2089.     FOnDocInput: TNNTPDocInput;
  2090.     FOnDocOutput: TNNTPDocOutput;
  2091.     FOnAuthenticateRequest: TNNTPAuthenticateRequest;
  2092.     FOnAuthenticateResponse: TNNTPAuthenticateResponse;
  2093.     FOnBanner: TNNTPBanner;
  2094.     FOnSelectGroup: TNNTPSelectGroup;
  2095.     FOnNextArticle: TNNTPNextArticle;
  2096.     FOnlastArticle: TNNTPlastArticle;
  2097.     FOnArticleStatus: TNNTPArticleStatus;
  2098.     FIntf: Inntpct;
  2099.     function Get_Timeout(event: Smallint): Integer;
  2100.     procedure Set_Timeout(event: Smallint; Value: Integer);
  2101.     procedure Set_EnableTimer(event: Smallint; Value: WordBool);
  2102.     function Get_Errors: icErrors;
  2103.     function Get_DocInput: DocInput;
  2104.     function Get_DocOutput: DocOutput;
  2105.   protected
  2106.     procedure InitControlData; override;
  2107.     procedure InitControlInterface(const Obj: IUnknown); override;
  2108.   public
  2109.     procedure AboutBox;
  2110.     procedure Cancel;
  2111.     procedure Connect(RemoteHost, RemotePort: OleVariant);
  2112.     procedure SendDoc(URL, Headers, InputData, InputFile, OutputFile: OleVariant);
  2113.     procedure GetDoc(URL, Headers, OutputFile: OleVariant);
  2114.     procedure GetAdministrationFile(LastUpdate: OleVariant);
  2115.     procedure SelectGroup(const groupName: WideString);
  2116.     procedure SetNextArticle;
  2117.     procedure SetLastArticle;
  2118.     procedure GetArticleNumbers(groupName: OleVariant);
  2119.     procedure GetArticleHeaders(const header: WideString; firstArticle, lastArticle: OleVariant);
  2120.     procedure GetArticleByArticleNumber(articleNumber: OleVariant);
  2121.     procedure GetArticleByMessageID(const messageID: WideString);
  2122.     procedure GetHeaderByArticleNumber(articleNumber: OleVariant);
  2123.     procedure GetHeaderByMessageID(const messageID: WideString);
  2124.     procedure GetBodyByArticleNumber(articleNumber: OleVariant);
  2125.     procedure GetBodyByMessageID(const messageID: WideString);
  2126.     procedure GetStatByArticleNumber(articleNumber: OleVariant);
  2127.     procedure GetOverviewFormat;
  2128.     procedure GetOverview(firstArticle, lastArticle: OleVariant);
  2129.     procedure ListGroups;
  2130.     procedure ListGroupDescriptions;
  2131.     procedure ListNewGroups(LastUpdate: OleVariant);
  2132.     procedure Quit;
  2133.     property ControlInterface: Inntpct read FIntf;
  2134.     property BlockResult: Smallint index 519 read GetSmallintProp;
  2135.     property State: Smallint index 503 read GetSmallintProp;
  2136.     property ProtocolState: Smallint index 504 read GetSmallintProp;
  2137.     property ReplyString: WideString index 505 read GetWideStringProp;
  2138.     property ReplyCode: Integer index 506 read GetIntegerProp;
  2139.     property Timeout[event: Smallint]: Integer read Get_Timeout write Set_Timeout;
  2140.     property EnableTimer[event: Smallint]: WordBool write Set_EnableTimer;
  2141.     property Errors: icErrors read Get_Errors;
  2142.     property Busy: WordBool index 509 read GetWordBoolProp;
  2143.     property StateString: WideString index 511 read GetWideStringProp;
  2144.     property ProtocolStateString: WideString index 512 read GetWideStringProp;
  2145.     property SocketHandle: Integer index 518 read GetIntegerProp;
  2146.     property DocInput: DocInput read Get_DocInput;
  2147.     property DocOutput: DocOutput read Get_DocOutput;
  2148.     property ArticleNumbersSupported: WordBool index 1 read GetWordBoolProp;
  2149.     property OverviewSupported: WordBool index 2 read GetWordBoolProp;
  2150.     property PostingAllowed: WordBool index 3 read GetWordBoolProp;
  2151.   published
  2152.     property Blocking: WordBool index 515 read GetWordBoolProp write SetWordBoolProp stored False;
  2153.     property SleepTime: Integer index 516 read GetIntegerProp write SetIntegerProp stored False;
  2154.     property RemoteHost: WideString index 0 read GetWideStringProp write SetWideStringProp stored False;
  2155.     property RemotePort: Integer index 502 read GetIntegerProp write SetIntegerProp stored False;
  2156.     property NotificationMode: Smallint index 510 read GetSmallintProp write SetSmallintProp stored False;
  2157.     property Logging: WordBool index 514 read GetWordBoolProp write SetWordBoolProp stored False;
  2158.     property LocalPort: Integer index 517 read GetIntegerProp write SetIntegerProp stored False;
  2159.     property URL: WideString index 1001 read GetWideStringProp write SetWideStringProp stored False;
  2160.     property LastUpdate: TDateTime index 4 read GetTDateTimeProp write SetTDateTimeProp stored False;
  2161.     property OnError: TNNTPError read FOnError write FOnError;
  2162.     property OnTimeout: TNNTPTimeout read FOnTimeout write FOnTimeout;
  2163.     property OnCancel: TNotifyEvent read FOnCancel write FOnCancel;
  2164.     property OnStateChanged: TNNTPStateChanged read FOnStateChanged write FOnStateChanged;
  2165.     property OnProtocolStateChanged: TNNTPProtocolStateChanged read FOnProtocolStateChanged write FOnProtocolStateChanged;
  2166.     property OnBusy: TNNTPBusy read FOnBusy write FOnBusy;
  2167.     property OnLog: TNotifyEvent read FOnLog write FOnLog;
  2168.     property OnDocInput: TNNTPDocInput read FOnDocInput write FOnDocInput;
  2169.     property OnDocOutput: TNNTPDocOutput read FOnDocOutput write FOnDocOutput;
  2170.     property OnAuthenticateRequest: TNNTPAuthenticateRequest read FOnAuthenticateRequest write FOnAuthenticateRequest;
  2171.     property OnAuthenticateResponse: TNNTPAuthenticateResponse read FOnAuthenticateResponse write FOnAuthenticateResponse;
  2172.     property OnBanner: TNNTPBanner read FOnBanner write FOnBanner;
  2173.     property OnSelectGroup: TNNTPSelectGroup read FOnSelectGroup write FOnSelectGroup;
  2174.     property OnNextArticle: TNNTPNextArticle read FOnNextArticle write FOnNextArticle;
  2175.     property OnlastArticle: TNNTPlastArticle read FOnlastArticle write FOnlastArticle;
  2176.     property OnArticleStatus: TNNTPArticleStatus read FOnArticleStatus write FOnArticleStatus;
  2177.   end;
  2178.  
  2179. const
  2180.   LIBID_SMTPCTLib: TGUID = '{B7FC3570-8CE7-11CF-9754-00AA00C00908}';
  2181.  
  2182. { SMTPProtocolStateConstants }
  2183.  
  2184.   smtpBase = 0;
  2185.   smtpTransaction = 1;
  2186.  
  2187. const
  2188.  
  2189. { Component class GUIDs }
  2190.   Class_SMTP: TGUID = '{B7FC3573-8CE7-11CF-9754-00AA00C00908}';
  2191.  
  2192. type
  2193.  
  2194. { Forward declarations }
  2195. { Forward declarations: Interfaces }
  2196.   Ismtpct = interface;
  2197.   IsmtpctDisp = dispinterface;
  2198.   DsmtpctEvents = dispinterface;
  2199.  
  2200. { Forward declarations: CoClasses }
  2201.   SMTP = Ismtpct;
  2202.  
  2203. { Forward declarations: Enums }
  2204.   SMTPProtocolStateConstants = TOleEnum;
  2205.  
  2206. { Properties/Methods for NetManage SMTP Client Control }
  2207.  
  2208.   Ismtpct = interface(INMOleClientControl)
  2209.     ['{B7FC3571-8CE7-11CF-9754-00AA00C00908}']
  2210.     function Get_URL: WideString; safecall;
  2211.     procedure Set_URL(const Value: WideString); safecall;
  2212.     function Get_DocInput: DocInput; safecall;
  2213.     procedure SendDoc(URL, Headers, InputData, InputFile, OutputFile: OleVariant); safecall;
  2214.     procedure Reset; safecall;
  2215.     procedure Verify(const name: WideString); safecall;
  2216.     procedure Expand(const name: WideString); safecall;
  2217.     procedure Help(helpTopic: OleVariant); safecall;
  2218.     procedure Noop; safecall;
  2219.     procedure Quit; safecall;
  2220.     property URL: WideString read Get_URL write Set_URL;
  2221.     property DocInput: DocInput read Get_DocInput;
  2222.   end;
  2223.  
  2224. { DispInterface declaration for Dual Interface Ismtpct }
  2225.  
  2226.   IsmtpctDisp = dispinterface
  2227.     ['{B7FC3571-8CE7-11CF-9754-00AA00C00908}']
  2228.     property URL: WideString dispid 1001;
  2229.     property DocInput: DocInput readonly dispid 1002;
  2230.     procedure SendDoc(URL, Headers, InputData, InputFile, OutputFile: OleVariant); dispid 1005;
  2231.     procedure Reset; dispid 200;
  2232.     procedure Verify(const name: WideString); dispid 201;
  2233.     procedure Expand(const name: WideString); dispid 202;
  2234.     procedure Help(helpTopic: OleVariant); dispid 203;
  2235.     procedure Noop; dispid 204;
  2236.     procedure Quit; dispid 205;
  2237.   end;
  2238.  
  2239. { Event interface for NetManage SMTP Client Control }
  2240.  
  2241.   DsmtpctEvents = dispinterface
  2242.     ['{B7FC3572-8CE7-11CF-9754-00AA00C00908}']
  2243.     procedure Error(Number: Smallint; var Description: WideString; Scode: Integer; const Source, HelpFile: WideString; HelpContext: Integer; var CancelDisplay: WordBool); dispid -608;
  2244.     procedure Timeout(event: Smallint; var Continue: WordBool); dispid 551;
  2245.     procedure Cancel; dispid 552;
  2246.     procedure StateChanged(State: Smallint); dispid 553;
  2247.     procedure ProtocolStateChanged(ProtocolState: Smallint); dispid 554;
  2248.     procedure Busy(isBusy: WordBool); dispid 555;
  2249.     procedure Log; dispid 556;
  2250.     procedure DocInput(const DocInput: DocInput); dispid 1016;
  2251.     procedure Reset; dispid 300;
  2252.     procedure Verify; dispid 301;
  2253.     procedure Expand; dispid 302;
  2254.     procedure Help; dispid 303;
  2255.     procedure Noop; dispid 304;
  2256.   end;
  2257.  
  2258. { NetManage SMTP Client Control }
  2259.  
  2260.   TSMTPError = procedure(Sender: TObject; Number: Smallint; var Description: WideString; Scode: Integer; const Source, HelpFile: WideString; HelpContext: Integer; var CancelDisplay: WordBool) of object;
  2261.   TSMTPTimeout = procedure(Sender: TObject; event: Smallint; var Continue: WordBool) of object;
  2262.   TSMTPStateChanged = procedure(Sender: TObject; State: Smallint) of object;
  2263.   TSMTPProtocolStateChanged = procedure(Sender: TObject; ProtocolState: Smallint) of object;
  2264.   TSMTPBusy = procedure(Sender: TObject; isBusy: WordBool) of object;
  2265.   TSMTPDocInput = procedure(Sender: TObject; const DocInput: DocInput) of object;
  2266.  
  2267.   TSMTP = class(TOleControl)
  2268.   private
  2269.     FOnError: TSMTPError;
  2270.     FOnTimeout: TSMTPTimeout;
  2271.     FOnCancel: TNotifyEvent;
  2272.     FOnStateChanged: TSMTPStateChanged;
  2273.     FOnProtocolStateChanged: TSMTPProtocolStateChanged;
  2274.     FOnBusy: TSMTPBusy;
  2275.     FOnLog: TNotifyEvent;
  2276.     FOnDocInput: TSMTPDocInput;
  2277.     FOnReset: TNotifyEvent;
  2278.     FOnVerify: TNotifyEvent;
  2279.     FOnExpand: TNotifyEvent;
  2280.     FOnHelp: TNotifyEvent;
  2281.     FOnNoop: TNotifyEvent;
  2282.     FIntf: Ismtpct;
  2283.     function Get_Timeout(event: Smallint): Integer;
  2284.     procedure Set_Timeout(event: Smallint; Value: Integer);
  2285.     procedure Set_EnableTimer(event: Smallint; Value: WordBool);
  2286.     function Get_Errors: icErrors;
  2287.     function Get_DocInput: DocInput;
  2288.   protected
  2289.     procedure InitControlData; override;
  2290.     procedure InitControlInterface(const Obj: IUnknown); override;
  2291.   public
  2292.     procedure AboutBox;
  2293.     procedure Cancel;
  2294.     procedure Connect(RemoteHost, RemotePort: OleVariant);
  2295.     procedure SendDoc(URL, Headers, InputData, InputFile, OutputFile: OleVariant);
  2296.     procedure Reset;
  2297.     procedure Verify(const name: WideString);
  2298.     procedure Expand(const name: WideString);
  2299.     procedure Help(helpTopic: OleVariant);
  2300.     procedure Noop;
  2301.     procedure Quit;
  2302.     property ControlInterface: Ismtpct read FIntf;
  2303.     property BlockResult: Smallint index 519 read GetSmallintProp;
  2304.     property State: Smallint index 503 read GetSmallintProp;
  2305.     property ProtocolState: Smallint index 504 read GetSmallintProp;
  2306.     property ReplyString: WideString index 505 read GetWideStringProp;
  2307.     property ReplyCode: Integer index 506 read GetIntegerProp;
  2308.     property Timeout[event: Smallint]: Integer read Get_Timeout write Set_Timeout;
  2309.     property EnableTimer[event: Smallint]: WordBool write Set_EnableTimer;
  2310.     property Errors: icErrors read Get_Errors;
  2311.     property Busy: WordBool index 509 read GetWordBoolProp;
  2312.     property StateString: WideString index 511 read GetWideStringProp;
  2313.     property ProtocolStateString: WideString index 512 read GetWideStringProp;
  2314.     property SocketHandle: Integer index 518 read GetIntegerProp;
  2315.     property DocInput: DocInput read Get_DocInput;
  2316.   published
  2317.     property Blocking: WordBool index 515 read GetWordBoolProp write SetWordBoolProp stored False;
  2318.     property SleepTime: Integer index 516 read GetIntegerProp write SetIntegerProp stored False;
  2319.     property RemoteHost: WideString index 0 read GetWideStringProp write SetWideStringProp stored False;
  2320.     property RemotePort: Integer index 502 read GetIntegerProp write SetIntegerProp stored False;
  2321.     property NotificationMode: Smallint index 510 read GetSmallintProp write SetSmallintProp stored False;
  2322.     property Logging: WordBool index 514 read GetWordBoolProp write SetWordBoolProp stored False;
  2323.     property LocalPort: Integer index 517 read GetIntegerProp write SetIntegerProp stored False;
  2324.     property URL: WideString index 1001 read GetWideStringProp write SetWideStringProp stored False;
  2325.     property OnError: TSMTPError read FOnError write FOnError;
  2326.     property OnTimeout: TSMTPTimeout read FOnTimeout write FOnTimeout;
  2327.     property OnCancel: TNotifyEvent read FOnCancel write FOnCancel;
  2328.     property OnStateChanged: TSMTPStateChanged read FOnStateChanged write FOnStateChanged;
  2329.     property OnProtocolStateChanged: TSMTPProtocolStateChanged read FOnProtocolStateChanged write FOnProtocolStateChanged;
  2330.     property OnBusy: TSMTPBusy read FOnBusy write FOnBusy;
  2331.     property OnLog: TNotifyEvent read FOnLog write FOnLog;
  2332.     property OnDocInput: TSMTPDocInput read FOnDocInput write FOnDocInput;
  2333.     property OnReset: TNotifyEvent read FOnReset write FOnReset;
  2334.     property OnVerify: TNotifyEvent read FOnVerify write FOnVerify;
  2335.     property OnExpand: TNotifyEvent read FOnExpand write FOnExpand;
  2336.     property OnHelp: TNotifyEvent read FOnHelp write FOnHelp;
  2337.     property OnNoop: TNotifyEvent read FOnNoop write FOnNoop;
  2338.   end;
  2339.  
  2340. const
  2341.   LIBID_WINSOCKLib: TGUID = '{B7FC3580-8CE7-11CF-9754-00AA00C00908}';
  2342.  
  2343. { SCKSTATEConstants }
  2344.  
  2345.   sckClosed = 0;
  2346.   sckOpen = 1;
  2347.   sckListening = 2;
  2348.   sckConnectionPending = 3;
  2349.   sckResolvingHost = 4;
  2350.   sckHostResolved = 5;
  2351.   sckConnecting = 6;
  2352.   sckConnected = 7;
  2353.   sckClosing = 8;
  2354.   sckError = 9;
  2355.  
  2356. const
  2357.  
  2358. { Component class GUIDs }
  2359.   Class_TCP: TGUID = '{B7FC3584-8CE7-11CF-9754-00AA00C00908}';
  2360.   Class_UDP: TGUID = '{B7FC3587-8CE7-11CF-9754-00AA00C00908}';
  2361.  
  2362. type
  2363.  
  2364. { Forward declarations }
  2365. { Forward declarations: Interfaces }
  2366.   INMWinsockControl = interface;
  2367.   INMWinsockControlDisp = dispinterface;
  2368.   DNMWinsockControlEvents = dispinterface;
  2369.   ITCP = interface;
  2370.   ITCPDisp = dispinterface;
  2371.   DTCPEvents = dispinterface;
  2372.   IUDP = interface;
  2373.   IUDPDisp = dispinterface;
  2374.   DUDPEvents = dispinterface;
  2375.  
  2376. { Forward declarations: CoClasses }
  2377.   TCP = ITCP;
  2378.   UDP = IUDP;
  2379.  
  2380. { Forward declarations: Enums }
  2381.   SCKSTATEConstants = TOleEnum;
  2382.  
  2383. { NetManage Shared Winsock methods and events }
  2384.  
  2385.   INMWinsockControl = interface(IDispatch)
  2386.     ['{B7FC3574-8CE7-11CF-9754-00AA00C00908}']
  2387.     procedure AboutBox; safecall;
  2388.     function Get_RemoteHostIP: WideString; safecall;
  2389.     function Get_LocalHostName: WideString; safecall;
  2390.     function Get_LocalIP: WideString; safecall;
  2391.     function Get_SocketHandle: Integer; safecall;
  2392.     property RemoteHostIP: WideString read Get_RemoteHostIP;
  2393.     property LocalHostName: WideString read Get_LocalHostName;
  2394.     property LocalIP: WideString read Get_LocalIP;
  2395.     property SocketHandle: Integer read Get_SocketHandle;
  2396.   end;
  2397.  
  2398. { DispInterface declaration for Dual Interface INMWinsockControl }
  2399.  
  2400.   INMWinsockControlDisp = dispinterface
  2401.     ['{B7FC3574-8CE7-11CF-9754-00AA00C00908}']
  2402.     property RemoteHostIP: WideString readonly dispid 1001;
  2403.     property LocalHostName: WideString readonly dispid 1002;
  2404.     property LocalIP: WideString readonly dispid 1003;
  2405.     property SocketHandle: Integer readonly dispid 1004;
  2406.   end;
  2407.  
  2408. { Shared Winsock events }
  2409.  
  2410.   DNMWinsockControlEvents = dispinterface
  2411.     ['{B7FC3575-8CE7-11CF-9754-00AA00C00908}']
  2412.     procedure DataArrival(bytesTotal: Integer); dispid 1051;
  2413.   end;
  2414.  
  2415. { Properties and methods for NetManage TCP Control }
  2416.  
  2417.   ITCP = interface(INMWinsockControl)
  2418.     ['{B7FC3582-8CE7-11CF-9754-00AA00C00908}']
  2419.     function Get_RemoteHost: WideString; safecall;
  2420.     procedure Set_RemoteHost(const Value: WideString); safecall;
  2421.     function Get_RemotePort: Integer; safecall;
  2422.     procedure Set_RemotePort(Value: Integer); safecall;
  2423.     function Get_LocalPort: Integer; safecall;
  2424.     procedure Set_LocalPort(Value: Integer); safecall;
  2425.     function Get_State: Smallint; safecall;
  2426.     function Get_BytesReceived: Integer; safecall;
  2427.     procedure Connect(RemoteHost, RemotePort: OleVariant); safecall;
  2428.     procedure Listen; safecall;
  2429.     procedure Accept(requestID: Integer); safecall;
  2430.     procedure SendData(data: OleVariant); safecall;
  2431.     procedure GetData(var data: OleVariant; type_, maxLen: OleVariant); safecall;
  2432.     procedure PeekData(var data: OleVariant; type_, maxLen: OleVariant); safecall;
  2433.     procedure Close; safecall;
  2434.     property RemoteHost: WideString read Get_RemoteHost write Set_RemoteHost;
  2435.     property RemotePort: Integer read Get_RemotePort write Set_RemotePort;
  2436.     property LocalPort: Integer read Get_LocalPort write Set_LocalPort;
  2437.     property State: Smallint read Get_State;
  2438.     property BytesReceived: Integer read Get_BytesReceived;
  2439.   end;
  2440.  
  2441. { DispInterface declaration for Dual Interface ITCP }
  2442.  
  2443.   ITCPDisp = dispinterface
  2444.     ['{B7FC3582-8CE7-11CF-9754-00AA00C00908}']
  2445.     property RemoteHost: WideString dispid 0;
  2446.     property RemotePort: Integer dispid 502;
  2447.     property LocalPort: Integer dispid 1010;
  2448.     property State: Smallint readonly dispid 503;
  2449.     property BytesReceived: Integer readonly dispid 1101;
  2450.     procedure Connect(RemoteHost, RemotePort: OleVariant); dispid 521;
  2451.     procedure Listen; dispid 1102;
  2452.     procedure Accept(requestID: Integer); dispid 1103;
  2453.     procedure SendData(data: OleVariant); dispid 1012;
  2454.     procedure GetData(var data: OleVariant; type_, maxLen: OleVariant); dispid 1011;
  2455.     procedure PeekData(var data: OleVariant; type_, maxLen: OleVariant); dispid 1104;
  2456.     procedure Close; dispid 1105;
  2457.   end;
  2458.  
  2459. { NetManage TCP Control events }
  2460.  
  2461.   DTCPEvents = dispinterface
  2462.     ['{B7FC3583-8CE7-11CF-9754-00AA00C00908}']
  2463.     procedure Error(Number: Smallint; var Description: WideString; Scode: Integer; const Source, HelpFile: WideString; HelpContext: Integer; var CancelDisplay: WordBool); dispid -608;
  2464.     procedure DataArrival(bytesTotal: Integer); dispid 1051;
  2465.     procedure Connect; dispid 1151;
  2466.     procedure ConnectionRequest(requestID: Integer); dispid 1152;
  2467.     procedure Close; dispid 1155;
  2468.     procedure SendProgress(bytesSent, bytesRemaining: Integer); dispid 1153;
  2469.     procedure SendComplete; dispid 1154;
  2470.   end;
  2471.  
  2472. { Properties and methods for the NetManage UDP Control }
  2473.  
  2474.   IUDP = interface(INMWinsockControl)
  2475.     ['{B7FC3585-8CE7-11CF-9754-00AA00C00908}']
  2476.     function Get_RemoteHost: WideString; safecall;
  2477.     procedure Set_RemoteHost(const Value: WideString); safecall;
  2478.     function Get_RemotePort: Integer; safecall;
  2479.     procedure Set_RemotePort(Value: Integer); safecall;
  2480.     function Get_LocalPort: Integer; safecall;
  2481.     procedure Set_LocalPort(Value: Integer); safecall;
  2482.     procedure SendData(data: OleVariant); safecall;
  2483.     procedure GetData(var data: OleVariant; type_: OleVariant); safecall;
  2484.     property RemoteHost: WideString read Get_RemoteHost write Set_RemoteHost;
  2485.     property RemotePort: Integer read Get_RemotePort write Set_RemotePort;
  2486.     property LocalPort: Integer read Get_LocalPort write Set_LocalPort;
  2487.   end;
  2488.  
  2489. { DispInterface declaration for Dual Interface IUDP }
  2490.  
  2491.   IUDPDisp = dispinterface
  2492.     ['{B7FC3585-8CE7-11CF-9754-00AA00C00908}']
  2493.     property RemoteHost: WideString dispid 0;
  2494.     property RemotePort: Integer dispid 502;
  2495.     property LocalPort: Integer dispid 1010;
  2496.     procedure SendData(data: OleVariant); dispid 1012;
  2497.     procedure GetData(var data: OleVariant; type_: OleVariant); dispid 1011;
  2498.   end;
  2499.  
  2500. { NetManage UDP Control events }
  2501.  
  2502.   DUDPEvents = dispinterface
  2503.     ['{B7FC3586-8CE7-11CF-9754-00AA00C00908}']
  2504.     procedure Error(Number: Smallint; var Description: WideString; Scode: Integer; const Source, HelpFile: WideString; HelpContext: Integer; var CancelDisplay: WordBool); dispid -608;
  2505.     procedure DataArrival(bytesTotal: Integer); dispid 1051;
  2506.   end;
  2507.  
  2508. { NetManage TCP Control }
  2509.  
  2510.   TTCPError = procedure(Sender: TObject; Number: Smallint; var Description: WideString; Scode: Integer; const Source, HelpFile: WideString; HelpContext: Integer; var CancelDisplay: WordBool) of object;
  2511.   TTCPDataArrival = procedure(Sender: TObject; bytesTotal: Integer) of object;
  2512.   TTCPConnectionRequest = procedure(Sender: TObject; requestID: Integer) of object;
  2513.   TTCPSendProgress = procedure(Sender: TObject; bytesSent, bytesRemaining: Integer) of object;
  2514.  
  2515.   TTCP = class(TOleControl)
  2516.   private
  2517.     FOnError: TTCPError;
  2518.     FOnDataArrival: TTCPDataArrival;
  2519.     FOnConnect: TNotifyEvent;
  2520.     FOnConnectionRequest: TTCPConnectionRequest;
  2521.     FOnClose: TNotifyEvent;
  2522.     FOnSendProgress: TTCPSendProgress;
  2523.     FOnSendComplete: TNotifyEvent;
  2524.     FIntf: ITCP;
  2525.   protected
  2526.     procedure InitControlData; override;
  2527.     procedure InitControlInterface(const Obj: IUnknown); override;
  2528.   public
  2529.     procedure AboutBox;
  2530.     procedure Connect(RemoteHost, RemotePort: OleVariant);
  2531.     procedure Listen;
  2532.     procedure Accept(requestID: Integer);
  2533.     procedure SendData(data: OleVariant);
  2534.     procedure GetData(var data: OleVariant; type_, maxLen: OleVariant);
  2535.     procedure PeekData(var data: OleVariant; type_, maxLen: OleVariant);
  2536.     procedure Close;
  2537.     property ControlInterface: ITCP read FIntf;
  2538.     property RemoteHostIP: WideString index 1001 read GetWideStringProp;
  2539.     property LocalHostName: WideString index 1002 read GetWideStringProp;
  2540.     property LocalIP: WideString index 1003 read GetWideStringProp;
  2541.     property SocketHandle: Integer index 1004 read GetIntegerProp;
  2542.     property State: Smallint index 503 read GetSmallintProp;
  2543.     property BytesReceived: Integer index 1101 read GetIntegerProp;
  2544.   published
  2545.     property RemoteHost: WideString index 0 read GetWideStringProp write SetWideStringProp stored False;
  2546.     property RemotePort: Integer index 502 read GetIntegerProp write SetIntegerProp stored False;
  2547.     property LocalPort: Integer index 1010 read GetIntegerProp write SetIntegerProp stored False;
  2548.     property OnError: TTCPError read FOnError write FOnError;
  2549.     property OnDataArrival: TTCPDataArrival read FOnDataArrival write FOnDataArrival;
  2550.     property OnConnect: TNotifyEvent read FOnConnect write FOnConnect;
  2551.     property OnConnectionRequest: TTCPConnectionRequest read FOnConnectionRequest write FOnConnectionRequest;
  2552.     property OnClose: TNotifyEvent read FOnClose write FOnClose;
  2553.     property OnSendProgress: TTCPSendProgress read FOnSendProgress write FOnSendProgress;
  2554.     property OnSendComplete: TNotifyEvent read FOnSendComplete write FOnSendComplete;
  2555.   end;
  2556.  
  2557. { NetManage UDP Control }
  2558.  
  2559.   TUDPError = procedure(Sender: TObject; Number: Smallint; var Description: WideString; Scode: Integer; const Source, HelpFile: WideString; HelpContext: Integer; var CancelDisplay: WordBool) of object;
  2560.   TUDPDataArrival = procedure(Sender: TObject; bytesTotal: Integer) of object;
  2561.  
  2562.   TUDP = class(TOleControl)
  2563.   private
  2564.     FOnError: TUDPError;
  2565.     FOnDataArrival: TUDPDataArrival;
  2566.     FIntf: IUDP;
  2567.   protected
  2568.     procedure InitControlData; override;
  2569.     procedure InitControlInterface(const Obj: IUnknown); override;
  2570.   public
  2571.     procedure AboutBox;
  2572.     procedure SendData(data: OleVariant);
  2573.     procedure GetData(var data: OleVariant; type_: OleVariant);
  2574.     property ControlInterface: IUDP read FIntf;
  2575.     property RemoteHostIP: WideString index 1001 read GetWideStringProp;
  2576.     property LocalHostName: WideString index 1002 read GetWideStringProp;
  2577.     property LocalIP: WideString index 1003 read GetWideStringProp;
  2578.     property SocketHandle: Integer index 1004 read GetIntegerProp;
  2579.   published
  2580.     property RemoteHost: WideString index 0 read GetWideStringProp write SetWideStringProp stored False;
  2581.     property RemotePort: Integer index 502 read GetIntegerProp write SetIntegerProp stored False;
  2582.     property LocalPort: Integer index 1010 read GetIntegerProp write SetIntegerProp stored False;
  2583.     property OnError: TUDPError read FOnError write FOnError;
  2584.     property OnDataArrival: TUDPDataArrival read FOnDataArrival write FOnDataArrival;
  2585.   end;
  2586.  
  2587.  
  2588. procedure Register;
  2589.  
  2590. implementation
  2591.  
  2592. uses ComObj;
  2593.  
  2594. class function CoDocHeaderCls.Create: DocHeader;
  2595. begin
  2596.   Result := CreateComObject(Class_DocHeaderCls) as DocHeader;
  2597. end;
  2598.  
  2599. class function CoDocHeaderCls.CreateRemote(const MachineName: string): DocHeader;
  2600. begin
  2601.   Result := CreateRemoteComObject(MachineName, Class_DocHeaderCls) as DocHeader;
  2602. end;
  2603.  
  2604. class function CoDocHeadersCls.Create: DocHeaders;
  2605. begin
  2606.   Result := CreateComObject(Class_DocHeadersCls) as DocHeaders;
  2607. end;
  2608.  
  2609. class function CoDocHeadersCls.CreateRemote(const MachineName: string): DocHeaders;
  2610. begin
  2611.   Result := CreateRemoteComObject(MachineName, Class_DocHeadersCls) as DocHeaders;
  2612. end;
  2613.  
  2614. class function CoDocInputCls.Create: DocInput;
  2615. begin
  2616.   Result := CreateComObject(Class_DocInputCls) as DocInput;
  2617. end;
  2618.  
  2619. class function CoDocInputCls.CreateRemote(const MachineName: string): DocInput;
  2620. begin
  2621.   Result := CreateRemoteComObject(MachineName, Class_DocInputCls) as DocInput;
  2622. end;
  2623.  
  2624. class function CoDocOutputCls.Create: DocOutput;
  2625. begin
  2626.   Result := CreateComObject(Class_DocOutputCls) as DocOutput;
  2627. end;
  2628.  
  2629. class function CoDocOutputCls.CreateRemote(const MachineName: string): DocOutput;
  2630. begin
  2631.   Result := CreateRemoteComObject(MachineName, Class_DocOutputCls) as DocOutput;
  2632. end;
  2633.  
  2634. class function CoicErrorCls.Create: icError;
  2635. begin
  2636.   Result := CreateComObject(Class_icErrorCls) as icError;
  2637. end;
  2638.  
  2639. class function CoicErrorCls.CreateRemote(const MachineName: string): icError;
  2640. begin
  2641.   Result := CreateRemoteComObject(MachineName, Class_icErrorCls) as icError;
  2642. end;
  2643.  
  2644. class function CoicErrorsCls.Create: icErrors;
  2645. begin
  2646.   Result := CreateComObject(Class_icErrorsCls) as icErrors;
  2647. end;
  2648.  
  2649. class function CoicErrorsCls.CreateRemote(const MachineName: string): icErrors;
  2650. begin
  2651.   Result := CreateRemoteComObject(MachineName, Class_icErrorsCls) as icErrors;
  2652. end;
  2653.  
  2654. class function CoFTPDirItemCls.Create: FTPDirItem;
  2655. begin
  2656.   Result := CreateComObject(Class_FTPDirItemCls) as FTPDirItem;
  2657. end;
  2658.  
  2659. class function CoFTPDirItemCls.CreateRemote(const MachineName: string): FTPDirItem;
  2660. begin
  2661.   Result := CreateRemoteComObject(MachineName, Class_FTPDirItemCls) as FTPDirItem;
  2662. end;
  2663.  
  2664. class function CoFirewall.Create: IFirewall;
  2665. begin
  2666.   Result := CreateComObject(Class_Firewall) as IFirewall;
  2667. end;
  2668.  
  2669. class function CoFirewall.CreateRemote(const MachineName: string): IFirewall;
  2670. begin
  2671.   Result := CreateRemoteComObject(MachineName, Class_Firewall) as IFirewall;
  2672. end;
  2673.  
  2674. procedure TFTP.InitControlData;
  2675. const
  2676.   CEventDispIDs: array[0..27] of DWORD = (
  2677.     $FFFFFDA0, $00000227, $00000228, $00000229, $0000022A, $0000022B,
  2678.     $0000022C, $000003F8, $000003F9, $0000002B, $0000002C, $0000002D,
  2679.     $0000002F, $00000030, $00000031, $00000036, $00000037, $00000038,
  2680.     $00000039, $0000003A, $0000003C, $0000003E, $0000003F, $00000040,
  2681.     $00000042, $00000044, $00000043, $0000005A);
  2682.   CLicenseKey: array[0..36] of Word = (
  2683.     $0037, $0033, $0066, $0036, $0061, $0062, $0033, $0030, $002D, $0035,
  2684.     $0035, $0039, $0038, $002D, $0031, $0031, $0063, $0066, $002D, $0038,
  2685.     $0033, $0038, $0039, $002D, $0030, $0030, $0032, $0030, $0061, $0066,
  2686.     $0036, $0039, $0037, $0030, $0031, $0034, $0000);
  2687.   CControlData: TControlData = (
  2688.     ClassID: '{B7FC354C-8CE7-11CF-9754-00AA00C00908}';
  2689.     EventIID: '{B7FC354B-8CE7-11CF-9754-00AA00C00908}';
  2690.     EventCount: 28;
  2691.     EventDispIDs: @CEventDispIDs;
  2692.     LicenseKey: @CLicenseKey;
  2693.     Flags: $00000000;
  2694.     Version: 300);
  2695. begin
  2696.   ControlData := @CControlData;
  2697. end;
  2698.  
  2699. procedure TFTP.InitControlInterface(const Obj: IUnknown);
  2700. begin
  2701.   FIntf := Obj as Iftpct;
  2702. end;
  2703.  
  2704. procedure TFTP.AboutBox;
  2705. begin
  2706.   ControlInterface.AboutBox;
  2707. end;
  2708.  
  2709. procedure TFTP.Cancel;
  2710. begin
  2711.   ControlInterface.Cancel;
  2712. end;
  2713.  
  2714. procedure TFTP.Connect(RemoteHost, RemotePort: OleVariant);
  2715. begin
  2716.   ControlInterface.Connect(RemoteHost, RemotePort);
  2717. end;
  2718.  
  2719. procedure TFTP.Authenticate(UserId, Password: OleVariant);
  2720. begin
  2721.   ControlInterface.Authenticate(UserId, Password);
  2722. end;
  2723.  
  2724. procedure TFTP.SendDoc(URL, Headers, InputData, InputFile, OutputFile: OleVariant);
  2725. begin
  2726.   ControlInterface.SendDoc(URL, Headers, InputData, InputFile, OutputFile);
  2727. end;
  2728.  
  2729. procedure TFTP.GetDoc(URL, Headers, OutputFile: OleVariant);
  2730. begin
  2731.   ControlInterface.GetDoc(URL, Headers, OutputFile);
  2732. end;
  2733.  
  2734. procedure TFTP.Abort;
  2735. begin
  2736.   ControlInterface.Abort;
  2737. end;
  2738.  
  2739. procedure TFTP.Account(const Account: WideString);
  2740. begin
  2741.   ControlInterface.Account(Account);
  2742. end;
  2743.  
  2744. procedure TFTP.ChangeDir(const directory: WideString);
  2745. begin
  2746.   ControlInterface.ChangeDir(directory);
  2747. end;
  2748.  
  2749. procedure TFTP.CreateDir(const directory: WideString);
  2750. begin
  2751.   ControlInterface.CreateDir(directory);
  2752. end;
  2753.  
  2754. procedure TFTP.DeleteDir(const directory: WideString);
  2755. begin
  2756.   ControlInterface.DeleteDir(directory);
  2757. end;
  2758.  
  2759. procedure TFTP.DeleteFile(const FileName: WideString);
  2760. begin
  2761.   ControlInterface.DeleteFile(FileName);
  2762. end;
  2763.  
  2764. procedure TFTP.Quit;
  2765. begin
  2766.   ControlInterface.Quit;
  2767. end;
  2768.  
  2769. procedure TFTP.Help(const Help: WideString);
  2770. begin
  2771.   ControlInterface.Help(Help);
  2772. end;
  2773.  
  2774. procedure TFTP.Noop;
  2775. begin
  2776.   ControlInterface.Noop;
  2777. end;
  2778.  
  2779. procedure TFTP.Mode(ftpMode: FTPModeConstants);
  2780. begin
  2781.   ControlInterface.Mode(ftpMode);
  2782. end;
  2783.  
  2784. procedure TFTP.Type_(ftpType: FTPTypeConstants);
  2785. begin
  2786.   ControlInterface.Type_(ftpType);
  2787. end;
  2788.  
  2789. procedure TFTP.List(const List: WideString);
  2790. begin
  2791.   ControlInterface.List(List);
  2792. end;
  2793.  
  2794. procedure TFTP.NameList(const NameList: WideString);
  2795. begin
  2796.   ControlInterface.NameList(NameList);
  2797. end;
  2798.  
  2799. procedure TFTP.ParentDir;
  2800. begin
  2801.   ControlInterface.ParentDir;
  2802. end;
  2803.  
  2804. procedure TFTP.PrintDir;
  2805. begin
  2806.   ControlInterface.PrintDir;
  2807. end;
  2808.  
  2809. procedure TFTP.Execute(const Execute: WideString);
  2810. begin
  2811.   ControlInterface.Execute(Execute);
  2812. end;
  2813.  
  2814. procedure TFTP.Status(const Status: WideString);
  2815. begin
  2816.   ControlInterface.Status(Status);
  2817. end;
  2818.  
  2819. procedure TFTP.PutFile(const srcFileName, destFileName: WideString);
  2820. begin
  2821.   ControlInterface.PutFile(srcFileName, destFileName);
  2822. end;
  2823.  
  2824. procedure TFTP.Reinitialize;
  2825. begin
  2826.   ControlInterface.Reinitialize;
  2827. end;
  2828.  
  2829. procedure TFTP.System;
  2830. begin
  2831.   ControlInterface.System;
  2832. end;
  2833.  
  2834. procedure TFTP.GetFile(const srcFileName, destFileName: WideString);
  2835. begin
  2836.   ControlInterface.GetFile(srcFileName, destFileName);
  2837. end;
  2838.  
  2839. procedure TFTP.PutFileUnique(const FileName: WideString);
  2840. begin
  2841.   ControlInterface.PutFileUnique(FileName);
  2842. end;
  2843.  
  2844. procedure TFTP.Site(const Site: WideString);
  2845. begin
  2846.   ControlInterface.Site(Site);
  2847. end;
  2848.  
  2849. function TFTP.Get_Timeout(event: Smallint): Integer;
  2850. begin
  2851.   Result := ControlInterface.Timeout[event];
  2852. end;
  2853.  
  2854. procedure TFTP.Set_Timeout(event: Smallint; Value: Integer);
  2855. begin
  2856.   ControlInterface.Timeout[event] := Value;
  2857. end;
  2858.  
  2859. procedure TFTP.Set_EnableTimer(event: Smallint; Value: WordBool);
  2860. begin
  2861.   ControlInterface.EnableTimer[event] := Value;
  2862. end;
  2863.  
  2864. function TFTP.Get_Errors: icErrors;
  2865. begin
  2866.   Result := ControlInterface.Errors;
  2867. end;
  2868.  
  2869. function TFTP.Get_DocInput: DocInput;
  2870. begin
  2871.   Result := ControlInterface.DocInput;
  2872. end;
  2873.  
  2874. function TFTP.Get_DocOutput: DocOutput;
  2875. begin
  2876.   Result := ControlInterface.DocOutput;
  2877. end;
  2878.  
  2879. function TFTP.Get_Firewall: IFirewall;
  2880. begin
  2881.   Result := ControlInterface.Firewall;
  2882. end;
  2883.  
  2884. class function CoProxy.Create: IHttpProxy;
  2885. begin
  2886.   Result := CreateComObject(Class_Proxy) as IHttpProxy;
  2887. end;
  2888.  
  2889. class function CoProxy.CreateRemote(const MachineName: string): IHttpProxy;
  2890. begin
  2891.   Result := CreateRemoteComObject(MachineName, Class_Proxy) as IHttpProxy;
  2892. end;
  2893.  
  2894. procedure THTTP.InitControlData;
  2895. const
  2896.   CEventDispIDs: array[0..8] of DWORD = (
  2897.     $FFFFFDA0, $00000227, $00000228, $00000229, $0000022A, $0000022B,
  2898.     $0000022C, $000003F8, $000003F9);
  2899.   CLicenseKey: array[0..36] of Word = (
  2900.     $0037, $0030, $0037, $0038, $0031, $0037, $0036, $0030, $002D, $0035,
  2901.     $0035, $0064, $0064, $002D, $0031, $0031, $0063, $0066, $002D, $0061,
  2902.     $0039, $0037, $0066, $002D, $0030, $0030, $0032, $0030, $0061, $0066,
  2903.     $0033, $0066, $0038, $0037, $0062, $0035, $0000);
  2904.   CControlData: TControlData = (
  2905.     ClassID: '{B7FC3563-8CE7-11CF-9754-00AA00C00908}';
  2906.     EventIID: '{B7FC3562-8CE7-11CF-9754-00AA00C00908}';
  2907.     EventCount: 9;
  2908.     EventDispIDs: @CEventDispIDs;
  2909.     LicenseKey: @CLicenseKey;
  2910.     Flags: $00000000;
  2911.     Version: 300);
  2912. begin
  2913.   ControlData := @CControlData;
  2914. end;
  2915.  
  2916. procedure THTTP.InitControlInterface(const Obj: IUnknown);
  2917. begin
  2918.   FIntf := Obj as IHTTPCT;
  2919. end;
  2920.  
  2921. procedure THTTP.AboutBox;
  2922. begin
  2923.   ControlInterface.AboutBox;
  2924. end;
  2925.  
  2926. procedure THTTP.Cancel;
  2927. begin
  2928.   ControlInterface.Cancel;
  2929. end;
  2930.  
  2931. procedure THTTP.SendDoc(URL, Headers, InputData, InputFile, OutputFile: OleVariant);
  2932. begin
  2933.   ControlInterface.SendDoc(URL, Headers, InputData, InputFile, OutputFile);
  2934. end;
  2935.  
  2936. procedure THTTP.GetDoc(URL, Headers, OutputFile: OleVariant);
  2937. begin
  2938.   ControlInterface.GetDoc(URL, Headers, OutputFile);
  2939. end;
  2940.  
  2941. function THTTP.Get_Timeout(event: Smallint): Integer;
  2942. begin
  2943.   Result := ControlInterface.Timeout[event];
  2944. end;
  2945.  
  2946. procedure THTTP.Set_Timeout(event: Smallint; Value: Integer);
  2947. begin
  2948.   ControlInterface.Timeout[event] := Value;
  2949. end;
  2950.  
  2951. procedure THTTP.Set_EnableTimer(event: Smallint; Value: WordBool);
  2952. begin
  2953.   ControlInterface.EnableTimer[event] := Value;
  2954. end;
  2955.  
  2956. function THTTP.Get_Errors: icErrors;
  2957. begin
  2958.   Result := ControlInterface.Errors;
  2959. end;
  2960.  
  2961. function THTTP.Get_DocInput: DocInput;
  2962. begin
  2963.   Result := ControlInterface.DocInput;
  2964. end;
  2965.  
  2966. function THTTP.Get_DocOutput: DocOutput;
  2967. begin
  2968.   Result := ControlInterface.DocOutput;
  2969. end;
  2970.  
  2971. function THTTP.Get_Proxy: IHttpProxy;
  2972. begin
  2973.   Result := ControlInterface.Proxy;
  2974. end;
  2975.  
  2976. class function CoHTMLElementCls.Create: HTMLElement;
  2977. begin
  2978.   Result := CreateComObject(Class_HTMLElementCls) as HTMLElement;
  2979. end;
  2980.  
  2981. class function CoHTMLElementCls.CreateRemote(const MachineName: string): HTMLElement;
  2982. begin
  2983.   Result := CreateRemoteComObject(MachineName, Class_HTMLElementCls) as HTMLElement;
  2984. end;
  2985.  
  2986. class function CoHTMLFormCls.Create: HTMLForm;
  2987. begin
  2988.   Result := CreateComObject(Class_HTMLFormCls) as HTMLForm;
  2989. end;
  2990.  
  2991. class function CoHTMLFormCls.CreateRemote(const MachineName: string): HTMLForm;
  2992. begin
  2993.   Result := CreateRemoteComObject(MachineName, Class_HTMLFormCls) as HTMLForm;
  2994. end;
  2995.  
  2996. class function CoHTMLFormsCls.Create: HTMLForms;
  2997. begin
  2998.   Result := CreateComObject(Class_HTMLFormsCls) as HTMLForms;
  2999. end;
  3000.  
  3001. class function CoHTMLFormsCls.CreateRemote(const MachineName: string): HTMLForms;
  3002. begin
  3003.   Result := CreateRemoteComObject(MachineName, Class_HTMLFormsCls) as HTMLForms;
  3004. end;
  3005.  
  3006. class function CoHTMLAttrCls.Create: HTMLAttr;
  3007. begin
  3008.   Result := CreateComObject(Class_HTMLAttrCls) as HTMLAttr;
  3009. end;
  3010.  
  3011. class function CoHTMLAttrCls.CreateRemote(const MachineName: string): HTMLAttr;
  3012. begin
  3013.   Result := CreateRemoteComObject(MachineName, Class_HTMLAttrCls) as HTMLAttr;
  3014. end;
  3015.  
  3016. class function CoHTMLAttrsCls.Create: HTMLAttrs;
  3017. begin
  3018.   Result := CreateComObject(Class_HTMLAttrsCls) as HTMLAttrs;
  3019. end;
  3020.  
  3021. class function CoHTMLAttrsCls.CreateRemote(const MachineName: string): HTMLAttrs;
  3022. begin
  3023.   Result := CreateRemoteComObject(MachineName, Class_HTMLAttrsCls) as HTMLAttrs;
  3024. end;
  3025.  
  3026. procedure THTML.InitControlData;
  3027. const
  3028.   CEventDispIDs: array[0..12] of DWORD = (
  3029.     $FFFFFDA0, $000003F8, $000003F9, $00000001, $00000002, $00000227,
  3030.     $00000004, $00000005, $00000006, $00000007, $00000008, $00000009,
  3031.     $0000000A);
  3032.   CLicenseKey: array[0..36] of Word = (
  3033.     $0036, $0036, $0061, $0062, $0037, $0030, $0064, $0030, $002D, $0035,
  3034.     $0035, $0064, $0033, $002D, $0031, $0031, $0063, $0066, $002D, $0038,
  3035.     $0030, $0034, $0063, $002D, $0030, $0030, $0061, $0030, $0032, $0034,
  3036.     $0032, $0034, $0065, $0039, $0032, $0037, $0000);
  3037.   CTFontIDs: array [0..7] of DWORD = (
  3038.     $FFFFFE00, $0000001B, $0000001C, $0000001D, $0000001E, $0000001F,
  3039.     $00000020, $00000021);
  3040.   CControlData: TControlData = (
  3041.     ClassID: '{B7FC355E-8CE7-11CF-9754-00AA00C00908}';
  3042.     EventIID: '{B7FC355D-8CE7-11CF-9754-00AA00C00908}';
  3043.     EventCount: 13;
  3044.     EventDispIDs: @CEventDispIDs;
  3045.     LicenseKey: @CLicenseKey;
  3046.     Flags: $00000007;
  3047.     Version: 300;
  3048.     FontCount: 8;
  3049.     FontIDs: @CTFontIDs);
  3050. begin
  3051.   ControlData := @CControlData;
  3052. end;
  3053.  
  3054. procedure THTML.InitControlInterface(const Obj: IUnknown);
  3055. begin
  3056.   FIntf := Obj as IHTML;
  3057. end;
  3058.  
  3059. procedure THTML.AboutBox;
  3060. begin
  3061.   ControlInterface.AboutBox;
  3062. end;
  3063.  
  3064. procedure THTML.RequestDoc(const URL: WideString);
  3065. begin
  3066.   ControlInterface.RequestDoc(URL);
  3067. end;
  3068.  
  3069. procedure THTML.RequestAllEmbedded;
  3070. begin
  3071.   ControlInterface.RequestAllEmbedded;
  3072. end;
  3073.  
  3074. procedure THTML.Cancel(Message: OleVariant);
  3075. begin
  3076.   ControlInterface.Cancel(Message);
  3077. end;
  3078.  
  3079. procedure THTML.BeginPrinting(hDC: Integer; x, y, Width, Height, DefaultHeaders, DefaultTitle: OleVariant);
  3080. begin
  3081.   ControlInterface.BeginPrinting(hDC, x, y, Width, Height, DefaultHeaders, DefaultTitle);
  3082. end;
  3083.  
  3084. procedure THTML.PrintPage(hDC, PageNumber: Integer);
  3085. begin
  3086.   ControlInterface.PrintPage(hDC, PageNumber);
  3087. end;
  3088.  
  3089. procedure THTML.EndPrinting;
  3090. begin
  3091.   ControlInterface.EndPrinting;
  3092. end;
  3093.  
  3094. procedure THTML.AutoPrint(hDC: Integer);
  3095. begin
  3096.   ControlInterface.AutoPrint(hDC);
  3097. end;
  3098.  
  3099. function THTML.GetPlainText(selected, fancy: WordBool): WideString;
  3100. begin
  3101.   Result := ControlInterface.GetPlainText(selected, fancy);
  3102. end;
  3103.  
  3104. function THTML.HasSelection: WordBool;
  3105. begin
  3106.   Result := ControlInterface.HasSelection;
  3107. end;
  3108.  
  3109. procedure THTML.SelectAll;
  3110. begin
  3111.   ControlInterface.SelectAll;
  3112. end;
  3113.  
  3114. function THTML.Get_DocInput: DocInput;
  3115. begin
  3116.   Result := ControlInterface.DocInput;
  3117. end;
  3118.  
  3119. function THTML.Get_DocOutput: DocOutput;
  3120. begin
  3121.   Result := ControlInterface.DocOutput;
  3122. end;
  3123.  
  3124. function THTML.Get_Forms: HTMLForms;
  3125. begin
  3126.   Result := ControlInterface.Forms;
  3127. end;
  3128.  
  3129. function THTML.Get_IsPrintingDone(PageNumber: Integer): WordBool;
  3130. begin
  3131.   Result := ControlInterface.IsPrintingDone[PageNumber];
  3132. end;
  3133.  
  3134. function THTML.Get_Errors: icErrors;
  3135. begin
  3136.   Result := ControlInterface.Errors;
  3137. end;
  3138.  
  3139. function THTML.Get_hWnd: OLE_HANDLE;
  3140. begin
  3141.   Result := ControlInterface.hWnd;
  3142. end;
  3143.  
  3144. procedure TPOP.InitControlData;
  3145. const
  3146.   CEventDispIDs: array[0..13] of DWORD = (
  3147.     $FFFFFDA0, $00000227, $00000228, $00000229, $0000022A, $0000022B,
  3148.     $0000022C, $000003F9, $000009A1, $000009A2, $000009A3, $000009A4,
  3149.     $000009A6, $000009A7);
  3150.   CLicenseKey: array[0..36] of Word = (
  3151.     $0066, $0062, $0037, $0036, $0036, $0033, $0065, $0030, $002D, $0035,
  3152.     $0035, $0030, $0035, $002D, $0031, $0031, $0063, $0066, $002D, $0061,
  3153.     $0036, $0037, $0036, $002D, $0030, $0030, $0032, $0030, $0061, $0066,
  3154.     $0036, $0061, $0030, $0062, $0066, $0032, $0000);
  3155.   CControlData: TControlData = (
  3156.     ClassID: '{B7FC356E-8CE7-11CF-9754-00AA00C00908}';
  3157.     EventIID: '{B7FC356D-8CE7-11CF-9754-00AA00C00908}';
  3158.     EventCount: 14;
  3159.     EventDispIDs: @CEventDispIDs;
  3160.     LicenseKey: @CLicenseKey;
  3161.     Flags: $00000000;
  3162.     Version: 300);
  3163. begin
  3164.   ControlData := @CControlData;
  3165. end;
  3166.  
  3167. procedure TPOP.InitControlInterface(const Obj: IUnknown);
  3168. begin
  3169.   FIntf := Obj as Ipopct;
  3170. end;
  3171.  
  3172. procedure TPOP.AboutBox;
  3173. begin
  3174.   ControlInterface.AboutBox;
  3175. end;
  3176.  
  3177. procedure TPOP.Cancel;
  3178. begin
  3179.   ControlInterface.Cancel;
  3180. end;
  3181.  
  3182. procedure TPOP.Connect(RemoteHost, RemotePort: OleVariant);
  3183. begin
  3184.   ControlInterface.Connect(RemoteHost, RemotePort);
  3185. end;
  3186.  
  3187. procedure TPOP.Authenticate(UserId, Password: OleVariant);
  3188. begin
  3189.   ControlInterface.Authenticate(UserId, Password);
  3190. end;
  3191.  
  3192. procedure TPOP.GetDoc(URL, Headers, OutputFile: OleVariant);
  3193. begin
  3194.   ControlInterface.GetDoc(URL, Headers, OutputFile);
  3195. end;
  3196.  
  3197. procedure TPOP.MessageSize(MessageNumber: Smallint);
  3198. begin
  3199.   ControlInterface.MessageSize(MessageNumber);
  3200. end;
  3201.  
  3202. procedure TPOP.RetrieveMessage(MessageNumber: Smallint);
  3203. begin
  3204.   ControlInterface.RetrieveMessage(MessageNumber);
  3205. end;
  3206.  
  3207. procedure TPOP.Delete(MessageNumber: Smallint);
  3208. begin
  3209.   ControlInterface.Delete(MessageNumber);
  3210. end;
  3211.  
  3212. procedure TPOP.Reset;
  3213. begin
  3214.   ControlInterface.Reset;
  3215. end;
  3216.  
  3217. procedure TPOP.Last;
  3218. begin
  3219.   ControlInterface.Last;
  3220. end;
  3221.  
  3222. procedure TPOP.Noop;
  3223. begin
  3224.   ControlInterface.Noop;
  3225. end;
  3226.  
  3227. procedure TPOP.TopMessage(MessageNumber: Smallint);
  3228. begin
  3229.   ControlInterface.TopMessage(MessageNumber);
  3230. end;
  3231.  
  3232. procedure TPOP.Quit;
  3233. begin
  3234.   ControlInterface.Quit;
  3235. end;
  3236.  
  3237. procedure TPOP.RefreshMessageCount;
  3238. begin
  3239.   ControlInterface.RefreshMessageCount;
  3240. end;
  3241.  
  3242. function TPOP.Get_Timeout(event: Smallint): Integer;
  3243. begin
  3244.   Result := ControlInterface.Timeout[event];
  3245. end;
  3246.  
  3247. procedure TPOP.Set_Timeout(event: Smallint; Value: Integer);
  3248. begin
  3249.   ControlInterface.Timeout[event] := Value;
  3250. end;
  3251.  
  3252. procedure TPOP.Set_EnableTimer(event: Smallint; Value: WordBool);
  3253. begin
  3254.   ControlInterface.EnableTimer[event] := Value;
  3255. end;
  3256.  
  3257. function TPOP.Get_Errors: icErrors;
  3258. begin
  3259.   Result := ControlInterface.Errors;
  3260. end;
  3261.  
  3262. function TPOP.Get_DocOutput: DocOutput;
  3263. begin
  3264.   Result := ControlInterface.DocOutput;
  3265. end;
  3266.  
  3267. procedure TNNTP.InitControlData;
  3268. const
  3269.   CEventDispIDs: array[0..15] of DWORD = (
  3270.     $FFFFFDA0, $00000227, $00000228, $00000229, $0000022A, $0000022B,
  3271.     $0000022C, $000003F8, $000003F9, $00000000, $00000001, $00000002,
  3272.     $00000003, $00000004, $00000005, $00000006);
  3273.   CLicenseKey: array[0..36] of Word = (
  3274.     $0038, $0036, $0063, $0033, $0065, $0038, $0038, $0030, $002D, $0035,
  3275.     $0035, $0039, $0035, $002D, $0031, $0031, $0063, $0066, $002D, $0039,
  3276.     $0036, $0065, $0037, $002D, $0030, $0030, $0038, $0030, $0063, $0037,
  3277.     $0063, $0033, $0063, $0032, $0038, $0034, $0000);
  3278.   CControlData: TControlData = (
  3279.     ClassID: '{B7FC3568-8CE7-11CF-9754-00AA00C00908}';
  3280.     EventIID: '{B7FC3567-8CE7-11CF-9754-00AA00C00908}';
  3281.     EventCount: 16;
  3282.     EventDispIDs: @CEventDispIDs;
  3283.     LicenseKey: @CLicenseKey;
  3284.     Flags: $00000000;
  3285.     Version: 300);
  3286. begin
  3287.   ControlData := @CControlData;
  3288. end;
  3289.  
  3290. procedure TNNTP.InitControlInterface(const Obj: IUnknown);
  3291. begin
  3292.   FIntf := Obj as Inntpct;
  3293. end;
  3294.  
  3295. procedure TNNTP.AboutBox;
  3296. begin
  3297.   ControlInterface.AboutBox;
  3298. end;
  3299.  
  3300. procedure TNNTP.Cancel;
  3301. begin
  3302.   ControlInterface.Cancel;
  3303. end;
  3304.  
  3305. procedure TNNTP.Connect(RemoteHost, RemotePort: OleVariant);
  3306. begin
  3307.   ControlInterface.Connect(RemoteHost, RemotePort);
  3308. end;
  3309.  
  3310. procedure TNNTP.SendDoc(URL, Headers, InputData, InputFile, OutputFile: OleVariant);
  3311. begin
  3312.   ControlInterface.SendDoc(URL, Headers, InputData, InputFile, OutputFile);
  3313. end;
  3314.  
  3315. procedure TNNTP.GetDoc(URL, Headers, OutputFile: OleVariant);
  3316. begin
  3317.   ControlInterface.GetDoc(URL, Headers, OutputFile);
  3318. end;
  3319.  
  3320. procedure TNNTP.GetAdministrationFile(LastUpdate: OleVariant);
  3321. begin
  3322.   ControlInterface.GetAdministrationFile(LastUpdate);
  3323. end;
  3324.  
  3325. procedure TNNTP.SelectGroup(const groupName: WideString);
  3326. begin
  3327.   ControlInterface.SelectGroup(groupName);
  3328. end;
  3329.  
  3330. procedure TNNTP.SetNextArticle;
  3331. begin
  3332.   ControlInterface.SetNextArticle;
  3333. end;
  3334.  
  3335. procedure TNNTP.SetLastArticle;
  3336. begin
  3337.   ControlInterface.SetLastArticle;
  3338. end;
  3339.  
  3340. procedure TNNTP.GetArticleNumbers(groupName: OleVariant);
  3341. begin
  3342.   ControlInterface.GetArticleNumbers(groupName);
  3343. end;
  3344.  
  3345. procedure TNNTP.GetArticleHeaders(const header: WideString; firstArticle, lastArticle: OleVariant);
  3346. begin
  3347.   ControlInterface.GetArticleHeaders(header, firstArticle, lastArticle);
  3348. end;
  3349.  
  3350. procedure TNNTP.GetArticleByArticleNumber(articleNumber: OleVariant);
  3351. begin
  3352.   ControlInterface.GetArticleByArticleNumber(articleNumber);
  3353. end;
  3354.  
  3355. procedure TNNTP.GetArticleByMessageID(const messageID: WideString);
  3356. begin
  3357.   ControlInterface.GetArticleByMessageID(messageID);
  3358. end;
  3359.  
  3360. procedure TNNTP.GetHeaderByArticleNumber(articleNumber: OleVariant);
  3361. begin
  3362.   ControlInterface.GetHeaderByArticleNumber(articleNumber);
  3363. end;
  3364.  
  3365. procedure TNNTP.GetHeaderByMessageID(const messageID: WideString);
  3366. begin
  3367.   ControlInterface.GetHeaderByMessageID(messageID);
  3368. end;
  3369.  
  3370. procedure TNNTP.GetBodyByArticleNumber(articleNumber: OleVariant);
  3371. begin
  3372.   ControlInterface.GetBodyByArticleNumber(articleNumber);
  3373. end;
  3374.  
  3375. procedure TNNTP.GetBodyByMessageID(const messageID: WideString);
  3376. begin
  3377.   ControlInterface.GetBodyByMessageID(messageID);
  3378. end;
  3379.  
  3380. procedure TNNTP.GetStatByArticleNumber(articleNumber: OleVariant);
  3381. begin
  3382.   ControlInterface.GetStatByArticleNumber(articleNumber);
  3383. end;
  3384.  
  3385. procedure TNNTP.GetOverviewFormat;
  3386. begin
  3387.   ControlInterface.GetOverviewFormat;
  3388. end;
  3389.  
  3390. procedure TNNTP.GetOverview(firstArticle, lastArticle: OleVariant);
  3391. begin
  3392.   ControlInterface.GetOverview(firstArticle, lastArticle);
  3393. end;
  3394.  
  3395. procedure TNNTP.ListGroups;
  3396. begin
  3397.   ControlInterface.ListGroups;
  3398. end;
  3399.  
  3400. procedure TNNTP.ListGroupDescriptions;
  3401. begin
  3402.   ControlInterface.ListGroupDescriptions;
  3403. end;
  3404.  
  3405. procedure TNNTP.ListNewGroups(LastUpdate: OleVariant);
  3406. begin
  3407.   ControlInterface.ListNewGroups(LastUpdate);
  3408. end;
  3409.  
  3410. procedure TNNTP.Quit;
  3411. begin
  3412.   ControlInterface.Quit;
  3413. end;
  3414.  
  3415. function TNNTP.Get_Timeout(event: Smallint): Integer;
  3416. begin
  3417.   Result := ControlInterface.Timeout[event];
  3418. end;
  3419.  
  3420. procedure TNNTP.Set_Timeout(event: Smallint; Value: Integer);
  3421. begin
  3422.   ControlInterface.Timeout[event] := Value;
  3423. end;
  3424.  
  3425. procedure TNNTP.Set_EnableTimer(event: Smallint; Value: WordBool);
  3426. begin
  3427.   ControlInterface.EnableTimer[event] := Value;
  3428. end;
  3429.  
  3430. function TNNTP.Get_Errors: icErrors;
  3431. begin
  3432.   Result := ControlInterface.Errors;
  3433. end;
  3434.  
  3435. function TNNTP.Get_DocInput: DocInput;
  3436. begin
  3437.   Result := ControlInterface.DocInput;
  3438. end;
  3439.  
  3440. function TNNTP.Get_DocOutput: DocOutput;
  3441. begin
  3442.   Result := ControlInterface.DocOutput;
  3443. end;
  3444.  
  3445. procedure TSMTP.InitControlData;
  3446. const
  3447.   CEventDispIDs: array[0..12] of DWORD = (
  3448.     $FFFFFDA0, $00000227, $00000228, $00000229, $0000022A, $0000022B,
  3449.     $0000022C, $000003F8, $0000012C, $0000012D, $0000012E, $0000012F,
  3450.     $00000130);
  3451.   CLicenseKey: array[0..36] of Word = (
  3452.     $0062, $0037, $0034, $0034, $0034, $0065, $0065, $0030, $002D, $0035,
  3453.     $0035, $0062, $0065, $002D, $0031, $0031, $0063, $0066, $002D, $0039,
  3454.     $0036, $0065, $0037, $002D, $0030, $0030, $0038, $0030, $0063, $0037,
  3455.     $0063, $0033, $0063, $0032, $0038, $0034, $0000);
  3456.   CControlData: TControlData = (
  3457.     ClassID: '{B7FC3573-8CE7-11CF-9754-00AA00C00908}';
  3458.     EventIID: '{B7FC3572-8CE7-11CF-9754-00AA00C00908}';
  3459.     EventCount: 13;
  3460.     EventDispIDs: @CEventDispIDs;
  3461.     LicenseKey: @CLicenseKey;
  3462.     Flags: $00000000;
  3463.     Version: 300);
  3464. begin
  3465.   ControlData := @CControlData;
  3466. end;
  3467.  
  3468. procedure TSMTP.InitControlInterface(const Obj: IUnknown);
  3469. begin
  3470.   FIntf := Obj as Ismtpct;
  3471. end;
  3472.  
  3473. procedure TSMTP.AboutBox;
  3474. begin
  3475.   ControlInterface.AboutBox;
  3476. end;
  3477.  
  3478. procedure TSMTP.Cancel;
  3479. begin
  3480.   ControlInterface.Cancel;
  3481. end;
  3482.  
  3483. procedure TSMTP.Connect(RemoteHost, RemotePort: OleVariant);
  3484. begin
  3485.   ControlInterface.Connect(RemoteHost, RemotePort);
  3486. end;
  3487.  
  3488. procedure TSMTP.SendDoc(URL, Headers, InputData, InputFile, OutputFile: OleVariant);
  3489. begin
  3490.   ControlInterface.SendDoc(URL, Headers, InputData, InputFile, OutputFile);
  3491. end;
  3492.  
  3493. procedure TSMTP.Reset;
  3494. begin
  3495.   ControlInterface.Reset;
  3496. end;
  3497.  
  3498. procedure TSMTP.Verify(const name: WideString);
  3499. begin
  3500.   ControlInterface.Verify(name);
  3501. end;
  3502.  
  3503. procedure TSMTP.Expand(const name: WideString);
  3504. begin
  3505.   ControlInterface.Expand(name);
  3506. end;
  3507.  
  3508. procedure TSMTP.Help(helpTopic: OleVariant);
  3509. begin
  3510.   ControlInterface.Help(helpTopic);
  3511. end;
  3512.  
  3513. procedure TSMTP.Noop;
  3514. begin
  3515.   ControlInterface.Noop;
  3516. end;
  3517.  
  3518. procedure TSMTP.Quit;
  3519. begin
  3520.   ControlInterface.Quit;
  3521. end;
  3522.  
  3523. function TSMTP.Get_Timeout(event: Smallint): Integer;
  3524. begin
  3525.   Result := ControlInterface.Timeout[event];
  3526. end;
  3527.  
  3528. procedure TSMTP.Set_Timeout(event: Smallint; Value: Integer);
  3529. begin
  3530.   ControlInterface.Timeout[event] := Value;
  3531. end;
  3532.  
  3533. procedure TSMTP.Set_EnableTimer(event: Smallint; Value: WordBool);
  3534. begin
  3535.   ControlInterface.EnableTimer[event] := Value;
  3536. end;
  3537.  
  3538. function TSMTP.Get_Errors: icErrors;
  3539. begin
  3540.   Result := ControlInterface.Errors;
  3541. end;
  3542.  
  3543. function TSMTP.Get_DocInput: DocInput;
  3544. begin
  3545.   Result := ControlInterface.DocInput;
  3546. end;
  3547.  
  3548. procedure TTCP.InitControlData;
  3549. const
  3550.   CEventDispIDs: array[0..6] of DWORD = (
  3551.     $FFFFFDA0, $0000041B, $0000047F, $00000480, $00000483, $00000481,
  3552.     $00000482);
  3553.   CLicenseKey: array[0..36] of Word = (
  3554.     $0062, $0033, $0031, $0035, $0063, $0035, $0033, $0030, $002D, $0035,
  3555.     $0032, $0039, $0038, $002D, $0031, $0031, $0063, $0066, $002D, $0061,
  3556.     $0061, $0061, $0032, $002D, $0030, $0030, $0032, $0030, $0061, $0066,
  3557.     $0032, $0063, $0065, $0065, $0035, $0065, $0000);
  3558.   CControlData: TControlData = (
  3559.     ClassID: '{B7FC3584-8CE7-11CF-9754-00AA00C00908}';
  3560.     EventIID: '{B7FC3583-8CE7-11CF-9754-00AA00C00908}';
  3561.     EventCount: 7;
  3562.     EventDispIDs: @CEventDispIDs;
  3563.     LicenseKey: @CLicenseKey;
  3564.     Flags: $00000000;
  3565.     Version: 300);
  3566. begin
  3567.   ControlData := @CControlData;
  3568. end;
  3569.  
  3570. procedure TTCP.InitControlInterface(const Obj: IUnknown);
  3571. begin
  3572.   FIntf := Obj as ITCP;
  3573. end;
  3574.  
  3575. procedure TTCP.AboutBox;
  3576. begin
  3577.   ControlInterface.AboutBox;
  3578. end;
  3579.  
  3580. procedure TTCP.Connect(RemoteHost, RemotePort: OleVariant);
  3581. begin
  3582.   ControlInterface.Connect(RemoteHost, RemotePort);
  3583. end;
  3584.  
  3585. procedure TTCP.Listen;
  3586. begin
  3587.   ControlInterface.Listen;
  3588. end;
  3589.  
  3590. procedure TTCP.Accept(requestID: Integer);
  3591. begin
  3592.   ControlInterface.Accept(requestID);
  3593. end;
  3594.  
  3595. procedure TTCP.SendData(data: OleVariant);
  3596. begin
  3597.   ControlInterface.SendData(data);
  3598. end;
  3599.  
  3600. procedure TTCP.GetData(var data: OleVariant; type_, maxLen: OleVariant);
  3601. begin
  3602.   ControlInterface.GetData(data, type_, maxLen);
  3603. end;
  3604.  
  3605. procedure TTCP.PeekData(var data: OleVariant; type_, maxLen: OleVariant);
  3606. begin
  3607.   ControlInterface.PeekData(data, type_, maxLen);
  3608. end;
  3609.  
  3610. procedure TTCP.Close;
  3611. begin
  3612.   ControlInterface.Close;
  3613. end;
  3614.  
  3615.  
  3616. procedure TUDP.InitControlData;
  3617. const
  3618.   CEventDispIDs: array[0..1] of DWORD = (
  3619.     $FFFFFDA0, $0000041B);
  3620.   CLicenseKey: array[0..36] of Word = (
  3621.     $0062, $0033, $0031, $0035, $0063, $0035, $0033, $0030, $002D, $0035,
  3622.     $0032, $0039, $0038, $002D, $0031, $0031, $0063, $0066, $002D, $0061,
  3623.     $0061, $0061, $0032, $002D, $0030, $0030, $0032, $0030, $0061, $0066,
  3624.     $0032, $0063, $0065, $0065, $0035, $0065, $0000);
  3625.   CControlData: TControlData = (
  3626.     ClassID: '{B7FC3587-8CE7-11CF-9754-00AA00C00908}';
  3627.     EventIID: '{B7FC3586-8CE7-11CF-9754-00AA00C00908}';
  3628.     EventCount: 2;
  3629.     EventDispIDs: @CEventDispIDs;
  3630.     LicenseKey: @CLicenseKey;
  3631.     Flags: $00000000;
  3632.     Version: 300);
  3633. begin
  3634.   ControlData := @CControlData;
  3635. end;
  3636.  
  3637. procedure TUDP.InitControlInterface(const Obj: IUnknown);
  3638. begin
  3639.   FIntf := Obj as IUDP;
  3640. end;
  3641.  
  3642. procedure TUDP.AboutBox;
  3643. begin
  3644.   ControlInterface.AboutBox;
  3645. end;
  3646.  
  3647. procedure TUDP.SendData(data: OleVariant);
  3648. begin
  3649.   ControlInterface.SendData(data);
  3650. end;
  3651.  
  3652. procedure TUDP.GetData(var data: OleVariant; type_: OleVariant);
  3653. begin
  3654.   ControlInterface.GetData(data, type_);
  3655. end;
  3656.  
  3657. procedure Register;
  3658. begin
  3659.   RegisterComponents('Internet', [TFTP, THTML, THTTP, TNNTP, TPOP, TSMTP, { do not localize }
  3660.     TTCP, TUDP]);
  3661. end;
  3662.  
  3663. end.
  3664.