Starting now, Chilkat is going to log the changes, fixes, and new features for the next release as the work is completed. Pre-release builds can be requested for most programming languages and operating systems. Many builds are quick and easy to provide: .NET, ActiveX, C++, Java, Perl, Python, PHP, and others. Some however, are time-consuming and a request for one of the following builds may take as many as several days: WinRT, Node.js, Mono, Xojo, PureBasic, and .NET Core. Send email to email@example.com if a pre-release build is desired.
(Chilkat is currently working on implementing Xero API examples, and many of the new features are related to making life easier to implement these examples. The new features are general and apply to any programming task. )
- Modified the ActiveX DLLs to automatically do per-user ActiveX registration if administrative privileges are not available. This will allow non-administrators to register the ActiveX. However, when per-user registration happens, other user accounts on the same Windows computer will not find the ActiveX registered. Therefore, to properly register the ActiveX for ASP, a Windows Service, or for a SQL Server database, the ActiveX would still need to be registered with admin privileges.
- .NET ToString Method: Chilkat avoids naming any of its methods “ToString”, because all .NET objects by default have a ToString method. Chilkat v220.127.116.11 now automatically implements ToString for all classes in the Chilkat .NET API (although it won’t be publicly documented). (This does not yet apply to the Mono, .NET Core, or WinRT Chilkat API.) The ToString method maps to the already-existing Chilkat method that makes most sense. (For example, Chilkat.Xml.ToString returns the same as Chilkat.Xml.GetXml.) For objects where it makes no sense to have a ToString method, then ToString returns an empty string.
- Added a number of methods and properties to the Chilkat.Xml API. These new methods are related to the “path” and I,J,K techniques that were found to be so handy w/ the Chilkat JSON API. (These new methods will be heavily used in the Xero examples, because Xero requests and responses are in XML, and these new features greatly simplify the coding.) The new methods/properties are:
- EmitCompact (property)
- I, J, K (properties)
The following methods are updated to accept either a tag or “tag path”:
- many other methods are updated. These methods will be noted in the reference documentation. The 1st argument will be named “tagPath”, and a note in the documentation will indicate that the 1st arg can be either a tag or tagPath, and that support for tag paths began in v18.104.22.168
- The Xml.ChilkatPath method was updated to allow for “[i]”, “[j]”, and “[k]” to be used in path strings. When used, each is substituted with the current value of the I, J, and K properties.
- Added the Http.QuickGetSb method.
- Added the Imap.MoveMessages method (to move email messages from one mailbox to another on the same IMAP server in the same session). Requires the IMAP server to support the MOVE extension. (Most IMAP servers support the MOVE extension.)
- Fixed: The Task.Cancel method was not working in the ActiveX.
- Fixed: The Global.FinalizeThreadPool method will now cancel any asynchronous methods that are still running and causes all async background threads to exit. There are certain problems that can happen if the main thread of a program exits while background threads remain running:
- If the program is a VBScript, then I’ve found that AVG Anti-Virus will alert the user of a General Behavioral Threat. Making sure that all async method calls have finished, and that all thread pool threads have exited, should prevent this problem.
- If running a VB6 program from the IDE, the IDE will hang on program exit until all threads have exited.
- It is likely that existing the main UI thread while background threads remain will cause problems in many other programming environments.
- Modified: The Global.FinalizeThreadPool method returns the software to the pristine initial state — where no background threads are running, and the thread pool thread is not yet started. Previously, after FinalizeThreadPool was called, it was not possible to continue using asynchronous Chilkat methods (without restarting the application). Now the FinalizeThreadPool method returns the application to the initial pristine state. A subsequent asynchronous method call will cause the thread pool thread to automatically restart, and everything proceeds as usual. (This is needed for cases where the ActiveX is used in debugging sessions within an IDE, because the ActiveX DLL is not loaded/unloaded between each debug run.)
- OAuth1 — Added the SetRsaKey method and now supports “RSA-SHA1” and “RSA-SHA2”.
- Rest — Added the ClearAllParts method. This is needed if a new REST request is to be sent just after sending a multipart request.
- FileAccess — Added methods: FileReadBd, FileWriteBd, GetFileName, GetDirectoryName, GetExtension, GetFileNameWithoutExtension
- JsonArray — Added the Load and LoadSb methods. Added the EmitCompact and EmitCrlf properties. A JsonArray object can now be created by an application and loaded directly with a JSON array string, such as “[ 1, 2, 3, 4]”.