I would probably code the 2nd app as a COM-server (activex-dll or activex-exe). In that case you just have to set a reference to the 2nd app in your 1st app, and the 2nd becomes an object you can use like any other object including its events the 1st app would be able to receive