Add to your (perhaps deprecated) list of HTTPS-compliant solutions:
D. Use the WinHTTP api instead of WinINet.
Both WinHttp and WinINet APIs are very close.
But WinHttp is much faster than WinINet.
Here is how Microsoft defines WinHTTP:
Microsoft Windows HTTP Services (WinHTTP) provides developers with a
server-supported, high-level interface to the HTTP/1.1 Internet
protocol. WinHTTP is designed to be used primarily in server-based
scenarios by server applications that communicate with HTTP servers.
WinINet was designed as an HTTP client platform for interactive
desktop applications, such as Microsoft Internet Explorer, Microsoft
Office, and Microsoft Money. WinINet displays a user interface for
some operations such as collecting user credentials. WinHTTP, however,
handles these operations programmatically. Server applications that
require HTTP client services should use WinHTTP instead of WinINet.
For more information, see Porting WinINet Applications to WinHTTP.
WinHTTP is also designed for use in system services and HTTP-based
client applications. However, single-user applications that require
FTP protocol functionality, cookie persistence, caching, automatic
credential dialog handling, Internet Explorer compatibility, or
downlevel platform support should consider using WinINet.
You can directly use the WinHTTP COM object (via late binding), or use low level API (very close to the WinINet one). See for instance our Open Source unit (Delphi 5 up to XE2). This link has a pros and cons table to refer to.
Just to emphasize the interrest of WinHTTP: as far as I discovered, the WCF implementation by Microsoft uses it for all its HTTP/1.1 communication (also take a look at http.sys kernel mode for the Server side in our very same unit - which is used also by WCF).