home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Internet 2000 May / MICD_2000_05.iso / CBuilder5 / INSTALL / DATA1.CAB / Program_Built_Files / Include / Vcl / nmnntp.hpp < prev    next >
C/C++ Source or Header  |  2000-02-01  |  14KB  |  330 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) 'NMNNTP.pas' rev: 5.00
  6.  
  7. #ifndef NMNNTPHPP
  8. #define NMNNTPHPP
  9.  
  10. #pragma delphiheader begin
  11. #pragma option push -w-
  12. #pragma option push -Vx
  13. #include <NMConst.hpp>    // Pascal unit
  14. #include <NMExtstr.hpp>    // Pascal unit
  15. #include <NMUUE.hpp>    // Pascal unit
  16. #include <Psock.hpp>    // Pascal unit
  17. #include <Forms.hpp>    // Pascal unit
  18. #include <Classes.hpp>    // Pascal unit
  19. #include <SysUtils.hpp>    // Pascal unit
  20. #include <SysInit.hpp>    // Pascal unit
  21. #include <System.hpp>    // Pascal unit
  22.  
  23. //-- user supplied -----------------------------------------------------------
  24.  
  25. namespace Nmnntp
  26. {
  27. //-- type declarations -------------------------------------------------------
  28. class DELPHICLASS TPostRecordType;
  29. class PASCALIMPLEMENTATION TPostRecordType : public Classes::TPersistent 
  30. {
  31.     typedef Classes::TPersistent inherited;
  32.     
  33. private:
  34.     Nmextstr::TExStringList* FPostheader;
  35.     AnsiString __fastcall GetPrFromAddress();
  36.     void __fastcall SetPrFromAddress(AnsiString index);
  37.     AnsiString __fastcall GetPrReplyTo();
  38.     void __fastcall SetPrReplyTo(AnsiString index);
  39.     AnsiString __fastcall GetPrSubject();
  40.     void __fastcall SetPrSubject(AnsiString index);
  41.     AnsiString __fastcall GetPrDistribution();
  42.     void __fastcall SetPrDistribution(AnsiString index);
  43.     AnsiString __fastcall GetPrAppName();
  44.     void __fastcall SetPrAppName(AnsiString index);
  45.     AnsiString __fastcall GetPrTimeDate();
  46.     void __fastcall SetPrTimeDate(AnsiString index);
  47.     AnsiString __fastcall GetNewsGroups();
  48.     void __fastcall SetNewsGroups(AnsiString index);
  49.     int __fastcall GetArticleId(void);
  50.     int __fastcall GetPrByteCount(void);
  51.     int __fastcall GetPrLineCount(void);
  52.     
  53. __published:
  54.     __property AnsiString PrFromAddress = {read=GetPrFromAddress, write=SetPrFromAddress};
  55.     __property AnsiString PrReplyTo = {read=GetPrReplyTo, write=SetPrReplyTo};
  56.     __property AnsiString PrSubject = {read=GetPrSubject, write=SetPrSubject};
  57.     __property AnsiString PrDistribution = {read=GetPrDistribution, write=SetPrDistribution};
  58.     __property AnsiString PrAppName = {read=GetPrAppName, write=SetPrAppName};
  59.     __property AnsiString PrTimeDate = {read=GetPrTimeDate, write=SetPrTimeDate};
  60.     __property AnsiString PrNewsGroups = {read=GetNewsGroups, write=SetNewsGroups};
  61.     __property int PrByteCount = {read=GetPrByteCount, nodefault};
  62.     __property int PrLineCount = {read=GetPrLineCount, nodefault};
  63.     __property int PrArticleId = {read=GetArticleId, nodefault};
  64. public:
  65.     #pragma option push -w-inl
  66.     /* TPersistent.Destroy */ inline __fastcall virtual ~TPostRecordType(void) { }
  67.     #pragma option pop
  68.     
  69. public:
  70.     #pragma option push -w-inl
  71.     /* TObject.Create */ inline __fastcall TPostRecordType(void) : Classes::TPersistent() { }
  72.     #pragma option pop
  73.     
  74. };
  75.  
  76.  
  77. #pragma option push -b-
  78. enum TCacheMode { cmMixed, cmRemote, cmLocal };
  79. #pragma option pop
  80.  
  81. class DELPHICLASS NNTPError;
  82. class PASCALIMPLEMENTATION NNTPError : public Sysutils::Exception 
  83. {
  84.     typedef Sysutils::Exception inherited;
  85.     
  86. public:
  87.     #pragma option push -w-inl
  88.     /* Exception.Create */ inline __fastcall NNTPError(const AnsiString Msg) : Sysutils::Exception(Msg)
  89.          { }
  90.     #pragma option pop
  91.     #pragma option push -w-inl
  92.     /* Exception.CreateFmt */ inline __fastcall NNTPError(const AnsiString Msg, const System::TVarRec * 
  93.         Args, const int Args_Size) : Sysutils::Exception(Msg, Args, Args_Size) { }
  94.     #pragma option pop
  95.     #pragma option push -w-inl
  96.     /* Exception.CreateRes */ inline __fastcall NNTPError(int Ident)/* overload */ : Sysutils::Exception(
  97.         Ident) { }
  98.     #pragma option pop
  99.     #pragma option push -w-inl
  100.     /* Exception.CreateResFmt */ inline __fastcall NNTPError(int Ident, const System::TVarRec * Args, const 
  101.         int Args_Size)/* overload */ : Sysutils::Exception(Ident, Args, Args_Size) { }
  102.     #pragma option pop
  103.     #pragma option push -w-inl
  104.     /* Exception.CreateHelp */ inline __fastcall NNTPError(const AnsiString Msg, int AHelpContext) : Sysutils::Exception(
  105.         Msg, AHelpContext) { }
  106.     #pragma option pop
  107.     #pragma option push -w-inl
  108.     /* Exception.CreateFmtHelp */ inline __fastcall NNTPError(const AnsiString Msg, const System::TVarRec 
  109.         * Args, const int Args_Size, int AHelpContext) : Sysutils::Exception(Msg, Args, Args_Size, AHelpContext
  110.         ) { }
  111.     #pragma option pop
  112.     #pragma option push -w-inl
  113.     /* Exception.CreateResHelp */ inline __fastcall NNTPError(int Ident, int AHelpContext)/* overload */
  114.          : Sysutils::Exception(Ident, AHelpContext) { }
  115.     #pragma option pop
  116.     #pragma option push -w-inl
  117.     /* Exception.CreateResFmtHelp */ inline __fastcall NNTPError(System::PResStringRec ResStringRec, const 
  118.         System::TVarRec * Args, const int Args_Size, int AHelpContext)/* overload */ : Sysutils::Exception(
  119.         ResStringRec, Args, Args_Size, AHelpContext) { }
  120.     #pragma option pop
  121.     
  122. public:
  123.     #pragma option push -w-inl
  124.     /* TObject.Destroy */ inline __fastcall virtual ~NNTPError(void) { }
  125.     #pragma option pop
  126.     
  127. };
  128.  
  129.  
  130. typedef void __fastcall (__closure *TGroupRetrievedEvent)(AnsiString name, int FirstArticle, int LastArticle
  131.     , bool Posting);
  132.  
  133. typedef void __fastcall (__closure *TGroupRetrievedCacheEvent)(bool &Handled, AnsiString name, int FirstArticle
  134.     , int LastArticle, bool Posting);
  135.  
  136. typedef void __fastcall (__closure *THeaderEvent)(int IdNo, AnsiString From, AnsiString Subject, AnsiString 
  137.     MsgId, AnsiString Date, int NumberLines);
  138.  
  139. typedef void __fastcall (__closure *THeaderCacheEvent)(bool &Handled, int IdNo, AnsiString From, AnsiString 
  140.     Subject, AnsiString MsgId, AnsiString Date, int ArticleNo);
  141.  
  142. typedef void __fastcall (__closure *TVarFileNameEvent)(AnsiString &FileName);
  143.  
  144. class DELPHICLASS TNMNNTP;
  145. class PASCALIMPLEMENTATION TNMNNTP : public Psock::TPowersock 
  146. {
  147.     typedef Psock::TPowersock inherited;
  148.     
  149. private:
  150.     int FTransType;
  151.     AnsiString FUserId;
  152.     AnsiString FPassword;
  153.     TCacheMode FCacheMode;
  154.     bool FParseAttachments;
  155.     bool FPosting;
  156.     AnsiString FSelectedGroup;
  157.     int FLoMessage;
  158.     int FHiMessage;
  159.     Nmextstr::TExStringList* FHeader;
  160.     TPostRecordType* FHeaderRecord;
  161.     Nmextstr::TExStringList* FBody;
  162.     Classes::TStringList* FAttachments;
  163.     Nmextstr::TExStringList* FPostHeader;
  164.     TPostRecordType* FPostRecord;
  165.     Nmextstr::TExStringList* FPostBody;
  166.     Classes::TStringList* FPostAttachments;
  167.     Classes::TStringList* FArticleList;
  168.     AnsiString FAttachmentPath;
  169.     Classes::TStringList* FGroupList;
  170.     AnsiString FNewsDir;
  171.     bool FTransactionInProgress;
  172.     AnsiString FBoundary;
  173.     int FCurrentArticle;
  174.     int WaitforReset;
  175.     TVarFileNameEvent FOnDecodeStart;
  176.     Classes::TNotifyEvent FOnDecodeEnd;
  177.     Classes::TNotifyEvent FOnConnect;
  178.     Classes::TNotifyEvent FOnGroupSelect;
  179.     TGroupRetrievedEvent FOnGroupListUpdate;
  180.     TGroupRetrievedCacheEvent FOnGroupListCacheUpdate;
  181.     Psock::THandlerEvent FOnGroupSelectRequired;
  182.     Classes::TNotifyEvent FOnHeaderList;
  183.     Psock::THandlerEvent FOnHeaderListCacheUpdate;
  184.     Classes::TNotifyEvent FOnHeader;
  185.     THeaderCacheEvent FOnHeaderCacheUpdate;
  186.     Classes::TNotifyEvent FOnArticle;
  187.     THeaderCacheEvent FOnArticleCacheUpdate;
  188.     Classes::TNotifyEvent FOnBody;
  189.     Psock::THandlerEvent FOnBodyCacheUpdate;
  190.     Psock::THandlerEvent FOnAuthenticationNeeded;
  191.     Classes::TNotifyEvent FOnAuthenticationFailed;
  192.     Classes::TNotifyEvent FOnAbort;
  193.     Classes::TNotifyEvent FOnPosted;
  194.     Psock::TOnErrorEvent FOnPostFailed;
  195.     Classes::TNotifyEvent FOnInvalidArticle;
  196.     void __fastcall InternalConnect(void);
  197.     void __fastcall RetreiveArticle(int HBMode, int Ref);
  198.     void __fastcall RetreiveList(int AGMode, int Ref);
  199.     void __fastcall AbortResume(System::TObject* Sender);
  200.     void __fastcall SetAttachmentPath(AnsiString Path);
  201.     void __fastcall SetNewsDir(AnsiString Dir);
  202.     bool __fastcall ReadTillDot(Classes::TStringList* DestinationList, AnsiString Command);
  203.     void __fastcall ReadTillBlankLine(int Ref);
  204.     void __fastcall Readfromcache(Classes::TStringList* DestinationList, int ArticleNo);
  205.     void __fastcall ExtractAttachments(void);
  206.     void __fastcall ExtractEmbedded(void);
  207.     void __fastcall ExtractMultipart(void);
  208.     void __fastcall Decode(Classes::TStream* AStream, AnsiString &TFileName);
  209.     void __fastcall SetPostAttachments(Classes::TStringList* Value);
  210.     void __fastcall SetPostBody(Nmextstr::TExStringList* Value);
  211.     void __fastcall SetPostHeader(Nmextstr::TExStringList* Value);
  212.     
  213. public:
  214.     __fastcall virtual TNMNNTP(Classes::TComponent* AOwner);
  215.     __fastcall virtual ~TNMNNTP(void);
  216.     virtual void __fastcall Connect(void);
  217.     virtual void __fastcall Disconnect(void);
  218.     virtual void __fastcall Abort(void);
  219.     void __fastcall SetGroup(AnsiString Group);
  220.     void __fastcall PostArticle(void);
  221.     void __fastcall GetArticle(int Ref);
  222.     void __fastcall GetArticleHeader(int Ref);
  223.     void __fastcall GetArticleBody(int Ref);
  224.     void __fastcall GetGroupList(void);
  225.     void __fastcall GetArticleList(bool All, int ArticleNumber);
  226.     virtual AnsiString __fastcall Transaction(const AnsiString CommandString);
  227.     __property AnsiString SelectedGroup = {read=FSelectedGroup};
  228.     __property int LoMessage = {read=FLoMessage, nodefault};
  229.     __property int HiMessage = {read=FHiMessage, nodefault};
  230.     __property bool Posting = {read=FPosting, nodefault};
  231.     __property Nmextstr::TExStringList* Header = {read=FHeader};
  232.     __property TPostRecordType* HeaderRecord = {read=FHeaderRecord, write=FHeaderRecord};
  233.     __property Nmextstr::TExStringList* Body = {read=FBody};
  234.     __property Classes::TStringList* Attachments = {read=FAttachments};
  235.     __property Classes::TStringList* GroupList = {read=FGroupList};
  236.     __property int CurrentArticle = {read=FCurrentArticle, nodefault};
  237.     
  238. __published:
  239.     __property OnPacketRecvd ;
  240.     __property AnsiString UserId = {read=FUserId, write=FUserId};
  241.     __property AnsiString Password = {read=FPassword, write=FPassword};
  242.     __property TCacheMode CacheMode = {read=FCacheMode, write=FCacheMode, nodefault};
  243.     __property bool ParseAttachments = {read=FParseAttachments, write=FParseAttachments, nodefault};
  244.     __property AnsiString AttachFilePath = {read=FAttachmentPath, write=SetAttachmentPath};
  245.     __property AnsiString NewsDir = {read=FNewsDir, write=SetNewsDir};
  246.     __property Nmextstr::TExStringList* PostHeader = {read=FPostHeader, write=SetPostHeader};
  247.     __property Nmextstr::TExStringList* PostBody = {read=FPostBody, write=SetPostBody};
  248.     __property Classes::TStringList* PostAttachments = {read=FPostAttachments, write=SetPostAttachments
  249.         };
  250.     __property TPostRecordType* PostRecord = {read=FPostRecord, write=FPostRecord};
  251.     __property OnConnectionRequired ;
  252.     __property Classes::TNotifyEvent OnConnect = {read=FOnConnect, write=FOnConnect};
  253.     __property Classes::TNotifyEvent OnGroupSelect = {read=FOnGroupSelect, write=FOnGroupSelect};
  254.     __property TGroupRetrievedEvent OnGroupListUpdate = {read=FOnGroupListUpdate, write=FOnGroupListUpdate
  255.         };
  256.     __property TGroupRetrievedCacheEvent OnGroupListCacheUpdate = {read=FOnGroupListCacheUpdate, write=
  257.         FOnGroupListCacheUpdate};
  258.     __property Psock::THandlerEvent OnGroupSelectRequired = {read=FOnGroupSelectRequired, write=FOnGroupSelectRequired
  259.         };
  260.     __property Classes::TNotifyEvent OnHeaderList = {read=FOnHeaderList, write=FOnHeaderList};
  261.     __property Psock::THandlerEvent OnHeaderListCacheUpdate = {read=FOnHeaderListCacheUpdate, write=FOnHeaderListCacheUpdate
  262.         };
  263.     __property Classes::TNotifyEvent OnHeader = {read=FOnHeader, write=FOnHeader};
  264.     __property THeaderCacheEvent OnHeaderCacheUpdate = {read=FOnHeaderCacheUpdate, write=FOnHeaderCacheUpdate
  265.         };
  266.     __property Classes::TNotifyEvent OnArticle = {read=FOnArticle, write=FOnArticle};
  267.     __property THeaderCacheEvent OnArticleCacheUpdate = {read=FOnArticleCacheUpdate, write=FOnArticleCacheUpdate
  268.         };
  269.     __property Classes::TNotifyEvent OnBody = {read=FOnBody, write=FOnBody};
  270.     __property Psock::THandlerEvent OnBodyCacheUpdate = {read=FOnBodyCacheUpdate, write=FOnBodyCacheUpdate
  271.         };
  272.     __property Psock::THandlerEvent OnAuthenticationNeeded = {read=FOnAuthenticationNeeded, write=FOnAuthenticationNeeded
  273.         };
  274.     __property Classes::TNotifyEvent OnAuthenticationFailed = {read=FOnAuthenticationFailed, write=FOnAuthenticationFailed
  275.         };
  276.     __property Classes::TNotifyEvent OnAbort = {read=FOnAbort, write=FOnAbort};
  277.     __property Classes::TNotifyEvent OnPosted = {read=FOnPosted, write=FOnPosted};
  278.     __property Psock::TOnErrorEvent OnPostFailed = {read=FOnPostFailed, write=FOnPostFailed};
  279.     __property Classes::TNotifyEvent OnInvalidArticle = {read=FOnInvalidArticle, write=FOnInvalidArticle
  280.         };
  281.     __property TVarFileNameEvent OnDecodeStart = {read=FOnDecodeStart, write=FOnDecodeStart};
  282.     __property Classes::TNotifyEvent OnDecodeEnd = {read=FOnDecodeEnd, write=FOnDecodeEnd};
  283. };
  284.  
  285.  
  286. typedef AnsiString NMNNTP__4[9];
  287.  
  288. //-- var, const, procedure ---------------------------------------------------
  289. static const Shortint Trans_None = 0x0;
  290. static const Shortint Trans_List = 0x1;
  291. #define Cons_USerCmd "USER "
  292. #define Cons_PassCmd "PASS "
  293. #define Cons_QuitCmd "QUIT"
  294. #define Cons_GrpCmd "GROUP "
  295. #define Cons_GrpPost "POST"
  296. #define Cons_GrpArtl "ARTICLE "
  297. #define Cons_GrpList "LIST"
  298. #define Cons_GrpHead "HEAD "
  299. #define Cons_GrpBody "BODY "
  300. #define Cons_HdCSubj "SUBJECT:"
  301. #define Cons_HdCFrom "FROM:"
  302. #define Cons_HdCType "CONTENT-TYPE:"
  303. #define Cons_HdCMId "MESSAGE-ID:"
  304. #define Cons_HdDate "DATE:"
  305. #define Cons_HdLine "LINES:"
  306. #define Cons_HdFrom "From: "
  307. #define Cons_HdSubj "Subject: "
  308. #define Cons_HdRply "Reply-To: "
  309. #define Cons_HdNews "NewsGroups: "
  310. #define Cons_HdDist "Distribution: "
  311. #define Cons_HdOrgz "Organization: "
  312. #define Cons_HdMime "Mime-Version: 1.0"
  313. #define Cons_HdText "Content-Type: text/plain, charset=\"us-ascii\""
  314. #define Cons_HdMult "Content-Type: multipart/mixed;      boundary=\""
  315. #define Cons_HdApp "Content-Type: application/octet-stream;  name=\""
  316. #define Cons_HdBase64 "Content-Transfer-Encoding: base64"
  317. #define Cons_HdDisp "Content-Disposition: attachment; filename=\""
  318. extern PACKAGE AnsiString Stable[9];
  319.  
  320. }    /* namespace Nmnntp */
  321. #if !defined(NO_IMPLICIT_NAMESPACE_USE)
  322. using namespace Nmnntp;
  323. #endif
  324. #pragma option pop    // -w-
  325. #pragma option pop    // -Vx
  326.  
  327. #pragma delphiheader end.
  328. //-- end unit ----------------------------------------------------------------
  329. #endif    // NMNNTP
  330.