MFC openGL
Erfahrenes Mitglied
Hallo,
bin immer noch an der ITAddress Sache, mein bisheriger Stand :
Mein Problem ist nun, ich kann in der Methode startterminal() nicht
" hr = pMediaSupport->QueryMediaType(0x8, &pfSupport); //0x8 bedeutet das es ein " sagen, das 0x8 nimmt er nicht an. Ich würde ja gerne "TAPIMEDIATYPE_AUDIO" statt der 0x8 schreiben, nur nimmt er bei mir die "#include <ipmsp.h>" nicht an.
Des weiteren habe ich ein Problem mit der "CreateCall()" Methode, welche ich über pAddress aufrufen will, er sagt mir immer das ich einen Parameter zuviel angebe, jedoch ist das genauso wie in der MSDN beschrieben.
Sinn des Programms soll es werden das ich ein Telefonnummer anrufen kann und somit die Gültigkeit der Verbindung testen kann, sollte das anders schneller möglich sein, bitte ebenfalls Antworten![Wink ;) ;)](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f609.png)
Danke schonmal an diejenigen die mit antworten.
Gruss
MFC OpenGL
bin immer noch an der ITAddress Sache, mein bisheriger Stand :
Code:
class tapitester
{
public :
static tapitester* exemplar(); //Singleton
bool importtel( int , int, int); //land, areacode, telnumber //true if sucsessful
bool testnumber(); //results true if number is callable
bool getstate(); //returns the tapistate
~tapitester();
private :
tapitester();
bool inittapi(); //make the interface ready //false in case of error
bool calltapi(); //calls the number and test it //true if call was sucsessful
bool closetapi(); //close the tapi inferface //false in case of error
bool startterminal(); //Startet das Media Terminal //false bei einem error
static tapitester* pexemplar;
int landcode, areacode, telnumber;
bool state; //state = true = all ok //false = error
ITTAPI *ptapi; //ITTAPI Pointervariable zum steuern des Interfaces
HRESULT hr; //Speichert den Status der Verbindung
// Declare the interfaces used to select an address.
IEnumAddress * pIEnumAddress;
ITAddress * pAddress;
ITMediaSupport * pMediaSupport;
};
Code:
bool tapitester::inittapi() //make the interface ready //false in case of error
{
hr = CoInitializeEx(NULL, 0);
//Bereitstellen der Parametern und Rückgabe des ptapi Pointers für das Modem //hr beinhaltet den Status
hr = CoCreateInstance( CLSID_TAPI, NULL, CLSCTX_INPROC_SERVER, IID_ITTAPI, (LPVOID *)&ptapi );
if(hr == S_OK)
{
if(ptapi->Initialize() == S_OK) //Start des Interfaces // Rückgabe S_OK bei Erfolg
//inferface successfuly started
return true;
else
return false;
}
else
return false;
}
Code:
bool tapitester::startterminal()
{
// Use the TAPI object to
// enumerate available addresses.
hr = ptapi->_EnumerateAddresses( &pIEnumAddress );
if (hr != S_OK) //process the error here.
return false;
// Locate an address that can support the
// media type the application needs.
while ( S_OK == pIEnumAddress->Next(1, &pAddress, NULL) )
{
// Determine the media support.
hr = pAddress->QueryInterface(IID_ITMediaSupport, (void **)&pMediaSupport);
//if(hr != S_OK)
//break; //ERROR ------------------------------------
VARIANT_BOOL* pfSupport;
hr = pMediaSupport->QueryMediaType(0x8, &pfSupport); //0x8 bedeutet das es ein Telefon ist.
// if((hr != S_OK) || (pfSupport == VARIANT_FALSE)) process the error here.
if (pfSupport)
break;
}
// pAddress is now a usable address.
//----------------------------------------------------------------------------
ITBasicCallControl** ppCall;
BSTR pDestAddress;
char * buffer;
strcpy(buffer, "0205872985");
pDestAddress = reinterpret_cast<unsigned short*>(buffer);
hr = pAddress->CreateCall( pDestAddress, 0x00000001, 0x8|0x20, ppCall); //0x00000001 = LINEADDRESSTYPE_PHONENUMBER sagt das es eine Telefonnummer in pDestAddress ist. //0x8 |0x20 bedeutet das es ein Telefon oder Fax ist.
if(hr == S_OK)
return true;
else
return false;
}
Mein Problem ist nun, ich kann in der Methode startterminal() nicht
" hr = pMediaSupport->QueryMediaType(0x8, &pfSupport); //0x8 bedeutet das es ein " sagen, das 0x8 nimmt er nicht an. Ich würde ja gerne "TAPIMEDIATYPE_AUDIO" statt der 0x8 schreiben, nur nimmt er bei mir die "#include <ipmsp.h>" nicht an.
Des weiteren habe ich ein Problem mit der "CreateCall()" Methode, welche ich über pAddress aufrufen will, er sagt mir immer das ich einen Parameter zuviel angebe, jedoch ist das genauso wie in der MSDN beschrieben.
Sinn des Programms soll es werden das ich ein Telefonnummer anrufen kann und somit die Gültigkeit der Verbindung testen kann, sollte das anders schneller möglich sein, bitte ebenfalls Antworten
![Wink ;) ;)](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f609.png)
Danke schonmal an diejenigen die mit antworten.
Gruss
MFC OpenGL