Newsgroup: it.comp.lang.c++
Titolo: RAS e Windows95/98: come creare una connessione da programma ?

Ho la necessita' di creare una connessione di accesso remoto da
programma, con tutti i parametri preimpostati, usando C++Builder3 come
compilatore. Per windowsNT esistono tutta una serie di funzioni API
che servono allo scopo, ma per windows95/98 no! Qualcuno ha una vaga
idea di come fare ? Per intenderci, dovrei realizzare un programma di
setup che crei anche una connessione TCP/IP tramite accesso remoto,
sulla falsariga del software che si usano nei kit forniti dagli ISP.
Grazie a tutti.
[ per rispondere via email, togliere "333" dall'indirizzo ]

...


struttura RASENTRY e funziona, non so per W98...
OK, grazie tante, avevo trovato la strada da solo un'ora prima di
leggere il tuo reply. Ora pero' sorge un altro amletico dubbio:
uno degli argomenti di codesta malefica funzione (lpbDeviceInfo) e' un
puntatore ad un buffer contenente una struttura opaca che dovrebbe
contenere le informazioni di configurazione del dispositivo usato
nella connessione (tipicamente un modem). Riporto il prototipo:
DWORD RasSetEntryProperties( 
	LPTSTR lpszPhonebook,
	LPTSTR lpszEntry,
	LPRASENTRY lpRasEntry,
	DWORD dwEntryInfoSize,
------>	LPBYTE lpbDeviceInfo,
	DWORD dwDeviceInfoSize);
Domandona: come ottengo questo parametro ?
Ho cercato nell'help delle TAPI, come consigliato dal buon senso, ma
non ho trovato nulla di immediato o comunque di attinente.
Mi sembra di aver capito di dover usare piu' di una funzione in
cascata per ottenere quanto cerco, e non sono nemmeno sicuro che
questa sia la strada giusta.
Precedentemente, ho ottenuto il nome e il tipo del dispositivo settati
all'interno della struttura RASDEVINFO, ma non so se e come utilizzare
queste info in una funzione TAPI. Mi dai una (grande) dritta ?
Grazie ancora.
Krapac 


DWORD


Uso win98, ho appena installato BCB4 ed un programma (compilato con
BCB3) che funzionava perfettamente non va piu'.
Mi spiego: il prg crea una connessione RAS e ne imposta i parametri
IP. Ho convertito il progetto, ma il prg si pianta quando chiamo la
funzione RASGetEntryDialParams con l'errore "610: Buffer non valido".
Non c'e' verso di farlo girare, i parametri della funzione sono
corretti, la struttura RASDIALPARAMS e' allocata (d'altronde prima
girava!)... e allora ???
Riporto qui brevemente la porzione di codice, che al clic su un
pulsante lancia la funzione:
---------------------------
{
DWORD rc;
RASDIALPARAMS rdp;
BOOL pass;
String pbEntry = StringGrid1->Cells[1][StringGrid1->Row];
rdp.dwSize = sizeof(RASDIALPARAMS);
strcpy(rdp.szEntryName, pbEntry.c_str());
rc = RasGetEntryDialParams(NULL, &rdp, &pass);
if (rc) {
    char errmsg[512];
    RasGetErrorString (rc, errmsg, sizeof(errmsg));
    ShowMessage(String(rc) + String(": ") + String(errmsg));
}
}
---------------------------
Se qualcuno ha una vaga idea di dove sia il problema...
Grazie a tutti. 


...


Prova ad aggiungere la riga :
ZeroMemory(&rdp,sizeof(RASDIALPARAMS));
prima di qls. chiamata o inizializzazione.
--
Ciao , Ricardo Antonio Piana
(Rico per gli amici)
ricard...@tiscalinet.it
http://web.tiscalinet.it/ricardopiana
***

 wrote in message
xOoM3.54435$nP6.5...@typhoon.libero.it...
