2008-11-21 6 views

Répondre

1

Essayez ceci: http://msmvps.com/blogs/pauldomag/archive/2006/08/16/107758.aspx

Il décrit comment créer un contrôle activeX et l'utiliser dans une page Web. Pour autant que je sache, il n'y a vraiment pas de modèle de projet 'ActiveX' puisque .NET le fait différemment. Cependant, vous pouvez rendre vos contrôles .Net visibles pour le monde COM, ce que l'article ci-dessus illustre.

2

Un couple de concepts; Les assemblys .NET sont l'équivalent fonctionnel des DLL ActiveX dans les langages .NET. Les classes .NET et la méthode peuvent être décorées avec un attribut qui a plusieurs significations dans un contexte différent. Un assembly .NET peut être transformé en DLL ActiveX/COM (ou OCX) en utilisant divers attributs pour affecter les GUID corrects.

Une vue d'ensemble de base de la définition d'un assembly .NET COM est here. Notez que les recherches Google, vous devez inclure VB6 .NET et COM (pas ActiveX). COM génère plus de hits car c'est la technologie sous-jacente derrière le terme ActiveX.

L'article MSDN I lié affiche une configuration COM de base pour une classe .NET. L'attribut ici est l'attribut ComClass.

<ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)> _ 
Public Class ComClass1 

#Region "COM GUIDs" 
    ' These GUIDs provide the COM identity for this class 
    ' and its COM interfaces. If you change them, existing 
    ' clients will no longer be able to access the class. 
    Public Const ClassId As String = "6DB79AF2-F661-44AC-8458-62B06BFDD9E4" 
    Public Const InterfaceId As String = "EDED909C-9271-4670-BA32-109AE917B1D7" 
    Public Const EventsId As String = "17C731B8-CE61-4B5F-B114-10F3E46153AC" 
#End Region 

    ' A creatable COM class must have a Public Sub New() 
    ' without parameters. Otherwise, the class will not be 
    ' registered in the COM registry and cannot be created 
    ' through CreateObject. 
    Public Sub New() 
     MyBase.New() 
    End Sub 

End Class 

Il y a d'autres attributs qui sont particulièrement utiles si vous essayez de subsitute un ensemble de .NET pour une DLL COM existante ou OCX. Enfin .NET a beaucoup d'assistants différents qui vous aident avec les détails fastidieux.

0

Ce n'est pas tout à fait clair de votre question, mais si vous voulez pouvoir consommer dans VB6 (ou un autre environnement COM) quelque chose créé dans VS2005, vous voulez regarder le Interop Forms Toolkit. Cela simplifie grandement l'interopérabilité entre VB6 et VS2005. Maintenant, si vous voulez réellement distribuer ces applications, installer ce que vous avez créé devient beaucoup plus amusant (Astuces: n'utilisez pas le GAC, installez la DLL .Net dans le même répertoire que votre application et apprenez à utiliser RegAsm).

Si vous donnez une petite description de ce que vous voulez utiliser ActiveX.dll pour (bibliothèque de projet ou contrôle utilisateur) et dans quel environnement vous voulez l'utiliser, d'autres conseils peuvent être donnés.

0

Je ne sais pas si c'est ce que vous essayez de faire ou non. Mais si vous faites un clic droit sur la Boîte à outils dans Visual Studio, dans le menu contextuel sélectionnez Choisir l'élément ...

Lorsque vous obtenez le « Choisissez Boîte à outils Item » boîte de dialogue venir, sélectionnez les « Composants COM " et vérifiez le (s) composant (s) COM que vous souhaitez ajouter à la boîte à outils. J'ai fait ceci pour ajouter le "Windows Media Player" à la boîte à outils et l'ai utilisé dans un Winform C#. A partir de cette boîte de dialogue, vous pouvez accéder à n'importe quel contrôle COM, OCX ou ActiveX chargé sur votre système.

Questions connexes