Chilkat v11.2.0 Release Notes

Pinned November 3, 2025

Previous Version: Chilkat v11.1.0 Release Notes The main addition in v11.2.0 is the Chilkat.Ai class, and the Chilkat.StringBuilder.MarkdownToHtml method. Ai: The Chilkat AI class provides a unified API for interacting with different AI providers: OpenAI, Google, Claude, xAI, Perplexity, and DeepSeek. It provides functionality for conversation management, multimodal inputs, and streaming mode. Markdown to HTML […]

Semantic Versioning Starting with Chilkat 10.0.0

Pinned September 26, 2024

Starting with the v10.0.0 release (end of September 2024), Chilkat moves to standard semantic versioning.   Prior to this release, for various technical reasons, Chilkat was stuck with versions 9.5.0.xx, where only xx changed. For this first leap to semantic versioning, where the major version changes to 10 (from 9), there are no backward incompatible changes.  […]

Encrypting Chinese Characters

January 26, 2009 in Uncategorized

Question: Why is it the return is blank when encrypting chinese characters? Here’s a snippet of my code: crypt.KeyLength := 256; crypt.SecretKey := Password; crypt.CryptAlgorithm := ‘aes’; crypt.EncodingMode := ‘base64’; OutPutStr := crypt.EncryptStringENC(StringToEncrypt); Answer: Strings in some programming languages such as Visual Basic, C#, VB.NET, Delphi, Foxpro, etc. should be thought of as objects.  The […]

ActiveX Events IDL for (some but not all) Chilkat Components

January 7, 2009 in Uncategorized

SFtp: dispinterface _IChilkatSFtpEvents { properties: methods: [id(1), helpstring(“method PercentDone”)] HRESULT PercentDone([in] long pctDone); [id(2), helpstring(“method AbortCheck”)] HRESULT AbortCheck([out] long *abort); [id(3), helpstring(“method UploadRate”)] HRESULT UploadRate([in] long byteCount, [in] long bytesPerSec); [id(4), helpstring(“method DownloadRate”)] HRESULT DownloadRate([in] long byteCount, [in] long bytesPerSec); }; Zip: dispinterface _IChilkatZip2Events { properties: methods: HRESULT UnzipPercentDone([in] long percentDone, [out] long *abort); HRESULT […]

ActiveX Events in FoxPro

January 7, 2009 in Uncategorized

ActiveX components and controls are used in many programming languages, each of which has it’s own way of handling event callbacks.  This blog post provides helpful hints about how to receive event callbacks from an ActiveX component. To receive the event, you must bind the ActiveX (also referred to as the COM server) event to […]

LastErrorText

January 7, 2009 in LastErrorText

The first step in debugging a Chilkat method that returns a failed status is to examine the contents of the LastErrorText property. The LastErrorText property will contain information about the last method call on the object. For example: success = mailman.SendEmail(email); textBox1.Text = mailman.LastErrorText; The LastErrorText property is standard on all Chilkat classes/objects.  The error […]

Client-Side SSL/TLS Authentication

January 5, 2009 in Uncategorized

This blog post is here to clarify a very common misunderstanding. The various Chilkat components that provide SSL/TLS support also provide an option that allows a client-side digital certificate to be used with the secure connection. A certificate identifies you to the server. In 99% of cases you do not need a client certificate. It […]

How to Track Bounced Emails after Sending

January 5, 2009 in Uncategorized

Question: I am using Chilkat MailMan to send email (SMTP) in Visual Basic 6.0. I need to track the details of bounced mails, please let me know how to do this. Answer: (This answer applies not only to VB6, but to all programming languages because the Chilkat API is identical across programming languages.) Before calling […]

UI-less Self-Extracting EXE

December 30, 2008 in Uncategorized

The most common question regarding Chilkat self-extracting EXE’s is: How do I create a silent extractor that runs a “setup” program after extracting? Answer: Here is a sample command line that creates a silent self-extracting EXE: ChilkatZipSE -u unlockCode -a -sm -sp -nowait -r setup.exe -exe a.exe a.zip The “-r” option is used to specify […]

Inflate from Zip to memory in C++

December 26, 2008 in Uncategorized

This example demonstrates how to inflate in-memory from a Zip in C++: CkZip zip; … // Assume we have a CkZip object and a .zip has been loaded. // It may have been loaded from a file by calling OpenZip, or from an // in-memory image of a .zip by calling OpenFromMemory. // (or any […]

Updating an ActiveX DLL

December 26, 2008 in Uncategorized

Question: I have several of your programs installed on many machines. The problem is that some of these are older file DLL’s that need updating. What is the easiest way to update a DLL? If I run the .msi install, I just end up with two version of the DLL when I go into add/remove […]

Non-English String Literals in C++ Source Code

December 26, 2008 in Uncategorized

When a C++ compiler compiles a C++ source file, it must process the bytes according to a character encoding and that is typically ANSI.  ANSI is not a character encoding, it is simply a keyword that says “Use the default multi-byte character encoding for this computer based on its current locale.”   Therefore, if your program […]