Bonjour,

j'ai un petit soucis concernant l'utilisation d'un singleton pour instancier une classe contenue dans un ActiveX.exe.
La classe contenue dans l'activeX est : activeX

Lorsque je procède ainsi, pas de soucis ma classe est bien instanciée.
'Dim ax = New Mon_ActiveX.activeX

Tandisqu'en passant par mon singleton j'ai une erreur :
'Dim ax As classActiveX = classActiveX.getInstance()

Impossible d'effectuer un cast d'un objet COM de type 'Mon_ActiveX.activeXClass' en type de classe 'WindowsApplication1.classActiveX'. Les instances de types qui représentent des composants COM ne peuvent pas être castées en types différents représentant des composants COM ; toutefois, elles peuvent être castées en interfaces tant que le composant COM sous-jacent prend en charge les appels QueryInterface pour l'IID de l'interface.

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
Public Class classActiveX
 
    'Instance
    Private Shared instance As Mon_ActiveX.activeX
 
    Protected Sub New()
        'constructeur par défaut
    End Sub
 
    Public Shared Function getInstance() As Mon_ActiveX.activeX
        'on initialise si ce n'est pas deja fait
        If instance Is Nothing Then
            instance = New Mon_ActiveX.activeX
        End If
        'on retourne l'instance de la classe classActiveX
        Return instance
    End Function
 
End Class
j'ai évidemment testé avec d'autres classes de mon activeX mais ce n'est pas lié le problème persiste toujours.

Merci d'avance pour votre aide !