home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue42 / ASP / SimpleObject.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1998-11-19  |  2.4 KB  |  91 lines

  1. unit SimpleObject;
  2.  
  3. interface
  4.  
  5. uses
  6.   ComObj, ActiveX, delphi_TLB, ASPTypeLibrary_TLB, uServerForm;
  7.  
  8. type
  9.   // Automation Object to support simple ASP operations.
  10.   TSimpleObject = class(TAutoObject, ISimpleObject)
  11.   private
  12.     fScript : IScriptingContext;    // Hold a refernce to be used through the program.
  13.     fFirstName, fLastName : WideString;
  14.   protected
  15.     function Get_LastName: WideString; safecall;
  16.     function Get_FirstName: WideString; safecall;
  17.     procedure OnEndPage; safecall;
  18.     procedure OnStartPage(const unk: IUnknown); safecall;
  19.     procedure Set_LastName(const Value: WideString); safecall;
  20.     procedure Set_FirstName(const Value: WideString); safecall;
  21.     procedure WriteData; safecall;
  22.   public
  23.     procedure Initialize; override;
  24.   end;
  25.  
  26. implementation
  27.  
  28. uses ComServ;
  29.  
  30. function TSimpleObject.Get_LastName: WideString;
  31. begin
  32.   Result := fLastName;
  33. end;
  34.  
  35. function TSimpleObject.Get_FirstName: WideString;
  36. begin
  37.   Result := fFirstName;
  38. end;
  39.  
  40. procedure TSimpleObject.Set_LastName(const Value: WideString);
  41. begin
  42.   fLastName := Value;
  43. end;
  44.  
  45. procedure TSimpleObject.Set_FirstName(const Value: WideString);
  46. begin
  47.   fFirstName := Value;
  48. end;
  49.  
  50. procedure TSimpleObject.OnEndPage;
  51. begin
  52.   fScript := nil;  // Release the IScriptingContext interface
  53. end;
  54.  
  55. procedure TSimpleObject.OnStartPage(const unk: IUnknown);
  56. begin
  57.   fScript :=  unk as IScriptingContext;    // Save the IScriptingContext interface
  58. end;
  59.  
  60. // Our pre-defined method, declared in the type library.
  61. procedure TSimpleObject.WriteData;
  62. begin
  63.   // Write response page to client's browser.
  64.    fScript.Response.Write( '<TABLE>' );
  65.    fScript.Response.Write( '<TR><TD>First name : </TD>' );
  66.    fScript.Response.Write( '<TD>' + fFirstName + '</TD></TR>' );
  67.    fScript.Response.Write( '<TR><TD>Last name : </TD>' );
  68.    fScript.Response.Write( '<TD>' + fLastName + '</TD></TR>' );
  69.    fScript.Response.Write( '<TABLE>' );
  70. end;
  71.  
  72. procedure TSimpleObject.Initialize;
  73. begin
  74.   // Initialize the object's state.
  75.   inherited Initialize;
  76.   fFirstName := '';
  77.   fLastName := '';
  78.   // Create the server form.
  79.   if not Assigned ( frmAspServer ) then
  80.   begin
  81.      frmAspServer := TfrmAspServer.Create ( nil );
  82.      frmAspServer.Show;
  83.   end;
  84. end;
  85.  
  86. initialization
  87.   TAutoObjectFactory.Create(ComServer, TSimpleObject, Class_SimpleObject,
  88.     ciMultiInstance, tmApartment);
  89.  
  90. end.
  91.