*** NOTE NOTE NOTE *** WinVN 0.99-9 (Beta 4) Make sure to read the Installation Instructions before installing WinVN. E-mail traffic is high for the unpaid supporters of this product, and almost all the questions people ask are either answered in this README.TXT, FAQ.TXT, the WWW site, the hardcopy docs or the MAIL.WINVN newsgroup on NEWS.KSC.NASA.GOV. Please help us spend our time making WinVN a better product and not answering the same questions over and over. JD 3/19/97 ********************** Contents ======== What is WinVN? Requirements Upgrade Instructions New Installation Instructions WinVN Files Latest Version Contacting the Developers Credits Revision History What is WinVN? ============== WinVN is an NNTP newsreader for the Microsoft Windows family. You can use it to read and post Usenet News, and send email via the SMTP or MAPI protocols. There are three version of WinVN all derived from a common set of source files: WinVN 16-bit For Windows and Windows for Workgroups WinVN 32-bit *Only* for Windows NT and Windows 95 WinVN AXP *Only* for Windows NT on DEC Alpha platform Requirements ============ 1) An appropriate operating system: Windows, Windows for Workgroups, Windows NT, Windows NT/AXP or Windows 95. 2) A correct installation as described below. 3) An appropriate network connection with a TCP/IP stack and either a WINSOCK.DLL or a WSOCKETS.DLL. See Installation Instructions below. 4) An NNTP News Server that supports at least one of the following NNTP extensions: XHDR Most news servers can do this XOVER INN is a news server that does XOVER WinVN will use XOVER, a better protocol, if your server supports it. You need the name or address of the server. A few news servers require a username and password for authentication--most do not. Contact your news server's administrator if in doubt. Do NOT fill out the authentication field unless you are sure your news provider requires it. Upgrade Intructions =================== 1) Just unzip the archive into your current WinVN directory. The archive does not contain NEWSRC or WINVN.INI files, so your existing settings will be preserved and WinVN will merge in any new features needed for the new release. (If you are paranoid: move your WINVN.INI and NEWSRC files to a different directory, delete everything else in your WinVN directory, unzip WinVN, and finally move your WINVN.INI and NEWSRC files back.) 2) *** IF THE INCLUDED CTL3D DLL IS A NEWER VERSION THAN YOURS *** WinVN 16-bit: Move (*don't copy*) CTL3DV2.DLL into your \WINDOWS\SYSTEM directory. There must be *one and only one* instance of this file on your disk! If you have more than one copy in your search path, the DLL will give you a non-fatal warning message that it is installed incorrectly. WinVN 32-bit: Windows NT: Move (*don't copy*) CTL3D32.DLL into your %SystemRoot%\SYSTEM32 directory. Windows 95: Move (*don't copy*) CTL3D32.DLL into your \WINDOWS\SYSTEM directory. There must be *one and only one* instance of this file on your disk! New Installation Instructions ============================= 0) Read this file, the help file, and the FAQ. They will answer most of your questions. 1) Create a WinVN directory and unzip the archive into this directory. 2) *** DO NOT SKIP THIS STEP! *** WinVN 16-bit: If CTL3DV2.DLL doesn't exist on your system or if it is newer than the one in your Windows System directory, Move (*** DO NOT COPY!!! ***) CTL3DV2.DLL into your \WINDOWS\SYSTEM directory. There must be *one and only one* instance of this file on your disk! or you will get a CTL3DV2.DLL was not installed correctly message. This message is put out by the authors of CTL3DV2.DLL and not by WinVN! We can't do anything about that. If you don't use the CTL3DV2.DLL in the WinVN distribution, rename it or delete it out of your WinVN directory. WinVN 32-bit: Windows NT: If you don't have CTL3D32.DLL or if the one in WinVN is newer than the version you have, Move (*don't copy*) CTL3D32.DLL into your %SystemRoot%\SYSTEM32 directory. If you don't use the CTL3DV232.DLL in the WinVN distribution, rename it or delete it out of your WinVN directory. Windows 95: If you don't have a CTL3D32.DLL in your Windows area, move (*don't copy*) CTL3D32.DLL into your \WINDOWS\SYSTEM directory. If you don't use the CTL3DV232.DLL in the WinVN distribution, rename it or delete it out of your WinVN directory. There must be *one and only one* instance of this file on your disk! (Note: if you are running Windows 3.1 with Win32S, you still can't run the 32-bit version of WinVN. Win32S doesn't provide a 32-bit WINSOCK.DLL so it won't buy you anything even if we supported it.) 3) This is very important! Choose the appropriate WinSock interface by editing the GenSockDLL entry in the Communications section of your WINVN.INI. WinVN doesn't ship with a WINVN.INI file but it will produce one the first time you run the program. If you want to change WinVN's DLL that interfaces to the WINSOCK.DLL on your networking stack, run WinVN first, have it produce a WINVN.INI and then edit the WINVN.INI using an editor. Note: the GenSockDLL is not a replacement for the WinSock provided by your networking vendor so don't try editing WinVN.INI and replace the GenSockDLL line in the INI file with a WinSock.DLL. The GenSockDLL entry is the interface library that WinVN uses to call your WinSock.DLL. See below for details. WinVN 16-bit: GWINSOCK.DLL The default, which should work in most cases PWKSOCK.DLL For pre-WinSock 1.1 compliant TCP/IP stacks such as Dec Pathworks 4.1 or earlier (Pathworks 5.0 or higher use GWINSOCK.DLL) or LanManager 2.1a or earlier. (LanMan 2.2 or higher, use GWINSOCK.DLL) GENASYNC.DLL Faster with modem and Trumpet or NetManage products WinVN 32-bit: GWINSOCK.DLL The default, which should work in all cases Details ------- You will have one of the following two types of TCP/IP stacks: WinSock v1.1 (or higher) TCP/IP stack and WINSOCK.DLL: (Examples: Microsoft TCP/IP, Trumpet, PC/TCP, Windows NT, Windows 95, NetManage TCP/IP, LanManager 2.2, DEC Pathworks 5.1) a) Make sure WINSOCK.DLL is in your path before starting Windows. b) Make sure the GenSockDLL entry in the Communications section of your WINVN.INI is set to GWINSOCK.DLL or GENASYNC.DLL, as appropriate. SPECIAL NOTE: If you are using later versions of the Trumpet or NetManage (Chameleon) products, you will get better performance over a modem with GENASYNC.DLL rather than GWINSOCK.DLL. *or* Pre-WinSock v1.1 TCP/IP stack and WSOCKETS.DLL: (Examples: DEC Pathworks 4.1 or Microsoft LanManager 2.1a) a) Make sure WSOCKETS.DLL is in your path before starting Windows. b) Make sure the GenSockDLL entry in the Communications section of your WINVN.INI is set to PWKSOCK.DLL. NOTE: GWINSOCK.DLL, GENASYNC.DLL and PWKSOCK.DLL are not replacements for your TCP/IP stack's own socket DLLs--they use them. For example, GWINSOCK.DLL talks to WINSOCK.DLL, and PWKSOCK.DLL talks to WSOCKETS.DLL. 4) Configure the Communications Options. The first time you start WinVN you will be asked to configure these options. You must have the name or address of your news server. The TCP port should be NNTP or 119 if the former does not work. The Username and Password should *only* be filled in if your news server requires them for authentication. Contact your news server's administrator if in doubt. If you are using SMTP mail, fill in the appropriate SMTP host name or address. See the help file for more information. 5) Configure your Personal Info. The first time you start WinVN you will be asked for your name, email address, and organization. Make sure you provide a valid email address. WinVN Files =========== WinVN 16-bit: File Location Description ------------ --------------------- ------------------ WINVN.EXE WinVN directory The program itself WINVN.HLP WinVN directory The help file WVTB.DLL WinVN directory Toolbar support GWINSOCK.DLL WinVN directory Generic WinSock interface PWKSOCK.DLL WinVN directory For pre-Winsock 1.1 compliant TCP/IP stacks GENASYNC.DLL WinVN directory For modem and Trumpet or NetManage README.TXT WinVN directory This file WINVNFAQ.TXT WinVN directory Frequently Asked Questions (and answers) NEWSRC WinVN directory* List of newsgroups and read articles WINVN.INI WinVN directory* Configuration file CTL3DV2.DLL \WINDOWS\SYSTEM 3-D control support WinVN 32-bit: File Location Description ------------ --------------------- ------------------ WINVN.EXE WinVN directory The program itself WINVN.HLP WinVN directory The help file WVTB32.DLL WinVN directory Toolbar support GWINSOCK.DLL WinVN directory Generic WinSock interface README.TXT WinVN directory This file WINVNFAQ.TXT WinVN directory Frequently Asked Questions (and answers) NEWSRC WinVN directory* List of newsgroups and read articles WINVN.INI WinVN directory* Configuration file CTL3D32.DLL %SystemRoot%\SYSTEM32 3-D control support (Windows NT) CTL3D32.DLL \WINDOWS\SYSTEM 3-D control support (Windows 95) *These files will be created the first time you run WinVN, if they don't already exist. This is the default location. These files can be moved, and their location pointed to on the command line or by the WINVN environment variable, to support multiple configurations. See the help file for more information. Latest Version ============== The official FTP site for WinVN is at ftp://ftp.ksc.nasa.gov/pub/winvn/ Always use FTP.KSC.NASA.GOV to get only the IP number that is outside the firewall. Always check there for the latest binaries and sources. Other sites that keep fairly current with the main site are: ftp.ibp.fr (/pub/pc/winvn) ripem.msu.edu (/pub/pc/win/winvn/titan.ksc.nasa.gov/) shannon.mee.tcd.ie (/winvn) Hardcopy documentation by Jim Dumoulin (dumoulin@titan.ksc.nasa.gov) for is also available on ftp.ksc.nasa.gov. Contacting the Developers ========================= Before you report bugs or request features, get the latest version of WinVN as described in the section above. You may find your issues have already been addressed. You should also try to verify that your machine, TCP/IP stack, and WinVN are set up properly. Email: You can send comments to the WinVN developers by sending mail to winvn@news.ksc.nasa.gov. Mailing List: If you don't mind a lot of traffic on WinVN, you can join the developers mailing list by a mail message to majordomo@news.ksc.nasa.gov with the Subject line blank and the contents of the message "subscribe winvn". To get off the mailing list, send the message "unsubscribe winvn" to the same address. Newsgroup: An easy way to keep up on WinVN developments is to point your newsreader at news.ksc.nasa.gov (currently 128.159.4.21 for those of you with broken DNS's but soon to be changing to 163.205.1.3). There should be a single newsgroup, mail.winvn, which is a gatewayed version of the mailing list. Announcements and discussions of common problems can be found here. It's very likely the best place to get the scoop on _your_ problem. If mail gets much worse, we may consider starting an alt newsgroup. You can have more than one Program Manager icon for WinVN, each pointing to different news servers. If you want to keep up with the WinVN development newsgroup on NEWS.KSC.NASA.GOV, you can create separate WINVN.INI and NEWSRC files (perhaps just move the ones you have into a sub-directory), and then create a second WinVN icon with the Command Line: entry in the Program Item Properties set to (for example) "c:\winvn\winvn.exe c:\winvn\ksc\winvn.ini c:\winvn\ksc\newsrc" instead of just "c:\winvn\winvn.exe". WWW: A World Wide Web node has been developed for WinVN by Mike Downs (downsm@titan.ksc.nasa.gov) and is available at the following URL: http://www.ksc.nasa.gov/software/winvn/winvn.html. Credits ======= Thanks to Mark Riordan for the original WinVN! Many people have worked on WinVN--it's been a fun, international project. Here are a few of them: Matt Bretherton MBretherton@cmutual.com.au Harvey Brydon brydon@tulsa.dowell.slb.com John S. Cooper jcooper@planetz.com Michael Downs mdowns@eos.arc.nasa.gov Mike Downs downsm@titan.ksc.nasa.gov Jim Dumoulin dumoulin@titan.ksc.nasa.gov Michael Finken finken@conware.de Don Gardner gardnerd@keystone.ksc.nasa.gov Jody Glasser jglas@tdycont.com Masaki Ishido ishidou@jpn.hp.com Jim Martin jim@noc.rutgers.edu Tom Menshik tmenshik@hpcvitlm.cv.hp.com Conor Nolan cnolan@tcd.ie Roger Pearse pearse_w_r@bt-web.bt.co.uk John Piraino jpiraino@execpc.com Mark Riordan mrr@scss3.cl.msu.edu Sam Rushing rushing@titan.ksc.nasa.gov Mitsuo Shimomai (sim@aae.kagoshima-u.ac.jp) Goh Tanaka (goh@yamato.ibm.com) Vince Vielhaber vev@conch.aa.msen.com (Countless others we don't really mean to leave out.) - Sam Rushing, Jim Dumoulin & John Cooper Revision History ================ WinVN release .99.9 (Beta 4): Added support to the DDE to call additional WWW browsers and added a user interface to set the server ID string to a user specified ID. Moved the location of header call to make all winvn source files identical up to the #pragma so that the precompiled header PCH option will work. Changed some initialization code to initialize the string class with "" instead of a null character. and printf statements don't fail when uint32 calls become long in the 16 bit compiler. Disabled the counting of groups on loading in increments of 1 after 32K groups. Was debug code to test failure with large groups that is slowing down people on slow machines. Fixed the GPF on exit for 16bit systems by relocating the definition of the LATEST structure so that it gets defined after the WVString memory pool gets allocated. Fixed a problem in validation of who is allowed to cancel an article. Canceling of articles broke in Beta 2 Fixed a problem in GenerateMIMEBoundaryString that would overflow and cause random bad bad things to happen and not conform to RFC1521 Changed a loop in the Filters code to use a global MAXFILTERS define in wvglob.h instead of hardcoding the maximum number of filters to 1000. Allowed the Reset Protocol Menu Button (the red recycle button) to be active more often during network connections. This is an extreemly crude way to abort connections and a start at allowing an abort capability. Since WinVN isn't multi-threaded, if the other end is still spitting out massive info, there is a good chance this will GPF. Fixed a problem that could cause WinVN to access uninitialized memory if certain header fields such as Organization were included but were of zero length. Merged in all changes for Dec Alpha platform and updated make files so that DEC Axp binaries can be compiled. WinVN release .99.9 (Beta 3): Fixed another problem where bogus information in headers would cause the string class to release more memory than it allocated and thus GPF. Conditionalized all the C++ Exception handling try and catches to only work with Win32 since the Microsoft Win16 compiler didn't implement it. Fixed the 16bit WVTB Tool Bar DLL code. Beta 2 added tooltips to WinVN32 but at the same time broke the Toolbar for WinVN 16. Fixed a typo in the writing/reading of the WinVN.ini setting that enables/disables sorting the group list. Fixed a mispelling in the NewsRC file. Changed some longs to uint32's. This should keep the 16bit version of WinVN working without forcing the 32bit version to use 64bit sizes when 32 will do. Initialized a structure (sInfo.cb = sizeof(sInfo)) in the DDE code that wasn't getting initialized. Fixed problems with the resource compiler when using the MSVC 1.52 16bit Windows Compiler by conditionalizing some MSVC4.2 AppStudio statements. Fixed the DDE ini code so that it saves and restores the DDE options. Added an option for a user specified DDE ID String. Currently this is in the INI but have not added the ability to edit the ID String from a dialog Box. WinVN release .99.9 (Beta 2): Fix Horizontal scrolling problem in Article Window Partially Fix a problem with new String class from releasing large blocks of memory that were never allocated. Fixed a problem with WinVN GPFing upon Exiting. However, there are a few more places that haven't been fixed. Fixed a problem with the new String class that would cause the Group window to GPF if if someone posted an article with a reference header of just plain <>. Fix to track newly arrived cross posted article. Fixed "Get Latest Unread" if the article threshold was set to 1 and the minimum set to 0, memory would be allocated for only the 1st header. Fixed a problem if the group had more articles than unread, memory was allocated for all the headers rather than what is being read. Also fixed the status bar to update the number being read. Fixed the About box. It was inadvertently left off during the 1st cut of Beta 1. Fixed line below tool bar that was disappeared when new ToolTips code was added. WinVN release .99.9 (Beta 1): Additions: Support for DDE to load up a URL in a WWW Browsers without needing to start a new browser. Added an option in the config menu that allows a user to disable the automatic sorting of newgroups. This can allow people on older/slower/memory poor machines to grab a full list of groups from their server. Option to Catchup all Groups Added support for tooltips on 32Bit version. Needs to be compiled in by setting the /D "COMMCTRL flag in the compiler options. Fixes: Changed many data structures to use long or unsigned integers instead of normal "ints". On 16bit system this caused many bugs when the number of newsgroups or size of an article exceeded 32,000. Fixed a problem in printing if printed article contained more than 32,000 lines. Changed all the WinVN scrolling code to convert ranges from the raw number in a window to a "relative" range position. This fixes a number of WinVN scrolling bugs. Fix "heckler" posts with really long subject lines. Allow cancel article even if FullNameFrom is checked off Fix "off by one" counting problem with marking expired articles 'seen. Fixed a problem when requesting xxx number of articles from the server. WinVN was returning (1st article + xxx) instead of (last article - xxx). This causes real problem when first few articles in a group are set to stay around for a long time and then there is a big gap in article numbers till the recent articles. Fixed a problem where a "<" in an article message-id in the references header (which is illegal syntax) would cause an overrun on the stack. Improved handling of partial reads of large newsgroups. Two added integers in group structure to keep track of range of articles downloaded. Catch up and exit" marks articles loaded as read (ie. instead of entire group, including articles not yet read). Identify expired articles when we try to read them and mark 'seen' (instead of 'unseen'). Fixed parsedate routines to support using WinVN after the year 2000. Rewrote part of the "article threshold" code. Fixed a longstanding problem where no more than 657 articles could be loaded. Conditional compile changes to support port to OS/2 Check against data structure overrun if news server lies about # of estimated articles. This happened with a 'caching server' seen in a few locations in Europe. Fix uninitialized data structure problem with printing. Updated dialog so it says "All" instead of 65535 pages. Fixed the "catch up and exit" code so it marks expired articles as 'seen' instead of 'unseen'. Wrote performant string class. Replaced fixed size article header information with strings. This allows any captured article header to be arbitrary size. Less memory consumption than with fixed size header char arrays, while hopefully retaining performance. Made an optimization to the string class that hopefully makes it slightly quicker - don't delete/reallocate storage if it's already big enough (for assignments). Fixed a bug where references lines that had extra "<"'s would GPF. Rewrote Range code as a dynamically allocated bitmap. Eliminates the TypRange shell game when modifying the list of seen articles in a group. Wrote OO/C++ variable size memory pool class for string, bitmap and other memory management. Memory can be allocated/released. Lines in the newsrc file can be any length (?) without GPF problems. Invalid information in the newsrc file is accepted and cleaned up. If the server has renumbered articles, we can handle it gracefully. Proper handling of empty newsgroups. Proper handling of rmgroup'd newsgroups. Add Filter/killfile item for 'number of newsgroups'. Fixed a logic error in determining if newsgroup header needs to be read, made it a little more performant. Fix problem with URL info being improperly parsed, made URL execute buffer larger, removed an extraneous 'strcpy'. URL info with uppercase letters in the "http:" title now handled properly. It was being incorrectly mangled. "Http://www..." previously became "ttp://www...". [There are still problems to be fixed if we encounter "FTP://..." instead of "ftp:://..." etc.] Fixed problem that prevented newsrc error codes from being reported Fixed a problem with crossposting articles WinVN release .99.8 (released version) Fixes: Fixed problems with wvcoding.c where sscanf was returning wrong arguments and inconsistent values Fixed a problem with parse_date where sscanf was returning wrong arguments. Added more descriptive text when printing to a remote printer Expanded number of usable article actions from 99 to 999. Make URL execute line buffer larger (1024). Revision History ================ WinVN release .99.8 (Beta-3): Fixes: newsrc (read/unread information) fixes 1) article read/unread information of opened article list window does not save to newsrc when user send WM_QUIT to winvn newsgroup list window (pushing cross button on Win95) 2) GroupLinePtr does not properly set at second opened newsgroup 3) winvn does not save newsgroup name into newsrc if user attempt to open empty newsgroup URL execute fix when execute path name contains space character (such as default install path name for Netscape Navigator. Enclose execute file path name with double quote character ie. "c:\program files\netscape\navigator\program\netscape.exe" %u Posting/Mailing menu on composing window says "Mail" when canceling article Timezone info does not properly set at sending SMTP Mail on Win32 version. Always set as "PST". Remove ANSI functions on handling timezone info on Win32) Fixed a problem in the decoding code that could cause a GPF if the number of status windows ever got to 0. Fixed a problem with the Network menu where Reconnect and Reset protocol were both under the Alt-R hotkey. Fixed problem with Replying via Mail that would chop off last character of Reply-To address. Make Article Action Dialog Box movable Fixed bug in decoding routines that would cause decoding to stop if a line began with the word END Fixed CC posting to generate a date-header on E-mail messages Also, fixed a GPF when viewing in ROT13 when scroll past header after retrive is disabled. Fixed TrimHeader so that it doesn't trim Followup-To header and thus break redirection of E-mail. Bumped up the max NNTP Server name size from 40 to 60 characters. Enhancements: configurable newsgroup/article list display position (move mouse cursor to first line of list. You will see mouse cursor shape change to right-left arrow. At that time, You can drag the positions such as newsgroup name, article author name, article subject. This enhancement allow user to use propotional font on newsgroup/article list window) Display article posted time by local time zone Allow user to edit header part of editing article (or mail) directly. Created new file WVHDEDIT.C Spoiler Character support (Form Feed character or ^L) (wvart.cpp, wvscreen.c, wvcompos.c) Include Operating System information in X-Newsreader: header (like Netscape Navigator newsreader) Add support for "newsgroups" as selection/kill criteria Added a selection on the Communications Dialog box to allow forcing the protocol to XHDR or XOVER. This will allow easier debugging when changing the WinVN state machine for developers that don't have an XHDR "C-news" server around Modified WinVN state machine so that "newsgroups" header are not fetched for a group unless that group has a newsgroups filter enabled. This is much server friendly and speeds up access when asking for big groups since "newsgroups" is not in XOVER database. WinVN release .99.8 (Beta-2): Fixed a bug in decoding when verbose status window is enabled. Provided for more error messages when saving the Newsrc file fails. Now we try and do a copy when a rename of the temporary newsrc file fails (on some systems, rename doesn't work across some network devices Updated online documentation WinVN release .99.8 (Beta-1)7: Added Kill-File (article Action) support, including human interface, ini-file support, color and font selection, kill/select based on email, F5 key for reading thru selected articles. Possibly fixed problem with WinVN blowing up with greater than 20,000 Newsgroups. Added menu option to enable/disable Kill-file so filters are preserved even if you want to turn kill file off. Fix a problem with finding frobbed message IDs when getting info from the newsfeed via XHDR. Convert sort choices in .ini file to text (accept number or text) Dereference MIME header items in SMTP dialog. Upgraded WinVN to use Visual C++ 4.0 Number of selected articles sometimes gets out of whack - recount them when appropriate. lies to us about number of articles available. "_STRICT" declarations, casts and function headers for MSVC C++/Watcom support. Various cast, type changes to make MSVC 1.x happy/happier. Fix memory leak for obscure abnormal termination. Allocate proper storage for coding tables (we were running 1 char off end of 3 different tables). - Make 'seen/unseen' vs. 'read/unread' terminology more consistent. All items presented to the user now say 'seen' or 'unseen'. Remove extraneous semicolon on if statement, fix "#if/#ifdef". - Fix status text for IDB_TOGGLE_VIEW_UNSUB ("View/Hide unsubscribed groups") toolbar button. - Added missing status bar text for a few menu items. - Interim fix for 'long newsrc line' GPF/Exception. If the info read in is going to exceed internal buffers when calculating ranges, then quit accepting them, scan to next. WinVN release .99.7: Fixed a bug that was adding an extra character to the address field. Fixed a bunch of GPF's caused by locking areas of memory then never checking to see if the lock was successful. Fixed a bug in batch send where a variable was being used the 1st time thru a loop without being initialized. Removed a number of global variables in the Batch and Decoding code to stop some GPF's when using WinVN to pseudo-multitask. Fixed a bug when cutting to the clipboard the header of a Rot13 article. Fixed a bug in the decoding algorithm when setting numberMode where == was beging used instead of =. Added low level support for KillFiles. WinVN.INI support only, no user interface yet. MIME boundary values should not be fixed string misc fixes to source syntax (no returned values) Updated the WinVN online Documentation. Modified RangeOffset macro and AddCommLineToDoc function to support proper word alignments when compiling WinVN on MIPS platforms. Fixed bug in threading code that can cause an infinite loop in the "find_parent" function. Bumped up the Filename default if you are running under Win32 to 155.100 instead of 8.3. Increased Maxfilename from 75 to 255 for use on filesystems such as NT and Windows 95. Added an option to Config Communications to allow the MAPI mail prefix to be user specified. This will allow WinVN to work with non-Microsoft MAPI implementations that use prefixes such as IN: instead of SMTP: WinVN release .99.6: Changed the defaults so that SMTP mail is the default instead of autoselecting between MAPI and SMTP. Fixes problem with broken WfWg type configurations that say they have MAPI when the don't. Also changed the default to autoconnect on startup. Fixed GPF where an uninitialized variable may get used when using XHDR to older servers that don't support XOVER. Fixed a problem in sync_artnum that could cause a GPF when recovering from a XHDR server that has messed up article indexes. Fixed a problem where "latest unread" reads previously read articles if the first article number of a news group is smaller than the minimum articles to retreive. Clickable URL interface between News and FTP or HTTP (WWW). Enabled by entering HttpClient and FtpClient in WinVN.INI User interface to setup Clickable URL interface. Also supports templates to break down URL into protocol, hostname and filename so they can be passed on command lines to external programs. Also added support for Gopher and Wais. Added ability to Sort Selected Groups Added ability to Select All Groups Changed the color of the Read all articles and close group icon back to RED. Modified make file routines to support Microsoft Visual C++ builds on DEC Alpha Added ability to deselect all articles matching a given text string on the list of articles window. (vielhaber) Updated the WinVN online Documentation. (favorini) Updated Readme.Txt Fixed WinVN to correctly support RFC-1521 Mime encoding selection between US-ASCII and ISO-8859-1 Fixed problem with the wrong menu's getting greyed out. Index into menu structure was off by one. Fixed a problem with the Status bar getting updated too often in Saving and Sorting the NewsRC file. Fixed a problem in WriteNewsrc that would GPF if someone used a trailing "." in a filename with no extension. Also a problem with failing to check the error code properly during a file write. Added the ability to select or deselect articles based on a number of options (such as Select/Deselect all Read Articles etc) WinVN release .99.5: (dumoulin) Fixed bug that would trash news group list when subscribing to a newsgroup. (dumoulin) Fixed bugs in the tracking of when the NewsRC file gets modified. Some times WinVN wasn't saving the NEWSRC file when it should. (dumoulin) Fixed a GPF when updating unseen articles with multiple newsgroups open. There are still some other bugs that are not fixed when reusing the same article window for multiple groups. (dumoulin) Fixed bug in article threshold menu. Wasn't allowing you to enter a number. (dumoulin) Fixed a bug where WinVN wasn't selecting the right article when selection was done using the mouse. (dumoulin) Relaxed restriction on Reset Server Protocol to allow an abort even if WinVN thinks its a bad idea. This can cause GPF's since many parts of WinVN can't be aborted, but it will help people get out of some hung situations as a last resort. (dumoulin) Fixed problems with Canceling articles. Didn't check all possible headers and failed when some header info was turned off (jcooper) Support new INI option MIMECharset which defaults to ISO-8859-1. (jcooper) Fix to MIME type text/plain. (jcooper) Fix code when sending mail that would abort the mail window if a required header was missing. (vielhaber) Updated the WinVN online Documentation. (ishido) Changed size of hostname buffer from 1024 bytes to to 256 bytes to keep from GPFing when getting hostname on some WinSock stacks. (dumoulin) Changed name of CascadeWindows to avoid a conflict in API calls of Windows95. (dumoulin) Fixed WinVN's menu's where extra seperator lines were being displayed. WinVN release .99.4: (dumoulin) Added support to track cross posted articles (configurable from the Article List menu) and support for a cache of Spare Range arrays so when article ranges grow, memory doesn't get too trashed. (dumoulin) Cleaned up all routines that did raw pointer math to offset into data structures. There are now accessor macro's to locate data. This changed practically every file in WinVN but was necessary to safely add cross posting code where article Range Array could grow dynamically. (dumoulin) Allow postings to be created that have the keyword "poster" in the followup-to header. This will send E-mail to the originator. (dumoulin) Fixed GPF if someone enters -1 in the article fetch Threshold dialog box. (dumoulin) Fixed code that calculates how big to make the posting or mail edit window. It should now calculate correctly to 78 characters if a fixed font is used (the default). (dumoulin) Added a way to track when the NewsRC file gets modified so that close or save operations don't write out the file if it isn't necessary. (dumoulin) Added support for setting the TimeZone environment variable either from WinVN.INI or the config menus. (dumoulin) Added Help Toolbar bitmap to all toobars and changed help to point to the WinVN Help file instead of the About Box (more useful). (dumoulin) Seperated spacing on the Catchup and Close toolbars when they were too close to each other. Added additional line seperators on Menu bars where they were too close. (vielhaber) Updated the WinVN online Documentation. (harris) New ToolBar binary for Catchup and Exit (dumoulin) Add a space seperator for articles saved to disk. Changed Date to conform to mailbox format and Changed year to be 4 digits (like 1995) instead of 2 digits (like 95). (dumoulin) Fixed bugs with Cancel Article code. Will now properly work if Followup-to header set to poster, validates poster information and allows for modification of the Newsgroups in the cancel. (dumoulin) Cleaned up status line messages for various menus. (dumoulin) Fixed bug that could cause a negative number of articles to be requested from the server causing GPF's. Fixed other bugs caused when int's overflow and become negative instead of turning into longs. (dumoulin) Rewrote formatting of GenSock error Message Box so people are less likely to get scared away and fire off E-mail and more likely to read message and attempt to fix things on their own. WinVN release .99.3: (dumoulin) Fix GPF where uninitialized Hdc was being used when sending mail. (dumoulin) Added ability for owner of an Article to cancel. his/her own article (ishido) Force posts to properly use Followup-to header instead of Newsgroups if available. (dumoulin) Added option to display Followup-To Header, defaults to on but can be turned off by user. (dumoulin) Added dialog menus to Edit Windows to inform user when Fonts or sizes would create lines longer than 78 characters. (dumoulin) Added option to disable saving NewsRC file upon exiting of each Group. Defaults to off. (brydon) Add status line feedback when saving NewsRC file. (dumoulin) Fixed GPF if COMDOC becomes NULL for any reason. (dumoulin) Fixed status line message on Close option. Text said Cancel Article instead of Close. (dumoulin) Made wording stronger about Authorization fields in Communications options menu being "Optional". (dumoulin) Allow PageUP, PageDown, Home and End keys to work properly in Group window regardless of the state of the Multi-Select option. (dumoulin) Fixed problem with not being able to view some articles after sorting. (dumoulin) Fixed GPF with unitialized HMENU object during Reset (dumoulin) Fixed problem with freeing a system font upon exit. (dumoulin) Fixed problem with pending I/O operations upon exit that can cause GPF's on slow networking stacks. (dumoulin) Fixed problem with corrupting memory if the number of new groups on the server is 0. WinVN release .99.2: (dumoulin) Fix GPF where uninitialized Hdc was being used when responding to articles (dumoulin) Comment out all Trace options in preparation of a Winvn 1.0 Release (dumoulin) Allow PageUp, PageDown, Home and End keys to work regardless of setting of Multi-Select option in Group Article List window (dumoulin) Fix GPF when marking text in extreemly large articles. Fixed copying of ROT13 encoded text to clipboard (dumoulin) Enable reset server protocol in instances where it wasn't previously possible to recover from a hung server connection (dumoulin) Save NewsRc anytime closing of the Group window. WinVN release .99.1: (dumoulin) allow printing of ROT13 Messages (dumoulin) partial fix of the cut/past GPF on huge articles (dumoulin) Add a simple Save NewsRC option to Network menu (rushing) message-id hashing for better threading (rushing) Use presence of 'Re: ' as a hint when reconstructing a broken thread WinVN release .93.14: (rushing) made a new hash function, rather than trying to reuse HashGroup. Changed HashGroup back to Huge. WinVN release .93.13: (jcooper) Fix Smart Filer ask on duplicate filename (jcooper) About box shows IDD_VERSION_NUMBER in static text (jcooper) Added Restore All command to Window menu and to main window Sys menu (jglasser) Fix progress bar in main window for win16 (rushing) skip '<' on message-id's in header struct. (rushing) changed HashGroup()'s argument type from 'unsigned char huge *' to 'char *' (rushing) skip over '<' character in mids & refs. make mids & refs > 30 chars unique with a 4-char hash at the end. WinVN release .93.12: (rushing) redesigned the 'orphan reunite' code in sort_by_threads() to be NLOGN instead of N squared (dumoulin) change default thread sort to THREAD SUBJECT (dumoulin) use a temp file when writing newsrc for extra protection (jcooper) fix CUT HERE lines for uuencoded-without-mime attach (jcooper) fix for wv16 decoder crash on filenames like 'abc.def.ghi' (jglasser) multiple fixes to toolbar code (rushing) threadOk check needs an extra check for hParentBlock==NULL because the code is sometimes called before an InitDoc(). (rushing) issue warning when LockLine called with hBlock==NULL (rushing) fixes to new sort by subject algorithm (rushing) cast result of SelectObject to HBRUSH to remove warnings (rushing) fix bracket typo (rushing) make the embedded wildmat code not have a magical rcs revision string. (rushing) catch errors without error codes in open_smtp_socket() (brydon) new declarations, misc fixes on several old declarations (brydon) "Sort" menu: add Thread/Subject sort option. (brydon) Record and remember user's sort option for each newsgroup. (brydon) Made ANSI, several declarations and calls fixed. (brydon) environment variable pointer fix (jcooper) don't write newsrc under certain conditions (jcooper) uncomment CalcNumUnread call. WinVN release .93.11: -- Bug Fixes (rushing) Informative message for 'too much included text' rejection notice. (rushing) SMTP mail now uses a bogus name if gethostname() fails. (rushing) Newsrc now found via environment variable. (jglasser) Disconnect button did not work if Confirm disconnect was off (jcooper) Crash if minimized when article-retrieval complete (this bug introduced in .93.10) (jcooper) Crash on Find if very long header. (this bug introduced in .93.10) (jpiraino) Memory unlocking issues (jpiraino) Toolbar fix WinVN release 0.93.10: -- Bug Fixes (jcooper) Increased max header len to 800 (helps with long references lists), and increased max entry len in composition header field to 800 (jcooper) With !NewArtWnd, click on art in one group wnd, then on art in 2nd group wnd, clicking on first art again failed to retrieve (jcooper) Only enable disconnect/reconnect once connection is really established (jcooper) Next/Prev buttons in article were not selecting the proper activeline in the parent group. ActiveLine selection out of sync with actually-displayed article (jcooper) Obtains refDoc headers immediately from doc on creation of composition window. Avoids problems if refDoc is closed before sending composition. (jcooper) Personal info dlg warns on clearing identical reply-to (jcooper) Main window paint strangeness while not connected. (jcooper) Fixed batch sends (jcooper) Changed NetHashTable to huge * (jcooper) Fixed group article-list window, missing 'n' indicator for new articles (ptirrell) Fixed Save Auth Password (again) (jcooper) Cleaned up some status-bar menu strings (jcooper) Allow news server to generate date header for postings. (jcooper) Fixed sort-by-subject to ignore leading "re:" notation (jcooper) Removed continue-mail-if-post-fails logic. Now if post or mail fails, entire send is halted (jcooper) In MultiSelect mode, Find did not properly start search from top of doc (jglasser) Fill article-list window with headers if possible (jcooper) Do not allow exit/close/quit while establishing connection. (causes GPF on return from gwinsock call) (jcooper) Include original keywords header in reply even if not shown -- New (jglasser) Selected newsgroups in main window will be automatically listed in the 'Newsgroups:' field of new composition (jcooper) Added customizable Composition Font (rushing) New alternate genasync.dll for improved performance with Trumpet Winsock WinVN release 0.93.9: -- Bug Fixes (jcooper) Fixed occasional posting bug - empty 2nd post on wrapped- text body (jcooper) Fixed crash bug in jpiraino's new IDM_POST NewsgroupsPtr code (jcooper) Handle mail addresses like "email (name(nickname))" (jcooper) Save button in article wnd now opens Save As instead of Save (jcooper) Horizontal scrollbar thumbtracking paint problems (jcooper) Thumbtrackers got stuck if held down when retrieval completes (jcooper) Fixed focus-grabbing problems during multi-article save WinVN release 0.93.8: -- New (dumoulin) Colorized toolbars -- Bug Fixes (jpiraino) char buffer size mismatches for .ini parmas fixed (jpiraino) hDC released prematurely in winvn.c (jpiraino) fix version checking for Windows95 (rushing) send 'mode reader' command when appropriate (dumoulin) fixed GPF's in printing for some print drivers (dumoulin) fixed printing of selected text (jcooper) Crash if use prev/next function in an article whose parent group has been Updated (jcooper) Fixed beeps in control dialogs. Really this time 8^) (jcooper) Rearranged composition preferences dialog to fit in 640x480 (jcooper) Memory overrun in ParseAddress caused occasional loss of Personal Mail Address (jcooper) Fixed In-Reply-To header generation in SMTP mails (was sending duplicate Organization line) (jcooper) Initiate 3d controls in time for initial newsrc/winvn.ini dialog window (jcooper) % received incorrect during Update from server (jcooper) Removed dormant 'read-only' and 'help' options from open- file dialogs (jcooper) The drive selected in the SelectPath dialog occasionally did not match the current directory shown (jcooper) Fixed Ctrl-F (Find) in article view window (jcooper) Deselect after copy in article view window (jcooper) Cleaned up some double-click-on-article-id retrieval interactions (jcooper) No longer use hourglass during post/send. (jcooper) Update From Server should not capture focus to main window WinVN release .93.7: -- Bug Fixes (jcooper) Fixed paint crash on Update from server in group window if prev TopLineOrd > new # in group (jcooper) Now allows additional headers to be entered at top of composition body text (jcooper) Fixed About menu item from main window system menu (jcooper) Crash if End key pressed in group article-list window while retrieiving headers, or during 'Update from server' if new # < old # (jcooper) Fixed mailbox header generation in multi-part posts (jcooper) Crash if lose connection while messagebox open which is followed by comm stuff. (jcooper) Window positions are now saved for Mail window, Post window, block status window and decoding thread status windows (jcooper) Window positions messed up if Save while window minimized (jcooper) I built in Pearse's splash stuff, all #ifdef'ed just so we don't lose this code. Works well when #def'ed. (jcooper) Allow right-click dragging (duh) (jglasser) More fixes for the rare toolbar problems (jcooper) Fixed CalcNumUnread - was reporting invalid #'s for never-seen groups (jcooper) If resize window, large enough to hold entire doc, should autoscroll to top (in addition to removing vscrollbar) (jcooper) Inaccurate horiz scrollbar range in articles: fixed longestline (jcooper) ViewArticle reusing a window always did SHOWNORMAL - ignoring if the window was maximized or minimized (jcooper) Confirm Reconnect question Yes/No logic backwards (jcooper) Fixed Sort by Threads menu disabling (again) (jcooper) Fixed status text of System menu "Close Alt+F4" - was "Quits WinVN" (ptirrell) Fixed Save Auth Password (jcooper) Mouse drag problem in win32 if article view window - if drag and release above the window, got reversed selection WinVN release .93.6: -- New (jcooper) New 'mark all as unseen' or 'mark all as seen' menu items in group article-list Articles menu (jcooper) Single right-click in group article-list window toggles seen (jcooper) Added 'Reconnect' option under main window Network menu -- Bug Fixes (jcooper) Reset Server Protocol should not be allowed while receiving info from server. Now prompt for reconnect instead. (jcooper) Fixed horizontal scrollbars in subscribe dialog (jcooper) Fixed WM_INITMENU messages for Win16 (jcooper) Fixed scroller thumbtrack/thumposition painting problem (jcooper) Crash on group update from server with less than original num_to_retrieve (jcooper) Better calculation of # unread articles upon opening a group (jcooper) Composition header edit controls now scroll to beginning on losing focus (jcooper) Fixed beep when tabbing between Compose header controls (jcooper) Article window clears during next/prev article retrieval (jcooper) Gray 'Update from server' when comm is busy WinVN release .93.5: (jcooper) Crash on authinfo failure (if invalid name or password) (jcooper) Arrow right in a window will only scroll if appropriate (jcooper) Next/prev etc now _do_ get grayed when you start retrieving (jcooper) Fixed if invalid Save Article name, problems with next save (jcooper) Changed status text of "Save" menu items (jcooper) Minimized article window in selected-art save should not grab focus. (jglasser) Fixed toolbar strange rare random/message dialog problem (jglasser) Toolbar connect button would become unpressed if info-clicked while connected WinVN release .93.4: (rushing) Code indenting cleanup WinVN release .93.3: -- Bug Fixes (jcooper) When doing save/decode on selected articles, now wraps to start when reaches last article in case user selected articles above starting point after operation was underway (jcooper) If empty newsrc, initializes newsrc with news.announce.newusers and news.newusers.questions (jcooper) Double-click on group title for already-opened group now activates the group window correctly (jcooper) Decoder is now more careful with MIME boundaries (fixes the netcom Dilbert problem 8^) (dumoulin) Title of Logging Options dialog was wrong (it said 'Dialog') (jcooper) 'n' group indicator goes away as soon as group opened. (jcooper) If changed Always On Top from Syscommand menu while status block window minimized -- weirdness (jcooper) Changed scroll behavior of article-list at end-of-retrieval, now scrolls to first unread article instead of last (jglasser) Fix for start-minimized problems - when start minimized, screen was messed up when the window was restored -- New features (dumoulin) New sub/unsub toolbar button (jcooper) Use the hourglass during blocking operations