home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 13 / AACD13.ISO / AACD / Online / StrICQ / Src / stricqmui.h < prev    next >
C/C++ Source or Header  |  2000-08-21  |  15KB  |  555 lines

  1. #ifndef GUI_FILE_H
  2. #define GUI_FILE_H
  3.  
  4. #define MWDEBUG 1
  5.  
  6. #include <clib/alib_protos.h>
  7.  
  8. #include <exec/memory.h>
  9.  
  10. #include <libraries/gadtools.h>
  11. #include <libraries/icq.h>
  12. #include <libraries/mui.h>
  13.  
  14. #include <datatypes/datatypes.h>
  15. #include <datatypes/pictureclass.h>
  16.  
  17. #include <netinet/in.h>
  18. #include <netinet/tcp.h>
  19.  
  20. #include <workbench/icon.h>
  21.  
  22. #include <MUI/Busy_mcc.h>
  23. #include <MUI/Lamp_mcc.h>
  24. #include <MUI/NListview_mcc.h>
  25. #include <MUI/NFloattext_mcc.h>
  26. #include <MUI/TextEditor_mcc.h>
  27. #include <MUI/Textinput_mcc.h>
  28. #include <MUI/Toolbar_mcc.h>
  29. #include <MUI/TWFmultiLED_mcc.h>
  30.  
  31. #include <proto/exec.h>
  32. #include <proto/icon.h>
  33. #include <proto/intuition.h>
  34. #include <proto/muimaster.h>
  35.  
  36. #include <sys/dir.h>
  37.  
  38. #include <memwatch.h>
  39.  
  40. #define REG(x) register __ ## x
  41.  
  42. #define DatatypeObject  MUI_NewObject("Dtpic.mui"
  43.  
  44. #define MUIA_Dtpic_Name 0x80423d72
  45.  
  46. #define LASTCHAR(c) c[strlen(c)-1]
  47. #define BOOLP(b) ((b)?TRUE:FALSE)
  48.  
  49. #define UDPBUFLEN 0x0400
  50. #define TCPBUFLEN 0x0900
  51.  
  52. #define LINE "\0"
  53.  
  54. #define SOCK_UDP     1
  55. #define SOCK_MESSAGE 2
  56. #define SOCK_CHAT    4
  57. #define SOCK_FILE    8
  58.  
  59. #define TCP_DIR_OUT    1
  60. #define TCP_DIR_IN     2
  61. #define TCP_DIR_LISTEN 3
  62.  
  63. #define PORT_Trigger    TAG_USER
  64. #define PORT_AddApp     TAG_USER+1
  65. #define PORT_RemApp     TAG_USER+2
  66. #define TIME_Trigger    TAG_USER+3
  67. #define TIME_AddApp     TAG_USER+4
  68. #define TIME_RemApp     TAG_USER+5
  69. #define TIME_SetSecs    TAG_USER+6
  70. #define TIME_SetMicro   TAG_USER+7
  71. #define TIME_SetTrg     TAG_USER+8
  72. #define TIME_SetSock    TAG_USER+9
  73. #define CHAT_AddUIN     TAG_USER+10
  74. #define CHAT_AddCWin    TAG_USER+11
  75. #define TIME_Trigger1   TAG_USER+12
  76. #define TIME_Trigger2   TAG_USER+13
  77. #define TIME_Trigger_Parse TAG_USER+14
  78.  
  79. #define COLOR_ON       TAG_USER
  80. #define COLOR_OFF      TAG_USER+1
  81. #define COLOR_INVIS    TAG_USER+2
  82. #define COLOR_NA       TAG_USER+3
  83. #define COLOR_CHAT     TAG_USER+4
  84. #define COLOR_OCCUPIED TAG_USER+5
  85. #define COLOR_AWAY     TAG_USER+6
  86. #define COLOR_DND      TAG_USER+7
  87. #define COLOR_NEW      TAG_USER+8
  88.  
  89. #define NUM_STATUS        8
  90. #define NUM_STATUS_COLORS 9
  91. #define NUM_CHAT_COLORS   16
  92. #define NUM_AFFILIATIONS  3
  93. #define NUM_PASTS         3
  94. #define NUM_INTERESTS     4
  95.  
  96. #define LOG_CLIENT 1
  97. #define LOG_SERVER 2
  98.  
  99. enum {MSG_VIA_BEST=1, MSG_VIA_UDP, MSG_VIA_TCP};
  100.  
  101. enum {MSG_BOTH=1, MSG_LOCAL, MSG_REMOTE};
  102.  
  103. enum {OID_CHATIN=512, OID_CHATOUT};
  104.  
  105. enum {DBG_UDP_PKTS=1, DBG_UDP_ERRS, DBG_UDP_DBUG, DBG_TCP_PKTS, DBG_TCP_ERRS, DBG_TCP_DBUG, DBG_OTH_FATL, DBG_OTH_INFO};
  106.  
  107. enum {ONLINE=0, OFFLINE, INVISIBLE, NOTAVAILABLE, FREEFORCHAT, OCCUPIED, AWAY, DONOTDISTURB, NEWUSER};
  108.  
  109. struct Contact {
  110.   ULONG ListID;
  111.   char  LampTxt[10];
  112.   APTR  LampObj;
  113.   UWORD LampNum;
  114.   ULONG UIN;
  115.   char *Nick;
  116.   char *First;
  117.   char *Last;
  118.   char *EMail;
  119.   char *EMail_Secondary;
  120.   char *EMail_Old;
  121.   char *Street;
  122.   char *City;
  123.   char *State;
  124.   char *ZipCode;
  125.   char *Phone;
  126.   char *FAX;
  127.   char *Cellular;
  128.   char *HomePage;
  129.   char *About;
  130.   char *Comment;
  131.   char *Work_City;
  132.   char *Work_State;
  133.   char *Work_Phone;
  134.   char *Work_FAX;
  135.   char *Work_Address;
  136.   char *Work_ZipCode;
  137.   char *Work_Company;
  138.   char *Work_Department;
  139.   char *Work_Position;
  140.   char *Work_URL;
  141.   UWORD Occupation;
  142.   UWORD Country;
  143.   UWORD Work_Country;
  144.   UWORD Work_Occupation;
  145.   BYTE  TimeZone;
  146.   UWORD Age;
  147.   UBYTE Sex;
  148.   UWORD BDay_Year;
  149.   UBYTE BDay_Month;
  150.   UBYTE BDay_Day;
  151.   UBYTE Language1;
  152.   UBYTE Language2;
  153.   UBYTE Language3;
  154.   ULONG Authorize;
  155.   ULONG IP;
  156.   ULONG Port;
  157.   ULONG RealIP;
  158.   UWORD Type;
  159.   UBYTE CanTCP;
  160.   ULONG Status;
  161.   BOOL  SeeInvis;
  162.   BOOL  BeInvis;
  163.   BOOL  EditEMail;
  164.   UBYTE NewMsg;
  165.   ULONG MsgCount;
  166.   BOOL  Changed;
  167.   BOOL  ConnectMe;
  168.   UWORD ChatListen;
  169.   time_t LastOnline;
  170.   time_t LastMessageFm;
  171.   time_t LastMessageTo;
  172.   struct UserWindow *UWin;
  173.   struct ChatFileReqIn *CFWin;
  174.   struct FileWin *FWin;
  175. };
  176.  
  177. struct Sockets {
  178.   UWORD Socket;
  179.   ULONG UIN;
  180.   UBYTE Dir;
  181.   ULONG IP;
  182.   UWORD Port;
  183.   UWORD TCPLen;
  184.   char  PktLen[2];
  185.   char *LastTCP;
  186.   struct sockaddr_in Address;
  187.   struct sockaddr_in LocalAddr;
  188.   time_t Timehack;
  189.   BOOL Connecting;
  190.   BOOL HadInit;
  191.   BOOL Backward;
  192.   BOOL Closing;
  193.   BOOL Hidden;
  194.   UBYTE Type;
  195.   UWORD TCP_Version;
  196.   UWORD TCP_Revision;
  197.   ULONG TCP_Listen_Msg_Port;
  198.   UBYTE TCP_Flag;
  199.   ULONG TCP_Listen_Other_Port;
  200.   UWORD TCP_ChatData;
  201.   ULONG TCP_ChatHandShake;
  202.   UWORD ConnectPort;
  203.   struct RemoteChatObj *RCObj;
  204.   struct ChatWin *CWin;
  205.   struct Contact *ChatMode;
  206.   struct Contact *FileMode;
  207. };
  208.  
  209. struct ObjApp {
  210.   struct DiskObject *DO_IconifyIcon;
  211.   APTR App;
  212.   APTR  NM_AppMenu;
  213.   APTR  CC_Parse;
  214.   APTR  WI_Main;
  215.   APTR   TX_Port, TX_Timer, TX_Timer1, TX_Color;
  216.   APTR   LV_OfflineList;
  217.   APTR   BT_AddContact, BT_RemContact;
  218.   APTR   CY_MyStatus;
  219.   APTR  WI_About;
  220.   APTR   TX_About;
  221.   APTR  WI_Splash;
  222.   APTR   DT_Splash;
  223.   APTR  WI_Progress;
  224.   APTR   GA_Contacts, TX_LoadProgress;
  225.   APTR  WI_Log;
  226.   APTR   LV_ICQCliLog, LV_ICQSrvLog;
  227.   APTR  WI_Message;
  228.   APTR   LV_Msgs;
  229.   APTR   NM_MsgMenu;
  230.   APTR   BT_ReplyMessage;
  231.   APTR   BT_GetInfo;
  232.   APTR   BT_RemMessage;
  233.   APTR   BT_ClearMsgs;
  234.   APTR   BT_Auth;
  235.   APTR   BT_OpenURLWin;
  236.   APTR   TI_QuickMsg;
  237.   APTR   TX_QuickTo;
  238.   APTR  WI_Send;
  239.   APTR   TX_Sendto;
  240.   APTR   TI_Message;
  241.   APTR   BT_Sendit;
  242.   APTR  WI_Information;
  243.   APTR   STR_UserUIN;
  244.   APTR   STR_UserNick;
  245.   APTR   STR_UserFirst;
  246.   APTR   STR_UserLast;
  247.   APTR   STR_UserEMail;
  248.   APTR   STR_UserAuth;
  249.   APTR   TX_UserCity;
  250.   APTR   TX_UserCountry, NU_UserZone;
  251.   APTR   TX_UserState;
  252.   APTR   TX_UserAge;
  253.   APTR   TX_UserSex;
  254.   APTR   TX_UserPhone;
  255.   APTR   TX_UserURL;
  256.   APTR   LV_UserAbout;
  257.   APTR   BT_AddUpdate;
  258.   APTR  WI_Searches;
  259.   APTR   CH_SearchUIN;
  260.   APTR   CH_SearchEMail;
  261.   APTR   CH_SearchName;
  262.   APTR   STR_SrchUIN;
  263.   APTR   STR_SrchEMail;
  264.   APTR   STR_SrchNick;
  265.   APTR   STR_SrchFirst;
  266.   APTR   STR_SrchLast;
  267.   APTR   BT_StartSrch;
  268.   APTR  WI_SrchResults;
  269.   APTR   LV_SearchList;
  270.   APTR   TX_SearchStat;
  271.   APTR   BT_AddUpdate2;
  272.   APTR   BT_GetInfo3;
  273.   APTR  WI_SendURL;
  274.   APTR   TX_SendURLto;
  275.   APTR   STR_Desc;
  276.   APTR   STR_URL;
  277.   APTR   BT_URLSend;
  278.   APTR  WI_URLMessage;
  279.   APTR   LV_AdText;
  280.   APTR   TX_AdURL;
  281.   APTR   BT_AdGoURL;
  282.   APTR   BT_AdOK;
  283.   APTR  WI_MessageHist;
  284.   APTR   TX_MsgUser;
  285.   APTR   LV_MsgText;
  286.   APTR   DL_MsgDir;
  287.   APTR  WI_Activities;
  288.   APTR   LV_Activity;
  289.   APTR  WI_Sockets;
  290.   APTR   LV_SockList;
  291.   APTR  WI_ChatReqOut;
  292.   APTR   LV_Sessions, TI_ChatReason;
  293.   APTR   BT_SendChat, BT_JoinChat, BT_CancelChat;
  294.   APTR  WI_FileSendOut;
  295.   APTR   LV_FileList;
  296.   APTR   TX_TotalFiles, TX_TotalSize;
  297.   APTR   BT_AddFile, BT_RemFile;
  298.   APTR   GP_FDescGroup;
  299.   APTR    TI_FileReason;
  300.   APTR    BT_SendFile, BT_CancelFile;
  301.   APTR  WI_AddUIN;
  302.   APTR   TX_Desc;
  303.   APTR   LV_ToAddUIN;
  304.   APTR   BT_AddUIN, BT_AddCancel;
  305.   APTR  WI_WebPager;
  306.   APTR   TX_WebName, TX_WebEMail, LV_WebMsg;
  307.   APTR  WI_ErrorWin;
  308.   APTR   CH_UDPPkts, CH_UDPDebug, CH_TCPPkts, CH_TCPDebug;
  309.   APTR   LV_Errors, BT_ErrClr, BT_ErrSave;
  310.   APTR  WI_EditIgnore;
  311.   APTR   TX_IgnoreUIN, TX_IgnoreNick;
  312.   APTR   NU_IgnoreDays, BT_IgnoreOK, BT_IgnoreCanx;
  313.   APTR  WI_ICQPrefs;
  314.   APTR   LV_InfoPages, GP_InfoPages;
  315.   APTR   STR_ICQUIN, POP_SelectUIN, DL_UINList, TX_CurrentIP;
  316.   APTR   STR_Nick, STR_First, STR_Last;
  317.   APTR   STR_EMail, CH_HideEMail, STR_EMail2, STR_EMailOld;
  318.   APTR   TI_StreetAd, STR_City, STR_State, STR_ZipCode, BT_DisplayMap;
  319.   APTR   POP_Country, STR_Country, LV_Countries;
  320.   APTR   STR_Phone, STR_FAX, STR_Cellular;
  321.   APTR   NU_TimeZone, TX_LocalTime;
  322.   APTR   STR_CoName, STR_DivDept, STR_Position, CY_Occupation;
  323.   APTR   STR_WkPhone, STR_WkFAX;
  324.   APTR   TI_WorkAd, STR_WkCity, STR_WkState, BT_DisplayWkMap, STR_WkZipCode, STR_WkURL;
  325.   APTR   POP_WkCountry, STR_WkCountry, LV_WkCountries;
  326.   APTR   STR_Page, CY_Sex, STR_Age, BT_URLCategory;
  327.   APTR   CY_BDMonth, STR_BDDay, NU_BDYear, GP_DTGroup, DT_Zodiac;
  328.   APTR   CH_BDNotify, BT_ViewHoroscope;
  329.   APTR   CY_Lang1, CY_Lang2, CY_Lang3;
  330.   APTR   TI_About;
  331.   APTR   OB_Affiliations[NUM_AFFILIATIONS][3], OB_Pasts[NUM_PASTS][3], OB_Interests[NUM_INTERESTS][3];
  332.   APTR   TX_PicLastUpdate, POP_Picture, STR_Picture, TX_PicSize, BT_PicClear;
  333.   APTR   RD_PicPrivacies, CH_PicPrivacy;
  334.   APTR   RD_ReqAuth, STR_ICQPass, STR_ICQPass2, BT_ChangePW;
  335.   APTR   LV_IgnoreUIN, STR_UIN2Ignore, BT_AddIgnore, BT_EditIgnore, BT_RemIgnore;
  336.   APTR   LV_ICQServers, STR_TheServer, STR_ThePort, BT_AddServer, BT_RemServer;
  337.   APTR   STR_OnStartup, STR_OnShutdown, STR_MsgNotify, STR_MsgPreParse, STR_MsgParse, STR_OnlineNotify;
  338.   APTR   STR_OfflineNotify, STR_ChatNotify, STR_FileDirect;
  339.   APTR   STR_SysMsg, /*STR_URLCmnd,*/ STR_ChatBeep;
  340.   APTR   POP_DLDir, STR_DownloadDir;   // <---
  341.   APTR   PP_StatusColors[NUM_STATUS_COLORS], PP_ChatColors[NUM_CHAT_COLORS];
  342.   APTR   STR_Messages[7], CH_UseMessages[7], CY_SetStatus[5], STR_TimedStatus[5];
  343.   APTR   CH_OpenLog, CH_Reconnect, CH_MsgTime, CH_OpenMsg, CH_ActySort, CH_WebPresence, CH_HideIP, CH_MultiLine, CH_UseBeats;
  344.   APTR   CH_NoInpBuf;
  345.   APTR   CY_Lamp, CY_UDPVersion;
  346.   APTR   CH_MsgPopup, CH_NoMsgLog, CH_Scrn2Frnt;
  347.   APTR   LV_ColsStore, LV_StoreUser, LV_ColsUse, LV_UseUser;
  348.   APTR   BT_GrabMyStats, BT_UpUInfo1;
  349. };
  350.  
  351. struct UserWindow {
  352.   BOOL DoNotDelete;
  353.   char Title[80];
  354.   char  UIN[32], Status[15], IP[25];
  355.   char  Country[50], Age[12], Sex[12], Day[4], Year[6], LastOnline[32], MessageTo[32], MessageFm[32];
  356.   APTR WI_UserWindow, RG_UserPages;
  357.   APTR   LV_Msgs;
  358.   APTR   TI_QuickMsg, BB_WaitTCP, BT_SendIt, CH_MultiSend;
  359.   APTR   POP_Choices;
  360.   APTR   BT_Auth, BT_ChatReq, BT_Clear, BT_FileSend, BT_Forward, BT_IgnoreMe, BT_Contacts, BT_WhitePage;
  361.   APTR   STR_Desc, STR_URL, BT_URLSend;
  362.   APTR   LV_InfoPages, GP_InfoPages, STR_Nick, TX_UIN, TX_IP;
  363.   APTR   STR_First, STR_Last;
  364.   APTR   STR_EMail, CH_EditEMail, TX_EMail2, TX_EMailOld;
  365.   APTR   TI_StreetAd, BT_DisplayMap, TX_FAX, TX_Cellular, TX_LocalTime, TX_UserTime;
  366.   APTR   BT_URLCategory, GP_DTGroup, DT_Zodiac, CH_BDNotify, BT_ViewHoroscope;
  367.   APTR   TX_BDMonth, TX_BDDay, TX_BDYear, TX_Lang1, TX_Lang2, TX_Lang3;
  368.   APTR   BT_Load, BT_Save, BT_Query;
  369.   APTR   TX_City, TX_Country, NU_TimeZone, TX_State, TX_ZipCode, TX_Age, TX_Sex, TX_Phone;
  370.   APTR   BT_HomePage, TE_About, SC_AboutScroll;
  371.   APTR   TX_WKCity, TX_WKState, TX_WKPhone, TX_WKFAX, TX_WKAddress, TX_WKZipCode, TX_WKCompany;
  372.   APTR   TX_WKDepartment, TX_WKPosition, TX_WKURL;
  373.   APTR   CH_SeeInvis, CH_BeInvis;
  374.   APTR   TX_LastOnline, TX_MessageTo, TX_MessageFm;
  375.   APTR   TE_Comment, SC_CommentScroll;
  376.   APTR   LV_History;
  377.   APTR   BT_LoadHist, BT_RemoveLine, BT_ClearHist, BT_SaveHist, BT_DeleteHist, BT_SelLine, BT_SelChar;
  378. };
  379.  
  380. struct ChatFileReqIn {
  381.   APTR WI_ChatFileInWin;
  382.   APTR  GP_Message;
  383.   APTR  TX_Request, LV_Sessions, TI_Reason;
  384.   APTR  BT_Accept, BT_Join, BT_Refuse;
  385. };
  386.  
  387. struct ChatWin {
  388.   BOOL DoNotDelete;
  389.   char Title[256], LocalTime[20];
  390.   APTR WI_ChatWin;
  391.   APTR  POP_FColors, LV_FColorList;
  392.   APTR  TB_ChatBar, POP_ChatFont, STR_ChatFont;
  393.   APTR  TX_LocalTime;
  394.   APTR  TE_ChatLocal, SC_ScrollBar;
  395.   APTR  GP_ChatGroups;
  396.   APTR   RT_Dummy;
  397. };
  398.  
  399. struct RemoteChatObj {
  400.   ULONG ChatID;
  401.   char Nick[21], RemoteTime[20];
  402.   APTR GP_RemoteObj;
  403.   APTR  TB_RemoteChatBar;
  404.   APTR  TX_Nick, TX_RemoteTime;
  405.   APTR  TE_ChatRemote, SC_ScrollBar;
  406. };
  407.  
  408. struct FileWin {
  409.   BOOL DoNotDelete, Skip;
  410.   char FilePcnt[10], BatchPcnt[10], Status[30];
  411.   int PktCnt;
  412.   time_t StartTime;
  413.   ULONG Speed, ThisFile, ThisFileSize, CurrFiles, TotalFiles, TotAllFiles, TotFilesSize, CPS;
  414.   char Title[150];
  415.   APTR WI_FileWin;
  416.   APTR TX_Filename, TX_FileCount;
  417.   APTR TX_StoreDir, TX_Status;
  418.   APTR GA_FileXfer, TX_FileStat;
  419.   APTR GA_BatchXfer, TX_BatchStat;
  420.   APTR TX_Elapsed, TX_Remain, TX_CPS;
  421.   APTR NU_Speed, BT_Skip, BT_Abort;
  422.   APTR CC_Timer;
  423.   struct AsyncFile *File;
  424.   struct TCP_FileData FileData;
  425. };
  426.  
  427. struct SigData {
  428.   Object *App;
  429.   struct MUI_InputHandlerNode ihnode;
  430. };
  431.  
  432. struct TimeData {
  433.   ULONG  Seconds, Micros, Trigger;
  434.   UWORD  Socket;
  435.   Object *App;
  436.   struct MsgPort     *port;
  437.   struct timerequest *req_hbeat;
  438.   struct MUI_InputHandlerNode ihnode;
  439. };
  440.  
  441. struct ColorData {
  442.   struct MUI_PenSpec StatusPens[NUM_STATUS_COLORS];
  443.   BOOL ChangedPen[NUM_STATUS_COLORS];
  444.   struct MUI_PenSpec ChatPens[NUM_CHAT_COLORS];
  445.   BOOL ChangedChat[NUM_CHAT_COLORS];
  446. };
  447.  
  448. struct ChatData {
  449.   struct Sockets *Socks;
  450.   struct MUI_EventHandlerNode Events;
  451. };
  452.  
  453. struct ColsData {
  454.   ULONG Dummy;
  455. };
  456.  
  457. struct Colors {
  458.   LONG StatusColors[NUM_STATUS_COLORS];
  459.   LONG ChatColors[NUM_CHAT_COLORS];
  460. };
  461.  
  462. struct ColorText {
  463.   char Status[25];
  464.   LONG Pen;
  465. };
  466.  
  467. struct FileList {
  468.   char  Filename[MAXNAMLEN];
  469.   ULONG Filesize;
  470. };
  471.  
  472. struct IgnoreUIN {
  473.   ULONG  UIN;
  474.   char   Nick[21];
  475.   time_t Timehack;
  476.   time_t ExpireDays;
  477. };
  478.  
  479. struct ErrorMsgs {
  480.   time_t Timehack;
  481.   char  *Error;
  482. };
  483.  
  484. struct ChatSession {
  485.   UWORD ChatListen;
  486.   char  Session[256];
  487. };
  488.  
  489. extern char config_fl[MAXNAMLEN], *Sex[], *Months[];
  490.  
  491. extern struct MUI_CustomClass *mcc_Transfert, *mcc_Port, *mcc_Time, *mcc_Color, *mcc_Chat, *mcc_Cols;
  492.  
  493. extern struct ObjApp *CreateApp(char *);
  494. extern void DisposeApp(struct ObjApp *);
  495. extern void fail(struct ObjApp *, char *);
  496.  
  497. extern ULONG __asm MyDispatcher(REG(a0) struct IClass *cl, REG(a2) Object *obj, REG(a1) Msg msg);
  498. extern ULONG __asm TransfertDispatcher(REG(a0) struct IClass *cl, REG(a2) Object *obj, REG(a1) Msg msg);
  499. extern ULONG __asm TimeDispatcher(REG(a0) struct IClass *cl, REG(a2) Object *obj, REG(a1) Msg msg);
  500. extern ULONG __asm TimeDispatcher1(REG(a0) struct IClass *cl, REG(a2) Object *obj, REG(a1) Msg msg);
  501. extern ULONG __asm ColorDispatcher(REG(a0) struct IClass *cl, REG(a2) Object *obj, REG(a1) Msg msg);
  502. extern ULONG __asm ChatDispatcher(REG(a0) struct IClass *cl, REG(a2) Object *obj, REG(a1) Msg msg);
  503. extern ULONG __asm ColsDispatcher(REG(a0) struct IClass *cl, REG(a2) Object *obj, REG(a1) Msg msg);
  504.  
  505. extern struct Hook AddMsgHook;
  506. extern struct Hook RemMsgHook;
  507. extern struct Hook CmpMsgHook;
  508. extern struct Hook DisplayMsgHook;
  509.  
  510. extern struct Hook AddSessionHook;
  511. extern struct Hook RemSessionHook;
  512. extern struct Hook CmpSessionHook;
  513. extern struct Hook DisplaySessionHook;
  514.  
  515. extern struct Hook GetUINInfoHook;
  516. extern struct Hook GoURLHook;
  517. extern struct Hook SendMsg2ICQaHook;
  518. extern struct Hook SaveContactJumpHook;
  519. extern struct Hook LoadContactJumpHook;
  520. extern struct Hook LoadHistoryHook;
  521. extern struct Hook SaveHistoryHook;
  522. extern struct Hook DeleteHistoryHook;
  523. extern struct Hook SendChatReqHook;
  524. extern struct Hook AcceptHook;
  525. extern struct Hook RefuseHook;
  526. extern struct Hook OpenChatReqWinHook;
  527. extern struct Hook EndChatHook;
  528. extern struct Hook Add2IgnoreHook;
  529. extern struct Hook SetXferSpeedHook;
  530. extern struct Hook SkipFileHook;
  531. extern struct Hook AbortXferHook;
  532. extern struct Hook KillXferWinHook;
  533. extern struct Hook OpenFileDirectWinHook;
  534. extern struct Hook ForwardMsgHook;
  535. extern struct Hook ShareContactsHook;
  536. extern struct Hook ChatWinStateHook;
  537. extern struct Hook EndAllChatHook;
  538. extern struct Hook SetBIUHook;
  539. extern struct Hook SetLocalFColorHook;
  540. extern struct Hook AdjustFColorPopHook;
  541. extern struct Hook SetUserVisPrefsHook;
  542.  
  543. /*
  544.  
  545. Probably the best way to convert standard time to Beats, is by first
  546. calculating the time in seconds.  A good formula to calculate standard time
  547. to Internet time is:  hours(in BMT)*60*60 + minutes*60 + seconds.  Once
  548. you've calculated this (let's call the total of the previous calculation
  549. calculated_total):  calculated_total/86.4.  That should give you the time
  550. in Beats.  Just to make sure, compare it with the time on the Swatch site.
  551.  
  552. */
  553.  
  554. #endif
  555.