Ho scritto una semplicissima DLL da usare in VB6...
codice:
#define DOWNLOAD_OK 0
#define NO_DISK_SPACE 2
#define ERROR_CONNECTION 1

BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
					 )
{
    return TRUE;
}

extern "C" __declspec(dllexport) unsigned int __stdcall DettDownload(LPCSTR Url,LPCSTR SavePath)
{
	HRESULT t = URLDownloadToFile(NULL,Url,SavePath,0,NULL);
		if (t == S_OK)
			{
				return DOWNLOAD_OK;	//Download eseguito
			}
		else
			{
				if (t == INET_E_CONNECTION_TIMEOUT)
					return ERROR_CONNECTION;	//Impossibile connettersi
				else
					return NO_DISK_SPACE;	//Forse non c'è spazio sul disco fisso
			}
}
Lasciamo stare il fatto che VisualBasic ha già funzioni per scaricare files,volevo giusto fare una prova e dunque ho creato una dichiarazione del genere...
codice:
Public Declare Function DettDownload Lib "Ceil.dll" (ByRef Url As String, ByRef SavePath As String) As Integer
Ora volevo sapere, un char* in C equivale a una string di Vb6?
Ad ogni modo quando uso la funzione,questa mi restituisce sempre e solo 2 (ossia NODISKSPACE), mentre se incollo la funzione in un semplice programma C e la uso, tutto è ok...
Credo di aver sbagliato nella dichiarazione della funzione in VisualBasic, ma non capisco ancora dove...
Grazie!