Such techiques are widely documented by Microsoft. As long as Microsoft is willing to share the information with the public, I think it's ok to use them.

As about your problem, I can't see any way to intercept DrawText, it's just a function, not a message. You could get the whole graphic content of the window as a bitmap using dll injection and window subclassing to interfere with the WM_PAINT messages. But you'll get a bitmap not a text.

If the text you're interrested in is from the internet, there is a simple solution, don't use a browser, make your own application to request the web page. When you have the html text, scan it to locate the text you're interrested in.

It may not work if the text is from an ActiveX control. Obtaining a text from an ActiveX control is virtually impossible due to the variety of the controls. Actually they can be used for the copy protection of the text.