CapeSoft.Com
Clarion Accessories
NetTalk
Doc Index
Version History
CapeSoft Logo

CapeSoft NetTalk
Version History

Download Latest Version
Installed Version Latest Version

NetTalk Version History

Major Version Upgrade Documents

Version 10

Version 9

 




Version 5.00
 
  • Added support for receiving of email with the HTML MIME part Base64 encoded.
  • Added: support for receiving email from mail clients that set the ContentID field for attachments (previously these would have been treated as embeds even if the Content-Disposition was not set to attachment).
  • Fixed a potential GPF when receiving email with encoded header fields.
  • Fixed embedding of images with spaces in the the file name for improved compatibility with Microsoft Outlook and other mail clients that do not allow this.
  • Added a new NetEmailSend.EmbedImages() method converts all links to local images in the message HTML to the correct form for embedding and builds the string containing the embedded file names automatically. Image embedding can now be handled with a single line of code:
        EmailSender.embedList = EmailSender.EmbedImage(messageHtml, True, '')
  • Optimized embed list parsing.
  • Added support Content-Types where the file extensions is more than three characters.
  • Added bounds checking for content type parsing.
  • Fixed: NetWebClient Post() allocating an additional 4 bytes when the posted data was larger than a single packet, resulting in an invalid Content-Length, and 4 bytes of additional data send (containing spaces).
  • Fixed: NetEmailReceive(): When receiving attachments where the mail client appended additional information to the Filename field, that additional information would be included in the file name. The most common instance of this was "; size=" being appended to the name of the attachment.
Version 4.37 (Gold) 10 August 2009
 
  • Fixed other-button error that affects IE users.
  • Fixed problem with form fields, containing + and % chars, on a form with a file upload field.
  • Fixed Multi-Proj support for Clarion 7 (library names.)
  • Fixed bug where there was a space char in unique key components, and children existed.
  • Added support to NetWebSource so if there's a timer, and the procedure is a child, then it'll update correctly.
  • Added no-cache header stuff to generated error page.
  • Added template extension for PDF-Tools report version 4.
  • Enabled template options to set classes for buttons in a browse.
  • Added optional Class parameter to CreateImage method
  • Fixed bug where connection was closed before sending browse click response.
  • Fixed support for spanning header columns with server-side sorting
  • Added width and span parameters to CreateSortHeader method

Version 4.36 (Gold) 9 July 2009
 
  • Cosmetic template bug for ABC-In-Legacy support fixed.
  • Added option to Close Apps control template to set INI name.
  • Added detection for MSIE 8 as distinct from MSIE 7.
  • Fixed bug where invalid xhtml characters were included in creation of JavaScript browse object.
  • Fixed error with selection-by-radio browse.
  • Set fields to clear alert_div even if auto-dict validation is off.
  • Added optional Class parameter to CreateImage method.


Version 4.35 (Gold) 22 June 2009
 
  • 'Buttons' class option on CSS tab for browse and form deprecated
  • Fix bug where CommentsClass on a form was overridden by global setting.
  • Added iphone as a recognized "mobile" agent.
  • Worked-around bug in IE7 and IE6 that does not set Referer: header when doing a window.open.
  • Fixed template bug on Other buttons where action set to "Use Button Name".


Version 4.34 (Gold) 16 June 2009

 
  • Fix for possible GPF in SSL close code.


Version 4.33 (Gold) 9 June 2009
1)

NetWebServer

  • Fixed bug when using a form embedded on a static page, and the form was submitted with invalid data multiple times.
  • Added optional CLASS parameter to CreateSortHeader method.
  • Added Capitalize method. This enforces CSS style text-transform capitalize. Not it does NOT LOWER any characters.
  • Added template setting to specify port which an unsecure object should redirect to.
  • Fixed bug with incorrect tab selected after form validation if hidden tabs exist.


Version 4.32 (Gold) 22 May 2009

Release build, and first gold build of NetTalk 4.

Version 4.31 (Beta)  15 May 2009

1)

NetWebServer

  • Note: The netweb.css file, and netweb.js file have been tweaked quite a bit in this release. If you have customized versions of these files you may want to compare the changes and apply where necessary to your files. The .JS changes are mandatory, the .CSS changes are, as usual, optional.
  • Updated: Example: Buttons (28) to show server side code on a button. Includes refreshing a cell, row or browse.
  • Add: New example: WScriptActiveX (45)
  • Add: New example: Timers (46)
  • Add: New example: Pages (47)
  • Add: New example: Tagging (48)
  • Add: New example: Locators (49)
  • Add: New example: MultiRow (50)
  • Add: New Example: Validation (53)
  • Updated Example 40 with Content-Disposition example.
  • Updated Example 47 with Form called directly from static page.
  • Updated example 20 (Multi-DLL) and extended docs.
  • Add: MouseOver feature in Browses. The row under the mouse is visually highlighted (as distinct from visual highlighting used for selections)
  • Add: Support for multi-lined browse records.
  • Add: Edit-In-Place on browse columns added.*** This may cause compile errors when upgrading. Please see note here.  [still todo : Lookup button functionality]
  • Add: 'Other' buttons in browses can now trigger server-side code.
  • Add: Support for browse headers to span multiple columns.
  • Add: Support for browse data to span multiple columns.
  • Add: Removed extra browse column 1.
  • Add: Small animated "busy" graphic when browse is doing an Ajax update. *** NOTE section below on "Headers" ***
  • Add: Copy button and SmallCopy button to browses. Does an "Insert" but using the highlighted record to prime the fields.
  • Add: SmallOtherButton property and template settings.
  • Add: ABC Class support to NetWebBrowse, NetWebForm and NetWebSource procedure types.
  • Add: Optionally allow xHtml in Browse headings and sub-headings.
  • Add: Page title on browse and form defaults to header if blank. *** This may cause compile errors when upgrading. Please see note here.
  • Add: Allow xHtml setting for Form "Display" fields.
  • Add: Option to suppress children if browse called as a lookup.
  • Add: Clear button to Locator options
  • Add: Ability to set the browse table width in pixels.
  • Add: Field Validation setting for DROP controls on forms.
  • Add: Ability for XP-TaskPanel menu, to specify if the template defaults to open, or closed.
  • Add: Security Level support has been extended to >= as well as <=.
  • Add: Form fields validation tab has a new setting; "Immediate Validation". You can turn this on, off, or leave as Default. The default for the form is set on the Advanced tab of the form (and is on by default.)
  • Add: CSV files set the Content-Type to Excel.
  • Add: New form-field-type "Button". Same as Form-Field-Type "Display" with "Button" ticked on.
  • Add: Checkbox to allow xHtml in Headings & SubHeadings on Forms.
  • Add: checkbox (on Advanced tab) to turn off "auto-comment-suggestions". (Setting is on by default.) You can suppress comments on a single field by setting the comment to ''.
  • Add: DEFER attribute added to all <script> sections. Kudo's to Brian Ekeland for researching this.
  • Add: Before </head> embed added to NetWebPage.
  • Add: Sounds for valid and invalid field entry supported.
  • Add: Focus is reset to field if field is invalid.
  • Add: Specific support for Google Chrome browser.
  • Add: Support for setting case (Upper / Lower / Capitalize) for entry fields on form.
  • Add: Allow Hot-Fields from related files on a dropdown. Value & Desc fields can also come from a related file.
  • Add: Read-Only condition to individual radio buttons.
  • Add: Condition to suppress forms, browses, pages etc.
  • Add: Support to suppress DET "Data" tables.
  • Add: Security tab added to browse column settings.
  • When doing an Insert, in SQL, the browse returns to the most recently added record.
  • Change: NoWrap attribute added to browse and form styles. This prevents text from wrapping. Feel  free to override in your own styles.
  • Change: Improved CSS for Browse table - including Image background for header bar.
  • Change: Optionally allow a read-only lookup field on a form to display the "description" instead of  the "Code".
  • Change: Properties ImageW and ImageH in NetWebButtonGroup changed to ImageWidth and ImageHeight respectively to avoid conflict with Pro-Scan.
  • Change: Embed points in NetWebBrowse better organised.
  • Change: Improved template support for Checkbox values.
  • Change: Deprecated "not in view" template option on browse.
  • Change: Re-arranged template settings for buttons on a form to make it neater.
  • Change: Forms embeded on static (or NetWeb) pages initialize correctly when the page is not called from a browse.
  • Change: Browse Submit buttons allow you to set the "Action", rather than just using the button name.
  • Change: Generated one routine per form tab. This allows for very large forms (current largest I've seen is 180+ fields).
  • Change: On a form, the Field Priming has moved to it's own tab.
  • Change: InitForm routine in Memory forms should always be called at least once.
  • Fix: Horizontal lines on forms in FireFox restored.
  • Fix: Width of Dropdown entry fields respects setting.
  • Fix: Lookups work when lookup procedure is a form containing a browse.
  • Fix: String fields, with Boolean validation in dictionary, generate correctly.
  • Fix: Field Priming expressions are only calculated once.
  • Fix: Fixed a bug that cause the browses to break when used by FireFox 3. You can retro apply this bugfix to older NetTalk programs without upgrading NetTalk. See here for details.
  • Fix: Style applied to comment in form, even if comment is Spanned.
  • Fix: Dynamic Form Fields, with formatted pictures, improved.
  • Fix: _jsok method can now be called safely multiple times on the same string.
  • Fix: Special characters in Form Field Type "Display" handled correctly.
  • Fix: When using SQL backends, the form often "forgot" where to return to in the browse.
  • Fix: ReadOnly on Text fields (when HTML) now works.
  • Fix: Work-around for frame borders not visible in IE.
  • Fix: After specific lookup sequence, old checkbox field values might be restored.
  • Fix: Contains and BeginsWith Locators were broken.
  • Fix: Browse columns conditional settings now allow URL to Form setting.
  • Fix: Radio options on a form have unique ID's.
  • Fix: XPTaksPanel menu items would appear even if must be logged in was set to 1.
  • Fix: Two drop-downs, for the same field, generated VIEW names that were not unique.
  • Fix: Decoding __ to : was being applied to field contents, not just the field name.
  • Fix: Added / to name of scripts and styles to make the location fixed, not relative. Allows for static pages in other folders below the web folder.
  • Fix: Unknown Variable %translate could appear in some legacy apps when going to embeds.
  • Fix: CheckForDuplicates method not called if record is already invalid.
  • Fix: Browse column widths weren't being set correctly.
  • Fix: bug setting TinyMCE widths.
  • Fix: A browse spans all the columns on a form, even if the form has more than 3 columns.
  • Internal: Parameters for CreateSortHeader method changed.
  • Internal: Parameter to CreateTextArea method added.
  • Internal: Parameter to _jsok method added.
  • Internal: StoreValue method takes optional ValueName parameter.
  • Internal: _CopyValueToSession method takes optional SessionValueName parameter.
  • Internal: New method, FormReady
  • Deprecated: "Maintain Sessions" on Menu and Frameset has been removed.

 

2)

Other

  • Add: NetBase64DecodeEx & NetBase64EncodeEx functions
  • Add: NetWebSMS Class, which allows SMS (Text) messages to be sent via an HTTP connection. Currently supports sending via Clickatell.
  • Add: NetWebSMS method: BuildSMS(), SendSMS() and PageReceived()
  • Change: WebClient.EncodeWebString method now takes optional length parameter.
  • Change: NetWebClient, _CallPageReceived method, checks for https and http.
  • Change: WebClient Cookie property extended to 4K.
  • Change: WebClient Referer property extended to 4K.
  • Fix: NetRefresh for Legacy apps.
  • Fix: FTP Control template sets passive mode flag correctly, and initalises ftp object correctly when in ftp mode.
  • Fix: NetWebClient.DecodeWebString method had limits to the length of string that could be decoded. (Thanks to Mark Goldberg for coding the fix.)
  Notes: Possible compile problems when upgrading to Version 4.31

1. Local Variables in the TITLE of a page

It's good for web pages to have a Title. But it's a pain to have to fill in the Title field for each browse and form. So starting with version 4.31, if the Title is blank, then the page "Header" setting will be copied into the title field for you. Alas, this can cause a problem if your Header is not a constant string, but is a variable. The Title field is generated into the WebHandler procedure, and if you have used an expression, such as a session value, or local variable, then you'll get a compile error when compiling the Web Handler procedure.

Solution 1: For the offending procedures, explicitly set the title different to the header. Set the title to a constant value, not using a local variable. At the very worst set it to '' (quote quote).

Solution 2: If your NetTalk Web Handler object (ie the NetTalk extension to your WebHandler procedure, has the This Object Name set to p_web rather than ThisNetWorker, then you can still use Session Variables in the title.

 This is the NetTalk extension in the WebHandler Procedure

2. Duplicate Use Equates for browse columns.

Browse columns, like FormFields, have a Use Equate setting. This setting should be unique for each column, however in earlier versions of NetTalk settings that were not unique did not cause a problem. In version 4.31 the setting must be unique. This mostly affects browses that have multiple "Other" buttons.

Solution: If a browse procedure generates a compile error then make sure all the columns in the browse have unique equates.

3. Menus Start Open

If you are using xpTaskPanel menus then there is a change you probably want to know about. Although not a compile error, it is sufficiently different that you'll notice it immediately. In version 4.30 and before the xpTaskPanel always opened the top menu, and the others started closed. There is now an option on the Menu template that lets you specify, for each menu, if the menu should start Open, or Closed. This defaults to ON so ALL menus start Open. Adjust the template settings if you want to change this.

4. Embed code for each browse row doesn't run everytime

In version 4.30 and earlier there are 2 embed points right next to each other in the Browse. These are called Validate Record, and SetQueueRecord. In theory, ValidateRecord is used to filter out records, and SetQueueRecord is used to prime calculated row variables, or perform other Row manipulations. However since they were together code which should have been in SetQueueRecord was in ValidateRecord and vice versa.

In 4.31, these embeds have move to different places in the code, so their meaning becomes important. If you have code in SetQueueRecord that should be in ValidateRecord, or vice versa, then you need to move it to the correct embed for it to work properly.

5. Busy Icon, and Alert messages on Browses

In Version 4.31 a small "busy" graphic has been added so that when the Browser asks for an asynchronous update from the server, there is a visual indication that the browser is waiting. In addition a variety of "entry input issues" can now trigger a message to the user (typically written in RED).

In order for these to work, some extra stuff has been added to the "generic page" when a Browse or Form is called. Typically a NetWebPage has a <!-- Net:SomeHeader --> tag in it. So NetWebSource procedures, which contain Headers, now also contain a setting
"This is a Header".

In short, go to your NetWebSource procedures, which are headers, and tick on this option.

 


Version 4.30 (Beta)  17 March 2008

1)

NetWebServer

  • Add: Memory Form Variables are automatically copied into the Session Queue when a form is "Save"ed
  • Add: New option when priming fields on a form, you can limit priming to cases where the SessionValue does not already exist. Useful for priming fields the first time they are encountered, but "remembered" thereafter.
  • Add: New Example: LegacyGraph (41)
  • Add: New Example: SOAPServer (42) - Requires xFiles version 1.61 or later
  • Add: New Example: AccessLevels (43)
  • Updated: Example: File Download (40) - Blobfile structure changed.
  • Updated: Doc for creating Secure web sites has been updated.
  • Add: FILE protocol to NetWebPage. Allows for serving static files, from outside the web folder, easily. Beware of security implications though.
  • Add: Support for extension templates (like XFiles) that generate objects in NetWebPage.
  • Add: Border width property for Framesets.
  • Add: Ability to suppress PressedButton parameter on browse buttons
  • Add: Support for arrays when generating field validation based on C6. (Arrays are only supported in C6)
  • Add: New method, p_web.GetSessionIP()
  • Add: Session now (optionally) locked to IP address.
  • Add: More embed points to Validate routines in the Form.
  • Add  LogPath and UploadsPath properties to server. (see Paths)
  • Add: SessionLevel property - use p_web.SetSessionLevel and p_web.GetSessionLevel.
  • Add: Template support for Session levels to Advanced tab of all templates.
  • Add: Support for ViewOnly to NetWebYear
  • Add: Embed points if "More Assignments" done after lookup.
  • Add: WebLogName property to NetWebServer class. Allows you to set first part of weblog file name.
  • Add: AddLog method added to WebServer class. This adds the logging on the window, and (optionally) onto disk. You can call this method from inside the WebServer class using NetWebServer.AddLog('whatever'), and you can also call it from inside one of the other procedures using p_web.AddLog('whatever')
  • Add: Packet variable in Forms adjusts to size of largest text field if text field > 15K.
  • Add: Smarter setting of SetFocus when tabs are conditionally excluded. Also JavaScript errors caused by incorrectly setting focus to fields that do not exist are suppressed.
  • Add: On Form, can now set the CSS class for TabHeading different to MainHeading.
  • Add: p_web.site.PageTitle property. p_web._title property removed. Template setting for setting site-wide page title added to WebServer extension.
  • Add: If a browse on a form, set to "Send new value to server" then the unique ID of the browse is now automatically stored in the session queue.
  • Add: site.PromptClass property, defaults to FormPrompt, is the default CSS class for prompts.
  • Add: Content-Length is set for static files being sent.
  • Deprecated UploadsDir and LogDir properties.
  • Change: Hard coded settings of ReplyContentType not use _GetContentType method.
  • Change: Example 40 - Serve Document procedure now handles all file types.
  • Change: Re-arranged the validation of fields, based on dictionary settings, so the correct tab is chosen if a field fails.
  • Change: Validation of Auto-Numbered fields, if the form is not pre-auto-numbered, is suppressed.
  • Change: If a record-not-available message is generated when going to the form, the error now displays on the client, not the server.
  • Change: Browse navigation uses POST rather than GET to avoid GET length limit in IE.
  • Fix: Cancelling from a Lookup window could result in child-browses losing their Insert/Change & Delete buttons.
  • Fix: Handled & and % characters in strings sent asyncronously back to a form.
  • Fix: %Family was incorrectly set for NetRefresh in Legacy apps.
  • Fix: In some cases an unknown %Translate were possible.
  • Fix: If a form was embedded on a NetWebPage than many of the routines (InitForm etc) did not get called correctly.
  • Fix: Must-Be-In-List validation was not, but needs to be, Case Sensitive.
  • Fix: Template code handles dict setting for MustBeInList where no choices are provided.
  • Fix: Turned "Must Be In File" validation back on.
  • Fix: Moved SessionPic outside IF statement in SetPics routine
  • Fix: Better support for deformatting @P pictures.
  • Fix: Duplicate check while doing an auto-incrementing Insert suppressed.
  • Fix: Cascading Delete Restricted Parent against Child.
  • Fix: Checkboxes set as Read-Only (or hidden) could be cleared when the form is saved.
  • Fix: Improved Green baring on browses using the Radio button selection method. Note that the Greenbar option has been removed from the template, if you wish to suppress green baring then set the One-Color and Two-Color the same on the CSS Classes tab.
  • Fix: Other Buttons in a browse, that followed a disabled-other-button were also disabled.
  • Fix: On Insert, After initial validation fails, if a checkbox is changed fro 1 to 0 the change was forgotten.
  • Fix: Browse color overrides not set correctly if browse opened first with no records.
  • Fix: Added SSL code to legacy template.
  • Fix: Add Login Required code to NetWebYear template
  • Fix: Browse-Inline buttons didn't respect the "Only call form if user logged in" setting.
  • Fix: Example 31, Browse Invoices, Filter when a child of UpdateCustomers was incorrect.
  • Fix: Tips for the Browse header weren't being Xhmtl validated.
  • Fix: In an incoming GET / characters after the ? were being flipped to \.
  • Fix: XHTML embedded "inside <head>" did a SendPacket, before the HTTP header had been sent.
  • Fix: CreateText method no longer has limit on length of the field.
  • Fix: If "Allow XHtml" was on for a browse column, but the picture was set to something other than '' (quote quote) then the html would not be applied.
  • Fix: In IE hidden form fields now "compress" just like they do in FF.
  • Fix Some browses could get duplicate records visible in some circumstances.
  • Fix: The .StoreValue method now takes Value Picture, and SessionValue Picture into account when storing the value.
  • Deprecated: Force Browse to fetch whole page option.
  • Tweak: Extra GET removed from _LoadRecord method.
  • Internal: _ParseFileName method name changed to _ParseURL
  • Internal: _TouchSession no longer calls _NewSession

 

2)

Other

  • Add: Option on global extension, advanced tab, to suppress call to CloseCallbackWindow.
  • Change: NET:64BaseMaxDecodedLength and NET:64BaseMaxEncodedLength extended. Base64 functions can now take (unencoded) strings up to 16K large.
  • Change: WebClient class respects .ProxyServer and .ProxyPort properties.
  • Fix: Rare possibility of leaking socket handles.
  • Fix: NetAuto compatibility with Vista added.
  • Fix: If NetBase64Encode, or NetBase64Decode were called with illegal length parameters a GPF was possible. Now the function simply terminates when the maximum length is reached.


Version 4.29 (Beta)  5 September 2007)

1)

NetWebServer

NOTE: Pictures now apply to Display fields. If you have used long display fields, you may need to set the picture to '' to suppress it clipping the string.

  • Add: Support for GlobalErrors class (for those who use the Procedure name from there)
  • Add: new example 39 - integrating with CapeSoft MessageBox
  • Add: new example 40 - demonstrates serving static files from BLOB's. Also demonstrates serving static files from folders other than the web folder.
  • Add: read-only option to Drop controls.
  • Add: property for "required" comment, p_web.Site.requiredText.
  • Add: Support for Insight Graphs in Legacy web servers added.
  • Add: Support for "Send new value to server" added to "Display" Form fields (Buttons, Images and Hyperlinks) even if the form field also has a URL.
  • Add: Auto-Complete option added to String and Date Form fields. Auto-Complete is automatically disabled if the field is dynamic, or is a password. Auto-Complete is optional to the end user, who can turn it off in his browser.
  • Add: Report procedures can be called as functionname.pdf as well as just functionname.
  • Add: Dictionary validation (on the whole record) has been added to the ValidateRecord routine.
  • Add: Before doing an Insert, or Update, Non-Autonumbering Keys are checked to see if a Duplicate will be triggered.Change: Ability to set CSS class for Display fields on form (without having to fill in Display Text).
  • Change: Client-Side tab simplified a bit. Move "refresh: Prompt   Value  Server" into "Reset" list. Once done the options to specifically reset itself disappear.
  • Change: When the browse is called as a lookup, it's a lot smarter about what record it jumps to.
  • Change: All form elements (prompts, values, comments) are wrapped in a DIV which seems to solve some of the layout issues. In the past only dynamic form elements were enclosed in a DIV.
  • Change: Forms (containing a browse) can now be used as a Lookup URL. This allows for complex filtering on lookup browses. However note that none of the form fields on this lookup page should be a STRING with LOOKUP of it's own. In other words a lookup inside a lookup is not allowed.
  • Change: Hand-code HTML tabs changed to XHtml, since that's what it needs.
  • Added parameter to .RenameFile method, makes moving incoming files easier.
  • Fix: Browse Delete button could get invalid "Action" in some cases.
  • Fix: Add D06 and D02 to supported date pics (in addition to D2 and D6)
  • Fix: If a form field spans the prompt/value/comment columns then the prompt is top-aligned, not bottom-alligned.
  • Fix: Text fields can now be used dynamically (ie Send new value to server).
  • Fix: Before Div and After Div html embed points
  • Fix: Setting the Comments Class blank on a form could cause a compile error.
  • Fix: Headings, and Sub-headings can have special chars (eg <)
  • Fix: Translation added to Sub-heading on Browse.
  • Fix: If Allow Unfilled is on, then disabling of Next & Last buttons failed at end of file.
  • Fix: Disabling of buttons under IE just hid the graphic.
  • Fix: Blank, unfilled, lines did not take conditional columns into account.
  • Regression: fix use of %nFieldFile 
  • Regression: automatically format Display fields if picture set in dictionary.
  • Regression: a few examples needed a "touch" to compile correctly.

    to do: prime local variables when form set to memory.
    move local variables to session variables when form is "OK"d? 
    browse buttons

 

 



Version 4.28 (Beta)  9 July 2007)

1)

NetWebServer

  • Add: New method, GetHeaderField
  • Add: Div around Generated Form code.
  • Add: Ability to set Div name for Browse, and Form Procedures.
  • Regression: Locator on default sort order (when it has a picture set) corrected.
  • Regression: Issue with changing sort orders on browse fixed.


    to do: prime local variables when form set to memory.
    move local variables to session variables when form is "OK"d? 
    browse buttons
 




Version 4.27 (Beta)  6 July 2007)

1)

General

  • New options in the NetEmailSend class: NetEmailSend.OptionsContentType  and NetEmailSend.OptionsMultiPartContent
2)

NetWebServer

  • Add: Support for Clarion's ABC translator, and the ADI Translation template, for
    Global button text, Form headings, Form prompts, Browse column headings,
    This work contributed by Ubaidullah Nubar
  • Add: This form called as Lookup option to Advanced tab of Browse. Use this when creating WebForms which contain a Browse, and the Browse must have a Select button. [work in progress]
  • Add: Thread number now displayed in DebugView if you use p_web._Trace()
  • Add: Can now set the "must be logged in" setting for multiple procedures from the WebHandler procedure settings.
  • Add new method p_web.StoreValue('name'). This copies the "name" variable in the Value Queue to the Session Queue, if (and only if) it exists in the Value queue.
  • Change: In Browse, Picture now applies to "Display" field (if set) or to "Field" (if set). Before Picture only applied to Field.
  • Change: Deprecated ProcessBrowse and ProcessForm methods.
  • Fix: Browse columns can now locate on non-string pictures
  • Fix: Previous button now disabled in more cases where no previous records exist.
  • Fix: Code to determine primary sort order (to see if it matches a column) is smarter.
  • Fix: Calendar code is now completely self contained (no startup code required) so calendar field can be shown/hidden dynamically and lookup still works.
  • Fix: Locator field could get lost if a range was set.
  • Fix: "Server Code" button added to Client-side tab for Browse fields in a form.
  • Fix: Regression with Chrome menu in IE 6 with Icons on the menu items
 




Version 4.26 (Beta)  June 2007)

Shameless Plug: John Hickey of Positive Software has launched NetTalk Central web forum where NetTalk users can hang out, swap tips and help each other. Although not affiliated to CapeSoft we support this venture and encourage users to check out the forum for themselves.
1)

General

  •  "Smart Generate" option added to "Classes" tab for all Netsimple objects.
    This only applies to Legacy apps, and should only be ticked on in Clarion 6 or later. This option will make the generator generate the NetTalk object into newer (ABC) embed points, which means the generated code is smaller in Legacy projects.

    NOTE: If you are making a Web Server procedure, using the Legacy templates, then make sure this switch is ON in the WebHandler procedure.
1) NetWebServer
  • NOTE: the latest Web folder is installed to \clarion6\3rdparty\libsrc\netweb
    Copy this to your application folder after installing the NetTalk update.
  • Add: Support for Legacy report procedures, and (I think) CPCS report procedures. See example.
  • Add: Forms now have a variable, loc:act which is set to either InsertRecord, ChangeRecord or DeleteRecord. Expressions can use this to determine current form action.
  • Add: Ability to override CSS class for Prompt and Comment for individual form fields.
  • Change: Made blank tab headings more visible in list of tabs.
  • Change: .SetSessionPics, and .SetPics methods have been retired. Replaced with SetPics routine in form.
  • Add: Translation for the "Locate" prompt can be set in WebServer procedure, Advanced tab.
  • Add: Embed point into menu routine.
  • Add: New Short-hand method names, GSV and SSV for GetSessionValue and SetSessionValue respectively. Use either short, or long form.
  • Add: GetSessionValueLength method to return length of Session Value.
  • Add: GetValueLength method to return length of parameter in Value queue.
  • Add: New examples, 38 (Legacy) and 39 (LegacyReports) added.
  • Update: Chrome menu script updated to version 2.01
  • Reorganised docs a bit.
  • Fix: Could generate code for "SmallOtherButton"
  • Fix: "highlighted record" problem when Last or Previous pushed.
  • Fix: Values getting dropped when a lookup is done.
  • Fix: DATE and TIME data types were being treated as Alpha, not Numeric.
  • Fix: For time fields that were > 12:00, but didn't include am or pm.
  • Fix: Handled empty packets (with just a header) sent from a NetWebPage. Typically when sending a PDF or other static file from a NetWebPage.
    ** Those Who attended the World Tour, and added code to work around this issue can now remove the work around code **
 


 

Version 4.25 (Beta)  May 2007)

1) NetWebServer
  • NOTE: the latest Web folder is installed to \clarion6\3rdparty\libsrc\netweb
    Copy this to your application folder after installing the NetTalk update.

  • Add: New Page type "Other" added to NetWebPage template. Allows developer to set content type, HTTP header
  • Add: Option to override PageHeaderTag and PageFooterTag on Browse and Form templates.
  • Add: SetQueueRecord embed point to NetWebBrowse (same place as ValidateRecord embed.)
  • Add: Embeds to Menus, and MenuItems generated code.
  • Add: Fast-Style selection for Browse column totals.
  • Add: Span ability to Totals
  • Add: custom text ability to Totals.
  • Add: Various new embeds in Browse routines.
  • Add: Embed point in browse for overriding OnRowClick javascript.
  • Add: New example (36) which shows HTML editing.
  • Update: Example 4 updated to show variable URLs for FrameSet.
  • Update: Example 13 updated to show calling a report, from a browse, with the browse row acting as a filter.
  • Change: changed images\ in _CreateSortHeader to images/.
  • Change: Range fields are automatically added to the Sort order (if they aren't there already) to improve browse performance.
  • Regression fix: Auto-Lookup on Insert was broken.
  • Fix: 12:00AM now correctly translates to 0:00, not 12:00.
  • Fix: %AllowUnfilled error if web server is Legacy based.
  • Fix: Some buttons on IE did not disable correctly.
  • Fix: Tabbing issue in IE
  • Fix: Local variables on form could have an incorrect "size" parameter.
  • Fix: Added encoding to tool tips
  • Fix: Added encoding to sort header text
  • Fix: Problem with lookup loosing previously primed form fields.
  • Fix: Cancel button on form did not get correct JavaScript.
  • Fix: Position locator on descending sort orders.
  • Fix: When locating selected record was not always first row located.
  • Fix: If display field had a form field set, and text, then both were displayed. Now Text overrides form field.
  • Fix: JavaScript error which occurs in browse after resorting header.
2)

General

  • Update: LinkPoint example to work with the current version of xFiles and ReadMe.txt updated.

Version 4.24 (Beta) 7 April 2007)

1) NetWebServer
  • NOTE: the latest Web folder is installed to \clarion6\3rdparty\libsrc\netweb
    Copy this to your application folder after installing the NetTalk update.

  • Add: Layout option to NetWebForm to suppress Prompt/Value/Comment columns.
  • Add: Option on individual Form Fields to "span" Prompt/Value/Comment fields.
  • Add: Ability to explicitly set form table width.
  • Change: Removed use of onLoad event, and swapped it for an embedded script, just before </body>. This removes the complications from using this event. However users of NetTalk in Static Pages should review the updated doc here.
  • Change: Example 25 extended to show browse, and child browse, inside NetWebForm. (Update Customers).
  • Change: Timer on NetWebSource template changed from 100'ths to 1000'ths to be consistent with browse.
  • Change: Extended MAXLENGTH for Time fields to always allow space for am/pm
  • Change: For time fields can use a / p instead of am/pm.
  • Change: All template prompts which are for a CSS Style name now say "CSS Class" rather than "Style".
  • Change: Form Field Styles "inherit" if they are entered with a leading space character.
  • Change: Internal change to way \ is encoded in _jsok method.
  • Fix: Removed ToolTip from calls to CreateStdButton
  • Fix: anArgs error in Javascript
  • Fix: Date Fields didn't generate Callback code correctly if only "Update Value on Server" was ticked.
  • Security Update: Larry Sands discovered this paper on JavaScript Hacking. NetTalk is currently NOT vulnerable because it is built on Rico. However to avoid the vulnerability from appearing in other code you might include, all Ajax requests MUST now include a SessionID cookie. This is done automatically, so there's nothing for you to do.
2)

General

  • NetNewsReceive class updated to support XOVER command.

Version 4.23 (Beta) 26 March 2007)

1) NetWebServer
  • NOTE: the latest Web folder is installed to \clarion6\3rdparty\libsrc\netweb
    Copy this to your application folder after installing the NetTalk update.

  • Add: Support for tooltips (most of the work done by Chris Cordes.)
  • Change: Right-Justify option added to Form Field type "Date".
  • Update: To NetTalk Deployment document.
  • Change: Include Styles before Scripts when using <!-- Net:c:head --> tag.
  • Change: Show FormFieldType in list of form fields.
  • Change: Images are generated with AbsMiddle if the browser is Firefox.
  • Fix: Browser Timer was broken.
  • Fix: Lookup fields with a picture set was broken.
  • Fix: XSL files set content-type to text/xml
  • Fix: Div to allow embedded browses to update form.
  • Fix: Dynamic update of form fields where field equate <> form field name.
  • Fix: Removed $A is undefined error from prototype.js
  • Fix: Javascript Error when line-item in child browse clicked.
  • Fix: Added DocType to MakeErrorPage method.
  • Fix: If browse pages had an alternate name, they didn't work when set as children.
2)

General

  • Install script tweaked to make it smaller.
  • FTP timeout support completed.
  • Added MSVCR71.DLL to the install set. This is required by the new SSL DLL's. If you get Error -73 "SSL Could Not Load SSL DLL's" then this file is probably missing from the machine.

Version 4.22 (Beta) 21 March 2007)

1) NetWebServer
  • NOTE: the latest Web folder is installed to \clarion6\3rdparty\libsrc\netweb
    Copy this to your application folder after installing the NetTalk update.
  • Add: More embed points
  • Fix: Regression with forms embedded on pages.
  • Fix: Added ; to bodyOnLoad.

 

 
2)

General

  • SSL Libraries updated to v0.9.8e (built 23 Feb 2007)
  • Fix: Adjusted FTP code so that it doesn't timeout unnecessarily on large files.

Version 4.21 (Beta) 20 March 2007)

1) NetWebServer
  • NOTE: the latest Web folder is installed to \clarion6\3rdparty\libsrc\netweb
    Copy this to your application folder after installing the NetTalk update.
  • Add: "Right Justify" option for entry fields.
  • Add: Ability to override CSS class for form fields on an individual basis.
  • Add: "Server Code" button to template, just after the "Send value to Server" checkbox.
  • Add: Buttons on a form are automatically disabled and refreshed after being pressed (if "Send New Value to Server" is ticked on.)
  • Add: Various Embed points.
  • Add: Better handling of @N picture types on Form.
  • Change: (Internal) form class code is simplified by using class concatenation techniques.
  • Change: Calculator example to show more techniques.
  • Change: File Upload example to show network logging.
  • Update: Documentation of examples.
  • Fix: Drop-down menus regression.
  • Fix: Regression breaking browse buttons if page is back-filled (ie last page).
  • Fix: Height of Taskpanel border was not being correctly observed.
  • Fix: PageBody Css class was wrong case (css names are now case sensitive).
  • Fix: If form is not the parent then validation failure returns to the parent.
  • Fix: Regression if override ButtonClass not set.
  • Fix: Problem with CreateImage if URL contains backslashes before the ?.

 

Version 4.20 (Beta) 12 March 2007)

1) NetWebServer
  • NOTE: the latest Web folder is installed to \clarion6\3rdparty\libsrc\netweb
    Copy this to your application folder after installing the NetTalk update.
  • Include: Example 34, missing from version 4.19
  • Add: Example 35, showing time fields.
  • Add: Ability to override "onLoad" JavaScript for a net web page. (see advanced tab).
  • Add: Template overrides for inline Browse buttons.
  • Add: Ability to set browse colors globally (Web server procedure, styles tab.)
  • Add: Ability to set browse greenbar, and highlight colors (on Browse styles tab) - note these colors cascade onto children.
  • Change: Smart time reformatting on form fields.
  • Change: Made blank line after form & browse heading and sub-heading optional.
  • Change: In Chrome menu, allow developer to override div name.
  • Fix: Tiny_mce.js wasn't included properly in all.js
  • Fix: Regression. Returning from child-form, and child-browse contained incorrect filter.
  • Fix: Handled very long browse lines.
  • Fix: Dynamically hidden fields are no longer validated.
  • Fix: Regression where child browses displayed incorrectly as parent opened.

 

Version 4.19 (Beta) (8 March 2007)

1) NetWebClient
2) NetWebServer
  • Change: On a Form on the Date type. The option to Refresh Window When Date Changed has been deprecated. You should use the Client-Side tab instead. If you get a warning during the Generate then go to the form, and untick the option.
     
  • Add: New example 34, shows dynamic fields on a form for calculator type screens.
  • Add: Buttons on a form support "client-side" updates.
  • Add: Support for editing HTML on a form using the TinyMCE editor. (See HTML checkbox for Text fields).
  • Add: Escape method.
  • Add: Implemented MaxLength attribute for form fields.
  • Add: Pages are now more compliant with XHTML spec. (ie XHTML DocType)
    NOTE: Style names (CSS names) are now Case Sensitive.
  • Add: Implemented Green-baring on drop-down form fields.
  • TIP: Note that drop-down form fields have a HEIGHT option. If this is set then the drop-down appears as a single-column list box.
  • Add: Fixed Pitch as a common browse column style.
  • Add: Support for multiple form fields on the same row on a form.
  • Add: Form type "Wizard".
  • Add: Ability to hide, and unhide, form fields based on other form field values.
  • Add: Hot Fields to Form field type "Drop".
  • Add: Support for Multiple option in Select lists.
  • Change: Added a DocType to the generated pages.
  • Change: DSP function in JavaScript only disables submit buttons if target is set to self.
  • Change: Session, and Value queues now accept (and return) data of unlimited size.
  • Removed: Some obsolete, unused, methods.
  • Fix: Passing a + in the URL of a GET or in a cookie, was mis-decoded as a space.
  • Fix: Checked for nulls in the RemoveElement javascript function.
  • Fix: If auto-lookup fields on a form were not on the first tab, then in some cases code was not generated for them.
  • Fix: Extended packet size in RegisterDiv method.
  • Fix: Added more SendPacket calls to menu, allows for bigger menus.
  • Fix: Conditional Browse filters, when using a file relationship, with a String field.
  • Fix: Secure page redirect missing a parameter.

Version 4.18 (Beta) (19 Dec 2006)

1) General
  • Fix: Derived NetTalk methods had RETURN statement being generated below the Procedure Routines.
2) NetWebServer

My thanks go to Jens Eden, Marius Røksund and Ubaidullah Nubar who assisted tremendously with suggestions, and bug reports during the creation of this build. Thanks to my regular testing team remain, as always, a key part of making sure the WebServer functionality continues to grow at a fast pace.

  • Feature: Explicit support for mail & link buttons in browse, and on form. (See new example 29)
  • Feature: Implemented static-page-pre-compression support.
  • Feature: Added option to combine all common js and css files. (Means faster load time for first page.)
  • Feature: Added "Session Timeout" as a template option - WebServer procedure / Settings / Advanced tab.
  • Feature: Added Hyperlink-to-Form ability to browse columns. (See Example 30)
  • Feature: Added options on Form Layout tab to explicitly set form column widths.
  • Feature: Added option to Browse template to allow explicit setting of browse column width.
  • Feature: Added support for Timer to browse.
  • Feature: Added Horizontal Rule as an option for Form Field Display type. (tip:set equate to something like sep1)
  • Feature: Added "Text" as an option for Form Field Display type.
  • Feature: Added ability to span prompt/value/comment columns with Display field.
  • Feature: Added Charset as advanced option on WebServer procedure extension template.
  • Feature: Added PDF as Page Type option on NetWebPage.
  • Feature: New example 33 shows how to make a browse filtered by a related file drop-down.
  • Feature: Added "Must be logged in" and "Must be secure page" options to NetWebGraph extension.
  • Feature: Added "IF" option to Required fields on a form.
  • Change: Ajax turned on for Safari users.
  • Change: Some pre-defined browse column styles supported directly by template. (RightJustify et al.)
  • Change: Hyperlink properties for a browse column moved to new HyperLink tab
  • Change: Select buttons suppressed on child browses.
  • Change: Cancel & Close buttons suppressed on child browses.
  • Change: Question W24 added to docs to describe how to edit the standard error page. (See new Example 32)
  • Change: Changed "protocol" option on NetWebPage, to "Page Type".
  • Change: Added a option to Form Advanced tab, allowing View buttons to be visible even if Change buttons are also visible.
  • Change: File uploading now stores the short path to the uploaded file in the form field (after the form is submitted.) If the upload field is empty (ie nothing uploaded) then the existing file:field is not cleared. (See example 26)
  • Change: If a person enters a value into a lookup field, and presses Tab, then the focus skips over the lookup button and goes to the next input field.
  • Change: Uses TotalStyle, or BrowseFooterStyle in blank footer cells on browses.
  • Fix: Allowed lookups, from forms, to include child browse, which include the form file.
  • Fix: Better button support for Safari.
  • Fix: Enlarged loc:rowstyle variable
  • Fix: More Assignment after lookup, if destination field was not a field on the form.
  • Fix: Drop-list items handle special XML characters on refresh.
  • Fix: Allow styles to be set for Xp-Taskpanel menu via template.
  • Fix: Report "No records" popup message fixed.
  • Fix: XML header not being sent with NetWebPage in XML mode.
  • Fix: Small Select button, with a condition (generate error).
  • Fix: Field pictures could get lost doing multiple lookups on a form.
  • Fix: (regression) Radio buttons no longer read-only.
  • Fix: Removed excess " characters when generating META tag.
  • Fix: Better support for pictures on Form Fields.
  • Fix: June changed to Jun in _Splittime method.
  • Fix: bug in _SetUserAgent that incorrectly set the UserAgent if a form field called Opera exists.
  • Fix: declaration of CreateButton in netweb.inc too long for C5. Have shortened it.
  • Fix: In IE if an entry was typed into a lookup field the Focus got "lost".
  • Fix: Bug where "Bind to IP" didn't always work.
  • Fix: Program flow could get lost when multiple children, or children on forms, existed.
  • Fix: Greenbaring after ajax update of browse now applied.
  • Fix: Corrected problem where Browser sends excess CR/LF at the end of a POST.
   

Version 4.17 (Beta) (24 October 2006)

1) NetWebServer

Important: These changes may affect your program and stop it from compiling

  • Change: button.text field changed to button.textvalue to avoid clash with Clarions XML classes. If you get a compile error on a line like
    p_web.SaveButton.Text = 'Login'
    then change this to
    p_web.SaveButton.TextValue = 'Login'
     
  • The Javascript (JS) and Style (CSS) files have been changed. Some Images (PNG etc) have been added. Copy these from \Clarion6\3rdparty\LibSrc\NetWeb\Web folder into your Web folder.
     
  • The CSS Buttons classes have been consolidated somewhat. For your buttons I recommend using MainButton class for most buttons, use SmallButton for the SmallInsert etc and LookupButton class for the Lookup, and DateLookup buttons.

The following changes should not affect your existing program.

  • Feature: Added Children tab to Browse settings. See new Examples 25 & 31.
  • Feature: Horizontal layout of Radio Buttons
  • Feature: Files submitted via the "File Upload" form field type are saved in the "web\uploads" folder. See new Example 26.
  • Feature: Autonumbering on Insert, now (if there are child browses) does the ADD and jumps into CHANGE mode. As long as the user "Cancels" or "Saves" you're ok. However garbage collection recommended.
  • Feature: New tab style added - "XP-Tabs"
  • Feature: New tab style added - "None"
  • Feature: New Menu style added - XP-TaskPanel. See new Example 27.
  • Feature: (some) Submit buttons change to Disabled after being clicked.
  • Feature: "Protocol" option added to NetWebPage. HTML (default) and XML protocols available. See new Example 29.
  • Feature: Added ability to override the Sort field for Server-Side sorting.
  • Feature: Added ability to set height of Accordion on Menu, and Form templates. Style Sheet tab.
  • Feature: Filters tab added to Browse settings, includes Ranges and Conditional filters.
  • Feature: Display fields on forms can now have buttons, images and hyperlinks
  • Feature: Added optional button to Locator
  • Feature: Added ability to position Search button before View button on browses in Lookup mode.
  • Feature: Added loc:action to form to be (optionally) used in header.
  • Change: Renamed ImageWidth and ImageHeight members of NetWebButtonGroup to avoid clash with Clarion previewer.
  • Change: On a browse, if the "Message if Empty" is blank, then the whole table is not sent.
  • Change: Better support for IE7 (distinct from IE6)
  • Change: If browse has a Change button visible, then the View button is suppressed.
  • Fix: Bug in style (netweb.css) which caused Menu to appear slightly lower, and right, of where expected.
  • Fix: Bug setting Field Equate when field is not a field in the dictionary.
  • Fix: Bug setting duplicate field in Browse prop:order, when using MsSQL
  • Fix: Browse buttons that stopped working, if the browse was inside a form, and the browse had been refreshed after a form-field change.
  • Fix: Browse back-filled if Locator type is Position.
  • Fix: Corrected generation of Formtype=multipart
  • Fix: When doing a chained-login the whole URL is now preserved.
  • Fix: Resetting fields when a 'date' field is completed wasn't working.
  • Fix: When chaining through an unexpected Login form, in a Frame situation, the Target of the Login button could be set incorrectly.
  • Fix: Returning to multi-tab field after lookup returns to the correct tab.
  • Fix: Cancel buttons on lookups didn't always return to the Form correctly.
  • Fix: Browses without a header, or footer, suppress the <thead> and/or <tfoot> tags.
  • Fix: Reset field when date changed was not working.
  • Fix: Cookies not being set in IE correctly if it expires on a Friday, or Saturday. (Thanks Jono).
  • Fix: Fields primed on insert were being forgotten if a Lookup was done.
  • Fix Search, Cancel, Next, Previous, First, Last buttons all use the Button Position settings.
  • Docs: Added a new section called Using Browses And Forms on Static Pages to docs.
2) Email Receive
  • Fixed a bug with incoming partial packets. Specifically failed when working against a Dovecot server.

Version 4.16 (Beta) (13 Sept 2006)

1) NetWebServer

Acknowledgements:
This build would not have been possible without the dedicated effort of a small group of alpha-testers. My thanks go to Chris Cordes, Bram Klootwijk, Marius Røksund, Johan de Klerk, Richard Lee, Wolfgang Orth and Patrick De Laet. If your update is smooth it will be thanks to them, if not, it will be my fault.

Important: These changes may affect your program and stop it from compiling

  • >> In the NetWebSource procedures the SendString routine has been renamed to SendPacket. This brings it in line with the other templates. If you have hand-coded any calls to do SendString then you will get a compile Error "Routine not Defined". Make a note of the module, go to that module, and edit your hand-code. 
     
  • >> A number of Properties of the WebHandler class have changed. If you have used properties in hand-code, or in template fields, then you may get errors.
    For most of the WebHandler properties, the change is the addition of the word .SITE in the name. For example
    p_web.allowajax has changed to p_web.site.allowajax
    Button text has an additional change, there's now a dot ( . ) between button and text. So
    p_web.savebuttontext changes to p_web.site.savebutton.text
     
  • >> In an effort to disconnect the WebServer class and the WebHandler class the use of p_web.RequestData.WebServer.property or p_web.RequestData.WebServer.method is being discouraged.

    Where methods in the web server are useful we've added the method to the NetWebHandler class. For example
    p_web.RequestData.WebServer.AddStyle becomes p_web.AddStyle

    Where properties are being used those properties have been added to the site group. For example
    p_web.RequestDdata.WebServer.DatePicture becomes p_web.Site.DatePicture

The following changes should not affect your existing program.

  • Implemented new tag of the form <!-- Net:f:filename.ext --> where filename.ext is the name of a (text) file. This "includes" the specified file at that spot in the HTML page.
  • When parsing static, or dynamic pages, the <!-- NetWebServer --> tag is removed from the page
  • Site-Wide buttons support added. You can control button look from the WebServer procedure, Settings, Buttons tab.
  • Added "File Upload" as entry type for Forms.
  • NetWebSource procedures/tags can now be refreshed asynchronously from a timer.
  • HtmlCharset is now a property of the web server. Defaults to ISO-8859-1.
  • InitForm routine added to the generated form code. This allows for default UpdateFile, UpdateKey and KeyField parameters to be set in the form, and thus not passed by the link. See FAQ, W4 for changes.
  • Routines generated for all the form "cells" (ie all prompts, values and comments). This allows all cells to be updated asynchronously, triggered by the completion of any field on the form.
  • Parameters can be passed to Browses-Embedded-on-Forms (passed via the Value Queue).
  • Refresh Window when Date Changed is obsolete, and removed. Use "Reset fields" instead.
  • Date Lookup button uses standard Lookup button settings.
  • Ability to "reset" one field on a form when another is changed has been implemented. Especially useful for Dropdowns.
  • Dropdowns now have an "Order" field, so you can override the default order.
  • Dropdowns support INNER Joining on a "Linking" File.
  • Checkboxes on a form are no longer added to the Form as a HIDDEN field (to hold the False Value). The False value is set in the ValidateUpdate routine.
  • Lookups now display the "description" field in the comments column (if it's blank). If the user types in a code the description is updated automatically. TIP: If (in the dictionary) there's a key on the Description field in the lookup file, and the user types a Description into the code field, then the entry field, and comment fields are both updated.
  • Browses are "back-filled" by default.
  • Embedded HTML now defaults position if entered incorrectly.
  • Browses disable First / Previous / Next / Last buttons.
  • Added .LoginChanged method to NetWebHandler so there's a convenient embed point in the WebHandler procedure when a person logs in, or out.
  • Added DeleteSessionValue, and DeleteSession methods to NetWebWorker class.
  • If user has to be logged on to see a page, and hence is redirected to the Login page, then when pressing "Login" it now "chains" to original request (rather than going to the default first page).
  • Changed the CallForm generated procedure so that the URL is checked before the File handle when deciding which form to call. This allows for multiple Form procedures on the same File.
  • Form template layout simplified, and "flattened".
  • After doing an Insert or Update, the file fields are copied into the Value queue. This allows for fields set by a trigger (in the ABC code, for example an AutoNumber) to be used by subsequent procedures in the thread.
  • Hidden field "LookupFrom" has been changed to "FromForm"
  • Changed some equates in netweb.inc (the Form Stage equates) so they are all on their own "bit". Should have no impact on existing apps, unless you were depending on the value of the equate.
  • Server-side validation on form fields (REQ, Numeric etc) is only performed if the Field was visible to the user.
  • Corrected some internal code generating a double ?? when using some tags.
  • Corrected Browse bug where Next / Previous didn't work if sort column were all the same value.
  • Added URL support for conditional images in a browse.
  • Updated the explanation of Tags in the docs.
  • The documentation for Reports has been expanded considerably.
  • Fixed bug if Column Headings were turned off, and Sorting was set to "Server" or "Client".
  • Example 7 updated to show using Cookies to store the login & password in the browser.
  • Extended Examples 13 and 14 to show using an existing report that has "options" on the screen, and a "Pause" button.
  • Example 14 corrected to fix  some weird header formatting.
  • Example 23 added which shows how to do a browse on one table, but go to a form on a related table. (1-to-1 style relationship).
  • Example 24 added showing how to chain from one form to another.
  NetWebClient
  • An automatic re-direct now happens with a POST as well as with a FETCH.

Version 4.15 (Beta) (17 July 2006)

1) NetWebServer
  • The Open Files code in NetWebBrowse has been moved higher in the code so that you can include file fields in column headers etc.
  • Added optional routines for opening, closing, saving and restoring files in NetWebSource and NetWebPage procedures. Note that the Routines are generated (and called) in NetWebPage, and are generated, but not called in NetWebSource.
  • Translate Tab added to WebServer extension, Settings tab. Use this to change text for whole site.
  • Incorrect generate of %FormFieldTrue (for checkboxes on form) corrected.
  • Added new function to JavaScript file (NetWeb.Js) to automatically fix the transparent PNG bug in IE 5.5 and IE 6. Script was found by Carlos Gutiérrez (thanks Carlos.) Original script and explanation can be found here. FAQ, W21
    NOTE: To make use of this new script file copy it from one of the shipping examples to your \web\scripts folder.
  • The syntax for calling a form directly from a browse has been changed slightly. The FAQ, question W4 has been updated to reflect the new syntax.
  • Corrected template bug with generating Radio buttons "checked" attribute.
  • Fixed incorrect handling of key fields containing the word "GUID". If you are using Replicate GUID fields (or other Guid fields containing binary string data) then you must put the name in the webServer property _BinaryGuid. For example:
    ThisWebServer._BinaryGuid = 'guid'
  • Added CreateButton method to class to make code cleaner.
  • Added class (in CSS) for Lookup Buttons - default is LookupButton.
  • Added "More Assignments" button when doing a lookup (see FAQ, W21)
  • Added support for @D2 dates on Forms. See Basics doc for more info. NOTE The Calendar2.js script has been updated, Calendar1,js and Calendar3,js have been deprecated, and Calendar6.js has been added. Be sure to copy these into your application's web folder.
    If you get a Compile Error in your WebServer procedure, then go to the NetTalk Extension in the WebServer procedure, and reset the Date Picture to either dd/mm/yyyy or mm/dd/yyyy.
  • In Forms moved the call to StoreMem routine to the "Pre" calls to the form. This prevents "loc variables" (stored in the session queue) being overridden on return from a lookup or elsewhere.
  • Added support for NetWeb Procedures in other apps in a Multi-Dll situation. See Basics Doc, Multi-DLL section  for details.
  • Fixed support for Relational updates & Deletes.
  • On Browses the Unique, Unchanging Key field has moved from the Form tab to the General tab. This is because this key is used when the browse is used as a Lookup.
  • Fixed bug where View button (under browse) was not visible when Browse in lookup mode.
  • Browse in Form seems to be working pretty much 100% now. For now I don't recommend having more than 1 browse on a form, if the browses are page loaded.
2) Changed the FTP control template to use the specified progress control, rather than always using ?progress.

Version 4.14 (Beta) (29 May 2006)

1) NetWebServer
  • The introduction of cookies, and especially the Session cookie, has meant that some of the old ways of doing a logout (by deliberately resetting the Session) will no longer work.
    Question W17 has been added to the FAQ, and examples 3 and 4 have been updated to reflect the new, complete, logout techniques you can use.

Version 4.13 (Beta) (26 May 2006)

1) NetWebServer
  • Suppressed Windows style menu bar if person is not logged in, and all menu's require person to be logged in.
  • Added code to handle reports where there are no records. See example 13.
  • Fixed problem with OnLoads on NetWebPage
  • Allowed Style to be set on individual Row Buttons in a browse
  • Added Target to Cancel button URL
  • Added Target to Browse Row buttons
  • Fixed case where ProcessLink overridden in Webhandler leads to blank parameter.
  • Fixed descending numeric sorts on browses
  • Automatic detection of numeric browse columns leads to case sensitive sort.
  • Now generates Cancel code on lookup if Cancel button exists, even if Select button doesn't exist.
  • Clicking Cancel on lookup now returns to correct form.
  • Fixed problem where special buttons did not work if they had no text.
  • Fixed browse refresh when first record is added
  • Fixed browse refresh when last record is deleted
  • If a locator field exists, then it gets focus on the browse.
  • Fixed Focus selection on Forms.
  • Added support for cookies (see Basics doc)
  • Added a checkbox so that HTML can be included in browse columns (if desired.)
  • Fixed problem where form returned to home-page missing http:// part of URL.
  • Fixed bug with Browse that only has VIEW button, not Insert/Change/Delete.
  • Added ability to override message "no records" on reports.
  • Clicking LAST on page loaded browse with less than 1 page of data, now displays the data not "no records found".
  • Added "Close" button option to Browse.
  • Added "Select Item" example (19)
  • Added "Multi-DLL" example (20)

Version 4.12 (Beta) (2 May 2006)

1) NetFTP control templates
  • Fixed problem where template was expecting a pActive parameter as the seventh parameter. Older procedures didn't have this parameter, and so a compile error resulted. 

Version 4.11 (Beta) (21 April 2006)

1) NetWebServer
  • Changed browse position when returning from form. It now returns to the browse as it was before going to the form, rather than starting the browse page from the record just changed.
  • Fixed sort order getting lost when returning from Form.
  • Browse Locators on date columns now works.
  • Fixed URL generation on Auto-Lookups.
  • Added support for apps that don't have "Defer Opening Files Until Accessed" turned on.
    Tip: Turn on this switch if you can, otherwise performance may suffer.
  • Fixed PDF reports in Firefox browser
  • Fixed problem where locator was attached to no browse field .
  • Fixed problem where Last then Previous triggered "no records"
  • When sort orders change, Locator is cleared
  • Fixed a bug with Previous going back x-1 instead of x records.
  Notes: In 4.10 the behavior of the "read-only" checkbox, for Forms, for Dates and Lookups has changed. The Read-Only box now means that the field is Read-only and cannot be changed, either via typing, or by a lookup button. If you want the previous behavior (where the user could only change by using the lookup) then tick the new option "Force user to use lookup". Remember to un-check the Read-Only box.

Version 4.10 (Beta) (12 April 2006)

1) NetEmailReceive
  • Fixed an issue where an email with a single base64 encoded attachment could be missing up to the last 5 characters.
2) NetWebServer
  • Fixed bug where large white space could be sent if first item in HTML packet was a tag.
  • Fixed bug with Totaling where the column contained formatting.
  • Fixed bug with packet length when picture used in column header (could affect next/prev buttons and sort orders.)
  • Fixed possible GPF with badly formed "direct to form" link.
  • Fixed regression with Server-side sorting
  • Fixed some bugs in the examples.
  • added 'jump straight to lookup' option on forms.
  • added "Auto lookup on Insert" option on form fields.

Version 4.09 (Beta) (05 April 2006)

1) NetWebServer
  • Removed AUTO attribute that caused a problem in C5.5
  • Tweaked the template & class so that if the user is not logged in, but links to a page that requires a login, then it automatically redirects to the login page.
  • Added key fields to view of Browse
  • Added additional HTML embed points
  • Added support for 'Other' buttons in Browse
  • Fixed problem with 'next' button when Browse has no Form.
  • Changed Browse to use POSITION instead of key fields. More accurate paging on SQL Views.
  • Added URL option to browse columns.
  • Embeds of HTML 'after heading' and 'after sub heading' work even if headings are blank.
  • Sort parameter changed from 'Sort' to 'procedure_Sort' so that browses can be chained together.
  • Added "Display" as a field option for forms.
  • If date field is set to 'Read Only' then lookup button is suppressed.
  • Fixed application of button conditions if Insert/Change/Delete/View buttons not "in row".
  • Fixed bug when there was a pipe ( | ) in the external field name.
  • Added Example 13 and Example 14 (PDF reports)
  • Added 'Browse' as Form Field type. [ work in progress ]
2) FTP functions
  • The synchronous functions FtpUpload and FtpDownload functions now have an extra (optional) parameter that can specify to use Active or Passive mode. See 3rdParty\Examples\NetTalk\FTP Template for updated examples.

Version 4.08 (Beta) (24 Mar 2006)

1) NetWebServer
  • Fixed issue where IDE could GPF if there was a Drop-Down list box on a form, and you did a right-click source in the App tree.
  • Reactivated the Drop-down filter field which had gotton itself disabled.
  • Asynchronous browses re-instated
  • "Unique Key Name" now stored, and enforced.
  • Added support for Multi-Proj
  • Fixed a couple of template bugs in multi-records-on-one-row
  • View-Only forms have a "close" button not a "Cancel" button
  • View button added to Insert/Change/Delete above or below browse.
  • Changed prompt for lookup page from "Page" to "URL" for consistency sake.
  • Header & Footer of empty browses suppressed.
  • Fixed priming of drop-down value where value was a prefix, or suffix value.
  • Added conditions for Insert / Change / Delete / View buttons
  • Added support for pictures in form fields. (Pictures are not enforced during typing though.)

Version 4.06 (Beta) (16 Mar 2006)

New Features

1) NetWebServer
  • NetWeb.JS file has been updated - copy from any of the examples to your Scripts folder.
  • NetWebForm procedures : URL on Save/Cancel has been separated into URL on Save and URL on Cancel.
  • Browse column can be a URL or MailTo: clickable link.
  • Updated Example 3 to show various menu login and logout options (based on an example by Roberto Artigas)
  • Added "onClick" ability to Menus and Menu Items.
  • Fixed "maintain sessions" on Menus that went straight to a URL.
  • Beginnings of FAQ document added to documentation

Updates & fixes

1) Examples - Minor updates & tweaks
2) NetWebClient - Minor tweak to Proxy Connect code.
3) NetDemo - Put back a simple Web Server example.

 

Version 4.05 (Beta) (15 Mar 2006)

New Features

1) NetWebServer
  • Added support for Arrays. NOTE: Arrays are only supported in C6 or later.
  • Added support for unique key not being a Primary key
  • Corrected WebServer TXA included in install set
  • Added template support for filter on droplist View
  • Added support for NAME attribute on file fields.

Version 4.04 (Beta) (13 Mar 2006)

New Features

1) NetWebServer
  • Fixed template bug - initial sort order Case
  • Fixed regression - Position locator
  • Added option for server-side column sorts to be case sensitive, or case insensitive
  • Fixed inaccuracy in "count" total type
  • Added column formatting to browse totals
  • fixed bug with View Joins when relationship one-sided.
  • New Demo page available at:
    http://www.capesoft.com/nettalkdemos.htm
2) SSL - Can switch a NetSimple Server connection from non-secure to secure, using the self._SSLSwitchToSSL() method.
3) NetWebClient - added new code to allow the Web client to connect to HTTP proxies, when requesting HTTPS pages. These then switch to Secure mode on the fly. For now you'll need to set self.CertificateOptions.DontVerifyRemoteCertificateCommonName = 1 and self.CertificateOptions.DontVerifyRemoteCertificateWithCARoot = 1 to use this feature.
3) NetWebClient - added self.ProxyAuthentication and added an example of using this in the NetDemo application.

Updates & fixes

1) NetWebClient - added new code to allow the Web client to connect to HTTP proxies, when requesting HTTPS pages. These then switch to Secure mode on the fly. For now you'll need to set self.CertificateOptions.DontVerifyRemoteCertificateCommonName = 1 and self.CertificateOptions.DontVerifyRemoteCertificateWithCARoot = 1 to use this feature.

Version 4.03 (Beta) (10 Mar 2006)

New Features

1) NetWebServer
  • Change requiring a change: The Default Sort Order for the browse has changed from an Entry field on the Options tab, to a button on the General tab. Unfortunately all settings on this field will need to be redone.
  • Fix to allow " in form field values.
  • Fix to Memory Forms called after File forms
  • Additional Embed points added to template
  • Allowed "contains" filter on browse used as a lookup.
  • Width & Height of Text fields now settable
  • Scroll bar on read-only text boxes working
  • Class added for <body> tag (NetWebPage settings.)
  • property added for generic page <Body> class, ".BodyClass".
  • netweb.css updated
  • Added SendEmailFromWebBrowser example
  • Removed duplicate META tag from header.
  • "View" button support added
  • "blank until locator" bug fixed
  • HTML tab expanded on NetWebPage and NetWebForm, and added to NetwebBrowse
  • Much of 'Layout' tab in NetWebForm now obsolete.
  • Added URL option to MENU. ie Click on Menu itself causes Page Load.
  • Removed old WebServer1 Template Utility.
  • Added WebPageName option to Browse and Form
  • Added RightJustify, CenterJustify and LeftJustify styles to CSS file. Use these for Browse Column Styles.
  • Added Browse Totaling. (Note total only totals what is visible to the user.)
  • "Smarter" behavior when moving from browses to forms, lookups, view etc.
  • Fixed issue where pressing enter could load the form page (when it's not wanted)
  • Added - focus on form fields improved - when form opens, and when returning from a lookup.
  • now allowed to suppress Select button below browse (if select button in row.)

 

Updates & fixes

1) None

Version 4.02 (Beta) (1 Mar 2006)

New Features

1) NetWebServer
  • All browse functionalities are now set as local variables in the Browse procedure, and can be edited in Embed code.
  • Contains Locator added to types of locator supported
  • Table Blank until Locator entered option added to browse
  • Template message while waiting for locator added
  • Added methods to prevent script injections
  • Added new "special" folder, default is 'LoggedIn', user must be logged in before static pages, or files, from this folder will be served.

Updates & fixes

1) NetWebServer
  • Lookup now working correctly.
  • Changed dynamic page type to html from xhtml
  • Server-Side sorts now case-insensitive
  • Default Locator field now generated correctly, if entered.


Version 4.01 (Beta) (24 Feb 2006) - the 117th release of NetTalk

New Features

1) FAQ G7 - Updated to included changes needed for moving from NetTalk 3 to NetTalk 4
2) SSL - Client and Server SSL support added with Remote Certificate Verification.
For NetSimple - see NetSimple.Open
Note: The default SSL options now include:
• Remote Certificate Common Name must match Server name
• Remote Certificate must be issued by an Issuer found in CARoot file (which defaults to '.\CARoot.pem'
This implies you must ship a CARoot file or change this option.
These options are configurable.
(See also FAQ G8)
3) SSL Examples - NetDemo updated to included SSL options for NetSimple Client, NetSimple Server, Email Sending (SMTP), Email Receiving (POP3), Web Client (HTTPS), Web Server (HTTPS Server).
4) Secure Email Sending (self.SecureEmail) has now been split into two properties:
self.SSL - Which is the setting you'll use to make the whole communication use SSL. Gmail uses this option on port 465.
self.SecureEmailStartTLS - This setting will use the STARTTLS option which switches to SSL after performing a non-secure connection but before username/password or email contents are sent.
5) Added multiple IP and/or multiple Network Interface Card (NIC) support to NetAuto.
This now means that the Auto Detection sends a broadcast for each subnet and results in NetAuto working on machines with multiple IP or multiple NICs.
6) Added multiple Network Interface Card (NIC) support to NetGetIPList()
7) Changed almost all the ulongs to longs which gives a speed improvement across all objects. Which can yield speed improvements of up to 20%.
(The only method to have changed is NetEmailSend.CalcEmailName which we don't think anyone will be deriving, as derived code will now be orphaned. There were a few other methods that use ulongs, but these were not changed, as people may be deriving them.)
8) New LinkPoint (Credit Card Processing) Example. Requires a LinkPoint account (or a trial one), a LinkPoint Certificate (real or trial) and CapeSoft's xFiles.
9) Improved Error Number Reporting in NetSimple. Now there's self.Error (the NetSimple Error), self.WinSockError and self.SSLError
10) Email Receive New Option to Leave a Copy of Message on Server (using self.OptionsUseDoneBeforeQ and self.OptionsDelete = false), which uses a queue to keep a list of the emails that have been done before.
Also added self.OptionsDeleteAfterHours - which works with self.OptionsUseDoneBeforeQ to delete old emails off the server.
11) Email Receive Example with the Don't Download Again (self.OptionsUseDoneBeforeQ), which is the same as the NetDemo's TestEmailReceive window, except that it uses xFiles to load and save the queue to an xml file.
12) FTP  - Added a new FTP Template for using FTP.
Features:
• Easy to use (added using a template)
• One procedure call to upload or download a file
• Can take a queue of files.
• Can work with wildcards
• New FTP Example
13) Another New NetSimple Client & Server Example.
14) Close Apps Client - Changed so that the Shutdown command can pass a message. Also updated the Control template, and added a new embed point before the Init call, so you can potentially change the Service name.
15) Web Server Templates - More details in the NetSimple - Web Server documentation.

Updates & Fixes

1) NetWebServer.Open() - Could lock up (deadlock) if it was the first NetTalk object to be called. Fixed.
2) NetEmailReceive() - Further tweaks for extended Mime decoding.
3) Dial Up - Fixed deadlock (only was in NetTalk for Clarion 6.x ) when pressing adding or editing Dial Up connection entries.
4) Updated SSL DLLs - NetTalk now shipping with SSL DLLs v0.9.8
5) SSL - SSL new default SSL Method (self.SSLMethod = NET:SSLMethodSSLv23) which means that the connection tries to connect in the following order TLS v1.0, SSL v3.0, SSL v2.0 (e.g. Most secure method first)
6) Renamed some of the exported NetTalk DLL functions, so that they conform to either NetSimple... or NetAuto... format. (This will require that the object and DLL use the same versions otherwise "Unresolved Externals" or "Unknown Function Labels"  will occur.)
7) FTP - Fix for Apache FTP Servers that require the TYPE A / TYPE I command to be capitalized.
8) General - NET:StdStringSize changed from 81 to 80. Max length of string to use should be NET:StdStringSize - 1
9) Email Send & Email Receive - Fixed some potential memory leaks.
10) Web Server - Fixed garbage collector.
11) Improved support for working as a Service. Added NetOption (NET:SetIAmAService) call (automatically called by SelfService) so NetTalk doesn't shutdown on Log Off.
12) NetEmailSend - fixed a double dot problem where a . could occasionally be incorrectly transformed into ..

Version 3.40 (Gold) (21 June  2005)

New Features

1) In NetWebClient object there's a new property:
self.CustomHeader   (string(4096)). Which is added to the request header in ._CreateRequestHeader()
Note - must not have trailing <13,10>

Updates & Fixes

1) NetWebClient.TextOnly() - Some of the code was Case Sensitive, when it should have been Case Insensitive.
2) Clarion 6.2 Fix. Slight tweak to Email and News Objects to remove compiler warning message "Warning: Field label is duplicated, first used: _ObjectType"
3) Clarion 6.2 Fix. Recompiled DLL in Clarion 6.2 9046 - which fixes a delete queue GPF issue which was present in 9045.
Requires Clarion 6.2 9046 if you are using this with Clarion 6.2.
4) Template Help Button Fixed. Also made slight tweaks to the install script.

Version 3.29 (Gold) (13 May  2005)

New Features

1) NetTalk objects (not NetSimple) have finally been renamed in the documentation to NetAuto objects to prevent further confusion. Similarly the NetTalk protocol has been renamed to the NetAuto protocol too.

Updates & Fixes

1) Changed NetTalk to use our own _NetCriticalSection, as the one in CwSynchC.inc has private attributes which prevent it from being re-used and tweaked correctly. NetGetCriticalSection DLL function renamed to NetGet_NetCriticalSection. If you get compiler errors then see FAQ Article A3 and upgrade to NetTalk v3.29 or greater. (Also changed the DLL to use a reference to _NetCriticalSection)
2) NetAuto - DLL. ,static added to DLL CallBackWindowSrc's variable Static:LastTime used in CheckNotifier Routine
3) NetAuto - Added a work around for Windows Firewall, where the NetAuto objects could sometimes not receive incoming UDP packets at program start just after machine reboot. This resulted in other public instances not being "visible". The work around only gets run if the application starts within the first 5 minutes after boot up, and then it does NetSendBroadcast after 30 seconds, 60 seconds and 300 seconds, to ensure it can see all other instances.
4) NetAuto. Added a slight random delay before sending back a ICanDoBack packet after receiving a ICanDo packet. This improves the chances of not congesting a network with a flood of responses.
5) NetAuto & Template. A new method NetServer.Announce() allows the NetServer.Init(), NetServer.Kill() and NetClient.Init() and NetClient.Kill() to delay the broadcast of new services, so that one can Init all services before doing the Announce(). This drastically reduces the number of ICanDo and ICanDoBack packets during startup and shutdown of NetAuto objects. The template has been changed to accommodate these changes to. Also redundant ICanDo sending has been minimized in the DLL too.

Version 3.28 (Gold) (1 April 2005)

New Features

1) New Special Option in the Template "Fix all my bugs". Added 1 April 2005.
2) Added External Run-Time DLL support to the template. Please don't use this unless you know what you are doing otherwise you'll end up with Unresolved Link errors.

Updates & Fixes

1) NetAutoGetServers() - will now return -22 (ERROR:BadOptions) if it is passed a Queue which points to null.
2) Updated NetWeb.tpw & _NetWebServerWorker.FileToSessionQueue()
3) NetOptions now allows you to call SetMaxInstances after the DLL is active, although this won't have the full effect of allowing to have multiple instances on the current machine, but it will allow you to talk to multiple instances on other machines.
4) WinSock Listen function changed to use the WinSock2 SOMAXCONN value when WinSock2 is available. This leads to slight performance increases, and may reduce 10055 errors (WSANOBUFS).
5) DIP - template and examples updated to use dip.capesoft.net - which is a server based in the States.
6) Web Client - Fix if the web server returns just "HTTP/1.1 302" instead of "HTTP/1.1 302 Moved Temporarily".
7) Email Receive - Fixed the code where it would sometime chop off the last five bytes of the text or html portion in a simple email with no multiparts.

Version 3.27 (Gold) (7 February 2005)

New Features

1) NetTalk DLL Source Code is now available for purchase. More information is available here.
(It may take a day or so until it's fully uploaded and can be ordered).
2) New Legacy Email example & new Legacy Multi-DLL example.

Updates & Fixes

1) NetWebClient. Fixed a bug in the _SendCommand() method which affects large POST operations that could cause Index out of Range.

Version 3.26 (Gold) (26 January 2005)

New Features

1) Added DLL Version information to the NetTalk DLLs.
2) Added new property to the NetEmailReceive object .OptionsIncludeTextAttachmentsInText which will store text attachments into the text portion of the email. Off by default. Previous versions of NetEmailReceive had this feature on by default, so if you want the feature on (most folk don't) then please set this property to 1.
3) NetEmailSend - Added self.OptionsAttachmentContentType property which lets you override the default Attachment Content Type of 'application/x-unknown'

Updates & Fixes

1) NetCloseApps. Changed the Warning and Shutdown window, so that they display centered, which fixes a bug (only in NetTalk for Clarion 6.1) where these windows were not visible on the second monitor
3) NetWebClient - Fix for some https sites.
4) NetWebClient - now sets the cookie into the cookie property on redirects unless you specify the new property self.OptionsDontSetCookieOnRedirect
5) NetWebServer - updated Web Server Control Template - so that you can optionally see the last transaction, and a log history. Very useful when you are developing a Web Server site.
6) NetWebClient - TextOnly() split into 3 methods. Also clears <script> and <style> HTML tags.
7) Template - #Application changed for NetRefresh (Thanks Arnor).
8) Inversed Index Ranges for String Slicing checked for and fixed in some places.
9) NetRefresh - Added new #At and new parameter to the NetRefresh.Send method. This adds support for the Dynamic Driver.
10) NetDip - Changed self.MyIPAddress from cstring(15) to cstring(16) as it was one character too short, and was loosing this last character in the IP address.
11) NetEmailReceive - Fix for email decoding where Content-Type: text/html & Content-Transfer-Encoding: base64
12) NetSimple - Minor tweaks to the Idle Timeout code.

Version 3.25 (Gold) (7 December 2004)

New Features

1) (none)

Updates & Fixes

1) Removed duplicate FTPError property from the NetFTPClientControl object.
2) Template Fix for EmailSend Control Template, which was causing a %NoThisObj error.
3) Added a ReParseSetting() method to the NetWebServerWorker object.

Version 3.24 (Gold) (15 November 2004)

New Features

1) (none)

Updates & Fixes

1) Fix to the WebServer Utility Template. Also included the images it uses.

Version 3.23 (Gold) (9 November 2004)

New Features

1) Critical Change - may impact your applications Added Useful information about upgrading from NetTalk version 2 to version 3.
Please read FAQ G7 - What's changed in NetSimple from version 2 to version 3
2) NetSimple. Renamed Net:SimpleDataPacket to Net:SimplePartialPacket
(but kept original for backward compatibility - for now. May remove it later)
3) NetSimple. WholePacket handling
Added methods and properties to allow you to send and receive Whole Packets.
This will also allow you to send data to your own applications and preserve the packet boundaries. See NetSimple Methods and Properties.  For example self.WholePacketUseLengthField and self.WholePacketSend
4) NetWebServer. Utility Template
Added a Utility template to import in the two Web Server procedures, which includes sample code.

Updates & Fixes

1) (none)

Version 3.22 (Gold) (4 November 2004)

New Features

1) (none)

Updates & Fixes

1) NetEmailReceive. _SplitParam and _SplitParam2 parameter change from (String p_String...) to (*String p_String)
2) NetEmailSend Control Template - Setting options to use or not use the Display() and Cursor commands. Also change the FileDialog command to restore path.
3) Template - Further cosmetic changes.
4) NetWebserver - Fixed bug in CreateHeader() where some fields had missing colons. e.g. Connection:

Version 3.21 (Gold) (20 October 2004)

New Features

1) (none)

Updates & Fixes

1) Fixed the v3.20 install
As a result of a corrupt file on our website the v3.20 install file was locking on during install of libssl32.dll (at 28%)
The new install file also removes any .tmp file (e.g. ~GLH0433.TMP) that the v3.20 install file created in your /3rdParty/bin folder.
2) Removed Stop from NetWebServer object. (Thanks Robbie).

Version 3.20 (Gold) (15 October 2004)

New Features

1) Gold Release.
2) NetWebClient - New Property self.CacheControl. Which can be used like the existing self.Pragma_ property.
3) NetWebClient - Unicode support for translating pages from Unicode to Ansi. New methods. Self.UnicodeToAnsi and self.AnsiToUnicode. (Also added a _NetUnicode class)

Updates & Fixes

1) (none)

Version 3.19 (Beta) (13 October 2004)

New Features

1) New Web Server example (there's also the one in netdemo.app). Demonstrating in memory web page creation. This new example requires Clarion 6.1 and SelfService, WinEvent

Updates & Fixes

1) NetWebServer - Many tweaks, including a fix for passing "&".
2) NetWebServer - Optimized the Header responses, so that Web Browses can use their Cached pages, if the pages have not changed (304 Not Modified).

(NetWebServer documentation still on the cards).

Version 3.18 (Beta) (7 October 2004)

New Features

1) Template - Added Multi-Proj define compatibility.

Updates & Fixes

1) Object Method prototypes changed from (...),string to (...),STRING to prevent errors with multi-DLL apps.
2) NetWebClient - Fix for using HTTPS sites with IP addresses. e.g. https://209.74.189.77/secure/checkout.cfm
3) NetEmailReceive - Tweaks to some of the boundary checking.

Version 3.17 (Beta) (7 September 2004)

New Features

1) NetAutoCloseServer - The Process() method has been broken up into ProcessWarningRequest() and ProcessShutdownRequest(). Plus the CloseApp() method is what is called by ProcessShutdownRequest() when the application must be shutdown. See NetAutoClose
2) NetAutoCloseServer - New template option for Support with MessageBox 1.79 so that Messages are automatically closed down, when the application must be shut. (Previously open messages were preventing the application from shutting down). See NetAutoClose

Updates & Fixes

1) NetRefresh. Made the call to BRW.ResetFromBuffer and optional component in the Global Extensions NetRefresh on the Advanced tab. Folk using the ODBC Driver should turn this option on. See NetRefresh JumpStart.
2) NetDemo. Added Regions for the buttons so that they look better in Clarion 6.1

Version 3.16 (Beta) (31 August 2004)

New Features

1) NetWebServer. New property .DontSendFile

Updates & Fixes

1) NetOptions. NET:GETDGINSTANCE was not working. Fixed.
2) Installs. Some of the v3.15 builds didn't upload correctly. Re-uploaded in this version.
3) NetWebClient. Fixes the Request URI. This fixes both HTTP and HTTPS problems.
4) NetRefresh. Now works with ODBC driver. (Added call to ResetFromBuffer)

Version 3.15 (Beta) (27 August 2004)

New Features

1) NetWebServer and _NetWebServerWorker- New object for creating your own Web Server based applications. Preliminary testing phase begins.

Documentation will follow soon. (See NetDemo for a demonstration for now).

Note: If you were using the old Web Server example, in your applications you should now convert this code over to using the NetWebServer and _NetWebServerWorker objects. (This is particularly important for Clarion 6 apps, as the old Web Server example was not thread safe).
2) Split NetTalk.clw and NetTalk.inc into:
NetTalk.clw
NetTalk.inc
NetSimp.clw
NetSimp.inc
NetAll.clw
NetAll.inc
NetMap.inc
 (because it became too large for the compiler)

Updates & Fixes

1) NetWebClient. Added a call to FlushFileBuffers in the .SavePage method.
2) DIP. Fix in the template so you can rename your DIP object.
3) NetWebClient. Fixed a bug where ErrorTrap was sometimes being called twice.
4) NetSimple. Padded a check around most calls to self.Abort to check that the connection was either open (OpenFlag) or the connection was in the process of opening (AsyncOpenBusy) so that we are not calling Abort when the connection is in fact open.
5) NetEmailSend. Moved the automatic .Helo calculation code to below the BuildFromWhole. Also changed the default helo command (if it can't work it out from the From property) to 'helo_is_blank' (for more info see the Helo property in the NetEmailSend property section of the docs).
6) SendEmailControls Template. Removed the setcursor calls with this control template as it causes cursor unnecessary cursor flickering.
7) Logging - Improvements to the logging (DLL, Objects and Template). Including the addition of self.log to each NetAuto and NetSimple object.

Version 3.14 (Beta) (30 June 2004)

New Features

1) Added links in the docs to the NetSimple Jump Start.
2) Also look at the new features in v3.13 (which was not a public release)

Updates & Fixes

1) NetNewsReceive. Turned the _ZeroByteFixDisable property on by default. As this option should only be used in the Email objects (the News objects parent). Fixes problems if the news server doesn't send the article size in the XOVER response.
2) NetEmailReceive. Fix for UIDs fro COMCast, where they use 3 spaces as a separator. (Tweaked to the _SplitParam method so that it calls _SplitParams2).
3) Email. Increased the UID size from 40 to 80 (RFC says 70), so 80 should be more than enough.

Version 3.13 (Beta) (26 May 2004)

New Features

1) NetEmailSend - supports SSL. To use Secure Email simply set the self.SecureEmail = 1.
2) NetSimple - added self.SSLMethod and self._SSLDontConnectOnOpen (see NetSimple properties)

Updates & Fixes

1) Updated the NetDemo example, so that the Email Sending window can send emails to Secure Email Servers (tick on the Secure Email checkbox).

Version 3.12 (Beta) (21 May 2004)

New Features

1) First Public Build for Clarion 6.1 EA

Updates & Fixes

1) NetEmailSend. Fixed a bug where if you did not specify a HELO domain, and sent an email from "joe@example.com <joe@example.com>" the HELO property was being incorrectly set.

Version 3.11 (Beta) (14 May 2004)

New Features

1) (none)

Updates & Fixes

1) NetEmailSend. Fixed a bug where if you did not specify a HELO domain, but used a from address of 'Joe<joe@example.com>' the HELO property was being incorrectly set to 'example.com>'.

Version 3.10 (Beta) (11 May 2004)

New Features

1) First Internal Build for Clarion 6.1 EA

Updates & Fixes

1) NetSimple Server. Fixed a bug where after calling .close the qServerConnections queue was not updated.
2) NetSimple Server. Fixed a bug where after calling .close the NetTalk DLL to NetSimple Object Message processing could get out of sync.
3) NetSimple Client. Fixed a bug where the asynchronous DNS lookup (called on Open) might fail if there were two or more simultaneous opens. This only affected open calls with a hostname (i.e. It previously worked fine for opens with an IP address).
4) NetWebClient. Fix for POST operation, which needed the HTTP:// part included.
5) Template. Changed the priority for the object's TakeEvent calls in ThisWindow.TakeEvent from 6300 to 2550.

Version 3.09 (Beta) (28 April 2004)

New Features

1) Added SSL support to the NetSimple and NetWebClient object.
NetWebClient - You can now do a fetch on a HTTPS page (e.g. .Fetch('https://www.clarionshop.com/secure/checkout.cfm')).
NetSimple - Added a .SSL property that when set to 1, will use a SSL connection.
Please note: This implementation does not do certificate checking yet (we plan to add this later on), but it will allow you to communicate and download from secure sites.
Be sure to read about the SSL DLL Distribution also.

Fixes

1) NetEmailReceive. Changed NetEmailReceive so that text attachments (sent for example from Mozilla Firefox) are recognized as both text and attachment.

Version 3.08 (Beta) (13 April 2004)

New Features

1)   NetEmailReceive. Added CharSet decoding for file attachments.
2)   Added a new NetOptions command (NET:SETNETAUTOLISTENINGPORTIP) that allows you to bind the NetAuto Objects Listening Ports to a specific IP address. This can be useful if you are running multiple network cards, but would only be used in rare situations. (If you look in the Frame of the NetDemo app, example code on how to call this is there - but commented out)
3)   Added a Template option to force the linker to include the ClarioNet compatible NetTalk lib file to be compiled with NetTalk. (See the Global Extension - Advanced Tab).
[Please note: NetTalk no longer works with ClarioNet]
4)  Critical Change - may impact your applications Added the .InactiveTimeout property to the NetSimpleMultiClient. Please note that if you were previously setting MultiClient.q._connections.InactiveTimeout you now need to use MultiClient.InactiveTimeout (before calling MultiClient.Open).

Fixes

1) NetEmailReceive. Fix for downloading UIDL lists from PC LAN Suite mail server. (This doesn't affect most Email Servers - including the CapeSoft Email Server).
2) NetEmailReceive. Changed the order for determining the name of the file to save the attachments as. Previous order was Content-ID, filename, name now it's filename, Content-ID, name.
3) SNMP. Fix for the NetSNMP._EncodeObjectID which could GPF. Thanks Ludwig.
4) Template. Fixed the debug logging options in the Global Extension so they work with both Local Mode and Standalone builds.
5) NetSimple and NetAuto (DLL). The internal mechanisms in NetSimple and NetAuto have been honed. (This included the way the FD_CLOSE, FD_WRITE, and FD_READ are handled in the NetTalk DLL, and changed from using shutdown (SD_BOTH) to shutdown (SD_Send) in most cases). Also tidied up the logs and fixed the SO_DONTLINGER option.
6) Internal NetTalk (DLL). Changed the default NetAuto Connection Timeout and Resend Period from 20 seconds to 45 seconds. You can override these values with NetOptions. See the NetDemo for an example of settings that may be useful for slow Internet or WAN usage.
7) NetSimpleMultiClient.TakeEvent. Tweaked and improved. Now it only does one call to NetSimpleReceive (previously it was doing two).
8) NetSimple Client (DLL) - Follow up to the NetSimple GPF bug fix in v3.07 applied this fix to the NetSimple Client as well. (Fixed a bug in the NetTalk DLL regarding FD_READ, which could cause occasional GPFs in Clarion 6)

Version 3.07 (Beta) (26 March 2004)

New Features

1)  Critical Change - may impact your applications Very Important Change
NetSimple (including Email, FTP, Web, News) - Now uses self.AsyncOpenUse = 1 by default. This means they all use the Asynchronous Open. ie. You need to trap for the NET:SimpleAsyncOpenSuccessful in the .Process() before sending data. If you haven't coded your NetSimple objects to use Asynchronous Open then you will get errors.

This has two implications if you have not already switched over to Async Open.

The call to .Open() is now asynchronous. You'll need to:
a) Modify your code to wait for the Net:SimpleAsyncOpenSuccessful packet in .Process() or the NET:SimpleAsyncOpenFailed in .ErrorTrap() before sending data
b) or set .AsyncOpenUse = 0 after the call to the objects .Init() method. (This will still mean your object is using synchronous open). For more details see the NetSimple.Open() method.

Checking self.OpenFlag is not enough. You'll need to:
a) Check for self.AsyncOpenBusy which is set in calling .Open if the connection is trying to connect asynchronously.
 
2)  Critical Change - may impact your applications WebClient - added a new property called OptionFinishOnEndHTMLTag. This option (if set to 1) will cause .PageReceived to be called if the page we are receiving has no content-length, and the last 7 characters are </html>.
You should not need this on, but the previous versions of the NetWebClient behaved like this by default. This has now been turned off and moved to a configurable setting (which is off by default).
3)  Critical Change - may impact your applications WebClient - PageReceive is no longer called if self.PageLen = 0. Instead the .ErrorTrap() method is called with self.error = ERROR:NoDataReceived
4)  Critical Change - may impact your applications WebClient - Will now always either call .PageReceived() or .ErrorTrap(). Previously a call to .Fetch() or .Post() could return with self.error <> 0 (and .ErrorTrap was not being called).
In other words you no longer need to check the value of self.error after calling .Fetch() or .Post() as if an error occurs .ErrorTrap() will be called.
5)   WebClient - Added the .ServerResponse (long) property, which lets you know the server reponse. See NetWebClient Properties
6)  Critical Change - may impact your applications WebClient - Will now automatically redirect 3xx Server Reponses (e.g. 301 and 302) which have a Location: field in the header. (To disable this turn on .OptionDontRedirect).
e.g. Try the following URL jump.capesoft.net which will redirect to www.capesoft.com
(If you run the NetDemo app - see the difference when you press Fetch or Header in the Web Client example with the jump.capesoft.net URL)
7)   WebClient - Changed the Default .UserAgent property to be the same as Windows XP.
8)   NetSimple - Added extra error handling if you call .Open or .Send before the .Init has been called. You should not be doing this anyway. (ERROR:ObjectInitNotCalled -60)
9)  Critical Change - may impact your applications NetSimple - Added extra error handling which will call .ErrorTrap if you call .Open() and a connection is already open. (ERROR:AlreadyOpen -55)
10)   Logging - Added an extra command line switch /netnolog which forces all logging off. This is useful if you've added logging options with the Global Template and want to quickly run your app with no logging without having to go to the effort of recompiling.
11)   Web Poll Example - Has been updated and demonstrates how to force any proxy servers into not using their caches, but instead contacting the web server directly.

Fixes

1) Web client - fix so that now the proxy server can be used in Asynchronous Open mode.
2) Web, FTP, Email, NetSimple - Important fix for a bug introduced in version 3.06, which could cause these objects not to work in Synchronous mode. (Basically Synchronous opens were being sent Net:SimpleAsyncOpenSuccessful packets - which (a) makes no sense as a synchronous open by definition is synchronous and so when the connection is made no notification needs to take place and  (b) it causes problems as extra packets arrive in the .Process()
3) WebClient added the Port number into the Header Host: field if it is not 80 or 0.
4) NetSimple Server (DLL) - Fixed a bug in the NetTalk DLL regarding FD_READ, which could cause occasional GPFs in Clarion 6.
5) Template Fix - Fix to the template that was breaking any custom made command line switches

Version 3.06 (Beta) (10  March 2004)

New Features

1) (none)

Fixes

1) Important fix for Windows 2000. Sometimes the WinSock returns a Read notification before the Connect notification (FD_READ before FD_CONNECT) on Win2K OS. This will affect the NetSimple objects (In particular Email & FTP). This also sometimes manifested itself as a 220 Email error.

Version 3.05 (Beta) (9  March 2004)

New Features

1) Added options to turn on logging to the NetTalk Global Template. See Log Files.
2) Changed the NetEmailSend default HELO command. It now defaults to '' (blank), and if it's still blank when .SendMail() is called, it is set to the domain of the From address.
You can still set it yourself if you prefer.
3) Changed the NetEmailReceive object.
- Added the .EmailListQ and the .DoneListAll() and .DoneUIDLAll() methods. These are descriped in the .DoneListAll() method. This is an alternate way to downloading emails, in that you can now choose which emails to download/delete by setting the fields in the .EmailsListQ queue.
- The above changes also make downloading of emails faster (even if you don't use these new methods and properties). i.e. The conventional way of using the .Decide() method is still fully supported and works just the same as it used to (including the new speed improvements).

Fixes

1) Added a FTP property called self._DelayAfterStore, which makes the FTP client work better in Clarion 5.5 with CesarFTP Server. (CesarFTP Server 0.99e was giving errors with the NetTalk client, and CesarFTP Server 0.99g was GPF'ing).
2) Fix in the Template for using NetDIP. Previously hung a window when closing the window. More noticeable in Clarion6.
3) Removed HyperActive from NetDemo.app
4) Clarion 6 - the NetTalk v3.04 for Clarion6 build acted a bit strangely, which disappeared after the 3.05 build.
5) Include fix to correct some Win98 machines, that report a hostname that is not the same as the computer name.
6) Fixed the Multiple File FTP Upload example, so that it can put files into a subdirectory.

Version 3.04 (Beta) (28 January 2004)

New Features

1) Critical Change - may impact your applications NetEmailSend - replaced the ._AfterErrorTryNextMessage and ._NoMessageAddedYet properties with ._ErrorStatus and ._AfterErrorAction - see the NetEmailSend ErrorTrap method for more details. If you were using these old properties, please swop over to the new properties, which are far more informative.
2) NetEmailSend - now uses Asynchronous Open by default.
3) NetEmailReceive - now uses Asynchronous Open by default.
4) NetEmailReceive - Now has the ability to download emails in batches. This can be really handy if your connection dies half way through a download, so that you download less duplicates. See .OptionsNewBatchEveryXMessages and OptionsNewBatchEveryXBytes.
5) NetNewsSend - now uses Asynchronous Open by default.
6) NetNewsReceive - now uses Asynchronous Open by default.
7) NetWebClient - extended the return size of EncodeWebString from 8KB to 16KB
8) NetDemo - revamped look (see examples). (Also included HyperActive into this demo - but it will still run if you don't have HyperActive).
9) Internal changes: Exposed the NetTalk DLL Critical Section object via NetGetCriticalSection(),long and added ._Wait() and ._Release() to all the objects.
Renamed NetTalkInstance to NetTalk:gInstance

Fixes

1) NetDemo example - removed the compiler link errors caused by c5asc library file.
2) NetNewsSend and NetNewsReceive - Fixed these objects that were previously failing on news servers like news.softvelocity.com

Version 3.03 (Beta) (11 December 2003)

New Features

1) New Dial-Up Networking hand coded example.
2) New NetSimple Jump Start example.
3) Exposed the 168-bit DES encryption and decryption functions in the NetTalk DLL.
4) New NetSimple example which shows how to manage packet boundaries in NetSimple, and also demonstrates the NetDESencrypt and NetDESdecrypt functions.
5) Web Client - extended the size that you can send when you call the .Post() method. Was previously up to 16K including the headers. It's now dynamically allocated.

Fixes

1) NetEmailSend - Clarion 6 fix for the 221 error that occasionally happened after sending an email.
2) NetEmailSend - fix for the 250 error that could occur when sending multiple emails to an SMTP server that requires authentication.
3) NetEmailSend - internal fix the self._AfterErrorTryNextMessage set to false in RaiseErrorAndTryNextMessage
4) NetSimple Client Open - Fixed a bug which could cause a connection not to report that it could not be opened. The bug did not happen that often but it has been fixed now.
5) NetSimple Multi Client  - Removed the unnecessary Dummy Service object. This should have been done ages ago, but somehow managed to remain unnoticed until now.
6) NetSimple Email Receive  - Allows for CharSet decoding to work on the full 8192 characters of the Email properties like the ToList, not just the first 1024 characters.

Version 3.02 (Beta) (14 November 2003)

New Features

1) All methods in the NetTalk objects have been made VIRTUAL, previously some methods like Init, Kill and TakeEvent were non-VIRTUAL. We've tested this and no embed points are orphaned as a result.

Fixes

1) NetRefresh - Template fix for using NetRefresh in a Process.
2) Clarion 6 Dial-Up - Fix for Dial-Up Networking. Which previously never worked in Clarion 6 build.

Version 3.01 (Beta) (24 October 2003)

New Features

1) NetSimple - Added .LogDataBytes which logs up to this many bytes to DebugView, in the .Send() method, when the application is run with the /nettalklog command line parameter. (Default = 0 = off)
2) Critical Change - may impact your applications  ERROR:TimeOut equate has been renamed to ERROR:OpenTimeOut
3)
 
Critical Change - may impact your applications
 
 FTP  - The FTP Object has been re-worked. The following is a summary of changes:
  • Every call to the asynchronous functions (e.g. GetDirListing, PutFile, GetFile etc). will either call the Done() or ErrorTrap() method.
  • These functions no longer return values. They used to have a prototype of (...),long,proc now it's just (...). This means any code you've placed in derived methods for these method will have been orphaned.
  • _SetDataRepType() method renamed to _SetType()
  • self._CommandInProcess has been renamed to self.Busy - you can use this flag property to see if a the FTP object is currently busy with a command.
  • NoOp is included in the above asynchronous functions, so you should first check the self.Busy flag before calling NoOp otherwise it will call ErrorTrap if the FTP object is busy with another command.
  • We now suggest you have a case statement in your ErrorTrap (like in the Done() method) should you wish to handle errors based on what command you were trying to issue.
  • Jump Start and examples updated.
  • Open is now using asynchronous open, although this should make no difference to your code, and will work asynchronously, which means no screen lockups on slow or non-existent sites.
  • New method .ProcessIdleConnection() which is called when a connection has been idle for the period specified in self.InActiveTimeout. See FTP methods for more info.
4)
 

 
Internal change to the NetSimple object. Added the ._CallErrorTrap() method, but this should have no impact on anyone's application.

Fixes

1) NetEmailReceive. Fix for 0 length emails that are in your email server mailbox.
2) NetEmailReceive. Another fix, for handling headers better.
3) Dial-Up. Dial-Up uses an internal timer in the DLL to detect new connections. This was only being initialised after you opened a connection. This has been fixed and the timer activates on the NetDUN.Init code now.
4) Dial-Up. Previously when you used Dial-Up and a connection was established, NetTalk would send it's UDP packets to the localhost. This now only happens if you are using the NetTalk objects. (i.e. No UDP packets are sent, if you are just using the NetSimple objects).

Version 3.00 (Beta) (3 October 2003)

New Features

1) New FTP Example - Multiple File Upload.

Fixes

1) NetSimple FD_WRITE: New fix for large sends - up to 12% faster sending. Prevents NetSimple locking up when sending large amounts of data in a tight loop, and is more efficient.
2) Dial-Up Networking fix for Windows XP, where the code could loose track of a connection. This would result in either nothing being displayed in the Connections queue, and/or the Hangup button being greyed out. (Had to implement Critical Sections in C5 and C55 code).
3) Email Send. The HELO command was previously (by default) using HELO microsoft.com
Some email servers in an attempt to block spam are disallowing HELO microsoft.com so we've changed the self.HELO to google.com, but it's best to put your own domain in here.


Version 2.93 (Gold) (19 September 2003)

New Features

1) (none)

Fixes

1) NetTalk DLL based to 80 (IMAGE_BASE 13000000h). Now works for C5, C55 and C60.
2) Send Email beefed up the Message-ID when sending emails.
3) Updated FAQ article on SMTP and MAPI. Also added a CapeSoft Opinion page. Read more: FAQ H4.

Version 2.92 (Beta) (11 September 2003)

New Features

1) Added AutoChat Server (Arnold) to the Examples.

Fixes

1) Email Receive. Fix for attachment only emails using Base64.
2) Email Receive. Fix for CharSet decoding (function completely re-written). CharSet encoding example:
To: =?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= <keld@dkuug.dk>
CC: =?ISO-8859-1?Q?Andr=E9?= Pirard <PIRARD@vm1.ulg.ac.be>
Subject: =?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?=
=?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?=

Version 2.91 (Beta) (20 August 2003)

New Features

1) Added Asynchronous Open & the Idle Timeout functionality to the Web object
2) Three new Web examples. Poll.app which polls to check websites are running. WebStrain.app which shows how to loop through multiple websites. WebServe.app and Web Server example
3) Email Send. Added a new field embedlist to the self.DataQueue queue (Net:EmailDataQType).
4) (Advanced) FTP. Added self._IgnorePassiveFailure to get around FTP Servers that always run in Passive mode, but don't know about the PASV command
5) Added the NetSNMP Object for allowing your program to collect or deliver SNMP data. There may still be some changes to this object to treat it as early beta.

Fixes

1) NetTalk DLL based to 80 (IMAGE_BASE 13000000h) - didn't get done for C55 and C60 - see version 2.93, where this was fixed in
2) Email Send, was not saving the attachmentlist in the self.DataQueue queue. Fixed
3) Email Receive, Quoted Printable decode function caused a Index out of Range error on one email. Fixed.

Version 2.90 (Beta) (4 August 2003)

New Features

1) Reformatted these documents so they can be printed in Portrait A4 or Letter.
2) Added a new DLL function NetGetIPInfo which lists the IP address details. Includes Subnet Masks, Broadcast address (although these don't look meaningful), Gateways, DHCP Servers, WINS servers, Adapter Name and Descriptions.

Fixes

1) Fixed a bug where packets could be left stranded in the In Data queue for the NetSimple objects.
2) Fixed a where sending an email with a ";" as the CC would cause the email header to get split into the body.
3) Fixed Duplicate _ABCDllMode_ & _ABCLinkMode_ errors (in C55 and C6)

Version 2.81 (Gold) (23 July 2003)

New Features

1) (none)

Fixes

1) Web client. Fixed a bug where if there we multiple proxy settings (ie One for HTTP, one of HTTPs, one for FTP etc), the Proxy settings would not be read out the registry correctly. Fixed.
Version 2.80 (Gold) (15 July 2003)

New Features

1) NetClient - Added Client side load balancing, so that if you don't specify a ToNetName a random server is picked. This allows you to add more servers (either running on more machines or the same machine) to balance out any work load. self.DefaultServerNetName has been removed and self.UseAnotherServer() has been modified.
2) NetGetFile / NetFilServer - No longer tries another server if the file does not exist on the server. If you want to do this, call self.UseAnotherServer() and then try again.
3) NetEmailReceive - added a .OptionsOnlyGetWholeMessage property, that prevents the object from splitting up the wholemessage data into text, HTML, subject, to etc. It takes away functionality, but it is faster.  Also added a .OptionsOnlyProcessHeader property that will process the header and then stop. This means if you want to store the email, but don't want the email split into Text and HTML it will be processed faster, but you can still see the from, to, subject etc.
4) Documentation improvements. (Like we've added menus at the top of each page - Improved Support section with Top 10 questions).

Fixes

1) NetTalk DLL based to 73 (IMAGE_BASE 12300000h)
2) NetEmailReceive - fixed a bug where the receiving code sometimes thought an email had UUEncode in it when it didn't and it ended up in an infinite loop during download of emails.
3) NetEmailReceive - fixed a bug where a large email that arrives as only a small email (I know this sounds bizzare) would end up having no text in text, html or wholemessage. Changed in  _ProcessSetSize(). Also NET:EmailNewDifference set to 262140 (256K)
4) NetEmailReceive - fixed a bug a mime boundary with a ; was not being decoded correctly.
5) NetEmailSend - fixed a bug which could cause emails to be sent out in duplicates, when sending lots of emails.

Version 2.76 (Beta) (12 June 2003)

New Features

1) Documentation improvements started (not finished yet, but already enhanced).

Fixes

1) NetEmailReceive fix - Some files were being corrupted, when they were being extracted from the email to disk.
2) NetEmailSend fix - Fixed the .CalcEmailName() method that was not handling email addresses like (notice comma in description):
"Smith, Fred" <fredsmith@hotmail.com>
This function is used to read the ToList, CCList, BCCList and From properties.

Version 2.75 (Beta) (14 May 2003)

New Features
1) First Clarion 6 build. Still in testing phase, but the netdemo application run with all it's features.

Fixes
1) NetTalk DLL. CreateSendingSockets log info was reported wrong IP address (0.0.0.0) if an error occurred. This has been fixed.
2) New build (c55netnl.lib and c60netnl.lib and template change) for ClarioNet 1.2 support. Previously generated winsock errors during compile. (Note: ClarioNet 1.1 Users - you may need to email us at support@capesoft.com and ask us for the WinSock.lib file if you get compiler errors).
[Please note: NetTalk no longer works with ClarioNet]
3) New template change for Family code.
4) NetTalk DLL CloseInActiveConnections() had a bug fix.
Version 2.74 (Beta) (5 May 2003)
New Features
1) The NetTalk DLL now disposes NetAuto packets that haven't been sent after 1 hour. You can change this value using NetOptions. The code for the WAN configuration has a new line (DeletePacketAfterThisLong) see the netdemo app for the code.

Fixes
1) NetTalk DLL. Fixed a bug connected with receiving data for the NetAuto objects.
2) A whole host of fixes and tweaks to the NetTalk DLL for the C6 build:
WM converted to longs
Group OVER parameters changes
GROUP,Thread,Types changes.
3) FTP fix. A very small number of FTP Servers reports the file size of a download incorrectly. Added self.OnlyUseSizesInDirList which if set to 1 will ignore this and use the filesize of the file from the last directory listing.
4) FTP fix. Fixed a bug where if the FTP Server sent a blank line at the start of a directory listing, you would get an Unknown Directory Format error.
5) NetSimple Client fix. If you connected to an IP address using Synchronous Open and closed the connection without receiving anything from the server, this would generate a -20 Address Not Found error. This has been fixed.
6) NetEmail Receive fix. Some Emails that were produced in MS Office were not displaying the correct HTML format.

Version 2.73 (Beta) (8 April 2003)
New Features
1) (none)

Fixes
1) Email Receive. Emails containing another .eml file as an attachment sent from AOL where not saving the attachments. Fixed.

Version 2.7b (Beta) (1 April 2003)
New Features
1) Idle timeouts implemented into NetEmailSend and NetEmailReceive. You just need to specify self.InActiveTimeout (in hs) and mail connections will drop if there is a period of InActivity.
2) Idle timeouts and Async Open implemented into NetDIP object. Also added a self.RefreshInterval property which will automatically call Addme every 60 minutes.
3) NetDIP template allows you to specify fixed strings (in quotes) or a variable. This will probably cause a compile the first time you compile your code with this change. Just open the procedure template and put single quotes (') around your room name.
4) NetSimple Server now supports listening on specific IP address. Some machines are configured with multiple IP addresses. You can now tell NetSimple to just listen on one of those IP addresses. (By default the NetSimple Server will still listen on all IP addresses on the machine). Simply call self.Open ('192.168.2.1', 80) to listen on port 80 on IP 192.168.2.1
5) NetOptions : NET:SETRECOVERYOPTIONS. A new option to configure the NetAuto error recovery parameters. In the netdemo application there is a WAN configuration use of this. This may help optimise large WAN systems.

Fixes
1) ERROR:WaitTimeOut renamed to ERROR:CallBackWindowTimeOut (Not to be confused with ERROR:TimeOut - which occurs when NetSimple Asynchronous connections timeout on the open phase).
2) NetEmailSend. Fix if the server sends back a multi-line reply.
3) NetEmailSend. Introduced a new property called self.Helo. This is the string that is passed with the HELO (or EHLO) command. Some Email Servers require a full domain name in here. It defaults to 'microsoft.com' which seems to satisfy the servers.
4) FTP - changed the some of the numbers for the FTP equates - as they we the same numbers used by some of the other error equates.
5) NetSimple  - changes default Asynchronous Timeout to 9 seconds (was 6 seconds).
6) NetAuto  - tweak in the CreateSendingSockets() DLL function, to the algorithm that chooses the windows message number.
7) Email - changed some of the equates to handle longer From addresses:
  NET:StdEmailFromSize         equate(255)  
  NET:StdEmailStringSize        equate (255)
8) Email Sending - Changed the Quoted Printable encode function to encode a dot (.) if it is the first character on a line. The NetTalk sending object uses the dot transparency prescribed in RFC2821, but some Email Servers are not compliant and so sometimes they report what should be a single dot as a double dot. If you are using Quoted Printable encoding this will no longer occur as the dot will be converted to =2E, which will not cause any transparency problems with non-compliant Email Servers.
9) DUN Control Template. You can now specify the INI file used in the self.ControlTemplateINIFile property in your object's init method after the parent call.
10) FTP Jump Start example updated.
11) NetOptions NET:GETHOSTIPLIST changed. Previously this had to be called after WinSock was loaded (by using a NetAuto or NetSimple object). It can now be called anytime, as it will load WinSock if it's not already loaded.
12) Internal DLL change. Set Max number of connections for each of the following to 1000:
NetAuto TCP outgoing connections
NetAuto TCP incoming connections
NetSimple client connections
NetSimple server connections

Version 2.7a (Beta) (11 Feb 2003)
New Features
1) NetSimple now supports inactivity timeouts (idle timeouts). Set the self.InActiveTimeout to a value in hundredth of seconds and a packet of type NET:SimpleIdleConnection will be sent to .Process() if the timeout is exceeded

Fixes
1) Email Sending. NET:EMAIL_MaxMailData was reduced to 8192 (was previously changed to 16384 on 16 Jan 2003) as the larger number was causing "Index out of Range" errors when emails had a large number of dots. Also tweaked NetEmailSend._ConvertDots().
2) FTP some dates where being reported as one year ahead of time, these have been fixed.

Version 2.7 (Beta) (27 Jan 2003)
New Features
1) Started working on Clarion 6.0 support, but it's not all finished yet.

Fixes
1) Small statistics fix in DLL.
2) FTP some dates where being reported as one year ahead of time, these have been fixed.


Version 2.6 (Gold) (23 Jan 2003)
Gold Release


Version 2.5g (Beta) (16 Jan 2003)
New Features
1) NetRefresh - now has an advanced algorithm where by it only refreshes tables that need refreshing. There are also more options in both the Global Template and the local procedure templates.
2) NetEmailSend - have extended the size of the packet it was sending from 5120 bytes to 16384. This makes it a bit faster.

Fixes
1) Minor changes to the template.
2) Some versions of NetTalk were producing -6 (ERROR:WaitTimeout) errors when the NetSimple Asynchronous client connections timed out. This has now been corrected to produce -53 (ERROR:Timeout) errors.

Version 2.5f (Beta) (10 Jan 2003)
New Features
1) NetSimpleMultipleClient - now supports Asynchronous Open too.
2) FTP object has a .CalcProgressOptimized() method, which as increased the speed of the FTP demo between 2 and 10 times faster on LANs.

Fixes
1) Slight changes to the NetSimple Asynchronous Open Documentation. (see NetSimple.Open - which now includes a 4 step guide to using Asynchronous Open in your applications)

Version 2.5e (Beta) (27 Dec 2002)
New Features
1) New NetOptions call to retrieve a list of TCP/IP properties DNS Servers. See Net:GetDNSList
2) NetSimple Asynchronous Open code finished. Read more about this at the NetSimple.Open method. This is a huge improvement from synchronous open which could lead to your application locking up for between 45 to 90 seconds if the connection could not be established.

Fixes
1) None

Version 2.5d (Beta) (20 Dec 2002) - not released publically

Version 2.5c (Beta) (17 Dec 2002)
New Features
1) (none)

Fixes
1) NetTalk DLL - Changed ERROR:DllNotActive from -1 to -56. This is better as some functions return -1 (false for some OS calls), which was incorrectly reported as "NetTalk DLL not actively initiated"
2) NetSimple sometimes was dropping the last couple o incoming packets when the remote side closed the connection. This has been fixed. This affected the FTP code.

Version 2.5b (Beta) (6 Dec 2002)
New Features
1) Email Send - 3.5 times speed improvement to the queuing algorithm when using Quoted Printable encoding with.

Fixes
1) Clarion 5 Install - was not registering template and was giving an ACCINI5 error. This has been fixed.
2) Windows NT 4.0 would report "DLL INITIALIZATION FAILED. Initialization of the dynamic link library C:\WinNT\System32\RasMan.DLL failed. The process is terminating abnormally." if Dial-Up functions where used and Dial-Up was not installed. Work around coded to tell Windows NT not to display this message.
3) Email Send - fixed a bug which sometimes caused spaces to disappear in either the text or html part of the email when using Quoted Printable encoding.

Version 2.5a (Beta) (3 Dec 2002)
New Features
1) NetSimple Asynchronous Open. Currently being worked on - not complete

Fixes
1) A NetEmailReceive fix for some emails that weren't decoding correctly.
2) Important: Fixed Bug introduced in Version 2.5 beta where NetSimple (Client mode) could not open a connection to an IP address (e.g. 196.25.1.1), worked fine with a hostname (earth.microsoft.com). Fixed.

Version 2.5 (Beta) (22 Nov 2002) - (Please note this is not a stable version)
New Features
1) New method .SavePage(FileName) in Web object. This method will save the web page (less the headers) to the specified FileName.
2) NetSimple Asynchronous Open. Currently being worked on - not complete

Fixes
1) Speed improvements to the NetSimple objects, and the examples.
Good tip! - If you are receiving large amounts of data make sure your window has auto-display off.
2) Turns off Registry writing error messages.
3) Fix to NetSimple Server mode. Where the list of servers may not have updated fully when not using the NETTALKLOG=>1 define. This has been fixed to work even when no logging is used.
4) FTP Fix for Novel FTP server (Novell NetWare v5.00 FTP server) that incorrectly reports back 200 after a file delete instead of 250.
5) Corrected some methods in the some of the objects to call self.send() and not parent.send() - functional the code remains the same, but this improves flexibility (for example to log sends).
6) Fixed a clash between NetRefresh and Brian Staff's Xplore template. (Event:User+46 changed to Event:User + 146)

Version 2.4 (Gold) (25 October 2002)
New Features
1) (None)

Fixes
1) Email Receive object. Handles another variation of emails with base64.


Version 2.3g (Beta) (18 October 2002)
New Features   
1) www.sysinternals.com have released a new version of Debug View. They also have a number of other cool products. (TCPView is also a handy product).

Fixes
1) NetAuto object  Error correction algorithm changes. The connections that the NetAuto objects create are now closed automatically after 30-60 seconds. When data needs to be sent, new connections are opened. Also introduced some changes to the resending algorithm.
2) Internal DLL windows message numbers cycle.
3) Internal DLL changes to the NetAuto resending & acknowledging algorithm.
4) Renamed the external Windows and WinSock function in the DLL - this was causing some people problems when compiling their own apps that used the same names that were exported by the NetTalk DLL.
5) Email Sending. Fixed the problem with the file format returned by the clarion FileDialog.
6) Template change to the length of the DIP server address field from 20 to 80.

Version 2.3e (beta) (13 September 2002)
New Features   
1) (none)

Fixes
1) Sending emails with recipients separated by commas were not working. This has been fixed. Both comma separated lists and semi-colon separated lists work.

Version 2.3d (beta) (6 September 2002)
New Features   
1) NetAuto objects have a new property that allow themselves to be seen by their same process. This is a bit of a new thing, so treat it with care. See the NetServer.Init method.

Fixes
1) Internal DLL: the number of concurrent reading & writing sockets were increased, also the windows message numbers were changed and re-ordered.

Version 2.3c (beta) (30 August 2002)
New Features   
1) Ping command added to NetSimple. See the Ping method and the NetDemo example

Fixes
1) News & Email Receive. Fixed bug where the code was failing to realise a message had been fully downloaded. This happened very seldomly, but has now been fixed.

Version 2.3b (beta) (16 August 2002)
New Features   
1) FTP Example in the Demo application now supports switching between the Passive & Active FTP modes.

Fixes
1) Time Zone Information now works with Daylight saving. This fixes time zone information when sending emails.
2) FTP bug fixed where after the PASV command was issued the FTP server sometimes stopped responding.
3) FTP now ignores the '500 unrecognised command' reply for the TYPE A or TYPE I (ASCII or Binary) commands.

Version 2.3a (beta) (2 August 2002)
New Features   
1) DIP Server example updated. The DIP server now stores the entries in a text file, so that if the server is restarted the previous entries are loaded. This example is shipped as a APP file in your clarion/3rdParty/Examples/NetTalk folder as well as an EXE - see the NetTalk download page at www.capesoft.com

2)

Added a new method to the NetEmailSend object called AfterBuildPartsFromParts(). This method is very similar to the AfterBuildFromWhole() method. This method is called if you are using the NET:EMailMadeFromPartsMode option with SendMail() method. It allows you to change two things:

1) If you have created your own DataQueue structure, you can set any new fields that you've added to the DataQueue in this method. (Existing fields will be overwritten by the rest of the code in .SendMail() )

2) The following properties:
self.ToList (NetEmailSend only)
self.CCList (NetEmailSend only)
self.From
self.Newsgroups - (NetNewsSend only)
 

3)

New FTP object properties.

Set self.
ProgressAllowLoading = 1 if you want the progress bar to move while a PUT file operation is loading the file and sending it to the NetTalk DLL.

self.TransferState = is set to one of the following during file transfers.
'Loading' - while the file is loaded from disk to the NetTalk DLL. (before the file is sent to the FTP server).
'Uploading' - while the file is uploaded to the FTP Server
'Downloading' - while the file is downloaded from the FTP Server
New FTP object method.
Internal method self._CallDone added.

Fixes
1) Template change, so that the self.SuppressErrorMsg = 1 is controlled correctly from the extension template option.
2) Fix for the FTP objects, so that if while downloading a file the connection dies, the transfer stops correctly after the ErrorTrap() method is called. Previously it was continuously trying to download the file and creating a hodge-podge of a downloaded file on the local side.
3) Template fix, for the new class routine section. Code is now saved correctly.
4) Email Sending. Made dots transparent. Resolves "500 unrecognised" errors after an email is sent.
5) Pasive mode FTP. Passive downloads and uploads where not specifying either Binary or Ascii type. This meant sometimes Binary files where downloaded in Ascii mode. This has been corrected.

Version 2.3 (beta) (12 July 2002)
New Features   
1) Template change. Added a Routine Embed section for New Class Methods and Derived Class Methods. This allows you to add routines at the end of your class methods.

Fixes
1) Email Sending Object. Fix made to code that joins lines together if a response is split into two packets.
2) Internal Change. Email Sending Object. Fixes made to ._GetHeaderField() method. Prototype also changed from (string p_Header),STRING to (string p_Header,long p_count),STRING
3) Internal Change. Email Sending Object. Fixes made to .CalcEmailName() method.
4) Internal Changes:
Left(Clip(...)) changed to Clip(Left(...)) in DLL functions: NetCharSet()
And in Email objects: NetEmailReceive._ProcessMimeDesc
5) Email Receive Object:
Fixes to the ._ProcessCopyBinData function so that packets which end with <13,10>.<13,10> don't get treated as end of email.
6) Email Sending Object. loc:FileName extended from 80 to NET:StdEmailPathSize (255). The Full File Path remains at 255 characters long.

Version 2.2 (Gold) (5 July 2002)
New Features   
1) None

Fixes
1) FTP object - closes files in parent ErrorTrap method, if they are open.
2) FTP object - progress of how many bytes to receive fixed if a connection is closed.


Version 2.1c (beta) (28 June 2002)
New Features   
1) New EmailReceive properties: self.TextCharSet & self.HTMLCharSet which contain the content Character Set properties. e.g. "iso-8859-1" or "windows-1251" or "Windows-1252"
2) New internal DLL function. NetAutoSetNotifier

Fixes
1) Email Receive Object. Internal fixes in the ._GetHeaderField() and .CalcEmailName() methods. Also .CalcEmailName() changed from private to public.
2) Legacy. Capitalised the prototypes (e.g. (...),string to (...),STRING) of the following methods:
NetEmailReceive._ProcessUUDecode()
NetWebClient.GetValueFromWebString()
NetWebClient.GetVariableNameFromWebString()
NetWebClient.EncodeWebString()
NetWebClient.DecodeWebString()
NetFTPClientData._FillDirListingQ_FormatCustom()
NetFTPClientData._FillDirListingQ_Format01()
NetFTPClientData._FillDirListingQ_Format02()
NetFTPClientData._FillDirListingQ_Format03()
NetFTPClientData._FillDirListingQ_Format04()
NetDUN.Dial()
2) FTP. Changed the PASSIVE command from 'PASV <13,10>' to 'PASV<13,10> (note the space) - which was causing the FTP to fail on some systems.
3) Changes to the template so that any new Net objects you create don't have the service name field in the template options.
4) Passive FTP. Fixed so that you can download zero sized files.
5) Internal changes the template so that new objects that are created don't have to have a ServiceName in the init() method.

Version 2.1b (beta) (14 June 2002)
New Features
1) 4 new methods for the NetWebClient object for processing web strings like:
name=Fred%20Bloggs&Age=25
        GetValueFromWebString()
        GetVariableNameFromWebString
        EncodeWebString
        DecodeWebString
see the NetWebClient properties section for details.

Fixes
1) Email and News objects now handle receiving command packets that are split up into 2 (or more) in transit.

Version 2.1a (beta) (7 June 2002)
New Features
1) NetEmailSend object's .EmbedList and .AttachmentList now support double quotes to separate filenames. This means you can supply attachment lists in any of the following 3 formats:
C:\|test2.zip|file with spaces, and commas.txt (Clarion FileDialog Format)
file1.txt, file2.txt
(Normal comma separated)
"file with spaces.txt", "anotherfile.txt"
(Comma and quote separated)

Version 2.1 (beta) (23 May 2002)
New Features
1) Option in NetOptions to allow you to set the encryption key for your applications. Use NetOptions with the NET:SETENCRYPTIONKEY equate.
2) From now on, encryption only encrypts your data part of the packet and not the majority of the packet.
Important: This means any new application you build with v2.1 onwards will not be able to talk with older versions of NetAuto if you are using encryption.
3) Important: Internal DLL changes. Increased some security issues in the DLL in the NetAuto objects. For this reason we recommend that all your applications run this version or better. The downside of this fix is that some packets (NetAuto protocol packets) from older NetTalk versions may be regarded as corrupt. The following errors are generated in the logs. "n_acceptCanDoTypePacket() : Error. Received a corrupt data packet. Another application may have sent this data or if the packet was decrypted the key may have been wrong. Bytes received = x".
4) Exposed the NETUUDecode() DLL function.
5) Added a property to the NetNewsReceive object - self.NoPosting which is set to 1 if the News Server does not allow posting. This fix also removes a 201 error which was occurring when trying to read the Newsgroups. Also in NetNewsSend if you send to a News Server which does not allow posting self.error = ERROR:NoPostingAllowed in self.ErrorTrap().
6) New example of how to download all the files in the directory using the FTP object.

Fixes
1) Changed the Registry functions in the NetTalk DLL to handle SubKey names up to 1024 chars long and Values up to 4096 chars long.
2) FTP - Fixed a bug where FTP files which reported dates like "May 11 03:51" would report as files of year 2000 and not the current year.
3) NetEmailReceive. CharSet encoding fixes. Works properly now. (e.g. decoding ?Windows-1252?Q?Jono_=28hotm=E0il=29=22_?=)

Version 2.0 (Gold) (2 May 2002)
New Features
1) NetTalk goes Gold! Version 2 released. (Incidentally this is the 50th release of NetTalk over the last two and half years.)
2) Icons in the NetTalk example applications have been updated.
3) Added two new queues to the NetEmailReceive (and NetNewsReceive) object. self.AttachmentListQ and self.EmbedListQ are queue structures containing the information in the comma separated lists self.AttachmentList and self.EmbedList respectively.

Fixes
1) Fixed the FTP object so that you can download more that 256 files at a time. The fix involved calling the self.abort() instead of calling self.close() in NetFTPClientControl._CommandPrelim()
2) Changed the NetTalk DLL to allow 1000 concurrent server listening ports, 1000 sever connections, 1000 client connections. If you need more than this please contact support@capesoft.com 


Version 1.0 beta 17i (25 April 2002)
1) Fixed a bug in NetWebClient where NetTalk sometimes called the self.PageReceived() before the whole page was receive.
2) Sending Email in a Process Example has been updated.

Version 1.0 beta 17h (18 April 2002)
1) NetEmailSend - ToList, CCList & BCCList now can be both semicolon or comma separated lists. (Previously they had to be separated by commas).
2) NetServer.Kill was previously setting self.service.Thread = 0 before the call to NetAutoSetService. Moved this to after the call as NetAutoSetService was unable to unload the NetAuto service.
3) DLL bug. NetAuto services were not being deleted from the DLL queue. This has been fixed.
4) NetClient.Init calls self.ServersChanged if there are already services in the DLL queue.
5) NetEmailReceive now handle attachments which don't just have alphanumeric names.

Version 1.0 beta 17g (4 April 2002)
1) New Web Builder example.
2) Advanced Programming:
You can now specify the line break characters in the FTP objects by adjusting the value in self._LineBreak, which defaults to '<13,10>'. See the FTP Properties section.
3) Fixed NetEmailReceive to also decode MIME email that have attachments encoded using UUDecode. Previously attachments were processed fine if they were either MIME or UUencode, but not both. 
4) Internal property NET:EmailEstimatedHeaderSize renamed to NET:EmailEstimatedExtraWholeMessageSize and increased from 1200 to 8192, this previously caused some embedded attachments not to display correctly. There were also some small code changes with the resizing of the Email that is made up from parts when Quoted Printable encoding was used.
5) The compiled (EXE) of the DIP Server is now available for download for those who don't have WinEvent and therefore could not build the DIP Server APP file. Available from the NetTalk Download Page on www.capesoft.com
6) Fixes to NetEmailReceive so that it can break apart email messages that don't end in a "<13,10>.<13,10>"

Version 1.0 beta 17f (21 March 2002)
1) Updated the DIP Server code in the example folders, to include the new WhoAmI functionality.
2) New NetAuto File Get and Put example code. This shows you how you can use the NetFileGet and NetFileServer objects to PUT files, as well as getting files.
3) Changes to the FTP Directory Listing Code. Fixed the directory listing so it now recognises files with spaces in the filename.
4) Advanced Programming:
Changes to the FTP Directory Listing Code. Restructured the methods so that programmers can more easily override methods that deal with the various different types of directory formats returned from FTP servers. See more details about the FigureOutDirFormat() method.

Version 1.0 beta 17e (14 March 2002)
1) Autoclose server now restores your application if it was minimised before displaying the warning or closing down messages.
2) Allow the InactiveTimer time to be set right at the start of the program. Previously it could only be set after the DLL was all loaded up and ready.
3) Minor fix to NetSimpleMultiClient, when the close() method is called. Omitted to put a "put (self.q)" in the code. Fixed now.
4) Fixed the progress bar indicator when using FTP in Passive mode.
4) New method for the NetDIP. NetDIP.WhoAmI() can be used to find out your IP address as seen by a DIP server.

Version 1.0 beta 17d (21 Feb 2002)
1) Fixed some of the UDP log file entries, that were displaying incorrect information.

Version 1.0 beta 17c (7 Feb 2002)
1) Added a new property to all the objects. self.UseThisThread is a advanced programming option allowing you to manually specify which thread will receive the DLL to Object events. For more details see the object properties sections for either NetServer, NetSimple, NetSimpleMultiClient or NetDUN objects.
2) Renamed the Registry Equates so they don't conflict with other peoples applications/temlates. e.g.
  Was: HKEY_CLASSES_ROOT          long(80000000H)
  Now: NET:HKEY_CLASSES_ROOT      long(80000000H)
3) Fixed a bug in the NetSimple Server, where the server was unable to reply back to connected clients. This also caused the DIP Server application running at dip.capesoft.co.za to fail. This is fixed now.

Version 1.0 beta 17b (31 Jan 2002)
1) Minor bug fix to NetEmailReceive regarding saving attachments of some types of emails.
2) Important.
Introduced a new property to the NetSimple objects. self.DontErrorTrapInSendIfConnectionClosed indicates that you want to handle a the error response after calling the Send() method if the connection you were trying to send data on has closed. Some applications that re-use connections very quickly were getting 10038 errors. These were being caused by the object not yet knowing that a connection has closed. For more details on how to use this new property see the NetSimple Property section.

Version 1.0 beta 17a (17 January 2002)
1) Changes in the DLL concerning the way the NetSimple Client Connections are closed.
2) NetRefresh Global Extension allows you to set a minimum time to wait after each refresh before refreshing again. This is useful for busy networks as if lots of people are making changes the other machines tend to slow down with all the NetRefreshs

Version 1.0 beta 17 (10 January 2002)

1)

SMTP Authorised Login - NetEmailSend now supports AUTH LOGIN, the same AUTH method supported by Outlook Express 5.x. This allows you to login to SMTP servers using NetTalk. Two new properties added: self.AuthUser and self.AuthPassword.
2) NetAuto objects now support 168-bit DES encryption. Simply set self.packet.encrypt = 1 and your packet data will be encrypted with 168-bit DES encryption.
3) Emails may now be sent to only a BCC list. Previously you had to have a least one email address in the TO or CC list.
4) Changes in the DLL concerning the way the NetSimple Server Connections are closed. This fixes an error with the PUT FTP functionality.

Version 1.0 beta 16a (28 December 2001)

1)

NetCloseApps - improvements to the Refresh functionality.
2) Internal DLL issue - With the NetAuto objects, if the connection dies the DLL tries again, this is done repeatedly on a sliding scale starting at every 8 seconds and now increasing 50% each time until it reaches 1 hour. (e.g. 8 seconds interval the first time, then 12 seconds, then 18 seconds etc.)
3) Fixed a DLL bug that was introduced in version 1 beta 16. The error recovery mechanism for when sockets are closed by the remote machine when using the NetAuto objects had a bug that caused -20 and -12 errors in NetTalk. This has been fixed.

Version 1.0 beta 16 (20 December 2001)

1)

Web Authentication now supported. See the Web Authorization section for an example of how to use this.
2) FTP clients starts now starts using a random listening port number, which ranges from 1792 to 4400.
3) Documentation explaining how to email PDF reports using Tracker Software's PDFXChange and NetTalk. See the PDFXChange section. There is also an example application.
4) Changes to the way the NetSimple and NetAuto objects close down the socket connections. This should prevent 10055 (WSAENOBUFS) and minimise the number of FIN_WAIT2 and TIME_WAIT states that are reported by "netstat -a".
5) Fixed the way the sockets close down so that the NetSimple connection can be "re-used". This means that there is no longer a limit of 256 times a connection can be opened and closed. This was causing problems in the Email sending from inside a process.
6) The queue of the connections that are connected to a listening NetSimple (Server Mode), qSeverConnections, is now automatically updated. This means you don't have to call self.GetInfo() before using qServerConnections. 
7) Fixes to Dial Up Networking Objects. This includes: 
a) List of Dial Up Networking connections available no longer missing one connection.
b) Server IP in the connection status no longer missing first digit.
c) Dial Up works for Windows XP. 
8) Important: v1 beta 16 requires that both the object and DLL are using the same version otherwise your application will GPF. 

Version 1.0 beta 15e (28 November 2001)

1)

Email receive object handles more CharSet decoding (including "windows-1250").
2) New example of using NetSimple objects to implement a proxy application. This is a very useful tool for developing network applications as it can be used to view the the network traffic between 2 network applications.
3) FTP objects improved. Bugs fixed associated with not always receiving a full directory listing or missing the last packet of a "get' file. 
Some people worked around this bug by waiting for two Done() method calls. Please note that this bug fix means that the full directory listing is available after the first (and only) Done() method call.
4) FTP Progress bar now also works with the PUT file command. (See the NetDemo.app example for the code on how to display the progress bar).
5) Changes to the parameters passed in the NetSimple.GetInfo() method. If you put code in this virtual method, please find it in the orphaned embed section.

Version 1.0 beta 15d (8 November 2001)

1)

Fixes to the email objects - a few more emails did not split correctly into text & html. And a few attachments were not saving.

Version 1.0 beta 15c (25 October 2001)

1)

Increased stability to Email objects.

2)

Email receive object now handles iso-8859-1?Q and iso-8859-1?B header encoding.

3)

(Advanced topic) Moved some byte and long initialisation (e.g. DefaultDownloadFlag byte (1) )  from the variable definition area of the objects into the Init() method. This now means you can NEW all the NetTalk objects.

4)

Email receive object now handles an email with the same filename in the same email. 

Version 1.0 beta 15b (11 October 2001)

1)

 HOT  Passive FTP now supported.

2)

FTP bug fixed, where FTP was hanging when an FTP was open, closed, and then opened again.

Version 1.0 beta 15a (2 October 2001)

1)

Bug fixed in NetSimple Server. Sometimes the server was closing itself down. This was noticeable in the NetDIP server, which sometimes stopped responding.

2)

We've also updated the DIP server running at dip.capesoft.com (see the demo example or the DIP docs for more details on how to use this). If you are using a DIP server yourself and you need the new EXE build please email support@capesoft.com. (If you have WinEvent you can build your own DIPServer - you'll find the code in the NetTalk example folder).

3)

 HOT  New example of sending email from inside a process.

4)

Template tweak to allow one to use the "CallABCMethod" ABC template option.

Version 1.0 beta 15 (13 September 2001)

1)

Added UUEncode functionality to the NetEmailReceive objects. This now means that NetTalk can read emails that have attachments encoded with UUEncode. (NetTalk continues to read MIME.)

2)

More tweaks to the NetEmailReceive for improvements to reading emails and attachments.

Version 1.0 beta 14i (30 August 2001)

1)

Added a new method to the NetEmailReceive object called DecideToDelete(). This method allows one to selectively choose which emails should be deleted. This method is called after each email is downloaded, and gives you the option to set self.OptionsDelete = true if you want to delete the email, after looking at the contents of it. If you want to delete all email just set self.OptionsDelete = true before starting to download the emails.

2)

More FTP object fixes. 

3)

Added a new method to the NetEmailSend object called AfterBuildPartsFromWhole().  This method is called if you are using the NET:EmailWholeMessageMode option with SendMail(0 method. It allows you to change the following properties after they have been extracted from the whole message:
self.ToList
self.CCList
self.From
self.Newsgroups - (NetNewsSend only)

Version 1.0 beta 14h (23 August 2001)

1)

Added the documentation for the NetAutoSendBroadCast and NetServer.ReSync documentation. These functions can be used to refresh the list of available services. This can be useful when using dial-up or mobile computers on a LAN.

2)

FTP object fixes. Some FTP Servers returned data in an unexpected format for NetTalk, this has no been fixed. The FTP object was also struggling with control data returned in more than one packet.  

Version 1.0 beta 14g (9 August 2001)

1)

Email Sending object's ExtraHeader property no longer needs the trailing <13,10>, but will continue to work if it does have one.

2)

Added a 2 more error properties to the NetEmailSend and NetNewsSend objects. These new properties (self.ServerErrorNum & self.ServerErrorDesc contain the errors returned by the Email or News Server, if this was what caused the error).

3)

In NetSimpleMultiClient. Added the self.q.SockID which is a unique connection identifier. In fact it is the same as the existsing self.q._connection.SockID. This just make it easier to manage the queue.

4)

Legacy fix. Some legacy applications were GPF'ing when run. This fixes the bug.

5)

Changes to the CloseAppControls Control Template. We've changed the control template. Your existing windows can remain unchanged, or you may choose to delete and add the control template again. The new one allows you to selectively choose which applications to warn or shutdown. Try out the NetDemo example to see this in action.

6)

Fixes to the NetEmailReceive object. Some emails where causing the NetEmailReceive object to "hang". This has been fixed.

7)

Sometimes an Error 10038 message, was been generated when a NetSimple.close() call was placed on a NetSimple connection that had had been closed by the remote side. The error is no longer displayed by the object. But it is still logged in the NetTalk DLL.

8)

We've added a new tab in the Web Client example in the NetDemo application. It gets the time from an atomic time server using the NetWebClient object.

Version 1.0 beta 14e (19 July 2001)

1)

Email Sending now supports sending emails by passing NetTalk the whole message. using self.SendEmail (NET:EmailWholeMessageMode) method. 

2)

Email now supports the DeliveryReceiptTo and DispositionNotificationTo properties which allow servers and email clients (respectively) to report back notification of receipt of emails.

3)

Fix for legacy application that were using NetDUN (Dial-Up Networking) and had compilation errors.

Version 1.0 beta 14d (9 July 2001)

1)

NetTalk now works with Web Builder applications. See the Using NetTalk with Web builder section.

Version 1.0 beta 14c (5 July 2001)

1)

Email tweak where if you send messages to a comma separated list ending in a comma, Nettalk was sending the message to a blank email address. A trailing comma in a list is now ignored.

2)

Removed bug in NetServer.Kill and NetClient.Kill which in some cases caused a GPF.

3)

A few small tweaks.

Version 1.0 beta 14b (26 June 2001)

1)

Email & News progress bars. You can now add progress bars and get progress information from these objects. See the Email Methods & Properties sections and look out for the CalcProgress() method.

2)

Change to the NetSimple GetInfo() method. This method can now now report both the number of packets waiting in the NetTalk DLL as well as the number of bytes in those packets.

3)

Bug fix, of the problem where sometimes service A could "see" service B, which could not "see" the service A.

4)

Extra logging project define for applications that can't start using a command line parameter.

Version 1.0 beta 14 (18 June 2001)

1)

Changes to the way the NetTalk DLL loads and unloads. This now means there is no need for the Dummy NetAuto objects that some people where asked to add to their applications, and the dummy NetAuto object that NetSimple automatically added to each application has also been removed. This results in cleaner WinSock use and increased stability.

2)

Tweaks to NetRefresh.

3)

Tweaks to AutoCloseServer. It now shuts down Win2K applications better. Previously it would shut down the application partially, and only when you waved the mouse over the applications window did it completely disappear. It's working much better now.

Version 1.0 beta 13a (12 June 2001)

1)

Tweak to the ICanDo Packets for machines with more than one IP address. Should prevent flickering of windows with a list of users (e.g. Chat or the RemoteCloseApps window), which resulted from NetTalk getting into a loop with on multiple IP machines.

2)

Added a self.XMailer property to the NetEmailSend and NetNewsSend object. This optional property allows you to specify the name of the application that sent the message.

Version 1.0 beta 13 (8 June 2001)

1)

UDP support for the NetSimple Objects.

2)

Minor Web Fix.

3)

We've noticed quite a lot of folks are downloading the latest version of NetTalk (which installs the latest DLL onto your drive) and then run their applications that still use the old NetTalk code compiled into the code. While a lot of the NetTalk functionality continues to work, this is not a good recipe for getting the new features to work in your application. Please do recompile your applications after installing NetTalk.
Also some people who move DLLs and LIB files around, end up running some of their applications on old NetTalk versions. We've included a new section FAQ on how to do a clean-fresh re-install of NetTalk. 

Version 1.0 beta 12a (31 May 2001)

1)

Fixed a bug where NetTalk would only load on machines with Dial-Up Networking installed.

2)

Improved NetAuto objects ability to notice if a service on another machine is no longer there.

Version 1.0 beta 12 (24 May 2001)

1)

Tweaked the Nettalk template to fix an error in NetRefresh if Errors were suppressed.
Fixed the template so that NetRefesh works when on the same machine.
Fixed it so that "Deletes" trigger a refresh properly.

2)

 HOT    Added the NetDUN object. This object allows you to use the Dial-Up connections and dial into Servers.

3)

By the way, there is a new version of SysInternals' DebugView available now.

4)

Revamped the FAQ (Frequently Asked Questions) section. This section should covers the most commonly asked support questions.

Version 1.0 beta 11 (11 April 2001)

1)

Added the NetSimpleMultiClient object, which is a multiple client version of the NetSimple object. 

Version 1.0 beta 10d (5 April 2001)

1)

 HOT    We've added some JUMP START sections to the documentation. These enable to quickly Jump in and Start using NetTalk in your application. The aim of these sections is to give you the step-by-step instructions to get the basic functionality of the objects into your application in 10-30 minutes.  

2)

FTP. Got rid of a bug that prevented you from being able to execute your next command from before the parent call in the Done() method. You can now call other FTP commands from before or after the parent call in the Done() method.

3)

Web. Got rid of a bug that prevented you from being able to call the Fetch method with a non-variable string.

Version 1.0 beta 10c (27 Mar 2001)

1)

Added an option to delete an email without having to download it. See the NetEmailReceive Decide() method.

2)

NetEmailReceive and NetNewsReceive now also support multipart/related. This means it supports embedded files like graphics in the HTML section in the email. The NetEmailSend and NetNewsSend continue to support this feature.

Version 1.0 beta 10b (22 Mar 2001)

1)

The NetEmailSend.ReconnectAfterXMsgs property now works (this applies to both the NetEmailSend and NetNewsSend objects). Setting this property to something like 20 will cause the connection to the SMTP server to be closed and opened automatically after every 20 messages.

2)

Removed a bug from NetEmailSend that sometimes caused 2 or 3 emails to fail, when sending large numbers of emails, such as in a newsletter application. 

3)

Username and Passwords now work in News objects.

4)

Fixed a bug which sometimes prevented email from being received from a Microsoft Exchange Server.

5)

Added the ReplyTo and Organization properties to the email and news objects.

Version 1.0 beta 10a (20 Mar 2001)

1)

Changed the prototype of the Open() method in the News and Email objects. This probably won't affect you unless you have placed embedded code in your Open() method in an Email or News instance of NetTalk. In which case you old code will now be an orphaned piece of code and you will need to put in it into the Open (string Server,uShort Port=0) method.

2)

Removed a bug from NetEmailSend that sometimes caused 2 or 3 emails to fail, when sending large numbers of emails, such as in a newsletter application. 

Version 1.0 beta 10 (15 Mar 2001)

1)

Fixed the Web object where sometimes the pages would appear not to download. Like at www.navyseals.com

2)

NetSimple - cleaner closing down mechanism. 

3)

Changed Stats structure qSimpleServerSockets_Size & qSimpleServerSockets_Bytes to qSimpleServerConnections_Size & qSimpleServerConnections_Bytes respectively

4)

Changed IPcstr to RemoteIP in Net:SimpleServerConnectionsQType

5)

Change with NetSimple packet structure. self.packet.ToPort and self.packet.FromPort replaced with self.packet.OnSocket property. A self.packet.SockID property has been added. Important: You now also need to set the SockID property when replying to a connection if it is different from the one that you received the data on. This SockID property is also available in the self._Connection group stucture as well as the results of calling NetSimpleGetServerConnections (ThisSimpleServer._Connection, qOurConnections)

6)

Changed NetSimple Object IP string size from cstring (81) to cstring (16). This gives 15 characters for the 255.255.255.255 format plus one char for the null terminator.

7)

NetTalk now works when no network card is present, as long as at least one TCP/IP adapter is setup (e.g. NetTalk works when a TCP/IP modem adapter is setup in the Network properties even if the Modem is not plugged into the machine or connected to the Internet.)

8)

Changed DLL and Object packet Structure a bit in NetAuto and a lot in NetSimple.

9)

The NetSimple Close methods now perform a graceful close. i.e. Data that has been sent from the object to the DLL will be sent, and the DLL will send the object data already received that was waiting in the DLL. No new data will be received and the socket will be closed properly once all data has been sent.
Note: If the object's window is closed before the Close() method is called, any incoming data in the NetTalk DLL will not get to the object as the object is closed when the window closes. NetTalk does not guarantee that data waiting in the NetTalk DLL will be sent, after the object is closed down (e.g. the window closed). This means that when using the Email and News objects you still need to keep the windows open until the MessageSent() or the ErrorTrap() methods have been called. This is because of the mail protocol behaves in a synchronous fashion. i.e. a command is sent and a reply is given before the next command is sent. So closing the window before the mail has finished being sent may not guarantee that the mail will be sent.

10)

Added an Abort() method to the NetSimple objects. This kills the socket, and any data (either incoming or outgoing) that the DLL has. It can be used to bail out of an action fast. 

11)

Added the CloseServerConnection() and AbortServerConnection() to the NetSimple objects. These close/abort the incoming connections when NetSimple is in the Server mode (i.e. used as a listening port).

12)

New self._Connection.MaxServerConnections property for NetSimple objects when in Server mode. This allows you to specify how many incoming connections are allowed to connect to this listening port. 0 = no limit (default).

13)

New NetSimple.GetInfo() method. This method gives back a list of all connections currently connected to the listening port. This queue is not self-updating i.e. you need to call this method before reading the queue if you want the most up-to-date information.

14)

Fixed News Receive Index Out of Range Error. This also fixes the bug that sometimes caused the NetNewsReceive to crash.

15)

Fixed Email Receive bug that caused it to crash sometimes.

16)

Fixed Web Proxy settings, to recognise when Internet Explorer's proxy settings have not been enabled.

17)

Added the ability to send embedded files (pictures) in the HTML part of an email. See the EmbedList property for the NetEmailSend object in the Methods & Properties section.

18)

New: Added the FTP Client objects.

19)

Fixed a bug that could cause some applications to GPF when the object was closed down. 

Version 1.0 beta 9b (16 Jan 2001)

1)

Added a special Tips for Creating an Email Newsletter Sending Application section.

2)

Added the NetWebClient object, which allows you to get web pages as well as to post data to web page forms.

3)

Removed the -34 error bug, which sometimes happened on closing your application (or window) when using NetSimple.

Version 1.0 beta 9 (20 Dec 2000)

1)

Added the MessageID and References fields to the Email objects. 

2)

Fixed a bug in NetSimple Server, where the Server would respond incorrectly if it were opened, closed and then re-opened.

3)

Added more options to the NetAutoCloseServer template. You can now set the default messages as well as specify the time delay of the windows that popup. Also added a new CloseApp() method, which allows you to run code when the whole application needs to be shutdown.

4)

Added a new embed point after the objects init() call in the Window.init() method. This allows you to decide what actions to take if the NetAuto objects don't initialise correctly. e.g. If the user runs too many instances of NetTalk an error is generated and you can decide to close your application down.

5)

Added the NetNewsSend and NetNewsReceive objects. These allow you to access Net News Servers.

6)

Add the NetDIP objects. The DIP (Dynamic IP) client object allows you to connect to a DIP server, which tells NetTalk who else is using the same application as well as allowing machines which are allocated dynamic IP address to act as a server.  

7)

Added the NetRefresh object. This object ensures that data that is changed in one application using shared data is immediately reflected on the screens of all other users.

8)

Added a self.ErrorString property to all objects. This contains the ErrorString of the last error that occurred. This is especially useful when you are running objects with errors suppressed.

9)

Added new examples to both the NetDemo application and also NetRefresh.app

10)

Added a check box to the extension template to allow you to easily suppress NetTalk object errors.

11)

Windows 2000 (Win2K) NetTalk bug fixed. Symptoms ranged from NetTalk application using 99% CPU, to no functionality. Anyway this bug is now fixed. 

12)

All logging has now moved to SysInternals DebugView. You can no longer create log files from your application. You must use DebugView.

13)

By the way, there is a new version of DebugView available now.

14)

More comments have been inserted into the netdemo.app example.

Version 1.0 beta 8e (2 October 2000)

1)

Removed the obsolete option to transfer data packets via synchronous transfer. NetAuto objects has been using asynchronous data transfer since version 1 beta 5. Both NetAuto and NetSimple objects still continue to offer asynchronous transfer. 

2)

Added a debug trace option to view debug output in SysInternals DebugView application. This is an attractive alternate to generating log files.

3)

Fixed the memory leak that caused the receiving process to hog memory. We knew about this for ages, but it took quite a while to track down what was going wrong in the NetTalk DLL.

4)

Added a few more stats to the NetOptions NET:GetStats function.

5)

Fixed a DLL bug where some packets we not getting acknowledged properly.

6)

Changed the Internal NetAuto DLL compatibility number. Version 1.0 beta 8d (and less) are no longer compatible with this and later versions of NetTalk. This happened as a result of some internal changes to the DLL. All you need to do is make sure you are using the latest version. The NetTalk DLL logging will record an error message if you try to use two different DLL versions at the same time to communicate and no communication will take place on the object layer.

7)

Fixed a bug whereby NetAuto services would not notice that other public services on other machines were no longer available if the machines running those public services were disconnected from the network or were rebooted without allowing the NetTalk process to shutdown gracefully.

8)

Fixed a bug whereby NetAutoRemote only polls a machine once if a hostname is passed to NetAutoRemote. NetAutoRemote now polls each time you call NetAutoRemote where you pass a hostname or an IP address.

Version 1.0 beta 8d (6 September 2000)

1)

Added a FromIP property to the NetAuto packet structure. This can be used to see the IP address of the process that sent you the packet. See NetAuto Data Structures.

2)

Exposed the DirectResponse group property in the NetAuto packet structure. This group stores the data needed to reply back to the sender of the packet. (So far only one person has asked for this information).  See NetAuto Data Structures.

3)

Changed the Internal NetAuto DLL compatibility number. Version 1.0 beta 8c (and less) are no longer compatible with this and later versions of NetTalk. This happened as a result of some internal changes to the DLL. All you need to do is make sure you are using the latest version. The NetTalk DLL logging will record an error message if you try to use two different DLL versions at the same time to communicate. No communication will take place on the object layer.

4)

NetEmailReceive. Fixed Email attachment download bug which garbled attachments when they were sent from Web Mail clients. (e.g. www.hotmail.com

5)

NetEmailReceive. Fixed bug where the Text and HTML content for emails with attachments is sometimes blank.

5)

NetEmailReceive. Emails with attachments are now downloaded about double as fast on a LAN.

6)

New: Send Email Control Template. This template allows you to add email sending functionality to you application even faster than before.

7)

Fixed a bug in the template where you could get the following errors:
  (nettalk.tpl) Error: Group %MethodDeclaration(NetTalk) Not Found
  (nettalk.tpl) Error: Group %GetNewMethodTreeDesc(NetTalk) Not Found 

Version 1.0 beta 8c (24 August 2000)

1)

Added a GetStats command to NetOptions. You can see how many messages are waiting in the DLL, bytes sent / received and DLL queue sizes. See NetDemo for an example.

2)

Minor Bug Fix. If you have an object based on NetSimple and you are using the Server mode, the self.openFlag property will no longer be set to 0 when the connectionClosed() method is called it will remain as 1 if the object was listening on the port before a client connecting to your object shut down it's connection.

3)

We've been trying to tidy up the way a NetSimple object closes down. Things get a bit messy when there is still a packet to be sent, and either the client or server shuts down. We've made some tweaks here, but it may still need some work. If your NetSimple objects are no longer closing correctly please contact us. We've also cleaned up packets that are still hanging around in the DLL after the connection closes. 

4)

Some tweaks to the Mail objects. Also made the object recover better when an error occurs while sending a mail message, so that other mail messages stand a greater chance of being sent.

5)

Made the /netdlllogerrors option report all errors in the DLL and not just a selected few. We've noticed that running this option sometimes causes a "WSLINST Internal Error 02". Let us know if you are struggling with this, otherwise you run it with full logging or no logging.

6)

You can now get the DLL version string out the DLL see NetOptions.

7)

Template change to support Clarion 5.5 CR1.

Version 1.0 beta 8b (10 August 2000)

1)

Increased the Attachment list size in the Email objects

2)

Fixed a bug in the NetEmailReceive object where it could not receive emails from some servers.

3)

The NetEmailSend self.AttachmentList now accepts two formats:
a) comma separated files (e.g. 'c:\file1.txt,c:\file2.txt')
b) Clarion FileDialog format (e.g. 'c:\|file1.txt|file2.txt')
See the NetDemo application for an example.

Version 1.0 beta 8a (7 August 2000)

1)

Added a new logging option /netdlllogerrors. See the logging section.

2)

Fixed a bug in sending attachments using Email. Previously this caused a GPF or sent a corrupted file to be attached.

3)

Email attachments are now sent about 60 times faster.

Version 1.0 beta 8 (3 August 2000)

1)

Added the Email Sending and Receiving objects. These objects support SMTP and POP integration with the use of Mime. You can easily send or receive text, html and attachments with these objects.

2)

We've added a new method to the NetClient object. It's called ServersChanged(). It's a virtual method that is called whenever the list of servers change or may have changed. See more in the NetAuto methods section.

3)

Major overhaul of the documentation. We've also simplified and changed the examples.

4)

Changes to the template. If you are using NetClient and NetServer you need to check or uncheck the "Private Service" checkbox in the Settings tab in the NetTalk procedure extensions. Most NetServers should be set to public (non-private) and most clients to private except where your clients need to talk to each other (like in Scenario Two).

5)

Changes to the template. You no longer need to derive your Init() and Send() or Process() or ErrorTrap() methods (or any other methods that are already part of the Base Class). You should rather override these methods. So if you previously derived methods that were already part of your Base Class, you should:
1. move your code out of your derived method
2. delete your derived method and 
3. put your code into the methods that are available when you press the Override Class Methods button in the Advanced tab of the NetTalk template. 

You also need to be aware that the parent calls are in place in these methods (view the source to see this) and so you will not need to call the parent calls yourself. If you wish not to call the parent call insert a return statement before the parent call. (See scenario one)

6)

Changed the Internal NetAuto DLL compatibility number. Version 1.0 beta 7b (and less) are no longer compatible with later versions of NetTalk. This happened as a result of some internal changes to the DLL. All you need to do is make sure you are using the latest version. The NetTalk DLL logging will record an error message if you try to use two different DLL versions at the same time to communicate. No communication will take place on the object layer.

7)

Fixed the NetTalk DLL to shutdown when the system is restarted or shutdown. WinEvent users will notice that the DLL shuts down correctly now.

Version 1.0 beta 7 (21 April 2000)

1)

NetTalk now supports Legacy applications. All extensions are used in exactly the same way as for ABC applications. New legacy examples (see \clarion\3rdparty\examples\nettalk\legacy and \clarion\3rdparty\examples\nettalk\multi-leg directories)

2)

We've added the Simple Connect Object. 

3)
The ChatControls Control template interface has changed to bring it in line with the standard NetTalk object extension. This opens up all the normal embed points for the object.

4)
The CloseApps Control template interface has been changed to bring it in line with the standard NetTalk object extension. This opens up all the normal embed points for the object.

5)
DLL Unloading bug has been fixed.

Version 1.0 beta 6

1)

We've made some changes to the Internal working of NetAuto. Each machine gets assigned a GUID (Global Unique Identifier), a RunID and a Description.
The GUID remains the same for the life of NetTalk on that machine, the RunID increments every time NetTalk is run on the machine and the Description forms a friendlier way of identifying NetAuto instances than just the NetName. 
These entries are found in the registry in HKEY_CURRENT_USER\Software\CapeSoft\NetTalk\GUID
You can change the Description but please don't change the GUID or RUNID.

2)

The Description has now been added to the public servers queue. If you open the Chat demo in the NetDemo app you will notice the Description and IP are now in the Chatters list.
The Chat and the CloseApps controls have changed, and we suggest that if you use this control you delete it off your window and add it back again, to make use of the new changes which include the Description and the IP address in the listbox.
This will affect all applications that display the servers list, as the description will be displayed in the servers list instead of the NetName. You can display the NetName by using the code in the NetChat controls and then making the description column have a width of 0. 

3)

Changed the Internal NetAuto DLL compatibility number. Version 1.0 beta 5 (and less) are no longer compatible with later versions of NetTalk. This happened as a result of some internal changes to the DLL. All you need to do is make sure you are using the latest version. The NetTalk DLL logging will record an error message if you try to use two different DLL versions at the same time to communicate. No communication will take place on the object layer.

4)

We made some changes to the extension template. 

We've introduced a "More Settings" tab. You need to fill in either a unique application name or a service name on this tab. This tab is tailored for the object you are using and there are sometimes other options you can choose on this tab.

If you have applications that use previous versions of NetTalk you will need to go to the windows extensions (right-click on each procedure and choose  extensions), for each procedure that uses NetTalk. In the Settings tab you can specify the options you want.

5)

More changes to the extension template. 

The parameters of the parent.Init method and the objects Init method have changed. The servicename is now handled by the template.

Version 1.0 beta 5 (March 2000)

1)

Added two more options to the DLL function NetOptions. You can now read your Streamed Socket and DataGram Instance Numbers.

2)

Changed the Internal NetAuto DLL compatibility number. Version 1.0 beta 4 (and less) is no longer compatible with later versions of NetTalk. This happened as a result of some internal changes to the DLL. All you need to do is make sure you are using the latest version. The NetTalk DLL logging will record an error message if you try to use two different DLL versions at the same time to communicate. No communication will take place on the object layer.

3)

We have improved the error recovery of NetAuto. If your connection to another NetTalk process is broken (e.g. Network failure or modem reset), NetAuto will try and re-establish the connection immediately, if this fails the old process will be polled every 3 minutes to see if it is alive. In the meantime the "inactive" process is removed from the servers list, which is automatically maintained by NetAuto for you. This prevents you trying to talk to a server, that has failed, but it still allows the server to recover and become active again. You can change the poll-rate via the NetOptions function.

4)

Fixed a bug that limited the maximum lengths of all your public services together to something as low as 81 characters. This has been extended to 1024. 

5)

Added a new NetTalk logging option of /nettalklogerrors. This only logs errors that occur at the object layer. This is very handy to run on NetTalk processes that run for hours at a time as only errors are recorded. For more details see the logging section.

6)

Added a hundred's of a second to the log files..

7)

Added a "Simple Connect" mechanism for talking directly to a port.

8)

Speeded up multi-packet communication by about 500%.

9)

Fixed a bug which caused a GPF if you used NetTalk with Secwin (another CapeSoft accessory) and you compiled your app in local mode.

10)

Fixed the code example in the How do I suppress errors section. The second example now reads:
  self.SuppressErrorMsg = true ! Ignore all messages
 parent.ErrorTrap (errorStr, functionName)

11)

Changed the UseRemoteMachineControls Control Template. You will need to delete the control template and add it again or your will get Unknown identifier ?IPADDRESSES error. This adds the current IP address of the machine you are using to the UseRemoteMachineControls window, a Copy button allowing you to copy the IP address(es) to the clipboard and also a most recently used list.

12)

Improved the NetAutoCloseServer and the NetCloseApps objects. They now allow you to specify the application name, so that when you do a remote close only your application is shut and not all the applications running on your network.

13)

Improved features to the File Client / Server. You can now run the FileClient (NetGetFile) in a silent mode, in which no messages are displayed. This is useful if you wish to download a file without displaying messages to the user. You may want to download and update a data file on a regular basis, and you could use this silent mode for achieving this.
There is also a new method called Done(). This method is called when the download is complete or when an error occurred. Use the ErrorOccurred parameter to determine if an error occurred.
We've also added an application name text box on the Extension for NetGetFile and NetFileServer. This allows you to create a File Server and Client that can only talk to your application.

14)

Asynchronous Sending - Faster response faster transmission.

15)

Acknowledgements and "almost" guaranteed delivery. Error recovery.

16)

We've added an application name textbox to the control extension template. This allows you to create a chat window that can only talk to your application, thus differentiating itself from other NetTalk Chat applications that may be running.

Version 1.0 beta 4 (27 January 2000)

1)

Changed scenario one slightly to make it more clear. Also changed the TimeServer and NetGetTime objects to make them more clear. No functional change.

2)

Changed the protocol of the ErrorTrap() method from (string where) to (string errorStr, string functionName) to make it more clear and to log more information. You calls to ErrorString should now look like:

self.ErrorTrap ('An error occurred while attempting to get the time from a time server', 'TimeClient.Ask')

3)

Various improvements to the documentation.
4) Fixed a bug in Scenario 3 (point 28) : if endPosition < len (clip(self.LargeStr))
(This does not change the functionality of the example app, but if you base an app on this without the fix, your MultiPacketReply method will repeatedly send packets without stopping, if your string smaller than len (self.LargeStr))
5) Renamed the NextPacket() method to MultiPacketReply(). You will need to rename any NextPacket() methods you have derived to MultiPacketReply.
6) Added functionality to allow you to call parent.send() from inside Process(). You can also specify self.sendreply=1 before calling parent.send(). This will then swap the ToNetName and FromNetName and the ToThread and the FromThread. It will also sort out the IP for the reply packet. This is only useful if you want to send more than one data sets from within the process() method, if the first packet needs to be a reply packet. 
7) Added more examples
8) Added new features to NetOptions. Highlights include being able to change the Port Numbers that NetAuto runs on. 
9) Changed the Chat Controls to use a picture property of @s80 for the list of servers. (was previously @s10, which is a bit small). This template change will only take affect when you add the Chat controls to your application, it can't fix previous chat controls. To make use of this change, delete your Chat control template from your procedure and re-add it.
10) Added WAN (and Internet) support. You can now connect different machines over the Internet. You can either use the UseRemoteMachine Control Template to add this to your add. Or you can use the NetAutoRemote DLL function directly.

What changed in the Template:
1) Added an extension called Suppress_NetTalk

This is used in the following circumstances;
a) The programmer is making a MULTI-DLL product AND
b) NetTalk is NOT included in the product AND
c) This app is the ROOT DLL.

Symptom of not using it:
Link Error: Unresolved External NetAutoGetNetName in NetTalk.Obj

Purpose:
NetTalk is an ABC compliant class. This means that when you make a Root DLL Clarion includes _all_ ABC compliant classes in the Root DLL.
NetTalk makes use of the DOS and NET DLLs.
This means that even non-NetTalk projects would need to ship the DOS and NET DLLs
This template _removes_ NetTalk from the Root DLL, thus overcoming this problem.
2) Changed the "Use a NetTalk Procedure" Extension Template
This now conforms with all the standard embedding methods for abc objects in
an abc window. Specifically;
a) Go to Embeds, LocalObjects, and the object is there.
b) Go to Embeditor, Full Object prototype visible, and all methods can be embedited.
3) Changed the "Use a NetTalk Procedure" Extension Template Interface
Deriving from a standard NetTalk object has now been moved to an 'Advanced' tab, and generally the options have been greatly simplified by removing all unnecessary.
4) NetTalk now supports Multi-DLL apps. To use in a Multi-DLL app you need to:
a) Add the NetTalk global extension to the Root App.
b) Follow normal instructions everywhere else - i.e. add global and local extensions as required.

Version 1.0 beta 3 (6 January 2000)

1)

First public beta release of NetTalk.
[End of this document]
Return to NetTalk Documentation Index