Click here to Skip to main content
15,899,474 members
Articles / Operating Systems / Windows
Article

VB6 - C# Interop Form Toolkit

Rate me:
Please Sign up or sign in to vote.
4.57/5 (11 votes)
2 Oct 2006CPOL2 min read 197.8K   3.8K   26   49
Interop Form Toolkit was released few days ago. It allows an easy creation of mixed VB6/VB.NET application. One thing it is missing is the ability to do it in C#.
Sample Image - newproject.gif

Introduction

After a long period of talking and expectation Interop Form Toolkit is finally released. I blogged about it few days ago here. If you have an existing VB6 application and are considering options to combine it with new .NET module, you definitely need to check it out.

After couple of hours playing with Interop Form Toolkit, one thing I could not understand is "why it supports VB.NET only?" So I decided to fix this injustice.

Two things should be replaced to make the toolkit work perfectly well with C#: Project template and Add-In for Wrapper objects creation. First of all, I created a new C# project template ("VB6 Interop Form Library C#") and a new item template ("C# Interop Form"). Now you will be able to create a new C# project from this template and add new forms with all needed references and attributes. The original Add-In does not bother even to check in which language the current project is written. It assumes that the only possible choice is VB.NET. Add-In creates a wrapper object and deals with public constructors, properties, methods and events. It will add to wrapper only public members marked with one of Interop Toolkit attributes (InteropFormProperty for example). New Add-In can replace the existing one. It can generate wrappers both in C# and VB.NET, based on project language. If you will invoke it in mixed VB.NET/C# solution, for each, project wrappers will be created in the correct language.

Notes

  • Other .NET languages except VB.NET and C# are still ignored.
  • I can only take credit mostly for translation work. Creators of the original Toolkit deserve a lot of thanks.
  • It is unsupported and definitely not a bullet proof tool. Please let me know about problems or feel free to fix the attached code.

Installation

I apologize for not creating the setup for this, but installation is very easy. First of all, you will need to download and install Interop Form Toolkit. Then, you need to copy template zip files into template directories (usually project template will go into ...\My Documents\Visual Studio 2005\Templates\ProjectTemplates\Visual C#\Windows, and item template into ...\My Documents\Visual Studio 2005\Templates\ItemTemplates). And the last one: copy add-in files into Visual Studio 2005 Add-Ins directory (...\My Documents\Visual Studio 2005\Addins).

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Web Developer
Israel Israel
Leon works as Chief Architect at SRL Group. He leads architectural design and development of various enterprise level projects.
You can meet him on user groups, conferences and forums dedicated to Architecture, ASP.NET, Team System etc. or join him for the next white water rafting adventure

Comments and Discussions

 
BugStrange floating point behaviour when accessing Single values is vb6 Pin
Jakob Schönfeld8-Sep-15 20:58
Jakob Schönfeld8-Sep-15 20:58 
Hi there,

i think i found an error in the interop toolkit behaviour. I hope you can help me.
I have an example Project with a single InteropUserControl (a Windows Forms Button) which is embedded on vb6 form.
The Button is doing the following in his click event:
double b = double.MinValue;
double c = b - 100;
In the vb6 form i have a timer which is doing the following calculation
Dim a As Single
Dim b As Single
Dim c As Single
a = 5
b = 3
c = a / b

When the interop button is clicked, the vb6 application crashes with an error (runtime error 6: overflow) while accessing one of the single values.
It seems that the overflow on the .NET side of the interop is leading to an overflow on the vb6 side, the next time a single variable is accessed.

Is there anything i can do about? I already tried to read the fpu registers, because it seems that the exceptions are somehow not masked on the .NET side, but found nothing.

I can send you a sample project if you are interested.
QuestionCommercial License Pin
Dupron2-Apr-13 1:29
Dupron2-Apr-13 1:29 
GeneralMy vote of 5 Pin
Manoj Kumar Choubey14-Mar-12 19:13
professionalManoj Kumar Choubey14-Mar-12 19:13 
SuggestionSolved: Problems with Visual Studio 2010, AddIn not loaded or/and Wrapper still in VB.Net Pin
arkimboldo2-Aug-11 2:19
arkimboldo2-Aug-11 2:19 
GeneralProblems with Visual Studio 2008 and Interop Forms ToolKit 2.1 Pin
gcantarini13-Jul-10 3:52
gcantarini13-Jul-10 3:52 
QuestionHow to attach c# code as VB6 control Pin
ajovanov7-Jul-10 6:33
ajovanov7-Jul-10 6:33 
GeneralFYI - recompile the source for VS2010 Pin
mmacneill12310-Jun-10 3:46
mmacneill12310-Jun-10 3:46 
GeneralProblem creating interop form using VS2008 Pin
trpugh29-Aug-09 8:27
trpugh29-Aug-09 8:27 
QuestionDoes it work on vs.net 2008? Pin
devnet2478-May-09 5:26
devnet2478-May-09 5:26 
AnswerRe: Does it work on vs.net 2008? Pin
Eddy Vluggen21-Aug-09 8:43
professionalEddy Vluggen21-Aug-09 8:43 
GeneralRe: Does it work on vs.net 2008? Pin
mmacneill12326-Jan-10 5:55
mmacneill12326-Jan-10 5:55 
GeneralRe: Does it work on vs.net 2008? Pin
Jeff Roe27-Jan-10 13:21
Jeff Roe27-Jan-10 13:21 
GeneralRe: Does it work on vs.net 2008? [modified] Pin
Member 79748688-Jun-11 3:08
Member 79748688-Jun-11 3:08 
GeneralVS 2008 interop 2.0 Pin
johnp321021-Apr-09 9:58
johnp321021-Apr-09 9:58 
GeneralNever mind misunderstood something Pin
johnp321021-Apr-09 11:33
johnp321021-Apr-09 11:33 
QuestionGenerate Wrapper Error Pin
Member 185960731-Mar-09 18:12
Member 185960731-Mar-09 18:12 
QuestionIs it a Interop UserControl version? Pin
hainanpc10-Aug-08 6:11
hainanpc10-Aug-08 6:11 
General"lost" the InteropForm Wrapper C# Class Generator Pin
JohnBaima13-Feb-08 11:10
JohnBaima13-Feb-08 11:10 
GeneralRe: "lost" the InteropForm Wrapper C# Class Generator Pin
JohnBaima13-Feb-08 11:22
JohnBaima13-Feb-08 11:22 
GeneralRe: "lost" the InteropForm Wrapper C# Class Generator Pin
scrapetoe28-Apr-08 3:01
scrapetoe28-Apr-08 3:01 
GeneralExpose custom properties and methods to host app Pin
Edward Lane10-Sep-07 5:59
Edward Lane10-Sep-07 5:59 
GeneralRe: Expose custom properties and methods to host app Pin
Edward Lane13-Sep-07 5:34
Edward Lane13-Sep-07 5:34 
GeneralRe: Expose custom properties and methods to host app Pin
Fessen11-Feb-09 21:52
Fessen11-Feb-09 21:52 
AnswerRe: Expose custom properties and methods to host app Pin
MyDevPartners17-Feb-12 9:38
MyDevPartners17-Feb-12 9:38 
GeneralError while loading adddin Pin
Amit_bad9-Jul-07 21:35
Amit_bad9-Jul-07 21:35 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.