home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Internet 2000 May / MICD_2000_05.iso / CBuilder5 / INSTALL / DATA1.CAB / Program_Built_Files / Include / Vcl / httpapp.hpp < prev    next >
C/C++ Source or Header  |  2000-02-01  |  29KB  |  740 lines

  1. // Borland C++ Builder
  2. // Copyright (c) 1995, 1999 by Borland International
  3. // All rights reserved
  4.  
  5. // (DO NOT EDIT: machine generated header) 'HTTPApp.pas' rev: 5.00
  6.  
  7. #ifndef HTTPAppHPP
  8. #define HTTPAppHPP
  9.  
  10. #pragma delphiheader begin
  11. #pragma option push -w-
  12. #pragma option push -Vx
  13. #include <Contnrs.hpp>    // Pascal unit
  14. #include <Masks.hpp>    // Pascal unit
  15. #include <Forms.hpp>    // Pascal unit
  16. #include <Classes.hpp>    // Pascal unit
  17. #include <SysUtils.hpp>    // Pascal unit
  18. #include <SyncObjs.hpp>    // Pascal unit
  19. #include <SysInit.hpp>    // Pascal unit
  20. #include <System.hpp>    // Pascal unit
  21.  
  22. //-- user supplied -----------------------------------------------------------
  23.  
  24. namespace Httpapp
  25. {
  26. //-- type declarations -------------------------------------------------------
  27. #pragma option push -b-
  28. enum TMethodType { mtAny, mtGet, mtPut, mtPost, mtHead };
  29. #pragma option pop
  30.  
  31. class DELPHICLASS TWebRequest;
  32. class PASCALIMPLEMENTATION TWebRequest : public System::TObject 
  33. {
  34.     typedef System::TObject inherited;
  35.     
  36. private:
  37.     TMethodType FMethodType;
  38.     Classes::TStrings* FContentFields;
  39.     Classes::TStrings* FCookieFields;
  40.     Classes::TStrings* FQueryFields;
  41.     Classes::TStrings* __fastcall GetContentFields(void);
  42.     Classes::TStrings* __fastcall GetCookieFields(void);
  43.     Classes::TStrings* __fastcall GetQueryFields(void);
  44.     
  45. protected:
  46.     virtual AnsiString __fastcall GetStringVariable(int Index) = 0 ;
  47.     virtual System::TDateTime __fastcall GetDateVariable(int Index) = 0 ;
  48.     virtual int __fastcall GetIntegerVariable(int Index) = 0 ;
  49.     
  50. public:
  51.     __fastcall TWebRequest(void);
  52.     __fastcall virtual ~TWebRequest(void);
  53.     virtual int __fastcall ReadClient(void *Buffer, int Count) = 0 ;
  54.     virtual AnsiString __fastcall ReadString(int Count) = 0 ;
  55.     virtual AnsiString __fastcall TranslateURI(const AnsiString URI) = 0 ;
  56.     virtual int __fastcall WriteClient(void *Buffer, int Count) = 0 ;
  57.     virtual bool __fastcall WriteString(const AnsiString AString) = 0 ;
  58.     void __fastcall ExtractFields(const Sysutils::TSysCharSet &Separators, const Sysutils::TSysCharSet 
  59.         &WhiteSpace, char * Content, Classes::TStrings* Strings);
  60.     void __fastcall ExtractContentFields(Classes::TStrings* Strings);
  61.     void __fastcall ExtractCookieFields(Classes::TStrings* Strings);
  62.     void __fastcall ExtractQueryFields(Classes::TStrings* Strings);
  63.     virtual AnsiString __fastcall GetFieldByName(const AnsiString Name) = 0 ;
  64.     __property TMethodType MethodType = {read=FMethodType, nodefault};
  65.     __property Classes::TStrings* ContentFields = {read=GetContentFields};
  66.     __property Classes::TStrings* CookieFields = {read=GetCookieFields};
  67.     __property Classes::TStrings* QueryFields = {read=GetQueryFields};
  68.     __property AnsiString Method = {read=GetStringVariable, index=0};
  69.     __property AnsiString ProtocolVersion = {read=GetStringVariable, index=1};
  70.     __property AnsiString URL = {read=GetStringVariable, index=2};
  71.     __property AnsiString Query = {read=GetStringVariable, index=3};
  72.     __property AnsiString PathInfo = {read=GetStringVariable, index=4};
  73.     __property AnsiString PathTranslated = {read=GetStringVariable, index=5};
  74.     __property AnsiString Authorization = {read=GetStringVariable, index=28};
  75.     __property AnsiString CacheControl = {read=GetStringVariable, index=6};
  76.     __property AnsiString Cookie = {read=GetStringVariable, index=27};
  77.     __property System::TDateTime Date = {read=GetDateVariable, index=7};
  78.     __property AnsiString Accept = {read=GetStringVariable, index=8};
  79.     __property AnsiString From = {read=GetStringVariable, index=9};
  80.     __property AnsiString Host = {read=GetStringVariable, index=10};
  81.     __property System::TDateTime IfModifiedSince = {read=GetDateVariable, index=11};
  82.     __property AnsiString Referer = {read=GetStringVariable, index=12};
  83.     __property AnsiString UserAgent = {read=GetStringVariable, index=13};
  84.     __property AnsiString ContentEncoding = {read=GetStringVariable, index=14};
  85.     __property AnsiString ContentType = {read=GetStringVariable, index=15};
  86.     __property int ContentLength = {read=GetIntegerVariable, index=16, nodefault};
  87.     __property AnsiString ContentVersion = {read=GetStringVariable, index=17};
  88.     __property AnsiString Content = {read=GetStringVariable, index=25};
  89.     __property AnsiString Connection = {read=GetStringVariable, index=26};
  90.     __property AnsiString DerivedFrom = {read=GetStringVariable, index=18};
  91.     __property System::TDateTime Expires = {read=GetDateVariable, index=19};
  92.     __property AnsiString Title = {read=GetStringVariable, index=20};
  93.     __property AnsiString RemoteAddr = {read=GetStringVariable, index=21};
  94.     __property AnsiString RemoteHost = {read=GetStringVariable, index=22};
  95.     __property AnsiString ScriptName = {read=GetStringVariable, index=23};
  96.     __property int ServerPort = {read=GetIntegerVariable, index=24, nodefault};
  97. };
  98.  
  99.  
  100. class DELPHICLASS TCookie;
  101. class PASCALIMPLEMENTATION TCookie : public Classes::TCollectionItem 
  102. {
  103.     typedef Classes::TCollectionItem inherited;
  104.     
  105. private:
  106.     AnsiString FName;
  107.     AnsiString FValue;
  108.     AnsiString FPath;
  109.     AnsiString FDomain;
  110.     System::TDateTime FExpires;
  111.     bool FSecure;
  112.     
  113. protected:
  114.     AnsiString __fastcall GetHeaderValue();
  115.     
  116. public:
  117.     __fastcall virtual TCookie(Classes::TCollection* Collection);
  118.     virtual void __fastcall AssignTo(Classes::TPersistent* Dest);
  119.     __property AnsiString Name = {read=FName, write=FName};
  120.     __property AnsiString Value = {read=FValue, write=FValue};
  121.     __property AnsiString Domain = {read=FDomain, write=FDomain};
  122.     __property AnsiString Path = {read=FPath, write=FPath};
  123.     __property System::TDateTime Expires = {read=FExpires, write=FExpires};
  124.     __property bool Secure = {read=FSecure, write=FSecure, nodefault};
  125.     __property AnsiString HeaderValue = {read=GetHeaderValue};
  126. public:
  127.     #pragma option push -w-inl
  128.     /* TCollectionItem.Destroy */ inline __fastcall virtual ~TCookie(void) { }
  129.     #pragma option pop
  130.     
  131. };
  132.  
  133.  
  134. class DELPHICLASS TCookieCollection;
  135. class DELPHICLASS TWebResponse;
  136. class PASCALIMPLEMENTATION TWebResponse : public System::TObject 
  137. {
  138.     typedef System::TObject inherited;
  139.     
  140. private:
  141.     Classes::TStream* FContentStream;
  142.     Classes::TStrings* FCustomHeaders;
  143.     TCookieCollection* FCookies;
  144.     void __fastcall SetCustomHeaders(Classes::TStrings* Value);
  145.     
  146. protected:
  147.     TWebRequest* FHTTPRequest;
  148.     void __fastcall AddCustomHeaders(AnsiString &Headers);
  149.     virtual AnsiString __fastcall GetStringVariable(int Index) = 0 ;
  150.     virtual void __fastcall SetStringVariable(int Index, const AnsiString Value) = 0 ;
  151.     virtual System::TDateTime __fastcall GetDateVariable(int Index) = 0 ;
  152.     virtual void __fastcall SetDateVariable(int Index, const System::TDateTime Value) = 0 ;
  153.     virtual int __fastcall GetIntegerVariable(int Index) = 0 ;
  154.     virtual void __fastcall SetIntegerVariable(int Index, int Value) = 0 ;
  155.     virtual AnsiString __fastcall GetContent(void) = 0 ;
  156.     virtual void __fastcall SetContent(const AnsiString Value) = 0 ;
  157.     virtual void __fastcall SetContentStream(Classes::TStream* Value);
  158.     virtual int __fastcall GetStatusCode(void) = 0 ;
  159.     virtual void __fastcall SetStatusCode(int Value) = 0 ;
  160.     virtual AnsiString __fastcall GetLogMessage(void) = 0 ;
  161.     virtual void __fastcall SetLogMessage(const AnsiString Value) = 0 ;
  162.     
  163. public:
  164.     __fastcall TWebResponse(TWebRequest* HTTPRequest);
  165.     __fastcall virtual ~TWebResponse(void);
  166.     AnsiString __fastcall GetCustomHeader(const AnsiString Name);
  167.     virtual void __fastcall SendResponse(void) = 0 ;
  168.     virtual void __fastcall SendRedirect(const AnsiString URI) = 0 ;
  169.     virtual void __fastcall SendStream(Classes::TStream* AStream) = 0 ;
  170.     virtual bool __fastcall Sent(void);
  171.     void __fastcall SetCookieField(Classes::TStrings* Values, const AnsiString ADomain, const AnsiString 
  172.         APath, System::TDateTime AExpires, bool ASecure);
  173.     void __fastcall SetCustomHeader(const AnsiString Name, const AnsiString Value);
  174.     __property TCookieCollection* Cookies = {read=FCookies};
  175.     __property TWebRequest* HTTPRequest = {read=FHTTPRequest};
  176.     __property AnsiString Version = {read=GetStringVariable, write=SetStringVariable, index=0};
  177.     __property AnsiString ReasonString = {read=GetStringVariable, write=SetStringVariable, index=1};
  178.     __property AnsiString Server = {read=GetStringVariable, write=SetStringVariable, index=2};
  179.     __property AnsiString WWWAuthenticate = {read=GetStringVariable, write=SetStringVariable, index=3};
  180.         
  181.     __property AnsiString Realm = {read=GetStringVariable, write=SetStringVariable, index=4};
  182.     __property AnsiString Allow = {read=GetStringVariable, write=SetStringVariable, index=5};
  183.     __property AnsiString Location = {read=GetStringVariable, write=SetStringVariable, index=6};
  184.     __property AnsiString ContentEncoding = {read=GetStringVariable, write=SetStringVariable, index=7};
  185.         
  186.     __property AnsiString ContentType = {read=GetStringVariable, write=SetStringVariable, index=8};
  187.     __property AnsiString ContentVersion = {read=GetStringVariable, write=SetStringVariable, index=9};
  188.     __property AnsiString DerivedFrom = {read=GetStringVariable, write=SetStringVariable, index=10};
  189.     __property AnsiString Title = {read=GetStringVariable, write=SetStringVariable, index=11};
  190.     __property int StatusCode = {read=GetStatusCode, write=SetStatusCode, nodefault};
  191.     __property int ContentLength = {read=GetIntegerVariable, write=SetIntegerVariable, index=0, nodefault
  192.         };
  193.     __property System::TDateTime Date = {read=GetDateVariable, write=SetDateVariable, index=0};
  194.     __property System::TDateTime Expires = {read=GetDateVariable, write=SetDateVariable, index=1};
  195.     __property System::TDateTime LastModified = {read=GetDateVariable, write=SetDateVariable, index=2};
  196.         
  197.     __property AnsiString Content = {read=GetContent, write=SetContent};
  198.     __property Classes::TStream* ContentStream = {read=FContentStream, write=SetContentStream};
  199.     __property AnsiString LogMessage = {read=GetLogMessage, write=SetLogMessage};
  200.     __property Classes::TStrings* CustomHeaders = {read=FCustomHeaders, write=SetCustomHeaders};
  201. };
  202.  
  203.  
  204. class PASCALIMPLEMENTATION TCookieCollection : public Classes::TCollection 
  205. {
  206.     typedef Classes::TCollection inherited;
  207.     
  208. private:
  209.     TWebResponse* FWebResponse;
  210.     
  211. protected:
  212.     TCookie* __fastcall GetCookie(int Index);
  213.     void __fastcall SetCookie(int Index, TCookie* Cookie);
  214.     
  215. public:
  216.     __fastcall TCookieCollection(TWebResponse* WebResponse, TMetaClass* ItemClass);
  217.     HIDESBASE TCookie* __fastcall Add(void);
  218.     __property TWebResponse* WebResponse = {read=FWebResponse};
  219.     __property TCookie* Items[int Index] = {read=GetCookie, write=SetCookie/*, default*/};
  220. public:
  221.     #pragma option push -w-inl
  222.     /* TCollection.Destroy */ inline __fastcall virtual ~TCookieCollection(void) { }
  223.     #pragma option pop
  224.     
  225. };
  226.  
  227.  
  228. #pragma option push -b-
  229. enum THTMLAlign { haDefault, haLeft, haRight, haCenter };
  230. #pragma option pop
  231.  
  232. #pragma option push -b-
  233. enum THTMLVAlign { haVDefault, haTop, haMiddle, haBottom, haBaseline };
  234. #pragma option pop
  235.  
  236. typedef AnsiString THTMLBgColor;
  237.  
  238. class DELPHICLASS THTMLTagAttributes;
  239. class DELPHICLASS TCustomContentProducer;
  240. class DELPHICLASS TCustomWebDispatcher;
  241. class DELPHICLASS TWebActionItems;
  242. class DELPHICLASS TWebActionItem;
  243. class PASCALIMPLEMENTATION TWebActionItems : public Classes::TCollection 
  244. {
  245.     typedef Classes::TCollection inherited;
  246.     
  247. private:
  248.     TCustomWebDispatcher* FWebDispatcher;
  249.     TWebActionItem* __fastcall GetActionItem(int Index);
  250.     void __fastcall SetActionItem(int Index, TWebActionItem* Value);
  251.     
  252. protected:
  253.     DYNAMIC int __fastcall GetAttrCount(void);
  254.     DYNAMIC AnsiString __fastcall GetAttr(int Index);
  255.     DYNAMIC AnsiString __fastcall GetItemAttr(int Index, int ItemIndex);
  256.     DYNAMIC Classes::TPersistent* __fastcall GetOwner(void);
  257.     virtual void __fastcall SetItemName(Classes::TCollectionItem* Item);
  258.     virtual void __fastcall Update(Classes::TCollectionItem* Item);
  259.     
  260. public:
  261.     __fastcall TWebActionItems(TCustomWebDispatcher* WebDispatcher, TMetaClass* ItemClass);
  262.     HIDESBASE TWebActionItem* __fastcall Add(void);
  263.     __property TCustomWebDispatcher* WebDispatcher = {read=FWebDispatcher};
  264.     __property TWebActionItem* Items[int Index] = {read=GetActionItem, write=SetActionItem/*, default*/
  265.         };
  266. public:
  267.     #pragma option push -w-inl
  268.     /* TCollection.Destroy */ inline __fastcall virtual ~TWebActionItems(void) { }
  269.     #pragma option pop
  270.     
  271. };
  272.  
  273.  
  274. typedef void __fastcall (__closure *THTTPMethodEvent)(System::TObject* Sender, TWebRequest* Request, 
  275.     TWebResponse* Response, bool &Handled);
  276.  
  277. class PASCALIMPLEMENTATION TCustomWebDispatcher : public Forms::TDataModule 
  278. {
  279.     typedef Forms::TDataModule inherited;
  280.     
  281. private:
  282.     TWebRequest* FRequest;
  283.     TWebResponse* FResponse;
  284.     TWebActionItems* FActions;
  285.     THTTPMethodEvent FBeforeDispatch;
  286.     THTTPMethodEvent FAfterDispatch;
  287.     Contnrs::TComponentList* FDispatchList;
  288.     TWebActionItem* __fastcall GetAction(int Index);
  289.     void __fastcall SetActions(TWebActionItems* Value);
  290.     
  291. protected:
  292.     bool __fastcall DoAfterDispatch(TWebRequest* Request, TWebResponse* Response);
  293.     bool __fastcall DoBeforeDispatch(TWebRequest* Request, TWebResponse* Response);
  294.     bool __fastcall DispatchAction(TWebRequest* Request, TWebResponse* Response);
  295.     virtual void __fastcall Notification(Classes::TComponent* AComponent, Classes::TOperation Operation
  296.         );
  297.     __property THTTPMethodEvent BeforeDispatch = {read=FBeforeDispatch, write=FBeforeDispatch};
  298.     __property THTTPMethodEvent AfterDispatch = {read=FAfterDispatch, write=FAfterDispatch};
  299.     
  300. public:
  301.     __fastcall virtual TCustomWebDispatcher(Classes::TComponent* AOwner);
  302.     __fastcall virtual ~TCustomWebDispatcher(void);
  303.     TWebActionItem* __fastcall ActionByName(const AnsiString AName);
  304.     __property TWebActionItems* Actions = {read=FActions, write=SetActions};
  305.     __property TWebActionItem* Action[int Index] = {read=GetAction};
  306.     __property TWebRequest* Request = {read=FRequest};
  307.     __property TWebResponse* Response = {read=FResponse};
  308. public:
  309.     #pragma option push -w-inl
  310.     /* TDataModule.CreateNew */ inline __fastcall virtual TCustomWebDispatcher(Classes::TComponent* AOwner
  311.         , int Dummy) : Forms::TDataModule(AOwner, Dummy) { }
  312.     #pragma option pop
  313.     
  314. };
  315.  
  316.  
  317. class PASCALIMPLEMENTATION TCustomContentProducer : public Classes::TComponent 
  318. {
  319.     typedef Classes::TComponent inherited;
  320.     
  321. private:
  322.     TCustomWebDispatcher* FDispatcher;
  323.     
  324. protected:
  325.     virtual void __fastcall SetDispatcher(TCustomWebDispatcher* Value);
  326.     virtual void __fastcall Notification(Classes::TComponent* AComponent, Classes::TOperation Operation
  327.         );
  328.     
  329. public:
  330.     virtual AnsiString __fastcall Content();
  331.     virtual AnsiString __fastcall ContentFromStream(Classes::TStream* Stream);
  332.     virtual AnsiString __fastcall ContentFromString(const AnsiString S);
  333.     
  334. __published:
  335.     __property TCustomWebDispatcher* Dispatcher = {read=FDispatcher, write=SetDispatcher, stored=false}
  336.         ;
  337. public:
  338.     #pragma option push -w-inl
  339.     /* TComponent.Create */ inline __fastcall virtual TCustomContentProducer(Classes::TComponent* AOwner
  340.         ) : Classes::TComponent(AOwner) { }
  341.     #pragma option pop
  342.     #pragma option push -w-inl
  343.     /* TComponent.Destroy */ inline __fastcall virtual ~TCustomContentProducer(void) { }
  344.     #pragma option pop
  345.     
  346. };
  347.  
  348.  
  349. class PASCALIMPLEMENTATION THTMLTagAttributes : public Classes::TPersistent 
  350. {
  351.     typedef Classes::TPersistent inherited;
  352.     
  353. private:
  354.     TCustomContentProducer* FProducer;
  355.     AnsiString FCustom;
  356.     Classes::TNotifyEvent FOnChange;
  357.     void __fastcall SetCustom(const AnsiString Value);
  358.     
  359. protected:
  360.     void __fastcall Changed(void);
  361.     
  362. public:
  363.     __fastcall THTMLTagAttributes(TCustomContentProducer* Producer);
  364.     virtual void __fastcall RestoreDefaults(void);
  365.     __property TCustomContentProducer* Producer = {read=FProducer};
  366.     __property Classes::TNotifyEvent OnChange = {read=FOnChange, write=FOnChange};
  367.     
  368. __published:
  369.     __property AnsiString Custom = {read=FCustom, write=SetCustom};
  370. public:
  371.     #pragma option push -w-inl
  372.     /* TPersistent.Destroy */ inline __fastcall virtual ~THTMLTagAttributes(void) { }
  373.     #pragma option pop
  374.     
  375. };
  376.  
  377.  
  378. class DELPHICLASS THTMLTableAttributes;
  379. class PASCALIMPLEMENTATION THTMLTableAttributes : public THTMLTagAttributes 
  380. {
  381.     typedef THTMLTagAttributes inherited;
  382.     
  383. private:
  384.     THTMLAlign FAlign;
  385.     int FBorder;
  386.     AnsiString FBgColor;
  387.     int FCellSpacing;
  388.     int FCellPadding;
  389.     int FWidth;
  390.     void __fastcall SetAlign(THTMLAlign Value);
  391.     void __fastcall SetBorder(int Value);
  392.     void __fastcall SetBGColor(AnsiString Value);
  393.     void __fastcall SetCellSpacing(int Value);
  394.     void __fastcall SetCellPadding(int Value);
  395.     void __fastcall SetWidth(int Value);
  396.     
  397. protected:
  398.     virtual void __fastcall AssignTo(Classes::TPersistent* Dest);
  399.     
  400. public:
  401.     __fastcall THTMLTableAttributes(TCustomContentProducer* Producer);
  402.     virtual void __fastcall RestoreDefaults(void);
  403.     
  404. __published:
  405.     __property THTMLAlign Align = {read=FAlign, write=SetAlign, default=0};
  406.     __property AnsiString BgColor = {read=FBgColor, write=SetBGColor};
  407.     __property int Border = {read=FBorder, write=SetBorder, default=-1};
  408.     __property int CellSpacing = {read=FCellSpacing, write=SetCellSpacing, default=-1};
  409.     __property int CellPadding = {read=FCellPadding, write=SetCellPadding, default=-1};
  410.     __property int Width = {read=FWidth, write=SetWidth, default=100};
  411. public:
  412.     #pragma option push -w-inl
  413.     /* TPersistent.Destroy */ inline __fastcall virtual ~THTMLTableAttributes(void) { }
  414.     #pragma option pop
  415.     
  416. };
  417.  
  418.  
  419. class DELPHICLASS THTMLTableElementAttributes;
  420. class PASCALIMPLEMENTATION THTMLTableElementAttributes : public THTMLTagAttributes 
  421. {
  422.     typedef THTMLTagAttributes inherited;
  423.     
  424. private:
  425.     THTMLAlign FAlign;
  426.     AnsiString FBgColor;
  427.     THTMLVAlign FVAlign;
  428.     void __fastcall SetAlign(THTMLAlign Value);
  429.     void __fastcall SetBGColor(AnsiString Value);
  430.     void __fastcall SetVAlign(THTMLVAlign Value);
  431.     
  432. protected:
  433.     virtual void __fastcall AssignTo(Classes::TPersistent* Dest);
  434.     
  435. public:
  436.     virtual void __fastcall RestoreDefaults(void);
  437.     
  438. __published:
  439.     __property THTMLAlign Align = {read=FAlign, write=SetAlign, default=0};
  440.     __property AnsiString BgColor = {read=FBgColor, write=SetBGColor};
  441.     __property THTMLVAlign VAlign = {read=FVAlign, write=SetVAlign, default=0};
  442. public:
  443.     #pragma option push -w-inl
  444.     /* THTMLTagAttributes.Create */ inline __fastcall THTMLTableElementAttributes(TCustomContentProducer* 
  445.         Producer) : THTMLTagAttributes(Producer) { }
  446.     #pragma option pop
  447.     
  448. public:
  449.     #pragma option push -w-inl
  450.     /* TPersistent.Destroy */ inline __fastcall virtual ~THTMLTableElementAttributes(void) { }
  451.     #pragma option pop
  452.     
  453. };
  454.  
  455.  
  456. class DELPHICLASS THTMLTableHeaderAttributes;
  457. class PASCALIMPLEMENTATION THTMLTableHeaderAttributes : public THTMLTableElementAttributes 
  458. {
  459.     typedef THTMLTableElementAttributes inherited;
  460.     
  461. private:
  462.     AnsiString FCaption;
  463.     void __fastcall SetCaption(AnsiString Value);
  464.     
  465. protected:
  466.     virtual void __fastcall AssignTo(Classes::TPersistent* Dest);
  467.     
  468. public:
  469.     virtual void __fastcall RestoreDefaults(void);
  470.     
  471. __published:
  472.     __property AnsiString Caption = {read=FCaption, write=SetCaption};
  473. public:
  474.     #pragma option push -w-inl
  475.     /* THTMLTagAttributes.Create */ inline __fastcall THTMLTableHeaderAttributes(TCustomContentProducer* 
  476.         Producer) : THTMLTableElementAttributes(Producer) { }
  477.     #pragma option pop
  478.     
  479. public:
  480.     #pragma option push -w-inl
  481.     /* TPersistent.Destroy */ inline __fastcall virtual ~THTMLTableHeaderAttributes(void) { }
  482.     #pragma option pop
  483.     
  484. };
  485.  
  486.  
  487. class DELPHICLASS THTMLTableRowAttributes;
  488. class PASCALIMPLEMENTATION THTMLTableRowAttributes : public THTMLTableElementAttributes 
  489. {
  490.     typedef THTMLTableElementAttributes inherited;
  491.     
  492. public:
  493.     #pragma option push -w-inl
  494.     /* THTMLTagAttributes.Create */ inline __fastcall THTMLTableRowAttributes(TCustomContentProducer* Producer
  495.         ) : THTMLTableElementAttributes(Producer) { }
  496.     #pragma option pop
  497.     
  498. public:
  499.     #pragma option push -w-inl
  500.     /* TPersistent.Destroy */ inline __fastcall virtual ~THTMLTableRowAttributes(void) { }
  501.     #pragma option pop
  502.     
  503. };
  504.  
  505.  
  506. class DELPHICLASS THTMLTableCellAttributes;
  507. class PASCALIMPLEMENTATION THTMLTableCellAttributes : public THTMLTableElementAttributes 
  508. {
  509.     typedef THTMLTableElementAttributes inherited;
  510.     
  511. public:
  512.     #pragma option push -w-inl
  513.     /* THTMLTagAttributes.Create */ inline __fastcall THTMLTableCellAttributes(TCustomContentProducer* 
  514.         Producer) : THTMLTableElementAttributes(Producer) { }
  515.     #pragma option pop
  516.     
  517. public:
  518.     #pragma option push -w-inl
  519.     /* TPersistent.Destroy */ inline __fastcall virtual ~THTMLTableCellAttributes(void) { }
  520.     #pragma option pop
  521.     
  522. };
  523.  
  524.  
  525. class DELPHICLASS TCustomPageProducer;
  526. class PASCALIMPLEMENTATION TCustomPageProducer : public TCustomContentProducer 
  527. {
  528.     typedef TCustomContentProducer inherited;
  529.     
  530. private:
  531.     AnsiString FHTMLFile;
  532.     Classes::TStrings* FHTMLDoc;
  533.     bool FStripParamQuotes;
  534.     void __fastcall SetHTMLFile(const AnsiString Value);
  535.     void __fastcall SetHTMLDoc(Classes::TStrings* Value);
  536.     
  537. protected:
  538.     virtual AnsiString __fastcall HandleTag(const AnsiString TagString, Classes::TStrings* TagParams);
  539.     __property Classes::TStrings* HTMLDoc = {read=FHTMLDoc, write=SetHTMLDoc};
  540.     __property AnsiString HTMLFile = {read=FHTMLFile, write=SetHTMLFile};
  541.     __property bool StripParamQuotes = {read=FStripParamQuotes, write=FStripParamQuotes, default=1};
  542.     
  543. public:
  544.     __fastcall virtual TCustomPageProducer(Classes::TComponent* AOwner);
  545.     __fastcall virtual ~TCustomPageProducer(void);
  546.     virtual AnsiString __fastcall Content();
  547.     virtual AnsiString __fastcall ContentFromStream(Classes::TStream* Stream);
  548.     virtual AnsiString __fastcall ContentFromString(const AnsiString S);
  549. };
  550.  
  551.  
  552. #pragma option push -b-
  553. enum TTag { tgCustom, tgLink, tgImage, tgTable, tgImageMap, tgObject, tgEmbed };
  554. #pragma option pop
  555.  
  556. typedef void __fastcall (__closure *THTMLTagEvent)(System::TObject* Sender, TTag Tag, const AnsiString 
  557.     TagString, Classes::TStrings* TagParams, AnsiString &ReplaceText);
  558.  
  559. class DELPHICLASS TPageProducer;
  560. class PASCALIMPLEMENTATION TPageProducer : public TCustomPageProducer 
  561. {
  562.     typedef TCustomPageProducer inherited;
  563.     
  564. private:
  565.     THTMLTagEvent FOnHTMLTag;
  566.     
  567. protected:
  568.     virtual AnsiString __fastcall HandleTag(const AnsiString TagString, Classes::TStrings* TagParams);
  569.     DYNAMIC void __fastcall DoTagEvent(TTag Tag, const AnsiString TagString, Classes::TStrings* TagParams
  570.         , AnsiString &ReplaceText);
  571.     
  572. __published:
  573.     __property HTMLDoc ;
  574.     __property HTMLFile ;
  575.     __property StripParamQuotes ;
  576.     __property THTMLTagEvent OnHTMLTag = {read=FOnHTMLTag, write=FOnHTMLTag};
  577. public:
  578.     #pragma option push -w-inl
  579.     /* TCustomPageProducer.Create */ inline __fastcall virtual TPageProducer(Classes::TComponent* AOwner
  580.         ) : TCustomPageProducer(AOwner) { }
  581.     #pragma option pop
  582.     #pragma option push -w-inl
  583.     /* TCustomPageProducer.Destroy */ inline __fastcall virtual ~TPageProducer(void) { }
  584.     #pragma option pop
  585.     
  586. };
  587.  
  588.  
  589. class PASCALIMPLEMENTATION TWebActionItem : public Classes::TCollectionItem 
  590. {
  591.     typedef Classes::TCollectionItem inherited;
  592.     
  593. private:
  594.     THTTPMethodEvent FOnAction;
  595.     AnsiString FPathInfo;
  596.     TMethodType FMethodType;
  597.     bool FDefault;
  598.     bool FEnabled;
  599.     AnsiString FMaskPathInfo;
  600.     Masks::TMask* FMask;
  601.     AnsiString FName;
  602.     TCustomContentProducer* FProducer;
  603.     bool __fastcall DispatchAction(TWebRequest* Request, TWebResponse* Response, bool DoDefault);
  604.     void __fastcall SetDefault(bool Value);
  605.     void __fastcall SetEnabled(bool Value);
  606.     void __fastcall SetMethodType(TMethodType Value);
  607.     void __fastcall SetOnAction(THTTPMethodEvent Value);
  608.     void __fastcall SetPathInfo(const AnsiString Value);
  609.     void __fastcall SetProducer(const TCustomContentProducer* Value);
  610.     Masks::TMask* __fastcall GetMask(void);
  611.     AnsiString __fastcall ProducerPathInfo();
  612.     
  613. protected:
  614.     virtual AnsiString __fastcall GetDisplayName();
  615.     virtual void __fastcall SetDisplayName(const AnsiString Value);
  616.     AnsiString __fastcall GetPathInfo();
  617.     
  618. public:
  619.     __fastcall virtual TWebActionItem(Classes::TCollection* Collection);
  620.     __fastcall virtual ~TWebActionItem(void);
  621.     virtual void __fastcall AssignTo(Classes::TPersistent* Dest);
  622.     
  623. __published:
  624.     __property bool Default = {read=FDefault, write=SetDefault, default=0};
  625.     __property bool Enabled = {read=FEnabled, write=SetEnabled, default=1};
  626.     __property TMethodType MethodType = {read=FMethodType, write=SetMethodType, default=0};
  627.     __property AnsiString Name = {read=GetDisplayName, write=SetDisplayName};
  628.     __property AnsiString PathInfo = {read=GetPathInfo, write=SetPathInfo};
  629.     __property TCustomContentProducer* Producer = {read=FProducer, write=SetProducer};
  630.     __property THTTPMethodEvent OnAction = {read=FOnAction, write=SetOnAction};
  631. };
  632.  
  633.  
  634. __interface IWebDispatch;
  635. typedef System::DelphiInterface<IWebDispatch> _di_IWebDispatch;
  636. __interface INTERFACE_UUID("{F358F272-DB6D-11D2-AA3F-00A024C11562}") IWebDispatch  : public IUnknown 
  637.     
  638. {
  639.     
  640. public:
  641.     virtual bool __fastcall DispatchEnabled(void) = 0 ;
  642.     virtual TMethodType __fastcall DispatchMethodType(void) = 0 ;
  643.     virtual bool __fastcall DispatchRequest(System::TObject* Sender, TWebRequest* Request, TWebResponse* 
  644.         Response) = 0 ;
  645.     virtual Masks::TMask* __fastcall DispatchMask(void) = 0 ;
  646.     virtual Classes::_di_IInterfaceList __fastcall DispatchSubItems(void) = 0 ;
  647.     __property bool Enabled = {read=DispatchEnabled};
  648.     __property TMethodType MethodType = {read=DispatchMethodType};
  649.     __property Masks::TMask* Mask = {read=DispatchMask};
  650.     __property Classes::_di_IInterfaceList SubItems = {read=DispatchSubItems};
  651. };
  652.  
  653. class DELPHICLASS TWebDispatcher;
  654. class PASCALIMPLEMENTATION TWebDispatcher : public TCustomWebDispatcher 
  655. {
  656.     typedef TCustomWebDispatcher inherited;
  657.     
  658. __published:
  659.     __property Actions ;
  660.     __property BeforeDispatch ;
  661.     __property AfterDispatch ;
  662. public:
  663.     #pragma option push -w-inl
  664.     /* TCustomWebDispatcher.Create */ inline __fastcall virtual TWebDispatcher(Classes::TComponent* AOwner
  665.         ) : TCustomWebDispatcher(AOwner) { }
  666.     #pragma option pop
  667.     #pragma option push -w-inl
  668.     /* TCustomWebDispatcher.Destroy */ inline __fastcall virtual ~TWebDispatcher(void) { }
  669.     #pragma option pop
  670.     
  671. public:
  672.     #pragma option push -w-inl
  673.     /* TDataModule.CreateNew */ inline __fastcall virtual TWebDispatcher(Classes::TComponent* AOwner, int 
  674.         Dummy) : TCustomWebDispatcher(AOwner, Dummy) { }
  675.     #pragma option pop
  676.     
  677. };
  678.  
  679.  
  680. class DELPHICLASS TWebModule;
  681. class PASCALIMPLEMENTATION TWebModule : public TCustomWebDispatcher 
  682. {
  683.     typedef TCustomWebDispatcher inherited;
  684.     
  685. public:
  686.     __fastcall virtual TWebModule(Classes::TComponent* AOwner);
  687.     
  688. __published:
  689.     __property Actions ;
  690.     __property BeforeDispatch ;
  691.     __property AfterDispatch ;
  692. public:
  693.     #pragma option push -w-inl
  694.     /* TCustomWebDispatcher.Destroy */ inline __fastcall virtual ~TWebModule(void) { }
  695.     #pragma option pop
  696.     
  697. public:
  698.     #pragma option push -w-inl
  699.     /* TDataModule.CreateNew */ inline __fastcall virtual TWebModule(Classes::TComponent* AOwner, int Dummy
  700.         ) : TCustomWebDispatcher(AOwner, Dummy) { }
  701.     #pragma option pop
  702.     
  703. };
  704.  
  705.  
  706. typedef AnsiString HTTPApp__91[4];
  707.  
  708. typedef AnsiString HTTPApp__02[5];
  709.  
  710. //-- var, const, procedure ---------------------------------------------------
  711. #define sDateFormat "\"%s\", dd \"%s\" yyyy hh:mm:ss"
  712. static const Shortint MAX_STRINGS = 0xc;
  713. static const Shortint MAX_INTEGERS = 0x1;
  714. static const Shortint MAX_DATETIMES = 0x3;
  715. extern PACKAGE AnsiString HTMLAlign[4];
  716. extern PACKAGE AnsiString HTMLVAlign[5];
  717. extern PACKAGE AnsiString __fastcall HTTPDecode(const AnsiString AStr);
  718. extern PACKAGE AnsiString __fastcall HTTPEncode(const AnsiString AStr);
  719. extern PACKAGE System::TDateTime __fastcall ParseDate(const AnsiString DateStr);
  720. extern PACKAGE void __fastcall ExtractHeaderFields(const Sysutils::TSysCharSet &Separators, const Sysutils::TSysCharSet 
  721.     &WhiteSpace, char * Content, Classes::TStrings* Strings, bool Decode, bool StripQuotes);
  722. extern PACKAGE void __fastcall ExtractHTTPFields(const Sysutils::TSysCharSet &Separators, const Sysutils::TSysCharSet 
  723.     &WhiteSpace, char * Content, Classes::TStrings* Strings, bool StripQuotes);
  724. extern PACKAGE AnsiString __fastcall StatusString(int StatusCode);
  725. extern PACKAGE AnsiString __fastcall UnixPathToDosPath(const AnsiString Path);
  726. extern PACKAGE AnsiString __fastcall DosPathToUnixPath(const AnsiString Path);
  727. extern PACKAGE AnsiString __fastcall MonthStr(System::TDateTime DateTime);
  728. extern PACKAGE AnsiString __fastcall DayOfWeekStr(System::TDateTime DateTime);
  729.  
  730. }    /* namespace Httpapp */
  731. #if !defined(NO_IMPLICIT_NAMESPACE_USE)
  732. using namespace Httpapp;
  733. #endif
  734. #pragma option pop    // -w-
  735. #pragma option pop    // -Vx
  736.  
  737. #pragma delphiheader end.
  738. //-- end unit ----------------------------------------------------------------
  739. #endif    // HTTPApp
  740.