Because of some Japanese customers that wanted to translate our software (written in Qt), we realized that our translation tool (3 years older, written in C++ Builder) is not ready to new HTTPS infrastructure. Obsolete Indy did not even handshake!
Raw library
[+] Supports the latest cURL (7.56.1).
[−] Compiles in C++ Builder (there were problems with auto-generated header that are not solvable with HPPEMIT). It appeared to be a good thing, LIB extracted from DLL is enough for Delphi binding, but not enough for C.
[+] Added some nice UA strings.
[+] Identified options of TCurlProxyType, TCurlUseSsl, TCurlFtpMethod, TCurlIpResolve, TCurlRtspSeq, TCurlNetRc, TCurtlSslVersion.
[−] POSTFIELDS were incorrectly identified as string → now raw pointer.
[−] QUOTE was incorrectly identified as object → now slist.
[−] Deleted OBSOLETE’s that sneaked to Lib because of auto-replace.
[!] Renamed TCurlHandle → HCurl, and so on. All of them point to empty records (which, by Pascal rules, are incompatible).
[!] TCurlSocket is now TSocket.
[−] CURLINFO_CERTINFO is now slist → pointer
[!] Some double infos are now deprecated.
[+] Added ProxyFromIe function.
[+] CurlDllName defined for conditional compilation and for easy changing name to match cURL version.
Wrappers
[+] A simpler way to add a memory file.
[+] Added fluent interface, disposed of Form property.
[+] Proxy from IE.
[−] ICurlField.PtrContent: possible array overrun.
[−] Now can add memory buffers in ICurlForm >2G on x64.
[!] Removed ICurl.SetSslVersion, use SetOpt instead.
[!] All memory file RawByteString’s are var, as they should exist for the entire ICurl life.
[!] Some double infos are now deprecated.
[+] Updated for raw library types.
[+] >2G disk files supported on x86. New LargeLength function of CustomField gets that large length that’s impossible to pass through arrays. I do not write workarounds for old cURL, as it is 2 years old!
[−] Typo in form’s exceptions.
[!] GetResponseCode → ResponseCode
[+] SwitchRecvToString, ResponseBody
[!] No more Curl.RawByteStream, now it is in Curl.Interfaces.
Examples
[+] Updated Easy\PhotoInfo for easier way of memory files.
[−] Raw\Https example now WriteLn’s.
[+] Raw\A+B now shows both initial and type-safe version of formadd.
[+] Raw\A+B disposed of wrappers.
[+] Raw\A+B now gets some info.
[!] Updated examples to those nice UA strings.
[!] Updated ProgressBar example, now it downloads more recent LOo.
[!] Updated for fluent interface.