I wrote a two-part series of articles in FoxTalk in April and May 2005 that discussed a ReportListener which stores the position each object was rendered at in a cursor. That ReportListener collaborates with a custom preview window to provide a "live" preview surface. This gives cool abilities to the preview window, including hyperlinking and support for finding and highlighting text.
The first article was republished on MSDN (http://msdn2.microsoft.com/en-us/library/ms947692.aspx) but the second wasn't (or is now missing). So, I've posted both articles and the source code at http://www.stonefield.com/techpap.html.