Dll tapi transcription partielle de la dll c++

Soyez le premier à donner votre avis sur cette source.

Vue 9 018 fois - Téléchargée 941 fois

Description

J'ai créé une dll VB qui permet de reproduire les méthodes de la dll "TAPI" en C++. J'a retranscrit le code source C++ en vb et en m'aidant des aides des différents messages que les programmeurs ont laissé.
Cette Dll marche bien et n'utilise pas le comosant MSComm de vb. Donc un objet en mois à instancier et à ajouter dans un package. Elle est basée sur la technologie des API "TAPI". Et elle est très simple d'utilisation.

Source / Exemple :


Pour instancier la dll et pour ainsi créer un appel téléphonique 
suivez les intrusctions suivantes :
Dans la forme que vous utiliserez ajouter les objets suivants : 
   - une combobox :  Nom  = Cmb_Port
   - une textbox     :  Nom = Txt_NumTel
   - une checkbox   : Nom = Chk_Standard
   - Trois boutons   : Nom = btn_Raccroche  - btn_Quitter -  btn_Appel

'déclaration des variables globales

Public WithEvents oTapiLine As CvbTAPILine
dim strNumPhone as string

Private Sub Form_Load()
Dim bsucceed As Boolean
Dim lLine As Long
'Initialise la classe TAPI
Set oTapiLine = New CvbTAPILine
'Affectation de la version la plus basse et de la plus haute du TAPI
oTapiLine.LowAPI = &H10003 ' 1.3 = &H00010003
oTapiLine.HiAPI = &H30000 '  3.0 = &H00030000
'initialise et evalue les version de tous les ports
bsucceed = oTapiLine.Create
'Charger la combo des ports

Cmb_Port.Clear
Cmb_Port.AddItem "", 0
If bsucceed Then
    For lLine = 0 To oTapiLine.numLines - 1
        oTapiLine.CurrentLineID = lLine
        'Vérification de la version de la ligne
        If oTapiLine.NegotiatedAPIVersion Then
            Cmb_Port.AddItem oTapiLine.LineName, lLine + 1
        End If
    Next
    'Selectionne la première occurence de la combo
    Cmb_Port.ListIndex = 0
End If
End Sub

Private Sub Form_Unload(Cancel As Integer)
Set oTapiLine = Nothing
Unload Me
End Sub

Private Sub btn_Appel_Click()
Dim bStandard As Boolean

If Chk_Standard.Value = 1 Then
    bStandard = True
Else
    bStandard = False
End If
    strNumPhone = Trim(Replace(Txt_NumTel.Text, " ", ""))
    sbConfigTAPI
    oTapiLine.oPbStandard = bStandard
    oTapiLine.oPiPortNumber = Trim(Cmb_Port.ListIndex)
    oTapiLine.oPsPhoneNumber = strNumPhone
    oTapiLine.OpenLine

    oTapiLine.RbCallNumber
End Sub

Private Sub btn_Raccroche_Click()
On Error Resume Next

    oTapiLine.DropCallAsynch
   Set oTapiLine = Nothing

End Sub

Private Sub Quitter_Click()
On Error Resume Next
Set oTapiLine = Nothing
Unload Me
End
End Sub

Private Sub sbConfigTAPI()
Dim bsucceed As Boolean

'Initialise la classe TAPI
Set oTapiLine = New CvbTAPILine
'Affectation de la version la plus basse et de la plus haute du TAPI
oTapiLine.LowAPI = &H10003 ' 1.3 = &H00010003
oTapiLine.HiAPI = &H30000 '  3.0 = &H00030000
'initialise et evalue les version de tous les ports
bsucceed = oTapiLine.Create
End Sub

Conclusion :


Voilà si vous avez des idées d'évolutions, faites m'en part.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
4
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
11 décembre 2006

Bonjour, je souhaiterai savoir d'où tu peux avoir cette ligne:
Public WithEvents oTapiLine As CvbTAPILine
je ne peux pas avoir le as "cvbTapiline"
c'est con mais c'est au niveau des références que ça bloque...
merci de m'eclaircir si tu le peux...
Akim
Messages postés
470
Date d'inscription
vendredi 14 novembre 2003
Statut
Membre
Dernière intervention
23 octobre 2007
1
salut,

comment envoyer des données ?

merci

Filipe
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Petite erreur :

Public Property Get oPiPortNumber() As Integer
If oPiPortNumber = 0 Then

C'est iOpiPortNumber dans le If
sinon, le Get renverra tjrs 1
Messages postés
28
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
30 mars 2012

Salut,
Ma Dll retranscris en gros les méthodes du composant TAPI32.dll mais pas tout car celle-ci est trop compliqué, j'utilise les API.

Pour utiliser CL_Phone_TAPI, il faut instancier dans les références du projet ce composant. Puis dans le projet, tu peux créer sur la forme les objets suivant:
un bouton Appel
un bouton raccrocher
une checkbox qui spécifie si la ligne est derrière un standard
une textbox où l'on saisira le numéro de telephone
une combo qui comportera la liste les différents ports du pc
ceux-ci appellent les méthodes suivantes :

'Declaration de l'objet

Public WithEvents oTapiLine As CvbTAPILine

Private Sub Form_Load()
Dim bsucceed As Boolean
Dim lLine As Long

'Initialise la classe TAPI
Set oTapiLine = New CvbTAPILine
'Affectation de la version la plus basse et de la plus haute du TAPI
oTapiLine.LowAPI &H10003 ' 1.3 &H00010003
oTapiLine.HiAPI &H30000 ' 3.0 &H00030000
'initialise et evalue les version de tous les ports
bsucceed = oTapiLine.Create
'Charger la combo des ports

Cmb_Port.Clear
Cmb_Port.AddItem "", 0
If bsucceed Then
For lLine = 0 To oTapiLine.numLines - 1
oTapiLine.CurrentLineID = lLine
'Vérification de la version de la ligne
If oTapiLine.NegotiatedAPIVersion Then
Cmb_Port.AddItem oTapiLine.LineName, lLine + 1
End If
Next
'Selectionne la première occurence de la combo
Cmb_Port.ListIndex = 0
End If
End Sub

Private Sub btn_Appel_Click()
Dim strNumPhone As String
Dim bStandard As Boolean

If Chk_Standard.Value = 1 Then
bStandard = True
Else
bStandard = False
End If

If Txt_NumTel.Text = "" Then
strNumPhone = "0328000102"
Else
strNumPhone = Trim(Replace(Txt_NumTel.Text, " ", ""))
End If

'initialisation de l'objet
sbConfigTAPI
oTapiLine.oPbStandard = bStandard
oTapiLine.oPiPortNumber = Trim(Cmb_Port.ListIndex)
oTapiLine.oPsPhoneNumber = strNumPhone
oTapiLine.OpenLine

oTapiLine.RbCallNumber
End Sub


Private Sub btn_Raccrocher_Click()
On Error Resume Next

oTapiLine.DropCallAsynch
Set oTapiLine = Nothing

End Sub



Private Sub sbConfigTAPI()
Dim bsucceed As Boolean

'Initialise la classe TAPI
Set oTapiLine = New CvbTAPILine
'Affectation de la version la plus basse et de la plus haute du TAPI
oTapiLine.LowAPI &H10003 ' 1.3 &H00010003
oTapiLine.HiAPI &H30000 ' 3.0 &H00030000
'initialise et evalue les version de tous les ports
bsucceed = oTapiLine.Create
End Sub


J'espère que ce petit exemple te servira. Je mettra le source prochainement en ligne

Bye
Messages postés
241
Date d'inscription
mercredi 1 octobre 2003
Statut
Membre
Dernière intervention
19 février 2006
2
Très interessant !
Comment un programme externe peut faire appel à ta DLL ?

Merci.
Afficher les 6 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.