After some googling I noticed mingw don't support netlib (urlmon is a part of it). I tried to do hooks, share the win SDK dir but that just lead to countless of errors and I only need 1 function at the moment so I thought exporting the api call would be a good idea. This simple code works fine with MSVC:
typedef HRESULT( __stdcall *UDTF )( LPUNKNOWN, LPCTSTR, LPCTSTR, DWORD, LPBINDSTATUSCALLBACK );
HMODULE hUrlmon = LoadLibrary("urlmon.dll");
xURLDownloadToFile = (UDTF)GetProcAddress( hUrlmon, "URLDownloadToFileA");
xURLDownloadToFile( 0, "http://192.168.1.1/pack0.pak", "C:\\pack.pak", 0, 0 );
FreeLibrary( hUrlmon );
With mingw I get this error:
error: expected declaration specifiers or '...' before 'LPBINDSTATUSCALLBACK'