DWORD Flags are supposed to be UInt32


First of all, I would like to thank you for this excellent project!

I noticed that in your WININET wrapper class that you use a signed int type (Int32) for your P/Invoke declarations, this would work only if you do not use flags. I wanted to update the FtpGetFile method in the class FtpConnection to never cache the remote resource to ensure that it always takes the file from the FTP server. To do this you need to enable the INTERNET_FLAG_NO_CACHE_WRITE flag when calling FtpGetFile method. But because of an incorrect data type the flag is ignored. Changing all DWORD flags to use UInt32 would resolve the issue

According to the MSDN documentation, a DWORD is a 32-bit unsigned integer (range: 0 through 4294967295 decimal). Because a DWORD is unsigned, its first bit (Most Significant Bit (MSB)) is not reserved for signing.