This is where my internal voice says "You've got bigger problems..."
1. It might be because the header or library I found are corrupted; but, the compiler does not complain about this.
And your compiler is right. It's a W function, meaning it takes UTF-16 strings. Along the lines of:
2. I am not passing the parameters of the function correctly. I assume this since the compiler complains that I am passing args 2 and 3 from incompatible pointer types.
Or, use the Unicode macros windows provides:
URLDownloadToFileW(NULL, L"www.myurlhere.com/myfilehere.fileextension", L"filename.fileextension", 0, NULL)
...which will expand to either the A or W variant, depending on if UNICODE is #define'd.
URLDownloadToFile(NULL, TEXT("www.myurlhere.com/myfilehere.fileextension"), TEXT("filename.fileextension"), 0, NULL)