This question already has an answer here:
Is there a way to check to see if another program is running full screen
For PowerPoint, see this MS KB article here: http://support.microsoft.com/kb/913045
Screen Saver: Windows API: FindWindow("WindowsScreenSaverClass"). (For more details see this web article: http://bobmoore.mvps.org/Win32/w32tip22.htm - it has a more detailsd way to do it, but I think FindWindow will work ok for you)
For detecting if a full screen game is in use: IDirect3DDevice9::TestCooperativeLevel http://msdn.microsoft.com/en-us/library/bb174472(VS.85).aspx
Otherwise, I think you are on the right path with GetForegroundWindow, GetWindowRect, and other window positioning api.
Things get complicated with you have more than one monitor - so don't forget that scenario as it relates to your app.