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);
		}
	}