In my c# .Net application, I've been trying to be able to retrieve the currently selected text in the currently focused window. (Note that it can be any window open in windows, such as word, or safari). 

I'm able to retrieve the handle to the currently focused control. (Using a couple of interop calls to user32.dll, and kernel32.dll). 

However, I've been unable to consistently be able to get back the selected text. 

I've tried using SENDMESSAGE and GET\_TEXT. However this only seems to work for some applications (works for simple applications like wordpad, doesn't work for more complex applications like firefox, or word). 

I've tried using SENDMESSAGE and WM\_COPY. However, again this only seems to work on some controls. (I would think that WM\_COPY, would cause the exact same behaviour as manually pressing CTRL-C, but it doesn't). 

I've tried using SENDMESSAGE and WM\_KEYUP+WM\_KEYDOWN to manually stimulate a copy command. BUt this doesn't constantly work either. (Perhaps of an overlap with the actual hotkey pressed by a user to invoke my applications).

Any ideas on consistently being able to retrieve the currently selected text ? (on any application).