Ragazzi ho risolto il problema abbastanza elegantemente!
Quando ritorno il puntatore a ftpstream esso chiama il costruttore di copia, io nel costruttore di copia copio gli indirizzi degli HANDLE e poi modifico questo valore: is_this_temporary (è un oggetto temporaneo) a true, nel costruttore controllo se l'oggetto è temporaneo o no...
posto il codice casomai servisse a qualcuno, ma mi chiedo se utilizzare l'overloading dell'operatore << ritornando un puntatore, e non un reference come vedo in quasi tutti i sorgenti C++, sia la scelta migliore e se la soluzione che ho trovato io è buona o se posso migliorare il codice.
esperti di C++ non fate morire il topic
codice:
ftp::ftpstream::ftpstream()
{
hInternet = NULL;
hInternet = InternetOpen(NULL,INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,0);
//bla bla bla
}
ftp::ftpstream::ftpstream(ftpstream & copy)
{
is_this_temporary = true;
this->hInternet = copy.hInternet;
//e copia altro
}
ftp::ftpstream::~ftpstream()
{
if(is_this_temporary == false)
{
//bla bla bla if(hInternet != NULL)
InternetCloseHandle(hInternet);
}
}