CRÉER UN VRAI OCX EN DOTNET

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 6 déc. 2009 à 13:37
TeBeCo Messages postés 467 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 9 mars 2011 - 2 janv. 2010 à 12:51
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/50939-creer-un-vrai-ocx-en-dotnet

TeBeCo Messages postés 467 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 9 mars 2011
2 janv. 2010 à 12:51
bon sans vouloir donnée l'impression d'insister il reste les version express qui cible d'ailleurs le framework 2.0 a la demande je vais regarder par curiosité la procedure demain dans la journée merci pour le lien qui semble relativement bien instructif.
Pour ma part si le problème était recurant je me limiterais a créer un template dans VS et la question serait bouclé sur la "difficulté" repetitive avec du CodeDom + T4
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
2 janv. 2010 à 10:26
Bon voici mes conclusions concernant le "Interop Forms Toolkit" : on peut donc créer des contrôles ActiveX avec interface en DotNet (COM Visible Interface), puisque l'article sur CodeProject montre comment le faire. Mais il y a un "mais" : le toolkit n'est disponible que pour Visual Studio 2005 : si on installe InteropFormToolsInstaller.msi avec VS 2008, on peut effectivement faire fonctionner la démo (elle montre comment afficher une feuille DotNet depuis VB6, et aussi des contrôles telles qu'une barre de statut et une barre d'outil en DotNet avec des événements gérés en VB6, pas mal, donc. Mais je n'ai pas vu comment faire un vrai ocx en DotNet (que l'on pourrait utiliser en Delphi NeoBook par exemple). Si quelqu'un arrive à faire fonctionner le toolkit en VS 2008, qu'il n'hésite pas à en faire profiter les autres, les explications sont ici :
http://blogs.msdn.com/vbteam/archive/2008/03/05/interopforms-toolkit-visual-studio-2008-edition.aspx
mais alors bon courage !!! cela m'à l'air tout de même extrêmement compliqué (plus compliqué que ma solution en tout cas ; pourquoi ne pas avoir fait un toolkit pour VS 2008 tout simplement ?). Moralité : l'interopérabilité m'a l'air beaucoup compliqué que de franchement migrer en VB 2008, n'est-ce pas ?
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
8 déc. 2009 à 08:22
J'avais besoin de faire un controle ActiveX pour mon logiciel IAVB (pour être utilisé en Delphi-NeoBook) et je n'avais pas envie de refaire du VB6, d'où la source. Mais si on peut faire l'ocx directement en DotNet, c'est encore mieux (je vais tester dès que possible).
TeBeCo Messages postés 467 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 9 mars 2011
7 déc. 2009 à 18:35
mouais a la rigueur pourquoi on code ca avec du vb6 dans ce cas la ?
Vu qu'on peux séparer le build en .net, il est possible de compiler dans le même assembly du C#, du C++ CLI et du C++ natif
pourquoi utiliser un runtime dont un peux se passé et qui commence a se faire plus que vieux ?

Autant ton code est fort intéressant est bien expliqué, autant la régression dans la techno est difficilement compréhensible, après tout tout l'ocx aurait pu être fait en VB6
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
7 déc. 2009 à 11:46
Dans ton 1er lien, effectivement, ça à l'air de faire un vrai ocx, à tester !
apidom Messages postés 4 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 6 avril 2004
7 déc. 2009 à 11:31
Voici un peu de lecture concernant ce problème particulier

http://www.codeproject.com/KB/vb-interop/VB6InteropToolkit2.aspx

Maintenant un peu plus généraliste

http://www.codeproject.com/info/search.aspx?artkw=vb+intero%5ep

En esperant faire avancer la chose
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
6 déc. 2009 à 13:39
Si tu dis vrai j'aimerai bien avoir un exemple, car j'ai cherché plusieurs heures sans succès...
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 déc. 2009 à 13:37
ok pour l'exemple... maintenant, un 'ocx' est une dll activeX comme les autres, je vois pas en quoi .Net aurait des lacunes de ce coté...

s'il founit un IClassFactory ou autes joyeusetés ; que la registry est bien renseignée pour que le binding aies lieu... pour moi, VB6 n'est pas nécessaire ici.

ca simlifie certainement la chose, mais n'est pas indispensable.
Rejoignez-nous