Bonjour,

je dois faire un objet COM à partir d'un dll .net que j'avais déjà réalisé
donc j'ai procédé comme suis:
creation d'un nouveau projet dans visual studio,
mise en reference de ma DLL .net

et ensuite j'ai fais le code ci dessous:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
 
namespace NavisionComponent
{
    [ComVisible(true)]
    public interface INavisionCTI
    {
        void startMonitoring();
        void stopMonitoring();
        void showConfiguration();
        void dial(string number);
        void disconnect();  
        void answer(); 
        void blindTransfer(string numero);
 
    }
 
    [ComVisible(true)]
    [InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
    public interface INavisionCTIEvents
    {
        void onIncomingCall(string caller, string callee);
        void onOutgoingCall(string caller, string callee);
        void onConnected();
        void onDisconnected(int duration);
 
    }
 
 
    [ClassInterface(ClassInterfaceType.None)] 
    [ComSourceInterfaces(typeof(INavisionCTIEvents))]
    [ComVisible(true)]
    public class NavisionCTI: INavisionCTI
    {
        CTI cti;
        string ligne;
 
        public delegate void incomingCallHandler(string caller, string callee);
        public delegate void outgoingCallHandler(string caller, string callee);
        public delegate void connectedHandler();
        public delegate void disconnectedHandler(int duration);
        public event outgoingCallHandler onOutgoingCall;
        public event connectedHandler onConnected;
        public event incomingCallHandler onIncomingCall;
        public event disconnectedHandler onDisconnected;
 
        public NavisionCTI()
        {
            cti = new CTI();
            cti.onCallConnected += new CTI.CallConnectedEventHandler(cti_onCallConnected);
            cti.onCallDisconnected += new CTI.CallDisconnectedEventHandler(cti_onCallDisconnected);
            cti.onNewIncomingCall += new CTI.NewCallEventHandler(cti_onNewIncomingCall);
            cti.onNewOutgoingCall += new CTI.NewCallEventHandler(cti_onNewOutgoingCall);
        }
 
        void cti_onNewOutgoingCall(object sender, InfosAppel e)
        {
            if (onOutgoingCall != null)
            {
                onOutgoingCall(e.Caller, e.Callee);
            }
        }
 
        void cti_onNewIncomingCall(object sender, InfosAppel e)
        {
            if (onIncomingCall != null)
                onIncomingCall(e.Caller, e.Callee);
        }
 
        void cti_onCallDisconnected(object sender, InfosAppel e)
        {
            if (onDisconnected != null)
                onDisconnected((int)e.Duration);
        }
 
        void cti_onCallConnected(object sender, InfosAppel e)
        {
            if (onConnected != null)
                onConnected();
        }
 
        public void startMonitoring()
        {
            if (cti.IsMonitoring)
                cti.monitoringStop();
            while (!cti.monitoringStart())
                cti.configuration();
            ligne = cti.getMonitoredLines()[0];
        }
 
        public void stopMonitoring()
        {
            cti.monitoringStop();
        }
 
        public void showConfiguration()
        {
            cti.configuration();
        }
 
        public void dial(string number)
        {
            cti.dial(ligne, number);
        }
 
        public void disconnect()
        {
            cti.disconnect(ligne);
        }
 
        public void answer()
        {
            cti.answer(ligne);
        }
 
        public void blindTransfer(string numero)
        {
            cti.blindTransfer(ligne, numero);
        }
 
 
 
    }
}

les fonctions marchent parfaitement (dans navision ou excel par exemple)
par contre les evenements ne sont pas levé
je ne comprend pas pourquoi...

quelqu'un à une idée?

merci d'avance
warenbe