I have a program which is not written by me. I dont have its source and the developer of that program is developing independently. He gives me the HWND
and
You can make a hole in the parent window using SetWindowRgn
.
Also, just because it is not your window doesn't mean you can't make it a layered window.
http://msdn.microsoft.com/en-us/library/ms997507.aspx
Finally, you can take control of another window by using subclassing - essentially you substitute your Wndproc in place of theirs, to handle the messages you wish to handle, then pass the remainder to their original wndproc.