Question: I saw a good article explaining how to have .net apps communicate directly with each other (http://ryanfarley.com/blog/archive/2004/05/10/605.aspx), but it involved overriding the WndProc method in your form which I obviously can't do in vb6.

Do any other methods of inter-application communication exist that could be utilized in vb6?

I am about to start a new project in .net, but there are vb6 forms I will not be able to port as soon as I will need them. After considering a couple of different designs I've decided that it may be best to just let the vb6 app run in the background and, when notified to do so, it could present any forms I need it to and then notify the .net application when the form has been closed.

Answer: 
There are many alternatives. If you say more about your requirements, I can provide a more detailed answer.

In the mean time, have a look at named pipes:

<http://support.microsoft.com/kb/871044>

<http://msdn.microsoft.com/en-us/library/windows/desktop/aa365590(v=vs.85).aspx>

If your programs reside on different servers:

<http://msdn.microsoft.com/en-us/library/bb546085.aspx>

They are a reliable method of inter-process communication that do not require any specific OS setup, available to both .NET and VB6.
You could make your VB6 EXE an ActiveX EXE (COM server) and then have the .Net component call it via COM interop. I.e. just [add a reference](http://msdn.microsoft.com/en-us/library/cwys3b23.aspx) to the VB6 EXE on the COM tab of the project references dialog. 

Alternatively you could use WCF. Create a COM-visible DLL in .Net to act as a wrapper for the WCF communications, so that the VB6 can participate. You could use named pipes: I recommend using the built-in .Net [support](http://msdn.microsoft.com/en-us/library/bb546085.aspx) in a COM-visible DLL so that the VB6 can call it.

Disclaimer: I haven't actually tried this, but it really should be simpler than accessing the named pipes API from VB6.