views:

59

answers:

1

My development team are having a problem having snippets of text shown for search results in windows 7 for our own custom files (note we are NOT talking about the preview pane that uses the IPreviewHandler interface). An example of what I mean for .txt files is shown below:

Search example

The text snippet shown here with the highlighted result is not shown for our own files, only the name of the file is.

We have implemented an IFilter for our files and this is indexing the file contents correctly (searching returns the correct results). It just wont show the snippet and highlight the search term.

We suspected it might be something to do with the cwcStartSource, and cwcLenSource values for the STAT_CHUNK in IFilter, but setting these to different values has so far yielded nothing.

Has anyone else had a similar experience or have any thoughts?

Thanks in advance.

+2  A: 

You need to generate a Preview Handler for your file type.

It can also render enhanced previews of items in a Preview Pane without launching the default application, if the application has registered a Preview Handler. This can provide functionality such as file type-specific navigation (such a browsing a presentation using next/previous controls, or seeking inside a media file).[29] Preview handlers can also allow certain kind of selections (such as highlighting a text snippet) to be performed from the preview pane itself.

source

There's a bunch of code examples floating around for PDFs and such.

Take a peek here: CodePlex:Windows Preview Handler Pack

Edit:

To clarify, the search results pane in Windows 7 is a preview handler host. It has two main pieces: the Content View and the Preview Pane.

Windows Explorer also includes a view mode called the Content view, which is the default view when viewing search results. The Content view shows the name, location, some of the metadata tags associated with the file, a thumbnail image of the file, and a snippet of the file. This view mode also uses hit highlighting to show where the query term appears in the files, which makes it easy to understand why that file was returned in the search results list.

source

You need a Preview Handler for any custom file types if you want enhanced functionality like viewing the file contents for your custom file type.

In Windows Vista and later, Windows Search is integrated into all Windows Explorer windows for instant access to search.

...

Preview handlers and thumbnail handlers enable users to preview documents in Windows Explorer without having to open the application that created them.

source

To verify that you have implemented your custom file type correctly, you can try the File Type Verifier from the Windows 7 SDK, which will test the following things assosicated with your custom file:

  • Preview Handlers
  • Thumbnail Handlers
  • Property Handlers
  • Verb Handlers
  • Filters (IFilter)
  • Kind Associations
  • Perceived Types
  • Important Properties

Using the Content View

you can take advantage of the Content view by using either of two different approaches. You can use an existing set of properties and layout pattern, or you can create your own combination. These two approaches are described in detail:

For a general overview on the Content View, see this article:

Content View By File Type or Kind

GalacticJello
Also just came across a similar question with some good links: http://stackoverflow.com/questions/1688841/custom-windows-7-preview-pane-syntax-highlighting
GalacticJello
All that code seems to relate to previewing documents in the preview pane. I can't see anything related to getting the document extract showing up in the search results.
Jamie
The search results pane _is_ a preview pane. It needs a preview handler for your custom file type in order to show it... I'll add some clarifing text for you.
GalacticJello
Ah, I see what you are referring to: the Content View... I'll correct my post.
GalacticJello
I'll add more about the Content View and the real root of your problem after I fire up a sample IFilter.
GalacticJello
Thats great. Thanks for the info. Jamie
Jamie