Newsgroup: it.comp.programmare.win32
Titolo: TAPI su Windows95

Vorrei usare, per prova, una funzione base della sezione "assisted
telephony" delle TAPI di windows. Non richiede inizializzazione delle TAPI,
non richiede nulla.
La funzione è tapiGetLocationInfo, e da quello che dice l'help è molto
semplice:
LONG tapiGetLocationInfo(
    LPCSTR lpszCountryCode,
    LPCSTR lpszCityCode
);
Creo quindi un programmino stupidissimo come questo:
#include <tapi.h>
void main() {
    char Country[8];
    char City[8];
    char* PCountry=&Country[0];
    char* PCity=&City[0];
    tapiGetLocationInfo(PCountry, PCity);
}
Il valore di ritorno della funzione tapiGetLocationInfo è 0x80000049. Non
riesco a capire che errore sia, perchè non corrisponde a nessuna costante
che l'help dice che la funzione tapiGetLocationInfo può restituire, e non
riesco a risolvere il problema. Il codice mi sembra così semplice.
PS.
Ho provato anche molte altre funzioni TAPI, lineInitialize,
lineInilitalizeEx, lineShutdown, le stesse con phone, tapiRequestMakeCall,
ma non sono riuscito a farne funzionare nemmeno una. In più, quando chiedo
di aprire nel VC5 un esempio, secondo le leggi di Murphy, mi dice
"impossibile accedere al file" o qualcosa di simile in inglese.
PPS.
Ho linkato tapi32.lib, naturalmente. La compilazione non da nessun errore e
nessun warning. L'applicazione è una semplice applicazione win32 consolle.
Ciao by Stefano from Italy
On the net: 
s.pe...@usa.net

ma non sono riuscito a farne funzionare nemmeno una. 
Le tapi sono un po' ostiche (perche' scarsamente documentate) 
L'ordine giusto che una volta mi consenti` di aprire un dialogo con le suddette
ed installare una callback era:
lineInitialize
lineNegotiateAPIVersion
lineOpen
...
Ma funziona fino alla TAPI 1.4. Leggi con attenzione (molta, ogni virgola e`
fondamentale) l'SDK alla voce lineInitializeEx, con molta pazienza prima o poi
funzionera` :)
_mirko_
PS: Se volete contattarmi in privato, NON ciucciatevi il calzino :).

il contrario, ma e` solo un'ipotesi.
Ma *nessuna* funzione è supportata, stando a quello che dici, visto che mi
ritorna sempre questo codice di errore.
Mah...


ritorna sempre questo codice di errore.
A me la lineInitialize funziona e mi dice che ho un device installato, poi con
la lineNegotiateAPIVersion ottengo la versione installata (1.4) senza errori.
Comunque prova a guardare qui:
http://microsoft.com/win32dev/netwrk/ctapic.htm


la lineNegotiateAPIVersion ottengo la versione installata (1.4) senza errori.
Questo codice funziona...
typedef LONG (__stdcall * TapiFunctionType)(LPCSTR, LPCSTR);
HINSTANCE hMod = LoadLibrary("tapi32.dll");
TapiFunctionType tapiGetLocationInfo;
tapiGetLocationInfo = (TapiFunctionType)GetProcAddress(hMod,
"tapiGetLocationInfo");
tapiGetLocationInfo(str1, str2);
Spero questa volta di averti dato informazioni utili e non averti fatto perdere
solo tempo... :)
Lo spunto lo ho avuto anche dai tools presenti nel nuovo SDK (itools.exe su
http:ms) ed in particolare tb14.exe. Tapi Browser, ti permette di chiamare
qualsiasi funzione (per fare delle prove) e ho visto che la suddetta funzione
espletava il suo arduo compito :) quindi da qualche parte doveva pur essere.
Conclusioni: tbNN.exe per provare senza scrivere codice, tapi32.lib errata per
w95, approccio LoadLibrary possibile.
E se invece nel frattempo avevi gia` risolto...
	... male ragazzo perche` non ce lo hai detto? :)
