WinInet sucks. Why is RemObjects TBaseLoginService using it?

I just noticed this in a call stack when network connections fail:

uROWinInetHttpChannel.TROWinInetHTTPChannel.Check(True)
uROWinInetHttpChannel._Check
uROWinInetHttpChannel.TROWinInetHTTPChannel.SendData($2F261A0)
uROWinInetHttpChannel.TROWinInetHTTPChannel.IntDispatch($2F261A0,$2F261E0)
uROClient.TROTransportChannel.Dispatch($2F261A0,$2F261E0)
uROClient.TROTransportChannel.Dispatch(TROBinMessage($2EA2630) as IROMessage)
DataAbstract4_Intf.TBaseLoginService_Proxy.LoginEx(‘User Id=abc;Password=“def”’)

WinHTTP I have no problem with, it’s great stuff. If WinInet didn’t suck, Microsoft wouldn’t have ditched it completely, and recommended people move to WinHTTP. Most importantly, various versions of Windows and IE include versions of WinInet with dreadful timeout bugs. There are other strange WinINET glitches too, especially when you get proxies and advanced Windows networking stuff involved. Why is the base login service using WinInet and how do I turn it off so it doesn’t use WinInet any more? The last app I used that heavily used WinInet was full of these dread Timeout problems, we had to get rid of all use of WinInet to solve them.

Stackoverflow references:

Yes, I’m the person complaining in the second link, that WinInet is crap. But in case anybody else gets these random freezes (even on working network connections, it freezes and times out, on some versions of Windows and various Internet Explorer editions that exist in the wild, and that’s the darndest thing).

This question isn’t rhetorical. If there’s a good reason to use winInet that I’m unaware of, I’d like to know about it. WinHTTP would be much better for http get functionality without the dreaded stupid Timeout bugs.

Okay it was easy to change it. Take out the ClientChannel from the ClientDataModule and replace with one of the many options. I am still really confused because I thought that WinHTTP was one of the channel options (didn’t I read that somewhere) but I only see one called WinInet HTTP channel…

Hi.

We dont have plans to implement channel using WinHTTP. We are researching some new technologies like WebSockets.

You should fix your wiki then.

http://wiki.remobjects.com/wiki/Choosing_the_channel_type” says

“There are 3 versions of primary channels in RemObjects SDK for Delphi: Indy based, Synapse based and WinHTTP based.”.

Clearly this is a typo on the Wiki, but a really telling one.

Change WinHTTP to WinINET wherever you say you have a WinHTTP channel on your wiki, please!

Hi.

Thank you for report, fixed.

Please consider supporting WinHTTP as it is the standard HTTP platform for Windows now, and deprecating WinINET in future.