#define ID_ABOUT 100 int PASCAL WinMain(HANDLE, HANDLE, LPSTR, int); BOOL WinVnInit(HANDLE); /* (SMR) Changed parameter lists to conform with 3.1 windows.h. */ long FAR PASCAL WinVnConfWndProc(HWND, UINT, WPARAM, LPARAM); long FAR PASCAL WinVnViewWndProc(HWND, UINT, WPARAM, LPARAM); long FAR PASCAL WinVnArtWndProc(HWND, UINT, WPARAM, LPARAM); BOOL GetMemo(HWND, HWND, int); BOOL FAR PASCAL About(HWND, unsigned, WORD, LONG); BOOL FAR PASCAL WinVnCommDlg(HWND, unsigned, WORD, LONG); BOOL FAR PASCAL WinVnSaveArtDlg(HWND hDlg,unsigned iMessage,WORD wParam,LONG lParam); BOOL FAR PASCAL WinVnFindDlg(HWND hDlg,unsigned iMessage,WORD wParam,LONG lParam); BOOL FAR PASCAL WinVnSubjectDlg(HWND hDlg,unsigned iMessage,WORD wParam,LONG lParam); BOOL FAR PASCAL WinVnAuthDlg(HWND hDlg,unsigned iMessage,WORD wParam,LONG lParam); BOOL FAR PASCAL WinVnDoListDlg(HWND hDlg,unsigned iMessage,WORD wParam,LONG lParam); BOOL FAR PASCAL WinVnPersonalInfoDlg(HWND hDlg,unsigned iMessage,WORD wParam,LONG lParam); BOOL FAR PASCAL WinVnMiscDlg(HWND hDlg,unsigned iMessage,WORD wParam,LONG lParam); BOOL FAR PASCAL WinVnAppearanceDlg(HWND hDlg,unsigned iMessage,WORD wParam,LONG lParam); BOOL WritePrivateProfileInt(char far *lpAppName,char far *lpKeyName,int intval, char far *lpProFile); void ForAllLines(TypDoc *Doc, void lpfnFunc(TypDoc *Doc, TypBlock far **BlockPtr, TypLine far **LinePtr, int wFlag, int wValue), int wFlag, int wValue); void SetLineFlag(TypDoc *Doc, TypBlock far **BlockPtr, TypLine far **LinePtr, int wFlag, int wValue); void GroupAction(TypDoc *Doc, TypBlock far **BlockPtr, TypLine far **LinePtr, int wFlag, int wValue); VOID CheckView(HWND); long FileLength(HANDLE); BOOL MoreInit(void); BOOL MainLoopPass(void); void MakeHelpPathName(char * szFileName, int maxchars); void DoCommInput(void); int WinVnDoComm(char *szComm); char *CommStrtoID(char *CommStr,int *Port, int *Parity,char *szSpeed); int ReadNewsrc(void); void WriteNewsrc(void); void SetNetDocTitle(void); void MoveCursor(); BOOL CursorToTextLine(int X,int Y,TypDoc *DocPtr,TypBlock far **BlockPtr, TypLine far **LinePtr); void ViewArticle(TypDoc *Doc, long artindex ,BOOL Reuse); void UnlinkArtsInGroup(TypDoc *GroupDoc); void UpdateSeenArts(TypDoc *Doc); int CommIDtoStr(int Port, int Parity,char *szSpeed,char *CommStr); int NewBlock(TypBlock far *CurBlockPtr, TypBlock far **NewBlockPtr); void SetupEmptyBlock(TypBlock far *BlockPtr,HANDLE hCur, HANDLE hPrev, HANDLE hNext,TypDoc *DocPtr); BOOL DeleteBlock(TypBlock far **CurBlockPtr, TypLine far **CurLinePtr); int AddLine(TypLine *LineToAdd,TypBlock far **CurBlockPtr,TypLine far **CurAddPtr); BOOL ReplaceLine(TypLine *LineToAdd,TypBlock far **CurBlockPtr,TypLine far **CurLinePtr); BOOL DeleteLine(TypBlock far **CurBlockPtr, TypLine far **CurLinePtr); int NextLine(TypBlock far **BlockPtr,TypLine far **LinePtr); int PrevLine(TypBlock far **BlockPtr,TypLine far **LinePtr); int FindString(BOOL StartAtTop); int NumBlocksInDoc(TypDoc *Doc); BOOL FindLineOrd(TypDoc *Doc,unsigned int LineOrd,TypBlock far **BlockPtr,TypLine far **LinePtr); int SearchLine(char *Line,int LineLen,char *Target,int TargLen); BOOL DoFind(BOOL StartAtTop); void TopOfDoc(TypDoc *Doc,TypBlock far **BlockPtr,TypLine far **LinePtr); BOOL ExtractTextLine(TypDoc *Doc,TypLine far *LinePtr,char *Buf,int BufSize); BOOL LockLine(HANDLE hBlock,unsigned int LineOff,TypLineID FindLineID, TypBlock far **BlockPtr,TypLine far **LinePtr); void UnlockLine(TypBlock far *BlockPtr,TypLine far *LinePtr, HANDLE *hBlock,unsigned int *LineOff,TypLineID *TheLineID); void PtrToOffset(TypBlock far *BlockPtr,TypLine far *LinePtr, HANDLE *hBlock,unsigned int *LineOff,TypLineID *TheLineID); unsigned int WhatLine(TypBlock far *BlockPtr,TypLine far *LinePtr); void MoveBytes(void far *Source, void far *Target,int NumBytes); int InitDoc(TypDoc *Doc,HWND hWnd,TypDoc *Parent,int DType); void FreeDoc(TypDoc *Doc); int mylstrncmp(char far *ptr1,char far *ptr2,int len); char far *mylstrncpy(char far *ptr1,char far *ptr2, int len); BOOL CrackGroupLine(char *buf,TypLine *lineptr); void ScreenDown(int nLines,int LinesOnScreen,TypBlock far **BlockPtr, TypLine far **LinePtr,int *LinesAdvanced); void ScreenUp(int nLines,TypBlock far **BlockPtr,TypLine far **LinePtr, int *LinesBackedUp); void ScrollIt(TypDoc *Document,WORD wParam,DWORD lParam); void NewScrollIt(TypDoc *Document,WORD wParam,DWORD lParam); int LineOnScreen(TypDoc *Doc,HANDLE hTargBlock,unsigned int TargOffset,TypLineID TargLineID); void NextWindow(TypDoc *Doc); void AdjustTopSc(TypBlock far *BlockPtr,TypLine far *LinePtr); void ScreenToTop(TypDoc *Doc); HANDLE MRROpenFile(char *FileName,int vRef,int Mode,TypMRRFile **MRRFile); void MRRCloseFile(TypMRRFile *MRRFile); int MRRReadLine(TypMRRFile *MRRFile,char *Linebuf,int Len); BOOL MRRWriteLine(TypMRRFile *MRRFile,char far *Linebuf,int Len); BOOL MRRWriteDocument(TypDoc *Document,int Offset,char *szFileName,int vRef,BOOL Append); BOOL GetNum(char **ptr,long int *num); DWORD StrToRGB(char *cstring); void DoCommInput(void); void DoCommState(void); BOOL WasArtSeen(long int ArtNum,TypGroup far *GroupPtr); /* in file wvheader.c */ BOOL GetHeaderLine(TypDoc *Doc,char *Prefix,char *Buf,int BufLen); BOOL MakeArtHeaderSubject(TypDoc *Doc,char *Buf,long int BufLen); BOOL MakeArtHeaderMessageID(TypDoc *Doc,char *Buf,long int BufLen); BOOL MakeArtHeaderReferences(TypDoc *Doc,char *Buf,long int BufLen); BOOL MakeArtHeaderDate(TypDoc *Doc,char *Buf,long int BufLen); BOOL MakeArtHeaderFrom(TypDoc *Doc,char *Buf,long int BufLen); BOOL MakeArtHeaderTo(TypDoc *Doc,char *Buf,long int BufLen); BOOL MakeArtHeaderNewsgroups(TypDoc *Doc,char *Buf,long int BufLen); BOOL MakeArtHeaderOrganization(TypDoc *Doc,char *Buf,long int BufLen); BOOL MakeArtHeaderNewsreader(TypDoc *Doc,char *Buf,long int BufLen); BOOL MakeArtBody(TypDoc *Doc,char far **MesBuf,long int *left, int DocType); int CompareStringNoCase(char *str1,char *str2,int slen); void CopyBuf(char *instr,char **buf,long int *left); BOOL NextToken(char **cptr); void AppendTextToEditBuf(char *instr,char far **buf,long int *left); HWND CreatePostingWnd(TypDoc *Doc,int DocType); BOOL CreatePostingText(TypDoc *Doc,HWND hWndPost,HWND hWndEdit,int DocType); BOOL IsLineBlank(char far *line); /* In file WVPOST.C */ long FAR PASCAL WinVnPostWndProc(HWND, UINT, WPARAM, LPARAM); BOOL StartPost(int ih); BOOL PostText(int ih,int DocType); /* In file WVPOST.C */ long FAR PASCAL WinVnMailWndProc(HWND, UINT, WPARAM, LPARAM); BOOL StartMail(int ih); /* In file WVAUTH.C */ BOOL AuthenticatePosting(void); int SetupSock(void); void PutCommLine(char *line,unsigned int nchars); int MRRReadComm(void); void MRRCloseComm(void); int MRRInitComm(void); /* In file WVLIST.C */ void StartList(void); void ProcListLine(unsigned char *ListLine); void AddGroupToTable(char far *GroupLine); void InitGroupTable(void); unsigned int HashGroup(unsigned char far *gname); void HashNetGroups(TypDoc *Doc,TypLine far * far * HashTable); void ProcEndList(void); int GroupCompare(TypLine const far * far *g1,TypLine const far * far *g2); BOOL FAR PASCAL WinVnGroupListDlg(HWND hDlg,unsigned iMessage,WORD wParam,LONG lParam); void PositionEndSubscribed(TypBlock far **BlockPtr, TypLine far **LinePtr); void MergeGroups(int WhereSubscribed); void CleanUpGroupTable(void); #if 0 /* In file FASTQSRT.C */ void __far __cdecl fastQSort(void far *base, size_t n, size_t size, int (__far __cdecl *cmpFn)(const void far *, const void far *)); #endif void ShellSort (void *, size_t, size_t, int (*compare) (TypLine const * *, TypLine const * *)); /* void IncPtr(void **ptr,int incval); */ #ifdef MAC extern TEHandle WndToTEH(); #endif #define IDM_UNDO 8 #define IDM_CUT 9 #define IDM_COPY 10 #define IDM_PASTE 11 #define IDM_CLEAR 12 #define IDM_SELALL 13 #define IDM_SHOW_SUBSCR 101 #define IDM_SHOW_ALL_GROUP 102 #define IDM_VIEW_SEL_GROUP 103 #define IDM_SEL_SUBSCR 104 #define IDM_UNSEL_ALL 105 #define IDM_EXIT 106 #define IDM_QUIT 107 #define IDM_GROUP_TOP 108 #define IDM_SELECTALL IDM_SELALL #define IDM_CLEARALL IDM_CLEAR #define IDM_SUBSCRIBE 130 #define IDM_UNSUBSCRIBE 131 #define IDM_COMMOPTIONS 110 #define IDM_CONFIG_PERSONAL 111 #define IDM_CONFIG_APPEARANCE 112 #define IDM_CONFIG_MISC 113 #define IDM_NEW_WIN_GROUP 4 #define IDM_NEW_WIN_ARTICLE 5 #define IDM_EDIT 114 #define IDM_EXCLUDE 115 #define IDM_DELETE 116 #define IDM_NEW 117 #define IDM_VIEWNEW 122 #define IDM_VIEWFULL 123 #define IDM_SESSION 130 #define IDM_RESET 140 #define IDM_HELP 150 #define IDV_APPEND 201 #define IDV_EDIT 202 #define IDV_FORGET 203 #define IDV_CREATE 204 #define IDV_NEXT 205 #define IDV_EXIT 206 #define IDM_NEXT_ARTICLE 401 #define IDM_NEXT_SAME_SUBJECT 402 #define IDM_FOLLOWUP 420 #define IDM_SAVE 410 #define IDM_SAVEAS 411 #define IDM_FIND 450 #define IDM_FIND_NEXT_SAME 451 #define IDM_SEARCH 452 #define IDM_SEARCH_NEXT 453 #define IDM_POST 470 #define IDM_CANCEL 471 #define IDM_MAIL 480 #define IDM_REPLY 485 /*-- Dialog box constants -- */ #include "wvdlg.h"