COM and Background Intelligent Transfer Service (BITS) can be done in plain C without any help from headers and macros. Just keep an idea in your mind of what you get back from CoCreateInstance():

To compile with Visual Studio, just link against Ole32.lib: cl /Zi bits.c Ole32.lib /Fe:bits.exe.

To compile with shellcode compiler, use the --unloaded-modules, otherwise the compiler assumes it's running in the memory space of a process with ole32.dll and combase.dll already loaded: scc -D SCC --unloaded-modules --arch x64 --platform windows bits.c -o bits.exe -f pe.

I keep the source file able to compile with Visual Studio because debugging with WinDbg is so nice. Here's BITS after CoCreateInstance:

And here are its functions:

I don't know what's up with all the "Proxy" and "StublessClient" stuff. Alright, here's the code. The only remaining challenge is generating your wchar_t URL's: