URLDownloadToFile() utiliser en C

Résolu
casper_2 Messages postés 93 Date d'inscription vendredi 27 février 2004 Statut Membre Dernière intervention 30 mai 2005 - 12 janv. 2005 à 10:00
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 - 12 janv. 2005 à 19:52
Bonjour a tous,a ce stade,je pense ke vous me connaiser,car chak jour je pose des kestions et grace a vous je m'en sort!!
Je voudrait savoir comment utliser la focntion URLDownloadToFile(),que l'ont m'a confier pour me permettre de telecharger des dossier ZIP a l'aide des socket!
Je voudrais savoir:
-les librairie utiles
- et comment jpourrai l'utiliser avec les socket!
Si kelkun a un exemple de programme avec les socket et cette focntion,pourrait til me les faire voirs svp!!
Au faite je programme en C.
Mercie encore infiniment les gars.

CASPER

9 réponses

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
12 janv. 2005 à 19:52
Salut,

#include
<windows.h>


typedef (
__stdcall *FUNC)(DWORD,
char*,
char*, DWORD, DWORD);


FUNC pFunc;


int main(
void)


{


HMODULE hDLL;


hDLL = LoadLibrary(
"urlmon.dll");



if(hDLL)


{


pFunc = GetProcAddress(hDLL,
"URLDownloadToFileA");


pFunc(
0,
"",
"",
0,
0);


FreeLibrary(hDLL);


}


return
0;


}
3
Gendal67 Messages postés 627 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 24 juillet 2011 2
12 janv. 2005 à 19:33
Je vais même vous aider à m'aider (et à en aider d'autres en même temps) en vous fournissant le code tapé:

#include <windows.h>


#define LPBINDSTATUSCALLBACK DLGPROC


typedef HRESULT (*URL) (LPUNKNOWN, LPCTSTR, LPCTSTR, DWORD, LPBINDSTATUSCALLBACK);



int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {

HINSTANCE hDll;
hDll = LoadLibrary("urlmon.dll");

if(!hDll) {

MessageBox(0, "DLL urlmon non trouvée", "DLL manquante", MB_ICONHAND);
return 0;
}

URL pUrl;
pUrl = (URL) GetProcAddress(hDll, "URLDownloadToFile");

if(!pUrl) {

MessageBox(0, "Fonction 'URLDownloadToFile' non trouvée", "Fonction manquante", MB_ICONHAND);
return 0;
}

pUrl(0, "http://www.test.fr/pitizip.zip", "D:\\Ici.zip", 0, 0);
FreeLibrary(hDll);
}

Gendal67, Dev-C++ 4.9.9.1, J'adore cppfrance!! :-))
1
Gendal67 Messages postés 627 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 24 juillet 2011 2
12 janv. 2005 à 19:47
Problême résolu : URLDownloadToFileA ....

Gendal67, Dev-C++ 4.9.9.1, J'adore cppfrance!! :-))
1
casper_2 Messages postés 93 Date d'inscription vendredi 27 février 2004 Statut Membre Dernière intervention 30 mai 2005
12 janv. 2005 à 11:15
Ma kestion serait plus claire,ainsi!!!!!!
<!--StartFragment -->



Comment télécharger des dossiers XLS.
Ou plus largement comment faire pour que mon programme télécharge un fichier depuis un site internet (serveur) et le stock sur mon disque sous un nom choisi .
On ma conseiller cette fonction <!--StartFragment --> URLDownloadToFile mais g bo chercher,helas, jarive pas a m'en servir.
Je voudrais savoir:
-les librairie utiles
- et comment jpourrai l'utiliser avec les socket!

Je vous remercie,et c'est un peu urgent!
Mercie encore.

CASPER
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
12 janv. 2005 à 12:47
Salut,


Ben justement cette fonction te permetrait de ne pas utiliser les sockets (qui sont vraiment plus compliqués).


Tu as juste a passer l'url du fichier, et le chemin sur le disquedur ou tu veux qu'il soit téléchargé, et la fonction fait tout le reste.
0
casper_2 Messages postés 93 Date d'inscription vendredi 27 février 2004 Statut Membre Dernière intervention 30 mai 2005
12 janv. 2005 à 14:20
Ok,dacord,mais comment l'utiliser kel sont c argument,et g un pwoblem au niveau des librairie.
Ou pourrai-je les telecharger.
stp
CASPER
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
12 janv. 2005 à 15:47
Salut,
J'ai oublié de preciser que cette fonction fonctionne uniquement sous windows.
Il faut inclure urlmon.h et linker urlmon.lib
et ensuite tu appeles ta fonction comme ca:
URLDownloadToFile(0, "http://www.site.com/fichier.zip", "c:\\fichier.zip", 0, 0);
et le fichier sera downloadé.
Tout les infos sur cette fonction sont sur msdn:
http://msdn.microsoft.com/library/default.asp?url=/workshop/networking/moniker/reference/functions/urldownloadtofile.asp
0
Gendal67 Messages postés 627 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 24 juillet 2011 2
12 janv. 2005 à 19:18
Oui aardman, j'ai une question alors à te poser : on fait comment quand on programme sous devcpp et que ce compilo n'a pas de fichier urlmon.h (ni de lib de ce nom laà d'ailleurs) ? ça je crois que c'est la question à 20 000 € (et pas le droit de réponde : "change de compilo" :p).... j'ai essayé de lancer direct cte fonction à partir de sa DLL d'origine (urlmon.dll, présente dans le dossier Windows\System32) mais sans succès, quelqu'un a une brillante idée ?? Ou quelqu'un a t'il réussi à faire ce lien avec la DLL ?

Gendal67, Dev-C++ 4.9.9.1, J'adore cppfrance!! :-))
0
Gendal67 Messages postés 627 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 24 juillet 2011 2
12 janv. 2005 à 19:22
Enfait, c'est assez dur de faire un pointeur de fonction sur cette fonction là, le membre lpfnCB étant de type LPBINDSTATUSCALLBACK, c'est à dire une interface bizarroïde, perso, j'y arrive pas!! SI qqun est assez fou pour essayer et pire, pour trouver, je suis preneur!! Avis aux experts en la matière là!

Gendal67, Dev-C++ 4.9.9.1, J'adore cppfrance!! :-))
0
Rejoignez-nous