Is it possible to intercept a program's messages and alter them to trick the program into thinking it is getting a return when it is not really communicating with the other program?