v8.8.0 Release Notes

The major new features/fixes for the 8-February-2009 release are: SOCKS4, SOCKS5 Proxy Support for POP3, SMTP, IMAP, FTP, MHT, HTTP, and Socket. The following properties have been added to each component for SOCKS4/SOCKS5 support: SocksHostname, SocksPort, SocksUsername, SocksPassword, and SocksVersion (4 or 5). Setting these properties to non-empty values is all that is required to use SOCKS4 or SOCKS5 proxies. […]

Perl Date/Time Properties

Any date/time property in Chilkat’s Perl implementation is returned as a SYSTEMTIME object. Here is sample code that demonstrates getting the ValidTo and ValidFrom property from a digital certificate: $sysTime0 = new chilkat::SYSTEMTIME(); $cert->get_ValidFrom($sysTime0); $sysTime1 = new chilkat::SYSTEMTIME(); $cert->get_ValidTo($sysTime1); print “Valid from ” . $sysTime0->{wMonth} . “/” . $sysTime0->{wDay} . “/” . $sysTime0->{wYear} . ” to ” . $sysTime1->{wMonth} . […]

Asynchronous Sockets

This blog post is an attempt to explain the concepts of asynchronous socket programming using the Chilkat Socket class/component.   There are five types of socket operations that may occur asynchronously: Socket read. Socket write. Connect to remote hostname:port Accept connection from client DNS lookup A synchronous socket operation is easy to understand.  If you call ReceiveBytes, the method returns only […]

Encrypting Chinese Characters

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 object contains a string (i.e. […]

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

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 WriteZipPercentDone([in] long percentDone, [out] long […]

ActiveX Events in FoxPro

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 the implemented interface methods on […]

Client-Side SSL/TLS Authentication

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 is usually not necessary for […]

How to Track Bounced Emails after Sending

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 mailman.SendEmail, set the email object’s […]

UI-less Self-Extracting EXE

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 the name of a setup […]

Inflate from Zip to memory in C++

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 of the other CkZip.Open* methods) […]